diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 9d08a1a8..00000000 --- a/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 433f16c9..00000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -tools/typescript-json-schema diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 79a85db5..00000000 --- a/.gitattributes +++ /dev/null @@ -1,14 +0,0 @@ -# Don't allow people to merge changes to these generated files, because the result -# may be invalid. You need to run "rush update" again. -pnpm-lock.yaml merge=text -shrinkwrap.yaml merge=binary -npm-shrinkwrap.json merge=binary -yarn.lock merge=binary - -# Rush's JSON config files use JavaScript-style code comments. The rule below prevents pedantic -# syntax highlighters such as GitHub's from highlighting these comments as errors. Your text editor -# may also require a special configuration to allow comments in JSON. -# -# For more information, see this issue: https://github.com/microsoft/rushstack/issues/1088 -# -*.json linguist-language=JSON-with-Comments diff --git a/.githooks/commit-msg b/.githooks/commit-msg new file mode 100755 index 00000000..0dc943eb --- /dev/null +++ b/.githooks/commit-msg @@ -0,0 +1,9 @@ +#!/bin/sh +set -eu + +subject=$(sed -n '1p' "$1") +if ! printf '%s\n' "$subject" | + grep -Eq '^(feat|fix|refactor|test|docs|chore|perf|build|ci|style|revert)(\([^)]+\))?!?: .+'; then + echo "Use a Conventional Commit subject, for example: feat: add chart interaction cases" >&2 + exit 1 +fi diff --git a/.githooks/pre-commit b/.githooks/pre-commit new file mode 100755 index 00000000..3f564bee --- /dev/null +++ b/.githooks/pre-commit @@ -0,0 +1,14 @@ +#!/bin/sh +set -eu + +git diff --cached --check + +# Keep documentation-only commits independent of the Python environment. +if git diff --cached --name-only --diff-filter=ACMR | + grep -Eq '\.py$|^(pyproject\.toml|uv\.lock|ruff\.toml)$'; then + if ! command -v uv >/dev/null 2>&1; then + echo "Install uv and add it to PATH before committing Python changes." >&2 + exit 1 + fi + uv run --locked ruff check skills tests evals/scripts +fi diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 8abfd99f..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,102 +0,0 @@ -name: Bug Report -description: Report a bug to @VisActor/VChart -title: '[Bug] ' -labels: [bug] -body: - - type: markdown - attributes: - value: | - The issue list is reserved exclusively for bug reports and feature requests. - - For usage questions, please use the following resources: - - - Read the [docs](https://www.visactor.io/) - - Find in [examples](https://www.visactor.io/) - - Look for / ask questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/visactor) - - For non-technical support or general questions, you can email [xuanhun521@126.com](mailto:xuanhun521@126.com). - - Also try to search for your issue - it may have already been answered or even fixed in the development branch. However, if you find that an old, closed issue still persists in the latest version, you should open a new issue using the form below instead of commenting on the old issue. - - # - type: checkboxes - # attributes: - # label: Is there an existing issue for this? - # description: Please search to see if an issue already exists for the bug you encountered. - # options: - # - label: I have searched the existing issues - # required: true - - - type: input - attributes: - label: Version - description: | - Check if the issue is reproducible with the latest stable version of @VisActor/VChart. - placeholder: | - e.g. 1.0.0 - - validations: - required: true - - - type: input - attributes: - label: Link to Minimal Reproduction - description: | - If the reproduction does not need a build setup, please provide a link to [JSFiddle](https://jsfiddle.net/pfv0azuc/4/),[CodePen](https://codepen.io/kkxxkk2019/pen/KKrMRqa) or [CodeSandbox](https://codesandbox.io/s/the-template-of-visactor-vchart-vl84ww). If it requires a build setup, you can use [CodeSandbox](https://codesandbox.io/s/the-template-of-visactor-vchart-vl84ww) or provide a GitHub repo. - The reproduction should be **minimal** - i.e. it should contain only the bare minimum amount of code needed to show the bug. - Please do not just fill in a random link. The issue will be closed if no valid reproduction is provided. [Why?](https://antfu.me/posts/why-reproductions-are-required) - - validations: - required: true - - - type: textarea - attributes: - label: Steps to Reproduce - description: | - What do we need to do after opening your repo in order to make the bug happen? Clear and concise reproduction instructions are important for us to be able to triage your issue in a timely manner. Note that you can use [Markdown](https://guides.github.com/features/mastering-markdown/) to format lists and code. - - placeholder: | - 1. How do you create the view - 2. What's the spec of view - 3. User interactions before the error happens. - validations: - required: true - - - type: textarea - attributes: - label: Current Behavior - description: A concise description of what you're experiencing. - validations: - required: true - - - type: textarea - attributes: - label: Expected Behavior - description: A concise description of what you expected to happen. - validations: - required: true - - - type: textarea - attributes: - label: Environment - description: | - e.g. - - **OS**: macOS Monterey - - **Browser**: Chrome 96.0.4664.55 - - **Framework** Vue@3 - value: | - - OS: - - Browser: - - Framework: - render: markdown - - validations: - required: false - - - type: textarea - attributes: - label: Any additional comments? - description: | - e.g. some background/context of how you ran into this bug. - - validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 95ee307f..00000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -blank_issues_enabled: false -# contact_links: -# - name: @VisaActor/VChart -# url: https://www.visactor.io/ -# about: Please search question here before opening a new issue diff --git a/.github/ISSUE_TEMPLATE/feaure_request.yml b/.github/ISSUE_TEMPLATE/feaure_request.yml deleted file mode 100644 index 0f65b108..00000000 --- a/.github/ISSUE_TEMPLATE/feaure_request.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Feature Request -description: Request a new feature from @VisActor/VChart -title: '[Feature] ' -labels: [new-feature] -body: - - type: markdown - attributes: - value: | - The issue list is reserved exclusively for bug reports and feature requests. - - For usage questions, please use the following resources: - - - Read the [docs](https://www.visactor.io/) - - Find in [examples](https://www.visactor.io//) - - Look for / ask questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/visactors) - - For non-technical support or general questions, you can email [xuanhun521@126.com](mailto:xuanhun521@126.com). - - Also try to search for your issue - it may have already been answered or even fixed in the development branch. However, if you find that an old, closed issue still persists in the latest version, you should open a new issue using the form below instead of commenting on the old issue. - - - type: textarea - attributes: - label: What problem does this feature solve? - description: | - Explain your use case, context, and rationale behind this feature request. More importantly, what is the end user experience you are trying to build that led to the need for this feature? - - An important design goal of @VisActor/VChart is keeping the API surface small and straightforward. In general, we only consider adding new features that solve a problem that cannot be easily dealt with using existing APIs (i.e. not just an alternative way of doing things that can already be done). The problem should also be common enough to justify the addition. - - validations: - required: true - - - type: textarea - attributes: - label: What does the proposed API look like? - description: Describe how you propose to solve the problem and provide code samples of how the API would work once implemented. Note that you can use [Markdown](https://docs.github.com/en/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) to format your code blocks. - - validations: - required: true diff --git a/.github/ISSUE_TEMPLATE/others.md b/.github/ISSUE_TEMPLATE/others.md deleted file mode 100644 index e3818ddf..00000000 --- a/.github/ISSUE_TEMPLATE/others.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -name: Others -about: Describe this issue's purpose here. -title: '' -labels: '' -assignees: '' ---- diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index b1cba0ad..00000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,86 +0,0 @@ - - -[[中文版模板 / Chinese template](https://github.com/VisActor/VChart/blob/main/.github/PULL_REQUEST_TEMPLATE/pr_cn.md?plain=1)] - -### 🤔 This is a ... - -- [ ] New feature -- [ ] Bug fix -- [ ] TypeScript definition update -- [ ] Bundle size optimization -- [ ] Performance optimization -- [ ] Enhancement feature -- [ ] Refactoring -- [ ] Update dependency -- [ ] Code style optimization -- [ ] Test Case -- [ ] Branch merge -- [ ] Release -- [ ] Site / documentation update -- [ ] Demo update -- [ ] Workflow -- [ ] Other (about what?) - -### 🔗 Related issue link - - - -### 🔗 Related PR link - - - -### 🐞 Bugserver case id - - - -### 💡 Background and solution - - - -### 📝 Changelog - - - -| Language | Changelog | -| ---------- | --------- | -| 🇺🇸 English | | -| 🇨🇳 Chinese | | - -### ☑️ Self-Check before Merge - -⚠️ Please check all items below before requesting a reviewing. ⚠️ - -- [ ] Doc is updated/provided or not needed -- [ ] Demo is updated/provided or not needed -- [ ] TypeScript definition is updated/provided or not needed -- [ ] Changelog is provided or not needed - ---- - - - -### 🚀 Summary - -copilot:summary - -### 🔍 Walkthrough - -copilot:walkthrough diff --git a/.github/PULL_REQUEST_TEMPLATE/pr_cn.md b/.github/PULL_REQUEST_TEMPLATE/pr_cn.md deleted file mode 100644 index 6cf3bfa8..00000000 --- a/.github/PULL_REQUEST_TEMPLATE/pr_cn.md +++ /dev/null @@ -1,84 +0,0 @@ - - -### 🤔 这个分支是... - -- [ ] 新功能 -- [ ] Bug fix -- [ ] Ts 类型更新 -- [ ] 打包优化 -- [ ] 性能优化 -- [ ] 功能增强 -- [ ] 重构 -- [ ] 依赖版本更新 -- [ ] 代码优化 -- [ ] 测试 case 更新 -- [ ] 分支合并 -- [ ] 发布 -- [ ] 网站/文档更新 -- [ ] demo 更新 -- [ ] Workflow -- [ ] 其他 (具体是什么,请补充?) - -### 🔗 相关 issue 链接 - - - -### 🔗 相关的 PR 链接 - - - -### 🐞 Bugserver 用例 id - - - -### 💡 问题的背景&解决方案 - - - -### 📝 Changelog - - - -| Language | Changelog | -| ---------- | --------- | -| 🇺🇸 English | | -| 🇨🇳 Chinese | | - -### ☑️ 自测 - -⚠️ 在提交 PR 之前,请检查一下内容. ⚠️ - -- [ ] 文档提供了,或者更新,或者不需要 -- [ ] Demo 提供了,或者更新,或者不需要 -- [ ] Ts 类型定义提供了,或者更新,或者不需要 -- [ ] Changelog 提供了,或者不需要 - ---- - - - -### 🚀 Summary - -copilot:summary - -### 🔍 Walkthrough - -copilot:walkthrough diff --git a/.github/labeler.yml b/.github/labeler.yml deleted file mode 100644 index de326de0..00000000 --- a/.github/labeler.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Add 'vmind' label to any change within the 'vmind' package -vmind: - - packages/vmind/** - - -# Add 'calculator' label to any change within the 'calculator' package -calculator: - - packages/calculator/** - - -# Add 'chart-advisor' label to any change within the 'calculator' package -chart-advisor: - - packages/chart-advisor/** - - - - diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..a77906c5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,69 @@ +name: Skills CI + +on: + pull_request: + push: + branches: [main, develop] + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: skills-ci-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + checks: + name: Lint and regressions + runs-on: ubuntu-24.04 + timeout-minutes: 10 + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + with: + persist-credentials: false + - uses: astral-sh/setup-uv@94527f2e458b27549849d47d273a16bec83a01e9 # v7 + with: + python-version: '3.12' + enable-cache: true + - run: uv sync --locked + - run: uv run --locked ruff check skills tests evals/scripts + - run: uv run --locked pytest tests -q + + browser: + name: Browser smoke (no model) + runs-on: ubuntu-24.04 + timeout-minutes: 15 + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + with: + persist-credentials: false + - uses: astral-sh/setup-uv@94527f2e458b27549849d47d273a16bec83a01e9 # v7 + with: + python-version: '3.12' + enable-cache: true + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: '24' + cache: npm + cache-dependency-path: evals/package-lock.json + registry-url: https://registry.npmjs.org + - run: uv sync --locked + - run: npm ci --prefix evals --ignore-scripts --no-audit --no-fund + - run: node evals/node_modules/playwright/cli.js install --with-deps chromium + - run: node --test tests/test_browser_assets.mjs + - run: uv run --locked python evals/scripts/smoke.py --output-dir .cache/ci-browser-smoke + - name: Save browser evidence + if: ${{ always() }} + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 + with: + name: browser-smoke + path: | + .cache/ci-browser-smoke/summary.json + .cache/ci-browser-smoke/*/*.json + .cache/ci-browser-smoke/*/*.log + .cache/ci-browser-smoke/*/*.png + .cache/ci-browser-smoke/*/workspace/outputs/ + include-hidden-files: true + if-no-files-found: warn + retention-days: 7 diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml deleted file mode 100644 index a3ab94f2..00000000 --- a/.github/workflows/labeler.yml +++ /dev/null @@ -1,21 +0,0 @@ -# This workflow will triage pull requests and apply a label based on the -# paths that are modified in the pull request. -# -# To use this workflow, you will need to set up a .github/labeler.yml -# file with configuration. For more information, see: -# https://github.com/actions/labeler - -name: Labeler -on: [pull_request_target] - -jobs: - label: - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: write - - steps: - - uses: actions/labeler@v4 - with: - repo-token: '${{ secrets.GITHUB_TOKEN }}' diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml deleted file mode 100644 index c6b4e6a9..00000000 --- a/.github/workflows/pr-check.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Check of pull request - -# 这里业务方根据需求设置 -on: - pull_request: - branches: ['develop', 'dev/**'] -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [20.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - cache-dependency-path: './common/config/rush/pnpm-lock.yaml' - - - uses: xile611/pr-type-check@main - with: - pull_request_body: | - ${{ github.event.pull_request.body }} - pull_request_head: ${{ github.event.pull_request.head.ref }} diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml deleted file mode 100644 index 8c75ab64..00000000 --- a/.github/workflows/pre-release.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: Pre-release CI - -on: - push: - branches: - - 'pre-release/[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+' - - 'pre-release/[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+' - - 'pre-release/[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+' - - 'pre-release/[0-9]+.[0-9]+.[0-9]+-hotfix.[0-9]+' - -jobs: - build: - runs-on: macOS-13 - - permissions: - contents: write - - strategy: - matrix: - node-version: [18.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - cache-dependency-path: './common/config/rush/pnpm-lock.yaml' - - # Install rush - - name: Install rush - run: node common/scripts/install-run-rush.js install --bypass-policy - - - name: Parse semver version from branch name - id: semver_parser - uses: xile611/read-package-version-action@main - with: - path: packages/vmind - semver_string: ${{ github.ref_name }} - semver_pattern: '^pre-release/(.*)$' # ^v?(.*)$ by default - - - name: Apply prereleaseName - run: node common/scripts/apply-prerelease-version.js ${{ steps.semver_parser.outputs.pre_release_name }} ${{ steps.semver_parser.outputs.main }} - - - name: Build packages - env: - NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js build --only tag:package - - - name: Publish to npm - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - NPM_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js publish --publish --include-all --tag ${{ steps.semver_parser.outputs.pre_release_type }} - - - name: Update shrinkwrap - run: node common/scripts/install-run-rush.js update - - - name: Get npm version - id: package-version - uses: xile611/read-package-version-action@main - with: - path: packages/vmind - - - name: Commit & Push changes - uses: actions-js/push@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - message: 'build: prelease version ${{ steps.package-version.outputs.current_version }}' - branch: ${{ github.ref_name }} - author_name: ${{ github.actor }} diff --git a/.github/workflows/release-changelog.yml b/.github/workflows/release-changelog.yml deleted file mode 100644 index ed7a20c1..00000000 --- a/.github/workflows/release-changelog.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: Release changelog - -on: - release: - types: [published] - -jobs: - update-changelog-after-publish-a-release: - name: GitHub Actions Test - runs-on: macOS-13 - - strategy: - matrix: - node-version: [18.x] - - steps: - - name: Checkout - id: checkout - uses: actions/checkout@v3 - - run: | - git config user.name ${{ github.actor }} - git config user.email ${{ github.actor }}@users.noreply.github.com - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - cache-dependency-path: './common/config/rush/pnpm-lock.yaml' - - # Install rush - - name: Install rush - run: node common/scripts/install-run-rush.js install --bypass-policy - - - name: Create branch - run: | - git status - git fetch origin develop:develop - git checkout develop - git status - git checkout -b docs/generate-changelog-${{ github.event.release.tag_name }} - - - name: generate changelog - id: generate-changelog - uses: xile611/collect-release-changelog@main - with: - token: ${{ secrets.GITHUB_TOKEN }} - folder: ./docs/assets/changelog - langs: 'en,zh' - tag_name: ${{github.event.release.tag_name}} - file_name: release.md - - - name: Push branch - run: | - git add . - git commit -m "docs: generate changelog of release ${{ github.event.release.tag_name }}" -n - git push origin docs/generate-changelog-${{ github.event.release.tag_name }} - - - name: Create Pull Request - uses: dustinirving/create-pr@v1.0.2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - title: '[Auto changelog] changlog of ${{ github.event.release.tag_name }}' - base: develop - head: 'docs/generate-changelog-${{ github.event.release.tag_name }}' - labels: changelog - body: 'update changelog of ${{ github.event.release.tag_name }}' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 470e3a66..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,113 +0,0 @@ -name: Release CI - -on: - push: - branches: - - 'release/[0-9]+.[0-9]+.[0-9]+' - -jobs: - build: - runs-on: macOS-13 - permissions: - contents: write - pull-requests: write - - strategy: - matrix: - node-version: [18.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - steps: - - uses: actions/checkout@v3 - - run: | - git config user.name ${{ github.actor }} - git config user.email ${{ github.actor }}@users.noreply.github.com - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - cache-dependency-path: './common/config/rush/pnpm-lock.yaml' - - # Install rush - - name: Install rush - run: node common/scripts/install-run-rush.js install --bypass-policy - - - name: Parse semver version from branch name - id: semver_parser - uses: xile611/read-package-version-action@main - with: - path: packages/vmind - semver_string: ${{ github.ref_name }} - semver_pattern: '^release/(.*)$' # ^v?(.*)$ by default - - - name: update nextBump of version policies - uses: xile611/set-next-bump-of-rush@main - with: - release_version: ${{ steps.semver_parser.outputs.full }} - write_next_bump: true - - - name: Generate changelog by rush version - run: node common/scripts/install-run-rush.js version --bump - - - name: Update version - run: node common/scripts/apply-release-version.js 'none' ${{ steps.semver_parser.outputs.main }} - - - name: Build packages - env: - NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js build --only tag:package - - - name: Publish to npm - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - NPM_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js publish --publish --include-all --tag latest - - - name: Update shrinkwrap - run: node common/scripts/install-run-rush.js update - - - name: Get npm version - id: package-version - uses: xile611/read-package-version-action@main - with: - path: packages/vmind - - - name: Commit & Push changes - run: | - git add . - git commit -m 'build: prelease version ${{ steps.package-version.outputs.current_version }}' -n - git push origin ${{ github.ref_name }} - - - name: Collect changelog of rush - uses: xile611/collect-rush-changlog@main - id: changelog - with: - version: ${{ steps.package-version.outputs.current_version }} - - - name: Create Release for Tag - id: release_tag - uses: ncipollo/release-action@v1.12.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag: v${{ steps.package-version.outputs.current_version }} - commit: main - prerelease: false - body: | - ${{ steps.changelog.outputs.markdown }} - draft: true # - - - name: Create Pull Request - uses: dustinirving/create-pr@v1.0.2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - title: '[Auto release] release ${{ steps.package-version.outputs.current_version }}' - base: main - head: ${{ github.ref_name }} - labels: release # default labels, the action will throw error if not specified - reviewers: da730 # default reviewers, the action will throw error if not specified - body: | - ${{ steps.changelog.outputs.markdown }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index 1fca7c69..00000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,35 +0,0 @@ -# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. -# -# You can adjust the behavior by modifying this file. -# For more information, see: -# https://github.com/actions/stale -name: Mark stale issues and pull requests - -on: - schedule: - - cron: '20 4 * * *' - -jobs: - stale: - runs-on: ubuntu-12 - permissions: - issues: write - pull-requests: write - - steps: - - uses: actions/stale@v5 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - days-before-stale: 730 - days-before-close: 7 - stale-issue-message: 'This issue has been automatically marked as stale because it did not have recent activity. It will be closed in 7 days if no further activity occurs. If you wish not to mark it as stale, please leave a comment in this issue.' - close-issue-message: 'This issue has been automatically closed because it did not have recent activity. If this remains to be a problem with the latest version of @VisActor/VMind, please open a new issue and link this to it. Thanks!' - close-issue-reason: 'not_planned' - stale-issue-label: 'stale_issue' - stale-pr-message: 'This PR has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. If you wish not to mark it as stale, please leave a comment in this PR. We are sorry for this but 2 years is a long time and the code base has been changed a lot. Thanks for your contribution anyway.' - close-pr-message: 'This PR has been automatically closed because it has not had recent activity. Sorry for that and we are looking forward to your next contribution.' - stale-pr-label: 'stale_pr' - exempt-issue-labels: 'High Priority' - exempt-all-milestones: true - operations-per-run: 500 - ascending: true diff --git a/.github/workflows/sync-main-to-develop.yml b/.github/workflows/sync-main-to-develop.yml deleted file mode 100644 index b55a92f5..00000000 --- a/.github/workflows/sync-main-to-develop.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Sync main to develop after release - -on: - pull_request: - types: - - closed - branches: - - main - -jobs: - if_merged: - if: github.event.pull_request.merged == true - - runs-on: macOS-13 - - permissions: - contents: write - pull-requests: write - - strategy: - matrix: - node-version: [18.x] - - steps: - - uses: actions/checkout@v3 - - run: | - git config user.name ${{ github.actor }} - git config user.email ${{ github.actor }}@users.noreply.github.com - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - cache-dependency-path: './common/config/rush/pnpm-lock.yaml' - - # Install rush - - name: Install rush - run: node common/scripts/install-run-rush.js install --bypass-policy - - - name: Get version - id: package-version - uses: xile611/read-package-version-action@main - with: - path: packages/vmind - - - name: Create a new branch - run: | - git status - git checkout -b sync/main-${{ steps.package-version.outputs.current_version }} - git push origin sync/main-${{ steps.package-version.outputs.current_version }} - - - name: Create Pull Request - uses: dustinirving/create-pr@v1.0.2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - title: '[Auto Sync] Sync the code from branch main to branch develop after release ${{ steps.package-version.outputs.current_version }}' - base: develop - head: sync/main-${{ steps.package-version.outputs.current_version }} - reviewers: da730 - body: 'Sync the code from branch main to branch develop after release ${{ steps.package-version.outputs.current_version }}' diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml deleted file mode 100644 index 0d5684cd..00000000 --- a/.github/workflows/unit-test.yml +++ /dev/null @@ -1,35 +0,0 @@ -# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs - -name: TEST CI - -on: - push: - branches: ['main', 'develop'] - pull_request: - branches: ['main', 'develop', 'dev/**'] - -jobs: - build: - runs-on: macOS-13 - - strategy: - matrix: - node-version: [18.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - cache-dependency-path: './common/config/rush/pnpm-lock.yaml' - - # Install rush - - name: Install rush - run: node common/scripts/install-run-rush.js install --bypass-policy - - - name: Test - run: node common/scripts/install-run-rush.js test --only tag:package diff --git a/.gitignore b/.gitignore index fb1808fa..45fe982d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,119 +1,23 @@ -# Logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# vscode -.vscode - -# Runtime data -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release -output -dist -esm -es -cjs -lib -build -build-es5 -*.zip -packages/calculator/lib - -*.zip -stats.html -report.html - -coverage/ - -*.local.ts - -# Dependency directories +.vscode/ node_modules/ -jspm_packages/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file +.venv/ +.cache/ +__pycache__/ +.pytest_cache/ +.ruff_cache/ +*.pyc .env - -# next.js build output -.next - -# OS X temporary files +.env.* +!.env.example +evals/runs/ +evals/*.local.json +output/ .DS_Store - -# IntelliJ IDEA project files; if you want to commit IntelliJ settings, this recipe may be helpful: -# https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -.idea/ -*.iml - -# Rush temporary files -common/deploy/ common/temp/ -common/autoinstallers/*/.npmrc -**/.rush/temp/ - -# Heft temporary files -.heft - -# build -.rollup.cache/ -tsconfig.tsbuildinfo -*.tsbuildinfo - -# git-hook -common/scripts/pre-commit - -# generated documents -docs/public/documents -.bundle/ -packages/vmind/__tests__/image-to-spec/images - -# env files -.env.local -packages/calculator/tsconfig.cjs.tsbuildinfo -packages/calculator/tsconfig.esm.tsbuildinfo -packages/chart-advisor/tsconfig.esm.tsbuildinfo -packages/chart-advisor/tsconfig.cjs.tsbuildinfo -packages/vmind/__tests__/browser/src/pages/mockData.ts -packages/vmind/__tests__/experiment/src/results - -# open api demo test -packages/node-api +**/node_modules/ +# Preserve but exclude ignored build leftovers from the previous VMind checkout. +/packages/ +/common/ +/tools/ +/share/ +**/.rush/ diff --git a/.lintstagedrc b/.lintstagedrc deleted file mode 100644 index c629f5d9..00000000 --- a/.lintstagedrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "{packages,tools}/**/*.{ts,tsx}": ["eslint --color --fix --quiet", "prettier --write --ignore-unknown"] -} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 4e974bb0..00000000 --- a/.prettierignore +++ /dev/null @@ -1,29 +0,0 @@ -# https://prettier.io/docs/en/ignore.html -#------------------------------------------------------------------------------------------------------------------- -# Keep this section in sync with .gitignore -#------------------------------------------------------------------------------------------------------------------- - -👋 (copy + paste your .gitignore file contents here) 👋 - -#------------------------------------------------------------------------------------------------------------------- -# Prettier-specific overrides -#------------------------------------------------------------------------------------------------------------------- - -# Rush files -common/changes/ -common/scripts/ -common/config/ -CHANGELOG.* - -# Package manager files -pnpm-lock.yaml -yarn.lock -package-lock.json -shrinkwrap.json - -# Build outputs -dist -lib -**/*.min.js -tools/typescript-json-schema - diff --git a/.prettierrc.js b/.prettierrc.js deleted file mode 100644 index 839bf9aa..00000000 --- a/.prettierrc.js +++ /dev/null @@ -1,16 +0,0 @@ -// Documentation for this file: https://prettier.io/en/configuration.html -module.exports = { - "printWidth": 120, - "tabWidth": 2, - "useTabs": false, - "semi": true, - "singleQuote": true, - "quoteProps": "as-needed", - "trailingComma": "none", - "bracketSpacing": true, - "arrowParens": "avoid", - "proseWrap": "preserve", - "htmlWhitespaceSensitivity": "css", - "endOfLine": "lf", - "printWidth": 120 -}; diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 2c63c085..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..bb3aecc4 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,17 @@ +# VisActor Skills maintenance + +- Runtime skills live in `skills/` and must work when copied independently. +- Keep tests, fixed evaluation tasks and generated reports outside skill directories. +- Preserve user changes. Do not commit or publish unless requested. +- Use `uv run pytest` for Python tests and `uv run ruff check` for maintained Python tooling. +- Test stable behavior; do not snapshot large instruction documents. +- For evaluation, expose only the selected skill and task inputs to the agent, never expected answers. +- Keep observable execution evidence locally, redact credentials and distinguish automated checks from human visual review. +- Do not restore the historical VMind SDK or depend on leftover local packages. Earlier versions remain in Git history and releases. + +## Versioning + +- Version the Skills together at repository level. Do not maintain separate version numbers for `vchart-skill` and `vtable-skill`. +- Mark each formal Skills release with a Git tag that identifies the complete repository snapshot, including Skill instructions, references, templates and scripts. Preserve published tags and historical VMind SDK tags; do not move or reuse them. +- Use a release tag or commit SHA to identify the Skill version when reporting or reproducing results. A branch name alone can change over time. +- Keep Skill release versions distinct from dependency versions such as VChart and VTable. Updating a library does not assign its version number to the Skill. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 25450df0..00000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,47 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -- Using welcoming and inclusive language -- Being respectful of differing viewpoints and experiences -- Gracefully accepting constructive criticism -- Focusing on what is best for the community -- Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -- The use of sexualized language or imagery and unwelcome sexual attention or advances -- Trolling, insulting/derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or electronic address, without explicit permission -- Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at https://github.com/VisActor. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b03437fb..196dab3b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,182 +1,49 @@ -# VMind Open Source Code Contribution Guide +# Contributing -Firstly, thumbs up👍🏻 for choosing to join the rank of open source contribution. Additionally, we greatly appreciate you choosing to participate in the VisActor community and contributing to this open source project. +Changes to Skills should protect a concrete user task or failure mode. Keep runtime instructions/resources under `skills/`, deterministic regressions under `tests/`, and fixed Agent tasks under `evals/`. -## VMind Contribution Guide +## Start here -The VisActor team usually develops and maintains issues on Github. Please open the [Github website](https://github.com/), click the `Sign up` button in the upper right corner, register an account of your own, and start the first step of your open source journey. +The recommended development loop is [direct Skill debugging in Codex or Claude Code](docs/debugging.md). Use their existing harness for exploration and iterative fixes. The API harness is a lightweight alternative for fixed cases or a custom prompt with input files; it supports only OpenAI-compatible Chat Completions. -If for some reason you can't open the Github site, you can still work on the project through [Gitee](https://gitee.com/VisActor/VChart). +1. Follow the [contributor quickstart](evals/README.md#contributor-quickstart) for prerequisites, API endpoint/model/key-environment configuration, commands and report interpretation. +2. Run `uv sync --locked`, then `uv run pytest tests -q`. These tests need no model account. +3. For a Skill change, choose relevant cases from the [coverage table](evals/cases/README.md). Run one with `uv run python evals/scripts/run.py --case vchart-grouped --browser` (substitute the relevant case id). Model API runs use your own credentials and billing. Start with one case and inspect usage.json. +4. Inspect the generated source, screenshot and required interactions. Automated success does not replace semantic or visual review. +5. Run `uv run ruff check skills tests evals/scripts` for Python changes. Keep the smallest meaningful verification scope. -In the [VMind repository](https://github.com/VisActor/VMind), we have a [guide](https://github.com/VisActor/VMind/blob/develop/CONTRIBUTING.zh-CN.md) for all open source contributors that introduces version management, branch management, etc. **Please take a few minutes to read and understand it**. +The runner installs the selected Skill from the current checkout into each case workspace. You do not need to install it into your global Agent directory first. The default runner calls a configurable OpenAI-compatible model API and does not require Codex or Claude Code. An optional --runner codex mode tests that host separately; the Skills themselves can be used by other compatible agents. -## Your First PullRequest +## Continuous integration -### Step0: Install Git +`Skills CI` runs on pull requests and pushes to `main`/`develop`, with two jobs: -Git is a version control system used to track and manage changes in code in software development projects. It helps developers record and manage the history of code, making it easy for team collaboration, code version control, merging code, and more. With Git, you can track each version of each file and easily switch between and compare different versions. Git also provides branch management, so you can perform multiple parallel development tasks at the same time. +- **Lint and regressions**: install locked Python dependencies, run Ruff and the deterministic test suite, including per-Skill case/input contracts and a simulated model API. +- **Browser smoke (no model)**: use copied Skills to generate one fixed VChart chart and one VTable table, then check rendering, runtime records and browser errors. Pinned npm packages serve CDN requests locally; unexpected external requests fail. Save JSON reports, logs, generated HTML and screenshots for seven days. -- Visit the official Git website: -- Download the latest version of Git installer. -- Run the downloaded installer and follow the installation wizard's instructions to install. -- After installation, you can use the `git version` command on the command line to confirm successful installation. +Neither job calls a model or needs model credentials. Browser smoke checks script/template integration, not Skill quality on model-generated tasks. Model evaluation remains a separate local development activity. -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/git_version.png) - -When using Git, you need to set your username and email address, as these will be used in every Git commit. Open the command line and input the following commands to set your Git username: +To run browser smoke locally: ```bash -git config --global user.name "your_username" -git config --global user.email "your_email@example.com" -``` - -Please replace "your_username" and "your_email@example.com" with the username and email you want to use in Git. - -### Step1: Fork the Project - -- First, you need to fork this project. Go to the [VMind project page](https://github.com/VisActor/VMind), click the Fork button in the upper right corner. - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/fork_vmind.png) - -- Your github account should now have a project named xxxx(your github username)/vmind. -- Use the following command on your local computer: you should get a VMind folder. - -``` -// ssh -git clone git@github.com:xxxx(your github username)/VMind.git -// https -git clone https://github.com/xxxx(your github username)/VMind.git +npm ci --prefix evals --ignore-scripts +node evals/node_modules/playwright/cli.js install chromium +node --test tests/test_browser_assets.mjs +uv run python evals/scripts/smoke.py ``` -### Step2: Get the Project Code +On Linux, use `install --with-deps chromium` when system libraries are missing. Each run creates a new evidence directory under `.cache/`; `--output-dir PATH` selects an explicit directory that must not exist yet. -- Enter the VMind folder and add the VMind remote address +## Before committing -``` -git remote add upstream https://github.com/VisActor/VMind.git -``` - -- Get the VMind latest source code +Enable the repository's Git hooks after cloning or switching from the historical SDK checkout: +```bash +git config core.hooksPath .githooks ``` -git pull upstream develop -``` - -### Step3: Create a Branch - -- Now we can start contributing our code. VMind default branch is the develop branch. Whether it is feature development, bug fixes, or document writing, please create a new branch and merge it to the develop branch. Use the following code to create the branch: - -``` -// Create feature development branch -git checkout -b feat/xxxx - -// Create problem-fixing development branch -git checkout -b fix/xxxx - -// Create document/demo branch -git checkout -b docs/xxxx -``` - -- Now we can modify code on the branch -- Let's assume we have added some code and made a commit to the stage -- git commit -a -m "new commit" - -### Step4: Merge Changes - -- A common problem is that there is new update in the remote upstream(@visactor/vmind) which can cause conflicts when we push the Pull Request. So, before submission, we can merge the commits from other developers with our commits. Use the following code to switch to develop branch: - -``` -git checkout develop -``` - -- Use the following code to pull the latest code from remote: - -``` -git pull upstream develop -``` - -- Switch back to your own development branch: - -``` -git checkout docs/add-funnel-demo -``` - -- Merge the develop commit to branch1: - -``` -git rebase develop -``` - -- Push the update code to your own branch: - -``` -git push upstream docs/add-funnel-demo -``` - -### Step5: Submit Pull Request - -You can click the New pull request button on your github repo page. - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/create_pr.png) - -Follow the template to write down the content modified in this submission: - -- Check what type of modification this is - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/pr_template.png) - -- Fill in the related issue - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/related_issue.png) - -- If a complex change has been made, please provide background and solution - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/background_solution.png) - -After completing all related information, click Create pull request to submit - -## Mini Task Development Guides - -"**good first issue**" is a common label in the open source community, aimed to help new contributors find ideal starter issues. - -VMind's starter issues can be viewed on the [issue list](https://github.com/VisActor/VMind/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22), which currently includes two types: - -- Demo use case creation -- Simple function development - -If you currently **have time and are willing** to contribute to the community, look at the good first issue in the issue list, and pick one that interests you and suits your abilities. - -I believe you are a student who finishes what you start, so once you understand and decide to take on an issue, please leave a message under the issue to let everyone know. - -### Feature Task - -We have prepared some simple and easy-to-master feature development tasks. If you have a basic understanding of Javascript/Typescript, you can take on this type of task. - -You can learn more about VMind code architecture by implementing requirements. **You can leave a message under the issue and discuss your plan with everyone**. - -1. Based on the develop branch, pull a new `feat/***` branch for development -1. (If you've already installed it, skip this step) Install [@microsoft/rush](https://rushjs.io/pages/intro/get_started/) globally: `npm i --global @microsoft/rush` -1. Run `rush update` in the root directory -1. Run `rush start` to test VMind code locally - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_playground.png) - -Click "Set API-Key and LLM URL" at top left corner to set LLM service url and key - -5. Confirm all tests pass `rush test` -5. After completing development, run `rush change` to write changelog and submit changes -5. Commit all code, and create a Pull Request on Github, inviting others to review - -## Embrace the VisActor Community - -In addition to contributing code to VIsActor, we encourage you to participate in other activities that help the community thrive, such as: -1. Offering suggestions for project development, feature planning, and more -2. Creating articles and videos, hosting lectures to promote VisActor -3. Writing promotional plans and executing them with the team +The hooks check staged whitespace, run Ruff for Python/tooling changes and require a Conventional Commit subject. Python checks require `uv` on PATH. Run the relevant tests before committing; the hook does not run model evaluations or the complete test suite. These hooks replace the historical Rush hooks, whose scripts are no longer part of this repository. -VisActor is also working hard to help community builders grow together. We plan to (but are not limited to, and look forward to more suggestions from everyone) provide the following assistance: +Explain the task or defect, the behavior changed, and why the chosen cases protect it. Include the commands, case ids, Agent version, requested model and review outcomes. Report known failures and skipped checks. An exit code of zero means the automated checks passed, not that every rendered artifact is correct. -1. Data visualization development training based on VIsActor, to help participants quickly grow in programming skills, visualization theory, architecture design, and other aspects. -2. Regularly selecting the "Code Contribution Award" and "Community Promotion Award" -3. Organizing community members to participate in open-source activities +Add cases for distinct behaviors or meaningful regressions, not just to increase the count. Keep prompts and inputs separate from expectations; use public or synthetic fixtures and record provenance. Keep `evals/runs/`, credentials and private data out of commits. Runtime Skills must work independently of maintenance tools and the historical VMind SDK. diff --git a/CONTRIBUTING.zh-CN.md b/CONTRIBUTING.zh-CN.md deleted file mode 100644 index 2c236ba3..00000000 --- a/CONTRIBUTING.zh-CN.md +++ /dev/null @@ -1,210 +0,0 @@ -# VMind开源代码贡献指南 -首先为你选择加入开源贡献行列的行为点赞👍🏻。再者,十分感谢你选择参与到 VisActor 社区,为这个开源项目做出贡献。 - - - - -## VMind贡献指南 - -VisActor 团队通常在 github 上进行开发和 issue 维护,请打开 [Github 网站](https://github.com/),点击右上角 `Sign up` 按钮,注册一个自己的账号,开启你开源之旅的第一步。 - -如果因为特殊情况,你无法打开 Github 站点,也可以通过 [Gitee](https://gitee.com/VisActor/VChart) 进行项目开发。 - -在 [VMind 仓库](https://github.com/VisActor/VMind)中,我们有一份面向所有开源贡献者的[指南](https://github.com/VisActor/VMind/blob/develop/CONTRIBUTING.zh-CN.md),介绍了有关版本管理、分支管理等内容,**请花几分钟时间阅读了解一下**。 - - - - -## 你的第一个 PullRequest - -### Step0:安装 Git - -Git是一种版本控制系统,用于跟踪和管理软件开发项目中的代码变更。它帮助开发者记录和管理代码的历史记录,方便团队协作、代码版本控制、合并代码等操作。通过Git,您可以追踪每个文件的每个版本,并轻松地在不同版本之间进行切换和比较。Git还提供了分支管理功能,使得可以同时进行多个并行开发任务。 - -- 访问Git官方网站: -- 下载最新版本的Git安装程序。 -- 运行下载的安装程序,按照安装向导的提示进行安装。 -- 安装完成后,你可以通过命令行使用 `git version` 命令确认安装成功。 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/git_version.png) - - -使用Git时,需要设置你的用户名和电子邮件地址,因为每次Git提交都会使用这些信息。打开命令行,输入以下命令来设置你的Git用户名: - -```bash -git config --global user.name "your_username" -git config --global user.email "your_email@example.com" -``` - -请将 "your_username"和your_email@example.com替换为你想在Git中使用的用户名和邮箱。 - - - -### Step1:Fork 项目 - -- 首先需要 fork 这个项目,进入[VMind 项目页面](https://github.com/VisActor/VMind),点击右上角的 Fork 按钮 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/fork_vmind.png) - -- 你的 github 帐号中会出现 xxxx(你的github用户名)/vmind这个项目 -- 在本地电脑上使用以下命令: 得到一个 VMind 文件夹 - -``` -// ssh -git clone git@github.com:xxxx(你的github用户名)/VMind.git -// https -git clone https://github.com/xxxx(你的github用户名)/VMind.git -``` - - - - -### Step2:获取项目代码 - -- 进入 VMind 文件夹,添加 VMind 的远程地址 - -``` -git remote add upstream https://github.com/VisActor/VMind.git -``` - -- 获取 VMind 最新源码 - -``` -git pull upstream develop -``` - - - - -### Step3:创建分支 - -- 好了,现在可以开始贡献我们的代码了。VMind 默认分支为 develop 分支。无论是功能开发、bug 修复、文档编写,都请新建立一个分支,再合并到 develop 分支上。使用以下代码创建分支: - -``` -// 创建功能开发分支 -git checkout -b feat/xxxx - -// 创建问题修复开发分支 -git checkout -b fix/xxxx - -// 创建文档、demo分支 -git checkout -b docs/xxxx -``` - -- 现在我们可以在分支上更改代码了 -- 假设我们已经添加了一些代码,提交到代码库 -- git commit -a -m "new commit" - - - - -### Step4:合并修改 - -- 一个常见的问题是远程的 upstream (@visactor/vmind) 有了新的更新, 从而会导致我们提交的 Pull Request 时会导致冲突。 因此我们可以在提交前先把远程其他开发者的 commit 和我们的 commit 合并。使用以下代码切换到 develop 分支: - -``` -git checkout develop -``` - -- 使用以下代码拉出远程的最新代码: - -``` -git pull upstream develop -``` - -- 切换回自己的开发分支: - -``` -git checkout docs/add-funnel-demo -``` - -- 把 develop 的 commit 合并到 branch1: - -``` -git rebase develop -``` - -- 把更新代码提交到自己的分支中: - -``` -git push upstream docs/add-funnel-demo -``` - - - - -### Step5:提交Pull Request - -你可以在你的 github 代码仓库页面点击 New pull request 按钮。 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/create_pr.png) - -按照模板填写本次提交的修改内容: - -- 勾选这是什么类型的修改 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/pr_template.png) - -- 填写关联的 issue - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/related_issue.png) - - - -- 若有复杂变更,请说明背景和解决方案 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/background_solution.png) - -相关信息填写完成后,点击 Create pull request 提交 - - - - -## Mini Task 开发指南 - -"**good first issue**" 是一个在开源社区常见的标签,这个标签的目的是帮助新贡献者找到适合入门的问题。 - -VMind 的入门问题,你可以通过 [issue 列表](https://github.com/VisActor/VMind/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) 查看,目前包括两类: - -- Demo 案例制作 -- 简单功能开发 - -如果你当前**有时间和意愿**参与到社区贡献,可以在 issue 里看一看 **good first issue**,选择一个感兴趣、适合自己的认领。 - -相信你一定是一个有始有终的同学,所以,当你了解并决定认领一个 issue 后,请在 issue 下留言告知大家。 - - - - -### Feature Task - -我们准备了一些简单、易上手的特性开发任务,如果你有一定的 Javascript / Typescript 基础,可以认领这类任务。 - -你可以通过需求开发,更快地了解 VMind 代码架构。**你可以在 issue 下留言,和大家讨论自己的方案**。 - -1. 请基于 develop 分支,新拉一个 `feat/***`分支进行开发 -1. (如果你已经安装,请跳过此步骤)全局安装 [@microsoft/rush](https://rushjs.io/pages/intro/get_started/):`npm i --global @microsoft/rush` -1. 根目录下运行 `rush update` -1. `rush start` 在本地运行 VMind 代码的测试页面 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_playground.png) - -点击左上角“Set API-Key and LLM URL”设置LLM服务url和key - -5. 确认所有的测试都是通过的 `rush test` -5. 开发完成后,运行 `rush change` 命令,编写 changelog 并提交 -5. 提交所有代码,并在 Github 创建 Pull Request,邀请其他人进行 review - -## 拥抱VisActor社区 - -在你为VIsActor贡献代码之余,我们鼓励你参与其他让社区更加繁荣的事情,比如: - -1. 为项目的发展、功能规划 等提建议 -2. 创作文章、视频,开办讲座来宣传VisActor -3. 撰写推广计划,同团队一同执行 - -VisActor 也在努力帮助参与社区建设的同学一同成长,我们计划(但不限于,期待大家更多的建议)提供如下帮助: - -1. 以VIsActor 为基础的数据可视化研发培训,帮助参与的同学在编程技能、可视化理论、架构设计等多个方面快速成长。 -2. 定期评选“代码贡献奖”和“社区推广奖” -3. 组织社区成员参与开源活动 diff --git a/README-ja.md b/README-ja.md deleted file mode 100644 index b5d4909d..00000000 --- a/README-ja.md +++ /dev/null @@ -1,286 +0,0 @@ -# @visactor/vmind - -
- -[English](README.md) | [简体中文](readme-zh.md) | 日本語 - -
- -
- -自動化だけでなく、素晴らしい。オープンソースのインテリジェントな可視化ソリューション。 - -

- 紹介 • - デモ • - チュートリアル • - API• - OpenApi -

- -![](https://github.com/visactor/vmind/actions/workflows/bug-server.yml/badge.svg) -![](https://github.com/visactor/vmind/actions/workflows/unit-test.yml/badge.svg) -[![npm Version](https://img.shields.io/npm/v/@visactor/vmind.svg)](https://www.npmjs.com/package/@visactor/vmind) -[![npm Download](https://img.shields.io/npm/dm/@visactor/vmind.svg)](https://www.npmjs.com/package/@visactor/vmind) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/VisActor/VMind/blob/main/CONTRIBUTING.md#your-first-pull-request) - -![](https://img.shields.io/badge/language-TypeScript-red.svg) [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/visactor/vmind/blob/main/LICENSE) - -
- -## 紹介 - -`@visactor/vmind` は [VisActor](https://www.visactor.io/) によって提供される、LLM に基づくインテリジェントなチャートコンポーネントで、対話型のチャート生成と編集機能を含んでいます。自然言語インターフェースを提供し、1文で `@visactor/vmind` を使用してチャートナラティブ作品を簡単に作成し、連続した対話を通じて編集することで、データ可視化作品の作成効率を大幅に向上させます。 - -`@visactor/vmind` の主な特徴は以下の通りです: - -- **使いやすい**:表示したいデータと表示したい情報を説明する1文を提供するだけで、`@visactor/vmind` が自動的にチャートを生成します。既存のチャートに基づいて、チャートに加えたい変更を1文で説明すると、`@visactor/vmind` が望む効果を実現します。 -- **強力な拡張性**:`@visactor/vmind` のコンポーネントは簡単に拡張およびカスタマイズでき、必要に応じて新しい機能や特徴を追加できます。デフォルトでは OpenAI GPT モデルを使用し、任意の LLM サービスに簡単に置き換えることができます。 -- **簡単なナラティブ**:`@visactor/vchart` の強力なチャートナラティブ能力に基づき、`@visactor/vmind` は折れ線グラフ、棒グラフ、円グラフなど、さまざまなタイプのチャートの生成をサポートし、動的な棒グラフやその他の動的なチャートも生成できます。これにより、データを簡単にナレーションできます。さらに、対話型の編集機能を使用して、チャートのスタイルやアニメーション効果を簡単に変更し、ナラティブを作成できます。 -- **ワンクリックエクスポート**:`@visactor/vmind` にはチャートエクスポートモジュールが付属しており、作成したチャートナラティブをビデオや GIF としてエクスポートして表示できます。 - -## 開発ガイド - -### ドキュメントページ - -VMind リポジトリに入り、以下を実行します: - -```bash -# 依存関係をインストール -$ rush update -# デモページを開始 -$ rush docs -``` - -### 開発ページを開始 - -VMind リポジトリに入り、以下を実行します: - -```bash -# 依存関係をインストール -$ rush update -# VMind 開発ページを開始 -$ rush vmind -``` - -これで vmind 開発ページを開始できます。 -正常に使用するには、LLM サービスの URL と API キーを設定する必要があります。packages/vmind/\_\_tests\_\_/browser/src/pages/DataInput.tsx で LLM を呼び出すときのヘッダーを変更できます。 -packages/vmind フォルダーに新しい .env.local ファイルを作成し、次の内容を書き込みます: - -```bash -VITE_GPT_URL="Your service url of gpt model" -VITE_GPT_KEY="Your api-key of gpt model" -VITE_DEEPSEEK_URL="https://api.deepseek.com/chat/completions" -VITE_DEEPSEEK_KEY="Your api-key of deepseek model" -VITE_CUSTOM_URL="Your service url of custom model" -VITE_CUSTOM_KEY="Your api-key of custom model" -VITE_CUSTOM_MODEL="Your Custom Model Name" -VITE_PROXY_CONFIG="Your Vite proxy config for forwarding requests. Must be in JSON string format and is optional. Example: {"proxy": {"/v1": {"target": "https://api.openai.com/","changeOrigin": true},"/openapi": {"target": "https://api.openai.com/","changeOrigin": true}}}" -``` - -開発環境を開始するときにこれらの設定が自動的に読み込まれます。 - -## 使用方法 - -### 📦 インストール - -```bash -# npm -$ npm install @visactor/vmind - -# yarn -$ yarn add @visactor/vmind -``` - -### 📊 使用例 - -#### インテリジェントチャート生成 - -まず、プロジェクトにVMindをインストールする必要があります: - -```bash -# npmでインストール - -npm install @visactor/vmind - -# yarnでインストール - -yarn add @visactor/vmind -``` - -次に、JavaScriptファイルの先頭でimportを使用してVMindをインポートします - -```typescript -import VMind from '@visactor/vmind'; -``` - -VMind は現在、GPT、deepseek、doubao などの API キーを持つ任意のモデルをサポートしています。VMind オブジェクトを初期化するときに呼び出すモデルタイプを指定し、LLM サービスの URL を渡すことができます。次に、VMind インスタンスを初期化し、モデルタイプとモデル URL を渡します: - -```typescript -import { Model } from '@visactor/vmind'; - -const vmind = new VMind({ - url: LLM_SERVICE_URL, // LLM サービスの URL - model: Model.GPT4o, // 使用するモデル - headers: { - 'api-key': LLM_API_KEY - } // ヘッダーは LLM リクエストのリクエストヘッダーとして直接使用されます。モデルの API キーをヘッダーに入れることができます -}); -``` - -サポートされているモデルのリストは次のとおりです: - -```typescript -// VMind がサポートするモデル -export enum Model { - GPT3_5 = 'gpt-3.5-turbo', - GPT3_5_1106 = 'gpt-3.5-turbo-1106', - GPT4 = 'gpt-4', - GPT_4_0613 = 'gpt-4-0613', - GPT_4o = 'gpt-4o-2024-08-06', - DOUBAO_LITE = 'doubao-lite-32K', - DOUBAO_PRO = 'doubao-pro-128k', - CHART_ADVISOR = 'chart-advisor', - DEEPSEEK_V3 = 'deepseek-chat', - DEEPSEEK_R1 = 'deepseek-reasoner' -} -``` -また、他のモデルを使用することもできます: -```typescript -import { Model } from '@visactor/vmind'; - -const vmind = new VMind({ - url: LLM_SERVICE_URL, - model: LLM_MODEL_NAME, // 選択したモデル - headers: { - 'api-key': LLM_API_KEY - } -}); -``` - -VMind は CSV および JSON 形式のデータセットをサポートしています。 - -CSV データを後続のプロセスで使用するには、データ処理メソッドを呼び出してフィールド情報を抽出し、構造化されたデータセットに変換する必要があります。VMind はルールベースのメソッド `parseCSVData` を提供してフィールド情報を取得します: - -```typescript -// CSV 文字列を渡して、フィールド情報と JSON 構造のデータセットを取得 -const { fieldInfo, dataset } = vmind.parseCSVData(csv); -``` - -また、JSON形式のデータセットを渡して`getFieldInfo`メソッドを呼び出し、fieldInfoを取得することもできます: - -```typescript -// JSON形式のデータセットを渡して、fieldInfoを取得します -const dataset=[ -{ -"Product name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "north", -"Sales": 1027 -} -] -const fieldInfo = vmind.getFieldInfo(dataset); -``` - -「様々な車ブランドの販売ランキングの変化」を示したいとします。generateChartメソッドを呼び出し、データと表示内容の説明を直接VMindに渡します: - -```typescript -const userPrompt = 'show me the changes in sales rankings of various car brand'; -//チャート生成インターフェースを呼び出して、specとチャートアニメーションの時間を取得します -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -このようにして、対応する動的チャートのVChart specを取得します。このspecに基づいてチャートをレンダリングできます: - -```typescript -import VChart from '@visactor/vchart'; - - - -
- - -// vchartインスタンスを作成します -const vchart = new VChart(spec, { dom: 'chart' }); -// 描画します -vchart.renderAsync(); -``` - -大言語モデルの能力のおかげで、ユーザーは自然言語でより多くの要求を記述し、「料理」を「カスタマイズ」することができます。 -ユーザーは異なるテーマスタイルを指定することができます(現在、gptチャート生成のみがこの機能をサポートしています)。例えば、ユーザーはテックスタイルのチャートを生成することを指定することができます: - -```typescript -//userPromptは日本語でも英語でも構いません -//テックスタイルのチャートを生成することを指定します -const userPrompt = 'show me the changes in sales rankings of various car brand,tech style'; -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -VMindがサポートするチャートタイプ、フィールドマッピングなども指定することができます。例えば: - -```typescript -//折れ線グラフを生成し、自動車メーカーをx軸にすることを指定します -const userPrompt = - 'show me the changes in sales rankings of various car brands,tech style.Using a line chart, Manufacturer makes the x-axis'; -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -#### データ集約 - -グラフライブラリを使用して棒グラフ、折れ線グラフなどを描画する際、データが集約されていない場合、視覚化効果に影響を与えます。同時に、フィールドのフィルタリングやソートが行われていないため、一部の視覚化意図を満たすことができません。例えば:最もコストがかかるトップ10の部門を表示してください、北のさまざまな製品の販売を表示してくださいなど。 - -VMindはバージョン1.2.2以降、インテリジェントなデータ集約機能をサポートしています。この機能は、ユーザーが入力したデータをデータテーブルとして使用し、ユーザーのコマンドに従ってLLMを使用してSQLクエリを生成し、データテーブルからデータをクエリし、GROUP BYおよびSQL集約メソッドを使用してデータをグループ化、集約、ソート、フィルタリングします。サポートされているSQLステートメントには、SELECT、GROUP BY、WHERE、HAVING、ORDER BY、LIMITが含まれます。サポートされている集約メソッドには、MAX()、MIN()、SUM()、COUNT()、AVG()が含まれます。サブクエリ、JOIN、条件ステートメントなどの複雑なSQL操作はサポートされていません。 - -VMindオブジェクトの`dataQuery`関数を使用してデータを集約します。このメソッドには3つのパラメータがあります: -- userInput:ユーザー入力。generateChartと同じ入力を使用できます -- fieldInfo:データセットのフィールド情報。generateChartと同じで、parseCSVDataによって取得されるか、ユーザーによって構築されます。 -- dataset:データセット。generateChartと同じで、parseCSVDataによって取得されるか、ユーザーによって構築されます。 - -```typescript -const { fieldInfo, dataset } = await vmind?.dataQuery(userInput, fieldInfo, dataset); -``` - -このメソッドによって返されるfieldInfoとdatasetは、データ集約後のフィールド情報とデータセットであり、チャート生成に使用できます。 -`generateChart`関数は、デフォルトでチャートを生成する前に、同じユーザー入力を使用してデータ集約を実行します。第4パラメータを渡すことでデータ集約を無効にすることができます: -```typescript -const userInput = 'show me the changes in sales rankings of various car brand'; -const { spec, time } = await vmind.generateChart(userInput, fieldInfo, dataset, false); //第4パラメータとしてfalseを渡すことで、チャートを生成する前にデータ集約を無効にします。 -``` - -#### データインサイト -[チュートリアル](https://visactor.io/vmind/guide/Basic_Tutorial/Chart_Insight) - -#### データ抽出:テキストからチャートへ -[チュートリアル](https://visactor.io/vmind/guide/Basic_Tutorial/Data_Extraction) - -#### 対話型編集 - -開発中、乞うご期待 - -### 効果表示 - -#### 動的棒グラフ - -![Alt text](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/VChart-Video-2.gif) - -#### 棒グラフ - -![Alt text](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/VChart-Video-1.gif) - -#### 円グラフ - -![Alt text](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/VChart-Video-3.gif) diff --git a/README.md b/README.md index 4320e787..7b8b8d24 100644 --- a/README.md +++ b/README.md @@ -1,322 +1,90 @@ -
- - VisActor Logo - - - VisActor Logo - -
+# VisActor Agent Skills -
-

VMind

-
+[English](README.md) | [简体中文](README.zh-CN.md) -
+VChart and VTable development skills for agents that can read files and run commands. Generate charts and tables, diagnose configuration problems, and deliver runnable HTML with editable source code. -Not just automatic, but also fantastic.Open-source solution for intelligent visualization. +## Skills -

- Introduction • - Demo • - Tutorial • - API• - OpenApi -

+| Skill | Tasks | +| --- | --- | +| [vchart-skill](skills/vchart-skill/SKILL.md) | Chart generation, diagnosis, image replication and React integration | +| [vtable-skill](skills/vtable-skill/SKILL.md) | List tables, pivot tables/charts, interactions and diagnosis | -![](https://github.com/visactor/vmind/actions/workflows/bug-server.yml/badge.svg) -![](https://github.com/visactor/vmind/actions/workflows/unit-test.yml/badge.svg) -[![npm Version](https://img.shields.io/npm/v/@visactor/vmind.svg)](https://www.npmjs.com/package/@visactor/vmind) -[![npm Download](https://img.shields.io/npm/dm/@visactor/vmind.svg)](https://www.npmjs.com/package/@visactor/vmind) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/VisActor/VMind/blob/main/CONTRIBUTING.md#your-first-pull-request) +Each skill includes its instructions, local references, templates and scripts. No separate VisActor CLI, MCP server, model key or hosted VisActor API is required. The host agent supplies the model. -![](https://img.shields.io/badge/language-TypeScript-red.svg) [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/visactor/vmind/blob/main/LICENSE) +**Recommended: use the Skills directly in Codex or Claude Code.** Your agent provides model access and tool execution. Other compatible agents may also use these Skills, but do not have dedicated setup instructions here. -
+## Install - - -
- -English | [简体中文](readme-zh.md) | [日本語](README-ja.md) - -
- -## Introduction - -`@visactor/vmind` is an intelligent chart component based on LLM provided by [VisActor](https://www.visactor.io/), including dialog-based chart generation and editing capabilities. It provides a natural language interaction interface, allowing you to easily create chart narrative works with `@visactor/VMind` with just one sentence, and edit them through continuous dialogue, greatly improving your efficiency in creating data visualization works. - -The main features of `@visactor/vmind` include: - -- **Easy to use**: Just provide the data you want to display and a sentence describing the information you want to display, and `@visactor/vmind` will automatically generate the chart for you. Based on the existing chart, describe the modifications you want to make to the chart in one sentence, and `@visactor/VMind` will help you achieve the desired effect. -- **Strong scalability**: The components of `@visactor/VMind` can be easily extended and customized, and new functions and features can be added as needed. By default, the OpenAI GPT model is used, and you can easily replace it with any LLM service. -- **Easy narrative**: Based on the powerful chart narrative ability of `@visactor/vchart`, `@visactor/VMind` supports the generation of various types of charts, including line charts, bar charts, pie charts, etc., and can also generate dynamic bar charts and other dynamic charts, making it easy for you to narrate data. More chart types are being added. You can also use the dialog-based editing function to easily modify chart styles and animation effects, making it easy for you to create narratives. -- **One-click export**: `@visactor/VMind` comes with a chart export module, and you can export the created chart narrative as a video or GIF for display. - -## Development Guide - -### Docs Page - -Enter the VMind repository and execute: +Run these commands in the project where you want to use the Skills: ```bash -# Install dependencies -$ rush update -# Start the demo page -$ rush docs +npx skills add VisActor/VMind --skill vchart-skill +npx skills add VisActor/VMind --skill vtable-skill ``` +Follow the installer's prompts to select Codex or Claude Code. You can install either Skill independently. More installation options are documented in the [Skills CLI reference](https://github.com/vercel-labs/skills#usage). -### Start the Development Page - -Enter the VMind repository and execute: - -```bash -# Install dependencies -$ rush update -# Start the VMind development page -$ rush vmind -``` +Requirements: -You can start the vmind development page. -You need to set your LLM service URL and API key to use it normally. You can modify the headers when calling the LLM in packages/vmind/\_\_tests\_\_/browser/src/pages/DataInput.tsx. -You can create a new .env.local file in the packages/vmind folder and write in it: +- Node.js and npm to run the installation commands above. +- An agent with filesystem and shell tools, plus its own model access. +- Python 3.9+ for the bundled standard-library scripts. +- A browser and internet access for generated HTML. Templates fetch pinned VChart/VTable, React (when needed), and Monaco packages from the public unpkg CDN. This is not a fully offline bundle. -```bash -VITE_GPT_URL="Your service url of gpt model" -VITE_GPT_KEY="Your api-key of gpt model" -VITE_DEEPSEEK_URL="https://api.deepseek.com/chat/completions" -VITE_DEEPSEEK_KEY="Your api-key of deepseek model" -VITE_CUSTOM_URL="Your service url of custom model" -VITE_CUSTOM_KEY="Your api-key of custom model" -VITE_CUSTOM_MODEL="Your Custom Model Name" -VITE_PROXY_CONFIG="Your Vite proxy config for forwarding requests. Must be in JSON string format and is optional. Example: {"proxy": {"/v1": {"target": "https://api.openai.com/","changeOrigin": true},"/openapi": {"target": "https://api.openai.com/","changeOrigin": true}}}" -``` +VChart knowledge search reads bundled example/SOP files locally. It uses keyword matching, not a hosted semantic search service; unmatched questions fall back to the included type and API references. -These configurations will be automatically loaded when starting the development environment. +## Use -## Instructions for use +After installation, ask your agent to use the selected Skill with your data. For example: -### 📦 Installation +- “Use VChart to compare sales by region and quarter in this CSV. Give me the editable source and HTML.” +- “Use VTable to build a sortable detail table using every row in this file.” -```bash -# npm -$ npm install @visactor/vmind +Generated JavaScript/HTML is executable code. Preview your own or reviewed artifacts locally; the evaluation browser is not a sandbox for arbitrary untrusted submissions. -# yarn -$ yarn add @visactor/vmind -``` +## Development and maintenance -### 📊 Usage Example +This section is for contributors editing Skills or running local tests. Start with [CONTRIBUTING.md](CONTRIBUTING.md). -#### Intelligent Chart Generation +### Install from a local checkout -First, we need to install VMind in the project: +From the root of your local repository, install the working copy of either Skill: ```bash -# Install with npm - -npm install @visactor/vmind - -# Install with yarn - -yarn add @visactor/vmind +npx skills add ./skills/vchart-skill +npx skills add ./skills/vtable-skill ``` -Next, import VMind at the top of the JavaScript file +Alternatively, copy the complete Skill directory into your agent's skill directory, including its references, templates and scripts. Do not copy only `SKILL.md`. See the [local debugging guide](docs/debugging.md) for Codex and Claude Code workspace setup. Refresh the installed copy after changing a Skill before retesting. -```typescript -import VMind from '@visactor/vmind'; -``` - -VMind currently supports GPT, deepseek, doubao and any other models with API Keys. Users can specify the model type to be called when initializing the VMind object, and pass in the URL of the LLM service. Next, we initialize a VMind instance and pass in the model type and model url: +### Regression tests -```typescript -import { Model } from '@visactor/vmind'; - -const vmind = new VMind({ - url: LLM_SERVICE_URL, // URL of the LLM service - model: Model.GPT4o, // Model to use - headers: { - 'api-key': LLM_API_KEY - } //headers will be used directly as the request header in the LLM request. You can put the model api key in the header -}); -``` +The Python maintenance environment requires Python 3.12+ and [uv](https://docs.astral.sh/uv/): -Here is a list of supported models: - -```typescript -//models that VMind support -export enum Model { - GPT3_5 = 'gpt-3.5-turbo', - GPT3_5_1106 = 'gpt-3.5-turbo-1106', - GPT4 = 'gpt-4', - GPT_4_0613 = 'gpt-4-0613', - GPT_4o = 'gpt-4o-2024-08-06', - DOUBAO_LITE = 'doubao-lite-32K', - DOUBAO_PRO = 'doubao-pro-128k', - CHART_ADVISOR = 'chart-advisor', - DEEPSEEK_V3 = 'deepseek-chat', - DEEPSEEK_R1 = 'deepseek-reasoner' -} -``` -And also you can use other model you like: -```typescript -import { Model } from '@visactor/vmind'; - -const vmind = new VMind({ - url: LLM_SERVICE_URL, - model: LLM_MODEL_NAME, // Model You Choose - headers: { - 'api-key': LLM_API_KEY - } -}); -``` - -VMind supports datasets in both CSV and JSON formats. - -To use CSV data in subsequent processes, you need to call the data processing method to extract field information and convert it into a structured dataset. VMind provides a rule-based method `parseCSVData` to obtain field information: - -```typescript -// Pass in the CSV string to obtain the fieldInfo and the JSON-structured dataset -const { fieldInfo, dataset } = vmind.parseCSVData(csv); -``` - -We can also call the `getFieldInfo` method to obtain the fieldInfo by passing in a JSON-formatted dataset: - -```typescript -// Pass in a JSON-formatted dataset to obtain the fieldInfo -const dataset=[ -{ -"Product name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "north", -"Sales": 1027 -} -] -const fieldInfo = vmind.getFieldInfo(dataset); -``` - -We want to show "the changes in sales rankings of various car brands". Call the generateChart method and pass the data and display content description directly to VMind: - -```typescript -const userPrompt = 'show me the changes in sales rankings of various car brand'; -//Call the chart generation interface to get spec and chart animation duration -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -In this way, we get the VChart spec of the corresponding dynamic chart. We can render the chart based on this spec: - -```typescript -import VChart from '@visactor/vchart'; - - - -
- - -// Create a vchart instance -const vchart = new VChart(spec, { dom: 'chart' }); -// Draw -vchart.renderAsync(); -``` - -Thanks to the capabilities of the large language model, users can describe more requirements in natural language and "customize" dishes. -Users can specify different theme styles (currently only gpt chart generation supports this feature). For example, users can specify to generate a tech-style chart: - -```typescript -//userPrompt can be in both Chinese and English -//Specify to generate a tech-style chart -const userPrompt = 'show me the changes in sales rankings of various car brand,tech style'; -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -You can also specify the chart type, field mapping, etc. supported by VMind. For example: - -```typescript -//Specify to generate a line chart, with car manufacturers as the x-axis -const userPrompt = - 'show me the changes in sales rankings of various car brands,tech style.Using a line chart, Manufacturer makes the x-axis'; -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -#### Data Aggregation -When using the chart library to draw bar charts, line charts, etc., if the data is not aggregated, it will affect the visualization effect. At the same time, because no filtering and sorting of fields has been done, some visualization intentions cannot be met, for example: show me the top 10 departments with the most cost, show me the sales of various products in the north, etc. - -VMind supports intelligent data aggregation since version 1.2.2. This function uses the data input by the user as a data table, uses a LLM to generate SQL queries according to the user's command, queries data from the data table, and uses GROUP BY and SQL aggregation methods to group, aggregate, sort, and filter data. Supported SQL statements include: SELECT, GROUP BY, WHERE, HAVING, ORDER BY, LIMIT. Supported aggregation methods are: MAX(), MIN(), SUM(), COUNT(), AVG(). Complex SQL operations such as subqueries, JOIN, and conditional statements are not supported. - - -Use the `dataQuery` function of the VMind object to aggregate data. This method has three parameters: -- userInput: user input. You can use the same input as generateChart -- fieldInfo: Dataset field information. The same as generateChart, it can be obtained by parseCSVData, or built by the user. -- dataset: Dataset. The same as generateChart, it can be obtained by parseCSVData, or built by the user. - -```typescript -const { fieldInfo, dataset } = await vmind?.dataQuery(userInput, fieldInfo, dataset); -``` - - -The fieldInfo and dataset returned by this method are the field information and dataset after data aggregation, which can be used for chart generation. -By default, the `generateChart` function will perform a data aggregation using the same user input before generating the chart. You can disable data aggregation by passing in the fourth parameter: -```typescript -const userInput = 'show me the changes in sales rankings of various car brand'; -const { spec, time } = await vmind.generateChart(userInput, fieldInfo, dataset, false); //pass false as the forth parameter to disable data aggregation before generating a chart. +```bash +uv sync --locked +uv run pytest tests -q +uv run ruff check skills tests evals/scripts ``` -#### Data Insight -[Tutorial](https://visactor.io/vmind/guide/Basic_Tutorial/Chart_Insight) - -#### Data Extraction: Text to Chart -[Tutorial](https://visactor.io/vmind/guide/Basic_Tutorial/Data_Extraction) - -#### Dialog-based editing - -Under development, stay tuned - -### Effect display - -#### Dynamic bar chart - -![Alt text](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/VChart-Video-2.gif) - -#### Bar chart - -![Alt text](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/VChart-Video-1.gif) - -#### Pie chart - -![Alt text](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/VChart-Video-3.gif) +### Model API task debugging -# Contribution +For users with model API access, a lightweight harness can load a selected Skill and run a fixed case or a custom prompt with input files. It supports OpenAI-compatible Chat Completions; everyday interactive debugging is best done in your existing agent. -If you would like to contribute, please read the [Code of Conduct ](./CODE_OF_CONDUCT.md) and [ Guide](./CONTRIBUTING.md) first。 +For fixed prompt/data runs, observable execution logs, browser checks and screenshots, see [evals/README.md](evals/README.md). These are maintainer tools, not part of the installed skills. The default runner uses a configurable model API with your own key; Codex/Claude Code are not required. Model calls may incur usage charges. Copy evals/model.example.json to the ignored evals/model.local.json, configure the endpoint/model/key environment variable, then run `uv run python evals/scripts/run.py --case vchart-grouped --browser`. See the quickstart for setup and usage limits. -Small streams converge to make great rivers and seas! +The [case catalog](evals/cases/README.md) includes 32 VChart tasks and 4 VTable tasks, organized by Skill with explicit acceptance criteria. The runner defaults to the 8-task VChart core group; curated coverage does not mean every task has been executed. - -## Star History +## Versioning - - +Skills are versioned together at repository level. Each formal Skills release is identified by a Git tag covering the Skill instructions, references, templates and scripts. `vchart-skill` and `vtable-skill` do not have separate version numbers. - Star History Chart - - +Use a release tag or commit SHA to identify the version when reporting an issue or reproducing a result; branch contents can change. Dependency versions such as VTable `1.26.8` identify the underlying library, not the Skill release. Historical VMind SDK tags remain unchanged and belong to the earlier SDK. +## Earlier VMind versions -# License +The previous VMind SDK is no longer maintained. Its code and documentation remain in [historical releases](https://github.com/VisActor/VMind/releases). -[MIT License](./LICENSE) +[MIT license](LICENSE) diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 00000000..066614df --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,90 @@ +# VisActor Agent Skills + +[English](README.md) | [简体中文](README.zh-CN.md) + +面向具备文件读写和命令执行能力的 Agent,提供 VChart 和 VTable 开发 Skills。用于生成图表与表格、诊断配置问题,并交付可运行的 HTML 和可编辑的源代码。 + +## Skills + +| Skill | 能力 | +| --- | --- | +| [vchart-skill](skills/vchart-skill/SKILL.md) | 图表生成、问题诊断、图片还原和 React 集成 | +| [vtable-skill](skills/vtable-skill/SKILL.md) | 明细表、透视表与透视图、交互和问题诊断 | + +每个 Skill 都包含完整指令、本地参考资料、模板和脚本。无需额外安装 VisActor CLI、MCP 服务,也无需为 Skill 单独配置模型 Key 或访问 VisActor 托管 API。模型能力由宿主 Agent 提供。 + +**推荐直接在 Codex 或 Claude Code 中使用 Skills。** 模型访问与工具执行由你使用的 Agent 提供。其他兼容的 Agent 也可以尝试使用,目前不提供专门的接入说明。 + +## 安装 + +在你准备使用 Skills 的项目目录中执行: + +```bash +npx skills add VisActor/VMind --skill vchart-skill +npx skills add VisActor/VMind --skill vtable-skill +``` + +按照安装器提示选择 Codex 或 Claude Code。两个 Skill 可以按需单独安装。更多安装选项见 [Skills CLI 说明](https://github.com/vercel-labs/skills#usage)。 + +运行要求: + +- Node.js 和 npm,用于执行上述安装命令。 +- 具备文件系统和 Shell 工具的 Agent,以及该 Agent 自身的模型访问权限。 +- Python 3.9+,用于运行 Skill 自带的标准库脚本。 +- 浏览器和网络连接,用于打开生成的 HTML。模板通过公开的 unpkg CDN 加载固定版本的 VChart/VTable、React(需要时)和 Monaco,因此并非完全离线运行。 + +VChart 知识检索在本地读取随 Skill 附带的示例和 SOP,采用关键词匹配,无需托管的语义检索服务。未匹配的问题可继续查阅内置类型定义与 API 参考资料。 + +## 使用 + +安装后,在 Agent 中指定所需 Skill,并提供你的数据。例如: + +- “用 VChart 对比这个 CSV 中各地区、各季度的销售额,给我可编辑的源码和 HTML。” +- “使用这个文件中的全部数据,用 VTable 创建一个支持排序的明细表。” + +生成的 JavaScript/HTML 是可执行代码。请在本地预览自己生成或已审查的产物;评测浏览器并不是用于执行任意不可信提交的安全沙箱。 + +## 开发与维护 + +本节面向需要修改 Skills 或运行本地测试的贡献者,请先阅读 [贡献指南](CONTRIBUTING.md)。 + +### 从本地仓库安装 + +在本地仓库根目录执行,安装当前工作副本中的 Skill: + +```bash +npx skills add ./skills/vchart-skill +npx skills add ./skills/vtable-skill +``` + +也可以将 Skill 的完整目录复制到 Agent 的技能目录中,包括参考资料、模板和脚本,不要只复制 `SKILL.md`。Codex 和 Claude Code 的调试工作区准备方式见 [本地调试指南](docs/debugging.md)。修改 Skill 后,请先更新安装副本,再重新测试。 + +### 回归测试 + +Python 维护环境要求 Python 3.12+ 和 [uv](https://docs.astral.sh/uv/): + +```bash +uv sync --locked +uv run pytest tests -q +uv run ruff check skills tests evals/scripts +``` + +### 通过模型 API 调试任务 + +对于持有模型 API 的用户,轻量 harness 可以加载指定 Skill,执行固定 case 或自定义 prompt 与输入文件。它支持 OpenAI 兼容的 Chat Completions 接口;日常交互式调试仍推荐使用已有的通用 Agent。 + +固定 prompt/数据任务、可观察的执行日志、浏览器检查与截图,详见 [评测说明](evals/README.zh-CN.md)。这些是维护工具,不属于用户安装的 Skill。默认 runner 使用用户自行配置的模型 API 和 Key,无需安装 Codex 或 Claude Code;模型调用可能产生费用。将 `evals/model.example.json` 复制为被 Git 忽略的 `evals/model.local.json`,配置 endpoint、model 和 Key 环境变量后,运行 `uv run python evals/scripts/run.py --case vchart-grouped --browser`。环境准备和用量限制详见快速上手。 + +[用例目录](evals/cases/README.zh-CN.md) 收录 32 个 VChart 任务和 4 个 VTable 任务,按 Skill 分目录维护,并提供明确的验收条件。runner 默认执行包含 8 个任务的 VChart 核心组;收录用例并不代表所有任务均已执行。 + +## 版本管理 + +Skills 按整个仓库统一管理版本。每次正式发布使用 Git tag 标识一个包含 Skill 指令、参考资料、模板和脚本的版本快照,`vchart-skill` 和 `vtable-skill` 不单独维护版本号。 + +反馈问题或复现结果时,请记录发布 tag 或 commit SHA;分支内容会随开发变化。VTable `1.26.8` 等依赖版本表示底层库的版本,不是 Skill 的发布版本。历史 VMind SDK 的 tag 保持不变,仍归属于原 SDK。 + +## VMind 历史版本 + +原 VMind SDK 不再维护,其代码和文档仍可通过 [历史发布版本](https://github.com/VisActor/VMind/releases) 获取。 + +[MIT 许可证](LICENSE) diff --git a/common/autoinstallers/create/README.md b/common/autoinstallers/create/README.md deleted file mode 100644 index ca9e9eee..00000000 --- a/common/autoinstallers/create/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Create project - -## Description - -Create a project - -## Usage - -```bash -rush create [--name | -n] [packageName] -``` - diff --git a/common/autoinstallers/create/package.json b/common/autoinstallers/create/package.json deleted file mode 100644 index e19f19f7..00000000 --- a/common/autoinstallers/create/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "create", - "version": "1.0.0", - "private": true, - "dependencies": { - "@microsoft/rush-lib": "5.94.1", - "chalk": "4.1.2", - "fast-glob": "3.2.11", - "minimist": "1.2.6", - "prettier": "2.7.1", - "prompts": "2.4.2", - "string.prototype.replaceall": "1.0.6", - "ts-node": "^10.9.2", - "zx": "4.2.0" - }, - "devDependencies": { - "@types/minimist": "1.2.2", - "@types/node": "*", - "@types/prompts": "2.0.14", - "typescript": "4.9.5" - } -} diff --git a/common/autoinstallers/create/pnpm-lock.yaml b/common/autoinstallers/create/pnpm-lock.yaml deleted file mode 100644 index e540bfa0..00000000 --- a/common/autoinstallers/create/pnpm-lock.yaml +++ /dev/null @@ -1,4688 +0,0 @@ -lockfileVersion: 5.4 - -specifiers: - '@microsoft/rush-lib': 5.94.1 - '@types/minimist': 1.2.2 - '@types/node': '*' - '@types/prompts': 2.0.14 - chalk: 4.1.2 - fast-glob: 3.2.11 - minimist: 1.2.6 - prettier: 2.7.1 - prompts: 2.4.2 - string.prototype.replaceall: 1.0.6 - ts-node: ^10.9.2 - typescript: 4.9.5 - zx: 4.2.0 - -dependencies: - '@microsoft/rush-lib': 5.94.1_@types+node@22.15.2 - chalk: 4.1.2 - fast-glob: 3.2.11 - minimist: 1.2.6 - prettier: 2.7.1 - prompts: 2.4.2 - string.prototype.replaceall: 1.0.6 - ts-node: 10.9.2_5gorizoetxxmrnbx6xopn2qxji - zx: 4.2.0 - -devDependencies: - '@types/minimist': 1.2.2 - '@types/node': 22.15.2 - '@types/prompts': 2.0.14 - typescript: 4.9.5 - -packages: - - /@azure/abort-controller/1.1.0: - resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} - engines: {node: '>=12.0.0'} - dependencies: - tslib: 2.8.1 - dev: false - - /@azure/abort-controller/2.1.2: - resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} - engines: {node: '>=18.0.0'} - dependencies: - tslib: 2.8.1 - dev: false - - /@azure/core-auth/1.9.0: - resolution: {integrity: sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==} - engines: {node: '>=18.0.0'} - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.11.0 - tslib: 2.8.1 - dev: false - - /@azure/core-client/1.9.3: - resolution: {integrity: sha512-/wGw8fJ4mdpJ1Cum7s1S+VQyXt1ihwKLzfabS1O/RDADnmzVc01dHn44qD0BvGH6KlZNzOMW95tEpKqhkCChPA==} - engines: {node: '>=18.0.0'} - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.9.0 - '@azure/core-rest-pipeline': 1.19.1 - '@azure/core-tracing': 1.2.0 - '@azure/core-util': 1.11.0 - '@azure/logger': 1.1.4 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@azure/core-http/2.3.2: - resolution: {integrity: sha512-Z4dfbglV9kNZO177CNx4bo5ekFuYwwsvjLiKdZI4r84bYGv3irrbQz7JC3/rUfFH2l4T/W6OFleJaa2X0IaQqw==} - engines: {node: '>=14.0.0'} - deprecated: This package is no longer supported. Please migrate to use @azure/core-rest-pipeline - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.9.0 - '@azure/core-tracing': 1.0.0-preview.13 - '@azure/core-util': 1.11.0 - '@azure/logger': 1.1.4 - '@types/node-fetch': 2.6.2 - '@types/tunnel': 0.0.3 - form-data: 4.0.2 - node-fetch: 2.6.7 - process: 0.11.10 - tough-cookie: 4.1.4 - tslib: 2.8.1 - tunnel: 0.0.6 - uuid: 8.3.2 - xml2js: 0.5.0 - transitivePeerDependencies: - - encoding - dev: false - - /@azure/core-lro/2.7.2: - resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==} - engines: {node: '>=18.0.0'} - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.11.0 - '@azure/logger': 1.1.4 - tslib: 2.8.1 - dev: false - - /@azure/core-paging/1.6.2: - resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} - engines: {node: '>=18.0.0'} - dependencies: - tslib: 2.8.1 - dev: false - - /@azure/core-rest-pipeline/1.19.1: - resolution: {integrity: sha512-zHeoI3NCs53lLBbWNzQycjnYKsA1CVKlnzSNuSFcUDwBp8HHVObePxrM7HaX+Ha5Ks639H7chNC9HOaIhNS03w==} - engines: {node: '>=18.0.0'} - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.9.0 - '@azure/core-tracing': 1.2.0 - '@azure/core-util': 1.11.0 - '@azure/logger': 1.1.4 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@azure/core-tracing/1.0.0-preview.13: - resolution: {integrity: sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==} - engines: {node: '>=12.0.0'} - dependencies: - '@opentelemetry/api': 1.9.0 - tslib: 2.8.1 - dev: false - - /@azure/core-tracing/1.2.0: - resolution: {integrity: sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==} - engines: {node: '>=18.0.0'} - dependencies: - tslib: 2.8.1 - dev: false - - /@azure/core-util/1.11.0: - resolution: {integrity: sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==} - engines: {node: '>=18.0.0'} - dependencies: - '@azure/abort-controller': 2.1.2 - tslib: 2.8.1 - dev: false - - /@azure/identity/2.1.0: - resolution: {integrity: sha512-BPDz1sK7Ul9t0l9YKLEa8PHqWU4iCfhGJ+ELJl6c8CP3TpJt2urNCbm0ZHsthmxRsYoMPbz2Dvzj30zXZVmAFw==} - engines: {node: '>=12.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.9.0 - '@azure/core-client': 1.9.3 - '@azure/core-rest-pipeline': 1.19.1 - '@azure/core-tracing': 1.2.0 - '@azure/core-util': 1.11.0 - '@azure/logger': 1.1.4 - '@azure/msal-browser': 2.39.0 - '@azure/msal-common': 7.6.0 - '@azure/msal-node': 1.18.4 - events: 3.3.0 - jws: 4.0.0 - open: 8.4.2 - stoppable: 1.1.0 - tslib: 2.8.1 - uuid: 8.3.2 - transitivePeerDependencies: - - supports-color - dev: false - - /@azure/logger/1.1.4: - resolution: {integrity: sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==} - engines: {node: '>=18.0.0'} - dependencies: - tslib: 2.8.1 - dev: false - - /@azure/msal-browser/2.39.0: - resolution: {integrity: sha512-kks/n2AJzKUk+DBqZhiD+7zeQGBl+WpSOQYzWy6hff3bU0ZrYFqr4keFLlzB5VKuKZog0X59/FGHb1RPBDZLVg==} - engines: {node: '>=0.8.0'} - dependencies: - '@azure/msal-common': 13.3.3 - dev: false - - /@azure/msal-common/13.3.1: - resolution: {integrity: sha512-Lrk1ozoAtaP/cp53May3v6HtcFSVxdFrg2Pa/1xu5oIvsIwhxW6zSPibKefCOVgd5osgykMi5jjcZHv8XkzZEQ==} - engines: {node: '>=0.8.0'} - dev: false - - /@azure/msal-common/13.3.3: - resolution: {integrity: sha512-n278DdCXKeiWhLwhEL7/u9HRMyzhUXLefeajiknf6AmEedoiOiv2r5aRJ7LXdT3NGPyubkdIbthaJlVtmuEqvA==} - engines: {node: '>=0.8.0'} - dev: false - - /@azure/msal-common/7.6.0: - resolution: {integrity: sha512-XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==} - engines: {node: '>=0.8.0'} - dev: false - - /@azure/msal-node/1.18.4: - resolution: {integrity: sha512-Kc/dRvhZ9Q4+1FSfsTFDME/v6+R2Y1fuMty/TfwqE5p9GTPw08BPbKgeWinE8JRHRp+LemjQbUZsn4Q4l6Lszg==} - engines: {node: 10 || 12 || 14 || 16 || 18} - deprecated: A newer major version of this library is available. Please upgrade to the latest available version. - dependencies: - '@azure/msal-common': 13.3.1 - jsonwebtoken: 9.0.2 - uuid: 8.3.2 - dev: false - - /@azure/storage-blob/12.11.0: - resolution: {integrity: sha512-na+FisoARuaOWaHWpmdtk3FeuTWf2VWamdJ9/TJJzj5ZdXPLC3juoDgFs6XVuJIoK30yuBpyFBEDXVRK4pB7Tg==} - engines: {node: '>=12.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-http': 2.3.2 - '@azure/core-lro': 2.7.2 - '@azure/core-paging': 1.6.2 - '@azure/core-tracing': 1.0.0-preview.13 - '@azure/logger': 1.1.4 - events: 3.3.0 - tslib: 2.8.1 - transitivePeerDependencies: - - encoding - dev: false - - /@babel/code-frame/7.26.2: - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - dev: false - - /@babel/generator/7.27.0: - resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - dev: false - - /@babel/helper-string-parser/7.25.9: - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-validator-identifier/7.25.9: - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/parser/7.27.0: - resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.27.0 - dev: false - - /@babel/template/7.27.0: - resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - dev: false - - /@babel/traverse/7.27.0: - resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - debug: 4.4.0 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/types/7.27.0: - resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - dev: false - - /@cspotcode/source-map-support/0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - dev: false - - /@devexpress/error-stack-parser/2.0.6: - resolution: {integrity: sha512-fneVypElGUH6Be39mlRZeAu00pccTlf4oVuzf9xPJD1cdEqI8NyAiQua/EW7lZdrbMUbgyXcJmfKPefhYius3A==} - dependencies: - stackframe: 1.3.4 - dev: false - - /@jridgewell/gen-mapping/0.3.8: - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - dev: false - - /@jridgewell/resolve-uri/3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/set-array/1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/sourcemap-codec/1.5.0: - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - dev: false - - /@jridgewell/trace-mapping/0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - dev: false - - /@jridgewell/trace-mapping/0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - dev: false - - /@microsoft/rush-lib/5.94.1_@types+node@22.15.2: - resolution: {integrity: sha512-qXeqtYYe4ImyYyaAIR+ZdZEpNUeOZSaP+sbfksvDu9oa4kNH+5pCemII8NSfmQd9Dx7zPGPNiGf4zE4/Jcs6VA==} - engines: {node: '>=5.6.0'} - dependencies: - '@pnpm/link-bins': 5.3.25 - '@rushstack/heft-config-file': 0.11.9_@types+node@22.15.2 - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@rushstack/package-deps-hash': 4.0.10_@types+node@22.15.2 - '@rushstack/rig-package': 0.3.18 - '@rushstack/rush-amazon-s3-build-cache-plugin': 5.94.1_@types+node@22.15.2 - '@rushstack/rush-azure-storage-build-cache-plugin': 5.94.1_@types+node@22.15.2 - '@rushstack/stream-collator': 4.0.228_@types+node@22.15.2 - '@rushstack/terminal': 0.5.3_@types+node@22.15.2 - '@rushstack/ts-command-line': 4.13.2 - '@types/node-fetch': 2.6.2 - '@yarnpkg/lockfile': 1.0.2 - builtin-modules: 3.1.0 - cli-table: 0.3.11 - colors: 1.2.5 - dependency-path: 9.2.8 - figures: 3.0.0 - git-repo-info: 2.1.1 - glob: 7.0.6 - glob-escape: 0.0.2 - https-proxy-agent: 5.0.1 - ignore: 5.1.9 - inquirer: 7.3.3 - js-yaml: 3.13.1 - jszip: 3.8.0 - lodash: 4.17.21 - node-fetch: 2.6.7 - npm-check: 6.0.1 - npm-package-arg: 6.1.1 - npm-packlist: 2.1.5 - read-package-tree: 5.1.6 - resolve: 1.22.10 - rxjs: 6.6.7 - semver: 7.3.8 - ssri: 8.0.1 - strict-uri-encode: 2.0.0 - tapable: 2.2.1 - tar: 6.1.15 - true-case-path: 2.2.1 - transitivePeerDependencies: - - '@types/node' - - encoding - - supports-color - dev: false - - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: false - - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: false - - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - dev: false - - /@opentelemetry/api/1.9.0: - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} - engines: {node: '>=8.0.0'} - dev: false - - /@pnpm/crypto.base32-hash/1.0.1: - resolution: {integrity: sha512-pzAXNn6KxTA3kbcI3iEnYs4vtH51XEVqmK/1EiD18MaPKylhqy8UvMJK3zKG+jeP82cqQbozcTGm4yOQ8i3vNw==} - engines: {node: '>=14.6'} - dependencies: - rfc4648: 1.5.4 - dev: false - - /@pnpm/error/1.4.0: - resolution: {integrity: sha512-vxkRrkneBPVmP23kyjnYwVOtipwlSl6UfL+h+Xa3TrABJTz5rYBXemlTsU5BzST8U4pD7YDkTb3SQu+MMuIDKA==} - engines: {node: '>=10.16'} - dev: false - - /@pnpm/link-bins/5.3.25: - resolution: {integrity: sha512-9Xq8lLNRHFDqvYPXPgaiKkZ4rtdsm7izwM/cUsFDc5IMnG0QYIVBXQbgwhz2UvjUotbJrvfKLJaCfA3NGBnLDg==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/error': 1.4.0 - '@pnpm/package-bins': 4.1.0 - '@pnpm/read-modules-dir': 2.0.3 - '@pnpm/read-package-json': 4.0.0 - '@pnpm/read-project-manifest': 1.1.7 - '@pnpm/types': 6.4.0 - '@zkochan/cmd-shim': 5.4.1 - is-subdir: 1.2.0 - is-windows: 1.0.2 - mz: 2.7.0 - normalize-path: 3.0.0 - p-settle: 4.1.1 - ramda: 0.27.2 - dev: false - - /@pnpm/package-bins/4.1.0: - resolution: {integrity: sha512-57/ioGYLBbVRR80Ux9/q2i3y8Q+uQADc3c+Yse8jr/60YLOi3jcWz13e2Jy+ANYtZI258Qc5wk2X077rp0Ly/Q==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/types': 6.4.0 - fast-glob: 3.2.11 - is-subdir: 1.2.0 - dev: false - - /@pnpm/read-modules-dir/2.0.3: - resolution: {integrity: sha512-i9OgRvSlxrTS9a2oXokhDxvQzDtfqtsooJ9jaGoHkznue5aFCTSrNZFQ6M18o8hC03QWfnxaKi0BtOvNkKu2+A==} - engines: {node: '>=10.13'} - dependencies: - mz: 2.7.0 - dev: false - - /@pnpm/read-package-json/4.0.0: - resolution: {integrity: sha512-1cr2tEwe4YU6SI0Hmg+wnsr6yxBt2iJtqv6wrF84On8pS9hx4A2PLw3CIgbwxaG0b+ur5wzhNogwl4qD5FLFNg==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/error': 1.4.0 - '@pnpm/types': 6.4.0 - load-json-file: 6.2.0 - normalize-package-data: 3.0.3 - dev: false - - /@pnpm/read-project-manifest/1.1.7: - resolution: {integrity: sha512-tj8ExXZeDcMmMUj7D292ETe/RiEirr1X1wpT6Zy85z2MrFYoG9jfCJpps40OdZBNZBhxbuKtGPWKVSgXD0yrVw==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/error': 1.4.0 - '@pnpm/types': 6.4.0 - '@pnpm/write-project-manifest': 1.1.7 - detect-indent: 6.1.0 - fast-deep-equal: 3.1.3 - graceful-fs: 4.2.4 - is-windows: 1.0.2 - json5: 2.2.3 - parse-json: 5.2.0 - read-yaml-file: 2.1.0 - sort-keys: 4.2.0 - strip-bom: 4.0.0 - dev: false - - /@pnpm/types/6.4.0: - resolution: {integrity: sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==} - engines: {node: '>=10.16'} - dev: false - - /@pnpm/types/8.9.0: - resolution: {integrity: sha512-3MYHYm8epnciApn6w5Fzx6sepawmsNU7l6lvIq+ER22/DPSrr83YMhU/EQWnf4lORn2YyiXFj0FJSyJzEtIGmw==} - engines: {node: '>=14.6'} - dev: false - - /@pnpm/write-project-manifest/1.1.7: - resolution: {integrity: sha512-OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/types': 6.4.0 - json5: 2.2.3 - mz: 2.7.0 - write-file-atomic: 3.0.3 - write-yaml-file: 4.2.0 - dev: false - - /@rushstack/heft-config-file/0.11.9_@types+node@22.15.2: - resolution: {integrity: sha512-01JFmD+G44v5btO0fVIbVBJCfGWLTN2l4Y/+IVU8D9eR14+wYJjV5CO25uxydDynMr334URFcITuzG21L9L0GA==} - engines: {node: '>=10.13.0'} - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@rushstack/rig-package': 0.3.18 - jsonpath-plus: 4.0.0 - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/node-core-library/3.55.2_@types+node@22.15.2: - resolution: {integrity: sha512-SaLe/x/Q/uBVdNFK5V1xXvsVps0y7h1sN7aSJllQyFbugyOaxhNRF25bwEDnicARNEjJw0pk0lYnJQ9Kr6ev0A==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@types/node': 22.15.2 - colors: 1.2.5 - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.10 - semver: 7.3.8 - z-schema: 5.0.5 - dev: false - - /@rushstack/package-deps-hash/4.0.10_@types+node@22.15.2: - resolution: {integrity: sha512-oW4M9olWay3qIpIULtpolh0MY1QprY2CqrrgUl7NpyMn1/r0laT8EUbkTylWRnytvXaNTDBlRz99+CdU1DKqgA==} - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/rig-package/0.3.18: - resolution: {integrity: sha512-SGEwNTwNq9bI3pkdd01yCaH+gAsHqs0uxfGvtw9b0LJXH52qooWXnrFTRRLG1aL9pf+M2CARdrA9HLHJys3jiQ==} - dependencies: - resolve: 1.22.10 - strip-json-comments: 3.1.1 - dev: false - - /@rushstack/rush-amazon-s3-build-cache-plugin/5.94.1_@types+node@22.15.2: - resolution: {integrity: sha512-NCZ5YscW9Qi9avvgspE76dfHtCcsSMpfm3X4D9gaTcGPyE7RpWY5yMTZhO31Z5g0NM6cw6eWEfKwJvZ5nGbnBQ==} - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@rushstack/rush-sdk': 5.94.1_@types+node@22.15.2 - https-proxy-agent: 5.0.1 - node-fetch: 2.6.7 - transitivePeerDependencies: - - '@types/node' - - encoding - - supports-color - dev: false - - /@rushstack/rush-azure-storage-build-cache-plugin/5.94.1_@types+node@22.15.2: - resolution: {integrity: sha512-uIdyoeGHyFlAnmAHF0KKDsg5KBde9nRl15x8wTr/zwzwydMMIdbfxHAMc3C78YE05SUYeIIut4qh5KCoEn9/Hw==} - dependencies: - '@azure/identity': 2.1.0 - '@azure/storage-blob': 12.11.0 - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@rushstack/rush-sdk': 5.94.1_@types+node@22.15.2 - '@rushstack/terminal': 0.5.3_@types+node@22.15.2 - transitivePeerDependencies: - - '@types/node' - - encoding - - supports-color - dev: false - - /@rushstack/rush-sdk/5.94.1_@types+node@22.15.2: - resolution: {integrity: sha512-T5euwYB4GzBGGCWCdk0djjHqsI7boGWKjutyNb+AguB7WsnRjDujEHC7CdosYtbsJo5caIwEdi9sspiaS4vyjA==} - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@types/node-fetch': 2.6.2 - tapable: 2.2.1 - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/stream-collator/4.0.228_@types+node@22.15.2: - resolution: {integrity: sha512-x7KR0IVNOEZBegdw7u2LVugD0U9uMw3IR1gPwV9bNWEC01cObc+9wk21suUxkzDtMVdKcNYoiZ814WnUqOF7pQ==} - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@rushstack/terminal': 0.5.3_@types+node@22.15.2 - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/terminal/0.5.3_@types+node@22.15.2: - resolution: {integrity: sha512-AFKlWyw6C3vWvRrkXIcchxUooNHSzZ0AS5mGbdon3tjnxhqnMitjdk0WZl2382i50Zz3WE6Fd3LFurVbrNrEyw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@types/node': 22.15.2 - wordwrap: 1.0.0 - dev: false - - /@rushstack/ts-command-line/4.13.2: - resolution: {integrity: sha512-bCU8qoL9HyWiciltfzg7GqdfODUeda/JpI0602kbN5YH22rzTxyqYvv7aRLENCM7XCQ1VRs7nMkEqgJUOU8Sag==} - dependencies: - '@types/argparse': 1.0.38 - argparse: 1.0.10 - colors: 1.2.5 - string-argv: 0.3.2 - dev: false - - /@sindresorhus/is/0.14.0: - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} - dev: false - - /@szmarczak/http-timer/1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} - dependencies: - defer-to-connect: 1.1.3 - dev: false - - /@tsconfig/node10/1.0.11: - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - dev: false - - /@tsconfig/node12/1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: false - - /@tsconfig/node14/1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: false - - /@tsconfig/node16/1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - dev: false - - /@types/argparse/1.0.38: - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - dev: false - - /@types/fs-extra/9.0.13: - resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - dependencies: - '@types/node': 22.15.2 - dev: false - - /@types/keyv/3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - dependencies: - '@types/node': 22.15.2 - dev: false - - /@types/lodash/4.17.16: - resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} - dev: false - - /@types/minimatch/3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - dev: false - - /@types/minimist/1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - - /@types/node-fetch/2.6.12: - resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} - dependencies: - '@types/node': 22.15.2 - form-data: 4.0.2 - dev: false - - /@types/node-fetch/2.6.2: - resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} - dependencies: - '@types/node': 22.15.2 - form-data: 3.0.3 - dev: false - - /@types/node/16.18.126: - resolution: {integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==} - dev: false - - /@types/node/22.15.2: - resolution: {integrity: sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==} - dependencies: - undici-types: 6.21.0 - - /@types/normalize-package-data/2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - dev: false - - /@types/parse-json/4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - dev: false - - /@types/prompts/2.0.14: - resolution: {integrity: sha512-HZBd99fKxRWpYCErtm2/yxUZv6/PBI9J7N4TNFffl5JbrYMHBwF25DjQGTW3b3jmXq+9P6/8fCIb2ee57BFfYA==} - dependencies: - '@types/node': 22.15.2 - dev: true - - /@types/responselike/1.0.3: - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - dependencies: - '@types/node': 22.15.2 - dev: false - - /@types/tunnel/0.0.3: - resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==} - dependencies: - '@types/node': 22.15.2 - dev: false - - /@vue/compiler-core/3.5.13: - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - dependencies: - '@babel/parser': 7.27.0 - '@vue/shared': 3.5.13 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - dev: false - - /@vue/compiler-dom/3.5.13: - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 - dev: false - - /@vue/compiler-sfc/3.5.13: - resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} - dependencies: - '@babel/parser': 7.27.0 - '@vue/compiler-core': 3.5.13 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - estree-walker: 2.0.2 - magic-string: 0.30.17 - postcss: 8.5.3 - source-map-js: 1.2.1 - dev: false - - /@vue/compiler-ssr/3.5.13: - resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} - dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 - dev: false - - /@vue/shared/3.5.13: - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - dev: false - - /@yarnpkg/lockfile/1.0.2: - resolution: {integrity: sha512-MqJ00WXw89ga0rK6GZkdmmgv3bAsxpJixyTthjcix73O44pBqotyU2BejBkLuIsaOBI6SEu77vAnSyLe5iIHkw==} - dev: false - - /@zkochan/cmd-shim/5.4.1: - resolution: {integrity: sha512-odWb1qUzt0dIOEUPyWBEpFDYQPRjEMr/dbHHAfgBkVkYR9aO7Zo+I7oYWrXIxl+cKlC7+49ftPm8uJxL1MA9kw==} - engines: {node: '>=10.13'} - dependencies: - cmd-extension: 1.0.2 - graceful-fs: 4.2.11 - is-windows: 1.0.2 - dev: false - - /acorn-walk/8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - dependencies: - acorn: 8.14.1 - dev: false - - /acorn/8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: false - - /agent-base/6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - dev: false - - /agent-base/7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} - engines: {node: '>= 14'} - dev: false - - /ansi-align/3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - dependencies: - string-width: 4.2.3 - dev: false - - /ansi-escapes/4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: false - - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: false - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: false - - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: false - - /any-promise/1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: false - - /arg/4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: false - - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: false - - /argparse/2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: false - - /array-buffer-byte-length/1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - dev: false - - /array-differ/3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} - dev: false - - /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: false - - /array-union/3.0.1: - resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} - engines: {node: '>=12'} - dev: false - - /arraybuffer.prototype.slice/1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - dev: false - - /arrify/1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: false - - /arrify/2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - dev: false - - /asap/2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - dev: false - - /async-function/1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - dev: false - - /asynckit/0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false - - /available-typed-arrays/1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - dependencies: - possible-typed-array-names: 1.1.0 - dev: false - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: false - - /base64-js/1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false - - /better-path-resolve/1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - dependencies: - is-windows: 1.0.2 - dev: false - - /bl/4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: false - - /boxen/5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - dependencies: - ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 2.2.1 - string-width: 4.2.3 - type-fest: 0.20.2 - widest-line: 3.1.0 - wrap-ansi: 7.0.0 - dev: false - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: false - - /brace-expansion/2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: false - - /braces/3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.1.1 - dev: false - - /buffer-equal-constant-time/1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - dev: false - - /buffer/5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - - /builtin-modules/3.1.0: - resolution: {integrity: sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==} - engines: {node: '>=6'} - dev: false - - /builtins/1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - dev: false - - /cacheable-request/6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 3.1.0 - lowercase-keys: 2.0.0 - normalize-url: 4.5.1 - responselike: 1.0.2 - dev: false - - /call-bind-apply-helpers/1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - dev: false - - /call-bind/1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - dev: false - - /call-bound/1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - dev: false - - /callsite-record/4.1.5: - resolution: {integrity: sha512-OqeheDucGKifjQRx524URgV4z4NaKjocGhygTptDea+DLROre4ZEecA4KXDq+P7qlGCohYVNOh3qr+y5XH5Ftg==} - dependencies: - '@devexpress/error-stack-parser': 2.0.6 - '@types/lodash': 4.17.16 - callsite: 1.0.0 - chalk: 2.4.2 - highlight-es: 1.0.3 - lodash: 4.17.21 - pinkie-promise: 2.0.1 - dev: false - - /callsite/1.0.0: - resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} - dev: false - - /callsites/3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: false - - /camelcase-keys/6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: false - - /camelcase/5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: false - - /camelcase/6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: false - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: false - - /chalk/4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: false - - /chardet/0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: false - - /chownr/2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - dev: false - - /ci-info/2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: false - - /cli-boxes/2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - dev: false - - /cli-cursor/3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: false - - /cli-spinners/2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - dev: false - - /cli-table/0.3.11: - resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} - engines: {node: '>= 0.2.0'} - dependencies: - colors: 1.0.3 - dev: false - - /cli-width/3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - dev: false - - /cliui/7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: false - - /clone-response/1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - dependencies: - mimic-response: 1.0.1 - dev: false - - /clone/1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: false - - /cmd-extension/1.0.2: - resolution: {integrity: sha512-iWDjmP8kvsMdBmLTHxFaqXikO8EdFRDfim7k6vUHglY/2xJ5jLrPsnQGijdfp4U+sr/BeecG0wKm02dSIAeQ1g==} - engines: {node: '>=10'} - dev: false - - /co/4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: false - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: false - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: false - - /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: false - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: false - - /colors/1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} - engines: {node: '>=0.1.90'} - dev: false - - /colors/1.2.5: - resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} - engines: {node: '>=0.1.90'} - dev: false - - /combined-stream/1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: false - - /commander/9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - requiresBuild: true - dev: false - optional: true - - /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: false - - /configstore/5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} - dependencies: - dot-prop: 5.3.0 - graceful-fs: 4.2.11 - make-dir: 3.1.0 - unique-string: 2.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 4.0.0 - dev: false - - /core-util-is/1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: false - - /cosmiconfig/7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.1 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: false - - /create-require/1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: false - - /cross-spawn/7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: false - - /crypto-random-string/2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: false - - /data-view-buffer/1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - dev: false - - /data-view-byte-length/1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - dev: false - - /data-view-byte-offset/1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - dev: false - - /debug/4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - dev: false - - /debuglog/1.0.1: - resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dev: false - - /decamelize-keys/1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: false - - /decamelize/1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: false - - /decompress-response/3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} - dependencies: - mimic-response: 1.0.1 - dev: false - - /deep-extend/0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: false - - /defaults/1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: false - - /defer-to-connect/1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - dev: false - - /define-data-property/1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - dev: false - - /define-lazy-prop/2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: false - - /define-properties/1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - dev: false - - /delayed-stream/1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: false - - /depcheck/1.4.7: - resolution: {integrity: sha512-1lklS/bV5chOxwNKA/2XUUk/hPORp8zihZsXflr8x0kLwmcZ9Y9BsS6Hs3ssvA+2wUVbG0U2Ciqvm1SokNjPkA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@babel/parser': 7.27.0 - '@babel/traverse': 7.27.0 - '@vue/compiler-sfc': 3.5.13 - callsite: 1.0.0 - camelcase: 6.3.0 - cosmiconfig: 7.1.0 - debug: 4.4.0 - deps-regex: 0.2.0 - findup-sync: 5.0.0 - ignore: 5.3.2 - is-core-module: 2.16.1 - js-yaml: 3.14.1 - json5: 2.2.3 - lodash: 4.17.21 - minimatch: 7.4.6 - multimatch: 5.0.0 - please-upgrade-node: 3.2.0 - readdirp: 3.6.0 - require-package-name: 2.0.1 - resolve: 1.22.10 - resolve-from: 5.0.0 - semver: 7.7.1 - yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - dev: false - - /dependency-path/9.2.8: - resolution: {integrity: sha512-S0OhIK7sIyAsph8hVH/LMCTDL3jozKtlrPx3dMQrlE2nAlXTquTT+AcOufphDMTQqLkfn4acvfiem9I1IWZ4jQ==} - engines: {node: '>=14.6'} - dependencies: - '@pnpm/crypto.base32-hash': 1.0.1 - '@pnpm/types': 8.9.0 - encode-registry: 3.0.1 - semver: 7.3.8 - dev: false - - /deps-regex/0.2.0: - resolution: {integrity: sha512-PwuBojGMQAYbWkMXOY9Pd/NWCDNHVH12pnS7WHqZkTSeMESe4hwnKKRp0yR87g37113x4JPbo/oIvXY+s/f56Q==} - dev: false - - /detect-file/1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} - dev: false - - /detect-indent/6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: false - - /dezalgo/1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - dependencies: - asap: 2.0.6 - wrappy: 1.0.2 - dev: false - - /diff/4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: false - - /dir-glob/3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: false - - /dot-prop/5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: false - - /dunder-proto/1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - dev: false - - /duplexer/0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false - - /duplexer3/0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - dev: false - - /ecdsa-sig-formatter/1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: false - - /encode-registry/3.0.1: - resolution: {integrity: sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==} - engines: {node: '>=10'} - dependencies: - mem: 8.1.1 - dev: false - - /end-of-stream/1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: false - - /entities/4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: false - - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: false - - /es-abstract/1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 - dev: false - - /es-define-property/1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - dev: false - - /es-errors/1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - dev: false - - /es-object-atoms/1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - dev: false - - /es-set-tostringtag/2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - dev: false - - /es-to-primitive/1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - dev: false - - /escalade/3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - dev: false - - /escape-goat/2.1.1: - resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} - engines: {node: '>=8'} - dev: false - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: false - - /esprima/4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: false - - /estree-walker/2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: false - - /event-stream/3.3.4: - resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} - dependencies: - duplexer: 0.1.2 - from: 0.1.7 - map-stream: 0.1.0 - pause-stream: 0.0.11 - split: 0.3.3 - stream-combiner: 0.0.4 - through: 2.3.8 - dev: false - - /events/3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - dev: false - - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: false - - /expand-tilde/2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} - dependencies: - homedir-polyfill: 1.0.3 - dev: false - - /external-editor/3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: false - - /fast-deep-equal/3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: false - - /fast-glob/3.2.11: - resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - dev: false - - /fastq/1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - dependencies: - reusify: 1.1.0 - dev: false - - /figures/3.0.0: - resolution: {integrity: sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: false - - /fill-range/7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: false - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: false - - /find-up/5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: false - - /find-yarn-workspace-root2/1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - dependencies: - micromatch: 4.0.8 - pkg-dir: 4.2.0 - dev: false - - /findup-sync/5.0.0: - resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} - engines: {node: '>= 10.13.0'} - dependencies: - detect-file: 1.0.0 - is-glob: 4.0.3 - micromatch: 4.0.8 - resolve-dir: 1.0.1 - dev: false - - /for-each/0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - dev: false - - /form-data/3.0.3: - resolution: {integrity: sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - mime-types: 2.1.35 - dev: false - - /form-data/4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - mime-types: 2.1.35 - dev: false - - /from/0.1.7: - resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} - dev: false - - /fs-extra/10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: false - - /fs-extra/7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: false - - /fs-minipass/2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: false - - /fs.realpath/1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: false - - /function-bind/1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: false - - /function.prototype.name/1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - dev: false - - /functions-have-names/1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: false - - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: false - - /get-intrinsic/1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - dev: false - - /get-proto/1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - dev: false - - /get-stream/4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - dependencies: - pump: 3.0.2 - dev: false - - /get-stream/5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.2 - dev: false - - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: false - - /get-symbol-description/1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - dev: false - - /git-repo-info/2.1.1: - resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==} - engines: {node: '>= 4.0'} - dev: false - - /giturl/1.0.3: - resolution: {integrity: sha512-qVDEXufVtYUzYqI5hoDUONh9GCEPi0n+e35KNDafdsNt9fPxB0nvFW/kFiw7W42wkg8TUyhBqb+t24yyaoc87A==} - engines: {node: '>= 0.10.0'} - dev: false - - /glob-escape/0.0.2: - resolution: {integrity: sha512-L/cXYz8x7qer1HAyUQ+mbjcUsJVdpRxpAf7CwqHoNBs9vTpABlGfNN4tzkDxt+u3Z7ZncVyKlCNPtzb0R/7WbA==} - engines: {node: '>= 0.10'} - dev: false - - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: false - - /glob/7.0.6: - resolution: {integrity: sha512-f8c0rE8JiCxpa52kWPAOa3ZaYEnzofDzCQLCn3Vdk0Z5OVLq3BsRFJI4S4ykpeVW6QMGBUkMeUpoEgWnMTnw5Q==} - deprecated: Glob versions prior to v9 are no longer supported - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: false - - /glob/7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: false - - /global-dirs/3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - dependencies: - ini: 2.0.0 - dev: false - - /global-modules/1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} - dependencies: - global-prefix: 1.0.2 - is-windows: 1.0.2 - resolve-dir: 1.0.1 - dev: false - - /global-modules/2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - dependencies: - global-prefix: 3.0.0 - dev: false - - /global-prefix/1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - homedir-polyfill: 1.0.3 - ini: 1.3.8 - is-windows: 1.0.2 - which: 1.3.1 - dev: false - - /global-prefix/3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - dev: false - - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: false - - /globalthis/1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - dev: false - - /globby/11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.11 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - dev: false - - /globby/12.2.0: - resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - array-union: 3.0.1 - dir-glob: 3.0.1 - fast-glob: 3.2.11 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 4.0.0 - dev: false - - /gopd/1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - dev: false - - /got/9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} - dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.3 - cacheable-request: 6.1.0 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 4.1.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 1.1.0 - to-readable-stream: 1.0.0 - url-parse-lax: 3.0.0 - dev: false - - /graceful-fs/4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: false - - /graceful-fs/4.2.4: - resolution: {integrity: sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==} - dev: false - - /hard-rejection/2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: false - - /has-bigints/1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - dev: false - - /has-flag/3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: false - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: false - - /has-property-descriptors/1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - dependencies: - es-define-property: 1.0.1 - dev: false - - /has-proto/1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - dependencies: - dunder-proto: 1.0.1 - dev: false - - /has-symbols/1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - dev: false - - /has-tostringtag/1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.1.0 - dev: false - - /has-yarn/2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} - engines: {node: '>=8'} - dev: false - - /hasown/2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: false - - /highlight-es/1.0.3: - resolution: {integrity: sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==} - dependencies: - chalk: 2.4.2 - is-es2016-keyword: 1.0.0 - js-tokens: 3.0.2 - dev: false - - /homedir-polyfill/1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - dependencies: - parse-passwd: 1.0.0 - dev: false - - /hosted-git-info/2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: false - - /hosted-git-info/4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: false - - /http-cache-semantics/4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: false - - /http-proxy-agent/7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.3 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - dev: false - - /https-proxy-agent/5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - dev: false - - /https-proxy-agent/7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.3 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - dev: false - - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: false - - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: false - - /ieee754/1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false - - /ignore-walk/3.0.4: - resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} - dependencies: - minimatch: 3.1.2 - dev: false - - /ignore/5.1.9: - resolution: {integrity: sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==} - engines: {node: '>= 4'} - dev: false - - /ignore/5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - dev: false - - /immediate/3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - dev: false - - /import-fresh/3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: false - - /import-lazy/2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} - engines: {node: '>=4'} - dev: false - - /import-lazy/4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: false - - /imurmurhash/0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: false - - /indent-string/4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: false - - /inflight/1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: false - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: false - - /ini/1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: false - - /ini/2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: false - - /inquirer/7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} - engines: {node: '>=8.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.0.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - run-async: 2.4.1 - rxjs: 6.6.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - dev: false - - /internal-slot/1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - dev: false - - /is-array-buffer/3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - dev: false - - /is-arrayish/0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: false - - /is-async-function/2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - dev: false - - /is-bigint/1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - dependencies: - has-bigints: 1.1.0 - dev: false - - /is-boolean-object/1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - dev: false - - /is-callable/1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: false - - /is-ci/2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - dependencies: - ci-info: 2.0.0 - dev: false - - /is-core-module/2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - dependencies: - hasown: 2.0.2 - dev: false - - /is-data-view/1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - dev: false - - /is-date-object/1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - dev: false - - /is-docker/2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: false - - /is-es2016-keyword/1.0.0: - resolution: {integrity: sha512-JtZWPUwjdbQ1LIo9OSZ8MdkWEve198ors27vH+RzUUvZXXZkzXCxFnlUhzWYxy5IexQSRiXVw9j2q/tHMmkVYQ==} - dev: false - - /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: false - - /is-finalizationregistry/1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - dev: false - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: false - - /is-generator-function/1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - dev: false - - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: false - - /is-installed-globally/0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 - dev: false - - /is-interactive/1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: false - - /is-map/2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - dev: false - - /is-npm/5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} - engines: {node: '>=10'} - dev: false - - /is-number-object/1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - dev: false - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: false - - /is-obj/2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: false - - /is-path-inside/3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: false - - /is-plain-obj/1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: false - - /is-plain-obj/2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: false - - /is-regex/1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - dev: false - - /is-set/2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - dev: false - - /is-shared-array-buffer/1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - dev: false - - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: false - - /is-string/1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - dev: false - - /is-subdir/1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - dependencies: - better-path-resolve: 1.0.0 - dev: false - - /is-symbol/1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - dev: false - - /is-typed-array/1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - dependencies: - which-typed-array: 1.1.19 - dev: false - - /is-typedarray/1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: false - - /is-unicode-supported/0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: false - - /is-weakmap/2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - dev: false - - /is-weakref/1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - dev: false - - /is-weakset/2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - dev: false - - /is-windows/1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: false - - /is-wsl/2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: false - - /is-yarn-global/0.3.0: - resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} - dev: false - - /isarray/1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: false - - /isarray/2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: false - - /isexe/2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: false - - /jju/1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - dev: false - - /js-tokens/3.0.2: - resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} - dev: false - - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: false - - /js-yaml/3.13.1: - resolution: {integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: false - - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: false - - /js-yaml/4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: false - - /jsesc/3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - dev: false - - /json-buffer/3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} - dev: false - - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: false - - /json5/2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: false - - /jsonfile/4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - optionalDependencies: - graceful-fs: 4.2.11 - dev: false - - /jsonfile/6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - dev: false - - /jsonpath-plus/4.0.0: - resolution: {integrity: sha512-e0Jtg4KAzDJKKwzbLaUtinCn0RZseWBVRTRGihSpvFlM3wTR7ExSp+PTdeTsDrLNJUe7L7JYJe8mblHX5SCT6A==} - engines: {node: '>=10.0'} - dev: false - - /jsonwebtoken/9.0.2: - resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} - engines: {node: '>=12', npm: '>=6'} - dependencies: - jws: 3.2.2 - lodash.includes: 4.3.0 - lodash.isboolean: 3.0.3 - lodash.isinteger: 4.0.4 - lodash.isnumber: 3.0.3 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.once: 4.1.1 - ms: 2.1.3 - semver: 7.7.1 - dev: false - - /jszip/3.8.0: - resolution: {integrity: sha512-cnpQrXvFSLdsR9KR5/x7zdf6c3m8IhZfZzSblFEHSqBaVwD2nvJ4CuCKLyvKvwBgZm08CgfSoiTBQLm5WW9hGw==} - dependencies: - lie: 3.3.0 - pako: 1.0.11 - readable-stream: 2.3.8 - set-immediate-shim: 1.0.1 - dev: false - - /jwa/1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - dev: false - - /jwa/2.0.0: - resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - dev: false - - /jws/3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - dependencies: - jwa: 1.4.1 - safe-buffer: 5.2.1 - dev: false - - /jws/4.0.0: - resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} - dependencies: - jwa: 2.0.0 - safe-buffer: 5.2.1 - dev: false - - /keyv/3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} - dependencies: - json-buffer: 3.0.0 - dev: false - - /kind-of/6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: false - - /kleur/3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: false - - /latest-version/5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} - engines: {node: '>=8'} - dependencies: - package-json: 6.5.0 - dev: false - - /lie/3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - dependencies: - immediate: 3.0.6 - dev: false - - /lines-and-columns/1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: false - - /load-json-file/6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 5.2.0 - strip-bom: 4.0.0 - type-fest: 0.6.0 - dev: false - - /load-yaml-file/0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - dev: false - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: false - - /locate-path/6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: false - - /lodash.get/4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. - dev: false - - /lodash.includes/4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - dev: false - - /lodash.isboolean/3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - dev: false - - /lodash.isequal/4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. - dev: false - - /lodash.isinteger/4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - dev: false - - /lodash.isnumber/3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - dev: false - - /lodash.isplainobject/4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: false - - /lodash.isstring/4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - dev: false - - /lodash.once/4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - dev: false - - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: false - - /log-symbols/4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: false - - /lowercase-keys/1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: false - - /lowercase-keys/2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: false - - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: false - - /magic-string/0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - dev: false - - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: false - - /make-error/1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: false - - /map-age-cleaner/0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} - dependencies: - p-defer: 1.0.0 - dev: false - - /map-obj/1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: false - - /map-obj/4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: false - - /map-stream/0.1.0: - resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} - dev: false - - /math-intrinsics/1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - dev: false - - /mem/8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 - dev: false - - /meow/9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} - engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize: 1.2.0 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - dev: false - - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: false - - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: false - - /micromatch/4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - dev: false - - /mime-db/1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: false - - /mime-types/2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: false - - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: false - - /mimic-fn/3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - dev: false - - /mimic-response/1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: false - - /min-indent/1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: false - - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: false - - /minimatch/7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: false - - /minimist-options/4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: false - - /minimist/1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - dev: false - - /minipass/3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 - dev: false - - /minipass/5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - dev: false - - /minizlib/2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - dev: false - - /mkdirp/1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: false - - /ms/2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: false - - /multimatch/5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} - dependencies: - '@types/minimatch': 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.1.2 - dev: false - - /mute-stream/0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: false - - /mz/2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: false - - /nanoid/3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: false - - /node-emoji/1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} - dependencies: - lodash: 4.17.21 - dev: false - - /node-fetch/2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: false - - /node-fetch/2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: false - - /normalize-package-data/2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.10 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - dev: false - - /normalize-package-data/3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.16.1 - semver: 7.7.1 - validate-npm-package-license: 3.0.4 - dev: false - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: false - - /normalize-url/4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} - dev: false - - /npm-bundled/1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} - dependencies: - npm-normalize-package-bin: 1.0.1 - dev: false - - /npm-check/6.0.1: - resolution: {integrity: sha512-tlEhXU3689VLUHYEZTS/BC61vfeN2xSSZwoWDT6WLuenZTpDmGmNT5mtl15erTR0/A15ldK06/NEKg9jYJ9OTQ==} - engines: {node: '>=10.9.0'} - hasBin: true - dependencies: - callsite-record: 4.1.5 - chalk: 4.1.2 - co: 4.6.0 - depcheck: 1.4.7 - execa: 5.1.1 - giturl: 1.0.3 - global-modules: 2.0.0 - globby: 11.1.0 - inquirer: 7.3.3 - is-ci: 2.0.0 - lodash: 4.17.21 - meow: 9.0.0 - minimatch: 3.1.2 - node-emoji: 1.11.0 - ora: 5.4.1 - package-json: 6.5.0 - path-exists: 4.0.0 - pkg-dir: 5.0.0 - preferred-pm: 3.1.4 - rc-config-loader: 4.1.3 - semver: 7.3.8 - semver-diff: 3.1.1 - strip-ansi: 6.0.1 - text-table: 0.2.0 - throat: 6.0.2 - update-notifier: 5.1.0 - xtend: 4.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /npm-normalize-package-bin/1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} - dev: false - - /npm-package-arg/6.1.1: - resolution: {integrity: sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==} - dependencies: - hosted-git-info: 2.8.9 - osenv: 0.1.5 - semver: 5.7.2 - validate-npm-package-name: 3.0.0 - dev: false - - /npm-packlist/2.1.5: - resolution: {integrity: sha512-KCfK3Vi2F+PH1klYauoQzg81GQ8/GGjQRKYY6tRnpQUPKTs/1gBZSRWtTEd7jGdSn1LZL7gpAmJT+BcS55k2XQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - glob: 7.2.3 - ignore-walk: 3.0.4 - npm-bundled: 1.1.2 - npm-normalize-package-bin: 1.0.1 - dev: false - - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: false - - /object-assign/4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: false - - /object-inspect/1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - dev: false - - /object-keys/1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: false - - /object.assign/4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - dev: false - - /once/1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - dev: false - - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: false - - /open/8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: false - - /ora/5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: false - - /os-homedir/1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} - engines: {node: '>=0.10.0'} - dev: false - - /os-tmpdir/1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: false - - /osenv/0.1.5: - resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} - deprecated: This package is no longer supported. - dependencies: - os-homedir: 1.0.2 - os-tmpdir: 1.0.2 - dev: false - - /own-keys/1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - dev: false - - /p-cancelable/1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} - dev: false - - /p-defer/1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - dev: false - - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: false - - /p-limit/3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: false - - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: false - - /p-locate/5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: false - - /p-reflect/2.1.0: - resolution: {integrity: sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==} - engines: {node: '>=8'} - dev: false - - /p-settle/4.1.1: - resolution: {integrity: sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==} - engines: {node: '>=10'} - dependencies: - p-limit: 2.3.0 - p-reflect: 2.1.0 - dev: false - - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: false - - /package-json/6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} - engines: {node: '>=8'} - dependencies: - got: 9.6.0 - registry-auth-token: 4.2.2 - registry-url: 5.1.0 - semver: 6.3.1 - dev: false - - /pako/1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: false - - /parent-module/1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: false - - /parse-json/5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: false - - /parse-passwd/1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - dev: false - - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: false - - /path-is-absolute/1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: false - - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: false - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: false - - /path-type/4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: false - - /pause-stream/0.0.11: - resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} - dependencies: - through: 2.3.8 - dev: false - - /picocolors/1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - dev: false - - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: false - - /pify/4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: false - - /pinkie-promise/2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - dependencies: - pinkie: 2.0.4 - dev: false - - /pinkie/2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - dev: false - - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: false - - /pkg-dir/5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - dependencies: - find-up: 5.0.0 - dev: false - - /please-upgrade-node/3.2.0: - resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} - dependencies: - semver-compare: 1.0.0 - dev: false - - /possible-typed-array-names/1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - dev: false - - /postcss/8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - dev: false - - /preferred-pm/3.1.4: - resolution: {integrity: sha512-lEHd+yEm22jXdCphDrkvIJQU66EuLojPPtvZkpKIkiD+l0DMThF/niqZKJSoU8Vl7iuvtmzyMhir9LdVy5WMnA==} - engines: {node: '>=10'} - dependencies: - find-up: 5.0.0 - find-yarn-workspace-root2: 1.2.16 - path-exists: 4.0.0 - which-pm: 2.2.0 - dev: false - - /prepend-http/2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} - engines: {node: '>=4'} - dev: false - - /prettier/2.7.1: - resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: false - - /process-nextick-args/2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: false - - /process/0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - dev: false - - /prompts/2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: false - - /ps-tree/1.2.0: - resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} - engines: {node: '>= 0.10'} - hasBin: true - dependencies: - event-stream: 3.3.4 - dev: false - - /psl/1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - dependencies: - punycode: 2.3.1 - dev: false - - /pump/3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: false - - /punycode/2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - dev: false - - /pupa/2.1.1: - resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} - engines: {node: '>=8'} - dependencies: - escape-goat: 2.1.1 - dev: false - - /querystringify/2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: false - - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: false - - /quick-lru/4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: false - - /ramda/0.27.2: - resolution: {integrity: sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==} - dev: false - - /rc-config-loader/4.1.3: - resolution: {integrity: sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==} - dependencies: - debug: 4.4.0 - js-yaml: 4.1.0 - json5: 2.2.3 - require-from-string: 2.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /rc/1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.6 - strip-json-comments: 2.0.1 - dev: false - - /read-package-json/2.1.2: - resolution: {integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==} - deprecated: This package is no longer supported. Please use @npmcli/package-json instead. - dependencies: - glob: 7.2.3 - json-parse-even-better-errors: 2.3.1 - normalize-package-data: 2.5.0 - npm-normalize-package-bin: 1.0.1 - dev: false - - /read-package-tree/5.1.6: - resolution: {integrity: sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==} - deprecated: The functionality that this package provided is now in @npmcli/arborist - dependencies: - debuglog: 1.0.1 - dezalgo: 1.0.4 - once: 1.4.0 - read-package-json: 2.1.2 - readdir-scoped-modules: 1.1.0 - dev: false - - /read-pkg-up/7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - dev: false - - /read-pkg/5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - dev: false - - /read-yaml-file/2.1.0: - resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} - engines: {node: '>=10.13'} - dependencies: - js-yaml: 4.1.0 - strip-bom: 4.0.0 - dev: false - - /readable-stream/2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: false - - /readable-stream/3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: false - - /readdir-scoped-modules/1.1.0: - resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} - deprecated: This functionality has been moved to @npmcli/fs - dependencies: - debuglog: 1.0.1 - dezalgo: 1.0.4 - graceful-fs: 4.2.11 - once: 1.4.0 - dev: false - - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: false - - /redent/3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - dev: false - - /reflect.getprototypeof/1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - dev: false - - /regexp.prototype.flags/1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - dev: false - - /registry-auth-token/4.2.2: - resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} - engines: {node: '>=6.0.0'} - dependencies: - rc: 1.2.8 - dev: false - - /registry-url/5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} - dependencies: - rc: 1.2.8 - dev: false - - /require-directory/2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: false - - /require-from-string/2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: false - - /require-package-name/2.0.1: - resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==} - dev: false - - /requires-port/1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: false - - /resolve-dir/1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - global-modules: 1.0.0 - dev: false - - /resolve-from/4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: false - - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: false - - /resolve/1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: false - - /responselike/1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} - dependencies: - lowercase-keys: 1.0.1 - dev: false - - /restore-cursor/3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: false - - /reusify/1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: false - - /rfc4648/1.5.4: - resolution: {integrity: sha512-rRg/6Lb+IGfJqO05HZkN50UtY7K/JhxJag1kP23+zyMfrvoB0B7RWv06MbOzoc79RgCdNTiUaNsTT1AJZ7Z+cg==} - dev: false - - /run-async/2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: false - - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: false - - /rxjs/6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - dependencies: - tslib: 1.14.1 - dev: false - - /safe-array-concat/1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - dev: false - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: false - - /safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: false - - /safe-push-apply/1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - dev: false - - /safe-regex-test/1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - dev: false - - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: false - - /sax/1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - dev: false - - /semver-compare/1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} - dev: false - - /semver-diff/3.1.1: - resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: false - - /semver/5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - dev: false - - /semver/6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: false - - /semver/7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: false - - /semver/7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - dev: false - - /set-function-length/1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - dev: false - - /set-function-name/2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - dev: false - - /set-immediate-shim/1.0.1: - resolution: {integrity: sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==} - engines: {node: '>=0.10.0'} - dev: false - - /set-proto/1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - dev: false - - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: false - - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: false - - /side-channel-list/1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - dev: false - - /side-channel-map/1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - dev: false - - /side-channel-weakmap/1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - dev: false - - /side-channel/1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - dev: false - - /signal-exit/3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: false - - /sisteransi/1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: false - - /slash/3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: false - - /slash/4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - dev: false - - /sort-keys/4.2.0: - resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} - engines: {node: '>=8'} - dependencies: - is-plain-obj: 2.1.0 - dev: false - - /source-map-js/1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - dev: false - - /spdx-correct/3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.21 - dev: false - - /spdx-exceptions/2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - dev: false - - /spdx-expression-parse/3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 - dev: false - - /spdx-license-ids/3.0.21: - resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} - dev: false - - /split/0.3.3: - resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} - dependencies: - through: 2.3.8 - dev: false - - /sprintf-js/1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: false - - /ssri/8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: false - - /stackframe/1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - dev: false - - /stoppable/1.1.0: - resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} - engines: {node: '>=4', npm: '>=6'} - dev: false - - /stream-combiner/0.0.4: - resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} - dependencies: - duplexer: 0.1.2 - dev: false - - /strict-uri-encode/2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - dev: false - - /string-argv/0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - dev: false - - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: false - - /string.prototype.replaceall/1.0.6: - resolution: {integrity: sha512-OA8VDhE7ssNFlyoDXUHxw6V5cjgPrtosyJKqJX5i1P5tV9eUynsbhx1yz0g+Ye4fjFwAxhKLxt8GSRx2Aqc+Sw==} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - is-regex: 1.2.1 - dev: false - - /string.prototype.trim/1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - dev: false - - /string.prototype.trimend/1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - dev: false - - /string.prototype.trimstart/1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - dev: false - - /string_decoder/1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: false - - /string_decoder/1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: false - - /strip-bom/3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: false - - /strip-bom/4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: false - - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: false - - /strip-indent/3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: false - - /strip-json-comments/2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: false - - /strip-json-comments/3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: false - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: false - - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: false - - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: false - - /tapable/2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - dev: false - - /tar/6.1.15: - resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} - engines: {node: '>=10'} - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - dev: false - - /text-table/0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: false - - /thenify-all/1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: false - - /thenify/3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: false - - /throat/6.0.2: - resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} - dev: false - - /through/2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: false - - /tmp/0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: false - - /to-readable-stream/1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} - dev: false - - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: false - - /tough-cookie/4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} - dependencies: - psl: 1.15.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 - dev: false - - /tr46/0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: false - - /trim-newlines/3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: false - - /true-case-path/2.2.1: - resolution: {integrity: sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==} - dev: false - - /ts-node/10.9.2_5gorizoetxxmrnbx6xopn2qxji: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.2 - acorn: 8.14.1 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.9.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: false - - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: false - - /tslib/2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - dev: false - - /tunnel/0.0.6: - resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} - engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - dev: false - - /type-fest/0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - dev: false - - /type-fest/0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: false - - /type-fest/0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: false - - /type-fest/0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: false - - /type-fest/0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: false - - /typed-array-buffer/1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - dev: false - - /typed-array-byte-length/1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - dev: false - - /typed-array-byte-offset/1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - dev: false - - /typed-array-length/1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - dev: false - - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: false - - /typescript/4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true - - /unbox-primitive/1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - dev: false - - /undici-types/6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - /unique-string/2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - dependencies: - crypto-random-string: 2.0.0 - dev: false - - /universalify/0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: false - - /universalify/0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - dev: false - - /universalify/2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - dev: false - - /update-notifier/5.1.0: - resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} - engines: {node: '>=10'} - dependencies: - boxen: 5.1.2 - chalk: 4.1.2 - configstore: 5.0.1 - has-yarn: 2.1.0 - import-lazy: 2.1.0 - is-ci: 2.0.0 - is-installed-globally: 0.4.0 - is-npm: 5.0.0 - is-yarn-global: 0.3.0 - latest-version: 5.1.0 - pupa: 2.1.1 - semver: 7.3.8 - semver-diff: 3.1.1 - xdg-basedir: 4.0.0 - dev: false - - /url-parse-lax/3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} - engines: {node: '>=4'} - dependencies: - prepend-http: 2.0.0 - dev: false - - /url-parse/1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - dev: false - - /util-deprecate/1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: false - - /uuid/8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: false - - /v8-compile-cache-lib/3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: false - - /validate-npm-package-license/3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - dev: false - - /validate-npm-package-name/3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} - dependencies: - builtins: 1.0.3 - dev: false - - /validator/13.15.0: - resolution: {integrity: sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA==} - engines: {node: '>= 0.10'} - dev: false - - /wcwidth/1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - dependencies: - defaults: 1.0.4 - dev: false - - /webidl-conversions/3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: false - - /whatwg-url/5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - dev: false - - /which-boxed-primitive/1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - dev: false - - /which-builtin-type/1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.19 - dev: false - - /which-collection/1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - dev: false - - /which-pm/2.2.0: - resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} - engines: {node: '>=8.15'} - dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 - dev: false - - /which-typed-array/1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - dev: false - - /which/1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: false - - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: false - - /widest-line/3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - dependencies: - string-width: 4.2.3 - dev: false - - /wordwrap/1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: false - - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: false - - /wrappy/1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: false - - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: false - - /write-yaml-file/4.2.0: - resolution: {integrity: sha512-LwyucHy0uhWqbrOkh9cBluZBeNVxzHjDaE9mwepZG3n3ZlbM4v3ndrFw51zW/NXYFFqP+QWZ72ihtLWTh05e4Q==} - engines: {node: '>=10.13'} - dependencies: - js-yaml: 4.1.0 - write-file-atomic: 3.0.3 - dev: false - - /xdg-basedir/4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} - dev: false - - /xml2js/0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} - engines: {node: '>=4.0.0'} - dependencies: - sax: 1.4.1 - xmlbuilder: 11.0.1 - dev: false - - /xmlbuilder/11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - dev: false - - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: false - - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: false - - /yaml/1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: false - - /yargs-parser/20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: false - - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: false - - /yn/3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: false - - /yocto-queue/0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: false - - /z-schema/5.0.5: - resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} - engines: {node: '>=8.0.0'} - hasBin: true - dependencies: - lodash.get: 4.4.2 - lodash.isequal: 4.5.0 - validator: 13.15.0 - optionalDependencies: - commander: 9.5.0 - dev: false - - /zx/4.2.0: - resolution: {integrity: sha512-/4f7FaJecA9I655KXKXIHO3CFNYjAz2uSmTz6v2eNlKdrQKyz4VyF3RjqFuP6nQG+Hd3+NjOvrVNBkv8Ne9d4Q==} - engines: {node: '>= 14.13.0'} - hasBin: true - dependencies: - '@types/fs-extra': 9.0.13 - '@types/minimist': 1.2.2 - '@types/node': 16.18.126 - '@types/node-fetch': 2.6.12 - chalk: 4.1.2 - fs-extra: 10.1.0 - globby: 12.2.0 - minimist: 1.2.6 - node-fetch: 2.7.0 - ps-tree: 1.2.0 - which: 2.0.2 - transitivePeerDependencies: - - encoding - dev: false diff --git a/common/autoinstallers/create/src/cli.ts b/common/autoinstallers/create/src/cli.ts deleted file mode 100644 index b2d3a019..00000000 --- a/common/autoinstallers/create/src/cli.ts +++ /dev/null @@ -1,150 +0,0 @@ -import minimist, { ParsedArgs } from 'minimist' -import fs, { promises as fsp, constants } from 'fs' -import path from 'path' -import chalk from 'chalk' -import prompts from 'prompts' -import { RushConfiguration } from '@microsoft/rush-lib' -import { $ } from 'zx' -import readline from 'readline' -import { createProject } from './create' -import { logger } from './logger' - -export enum ProjectType { - Library = 'lib', - // Infra = 'infra', - // Component = 'component', - // App = 'app', -} - -export interface CreateScriptArgv extends ParsedArgs { - name?: string; - // type: ProjectType; -} - -export const PACKAGE_NAME_SCOPE = 'visactor'; - -function verifyProjectName(name?: string): { valid: boolean; message?: string } { - if (!name) { - return { - valid: false, - message: `project name can't be empty"`, - } - } - - if (name.match(new RegExp(`/^@?${PACKAGE_NAME_SCOPE}/`))) { - return { - valid: false, - message: `don't input with prefix 'PACKAGE_NAME_SCOPE'`, - } - } - - const projects = RushConfiguration.loadFromDefaultLocation({ - startingFolder: process.cwd(), - }) - const isExistsProject = projects.findProjectByShorthandName(`@${PACKAGE_NAME_SCOPE}/${name}`) - if (isExistsProject) { - return { - valid: false, - message: 'project name has exists in rush.json `projects` field', - } - } - - if (!name.match(/^[a-z.-]+$/)) { - return { - valid: false, - message: 'package name only support chars: a-z . -', - } - } - - return { valid: true } -} - -function getProjectRelativePath(type: ProjectType, projectName: string) { - const projectPathMap: Record = { - lib: 'packages', - // infra: 'infra', - } - - return `${projectPathMap[type]}/${projectName}` -} - -async function create() { - const argv = minimist(process.argv.slice(2)) as CreateScriptArgv - - let projectName = argv.name - - if (!projectName) { - const { name } = await prompts({ - type: 'text', - name: 'name', - message: `What's your project named? ${chalk.reset.gray(`(@${PACKAGE_NAME_SCOPE}/_____)`)}`, - validate: (name) => { - const { valid, message } = verifyProjectName(name) - if (valid) { - return true - } - return message! - }, - }) - - projectName = name - } - - const { valid, message } = verifyProjectName(projectName) - if (!valid) { - logger.error(message) - process.exit(1) - } - - const projectRelativePath = getProjectRelativePath(ProjectType.Library, projectName!) - const projectPath = path.resolve(process.cwd(), projectRelativePath) - try { - await fsp.access(projectPath, constants.R_OK | constants.W_OK) - logger.error(`The path ${projectRelativePath} you will created exists`) - process.exit(1) - } catch (_err) {} - - const { description = '' } = await prompts({ - type: 'text', - name: 'description', - message: `description of project ${chalk.reset.gray('(default: "")')}`, - }) - - await createProject(projectName!, projectRelativePath, description, argv) - - await appendProjectToRushJson(projectName!, projectRelativePath) - - $`rush --debug update` -} - - -function appendProjectToRushJson(packageName: string, projectRelativePath: string) { - return new Promise((resolve) => { - const rushJsonPath = path.resolve(process.cwd(), 'rush.json') - - const result: string[] = [] - const rl = readline.createInterface({ input: fs.createReadStream(rushJsonPath) }) - rl.on('line', (l) => { - if (l.trim().startsWith('"projects":')) { - result.push(l) - result.push(' {') - result.push(` "packageName": "@${PACKAGE_NAME_SCOPE}/${packageName}",`) - result.push(` "projectFolder": "${projectRelativePath}",`) - result.push(` "shouldPublish": false`) - result.push(' },') - } else { - result.push(l) - } - }) - - rl.on('close', () => { - fs.writeFileSync(rushJsonPath, result.join('\n'), { encoding: 'utf-8' }) - logger.info(`Append project ${packageName} to rush.json successful`) - resolve(undefined) - }) - }) -} - -create().catch((err) => { - console.error('[rush create] failed', err) -}) diff --git a/common/autoinstallers/create/src/create.ts b/common/autoinstallers/create/src/create.ts deleted file mode 100644 index 01e57ba0..00000000 --- a/common/autoinstallers/create/src/create.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { logger } from './logger' -import { getTemplateDir, appleTemplateProject } from './template' -import type { CreateScriptArgv, ProjectType } from './cli' -import { PACKAGE_NAME_SCOPE } from './cli' - -export type Creator = (params: { - projectName: string; - projectRelativePath: string; - description: string; -}) => Promise; - -export const createLibrary: Creator = async ({ projectName, description, projectRelativePath }) => { - // absolute path - const templateProject = getTemplateDir('library') - - await appleTemplateProject({ - sourceDir: templateProject, - targetDir: projectRelativePath, - context: { - projectName, - description, - scope: PACKAGE_NAME_SCOPE, - }, - }) -} - -export const createInfra: Creator = async ({ projectName, description, projectRelativePath }) => { - // absolute path - const templateProject = getTemplateDir('infra') - - await appleTemplateProject({ - sourceDir: templateProject, - targetDir: projectRelativePath, - context: { - projectName, - description, - scope: PACKAGE_NAME_SCOPE, - }, - }) -} - -const creatorMap: Partial> = { - lib: createLibrary, - // infra: createInfra, -} - -export const createProject = async ( - projectName: string, - projectRelativePath: string, - description: string, - _options: CreateScriptArgv, -) => { - logger.info(`creating project "@${PACKAGE_NAME_SCOPE}/${projectName}" ...`) - - const creator = creatorMap['lib']! - await creator({ projectName, description, projectRelativePath }) - - logger.info(`created in \`${projectRelativePath}\``) -} diff --git a/common/autoinstallers/create/src/global.d.ts b/common/autoinstallers/create/src/global.d.ts deleted file mode 100644 index 5d0c8349..00000000 --- a/common/autoinstallers/create/src/global.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare module 'string.prototype.replaceall' { - type ReplaceAll = (source: string, sbuStr: RegExp | string, newSubStr: string) => string; - - const replaceAll: ReplaceAll = () => {} - - export default replaceAll -} diff --git a/common/autoinstallers/create/src/logger.ts b/common/autoinstallers/create/src/logger.ts deleted file mode 100644 index 99a1277d..00000000 --- a/common/autoinstallers/create/src/logger.ts +++ /dev/null @@ -1,15 +0,0 @@ -import chalk from 'chalk' - -export const logger = { - info: (...messages: any[]) => console.info( - chalk.greenBright.bold('[rush create]'), - ...messages, - ), - - error: (...messages: any[]) => { - console.error( - chalk.redBright.bold('[rush create][error]'), - ...messages, - ) - }, -} diff --git a/common/autoinstallers/create/src/template.ts b/common/autoinstallers/create/src/template.ts deleted file mode 100644 index 56dee976..00000000 --- a/common/autoinstallers/create/src/template.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* eslint-disable no-await-in-loop */ -import path from 'path' -import { promises as fs, existsSync } from 'fs' -import glob from 'fast-glob' -import replaceAll from 'string.prototype.replaceall' - -/** template variables context */ -export interface TemplateContext { - projectName: string; - description: string; - scope: string; -} - -export const getTemplateDir = (mode: string) => path.join(__dirname, '../templates', mode) - -/** - * compile the template text with Handlebars like syntax - * https://handlebarsjs.com/guide/expressions.html#basic-usage - */ -export const compileTemplateText = (template: string, context: TemplateContext): string => { - let result = template - - for (const [key, value] of Object.entries(context)) { - // nodejs < 14 not supported `replaceAll` - result = replaceAll(result, `{{${key}}}`, value) - } - - return result -} - -export const appleTemplateProject = async ({ - sourceDir, - targetDir, - context, -}: { - /** absolute path for template project dir */ - sourceDir: string; - /** path relative from cwd */ - targetDir: string; - /** template variables context */ - context: TemplateContext; -}) => { - // path relative from templateProject - const files = await glob(['**/*', '**/.*'], { cwd: sourceDir }) - - for (const file of files) { - const sourceFilePath = path.join(sourceDir, file) - const targetFilePath = path.join(targetDir, file) - console.info('[appleTemplateProject]', sourceFilePath) - const sourceFile = await fs.readFile(sourceFilePath, { encoding: 'utf-8' }) - - const targetFile = compileTemplateText(sourceFile, context) - - const targetFileDir = path.dirname(targetFilePath) - if (!existsSync(targetFileDir)) { - await fs.mkdir(targetFileDir, { recursive: true }) - } - - await fs.writeFile(targetFilePath, targetFile, { flag: 'w', encoding: 'utf-8' }) - } -} diff --git a/common/autoinstallers/create/templates/library/.eslintrc.js b/common/autoinstallers/create/templates/library/.eslintrc.js deleted file mode 100644 index d3df3db1..00000000 --- a/common/autoinstallers/create/templates/library/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -require('@rushstack/eslint-patch/modern-module-resolution'); - -module.exports = { - extends: ['@internal/eslint-config/profile/lib'], - parserOptions: { tsconfigRootDir: __dirname }, - // ignorePatterns: [], -}; diff --git a/common/autoinstallers/create/templates/library/README.md b/common/autoinstallers/create/templates/library/README.md deleted file mode 100644 index 24315ddc..00000000 --- a/common/autoinstallers/create/templates/library/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# @{{scope}}/{{projectName}} - -## Description - -{{description}} - -## Usage - -```typescript -import { xxx } from '@{{scope}}/{{projectName}}'; -``` diff --git a/common/autoinstallers/create/templates/library/bundler.config.js b/common/autoinstallers/create/templates/library/bundler.config.js deleted file mode 100644 index ec3d3af4..00000000 --- a/common/autoinstallers/create/templates/library/bundler.config.js +++ /dev/null @@ -1,4 +0,0 @@ - -module.exports = { - formats: ["cjs", "es", "umd"], -}; diff --git a/common/autoinstallers/create/templates/library/package.json b/common/autoinstallers/create/templates/library/package.json deleted file mode 100644 index ae46574a..00000000 --- a/common/autoinstallers/create/templates/library/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "@{{scope}}/{{projectName}}", - "version": "0.0.1", - "description": "{{description}}", - "sideEffects": false, - "main": "cjs/index.js", - "module": "es/index.js", - "types": "es/index.d.ts", - "files": [ - "cjs", - "es", - "dist" - ], - "scripts": { - "compile": "tsc --noEmit", - "eslint": "eslint --debug --fix src/", - "build": "bundle", - "dev": "bundle --clean -f es -w", - "start": "vite ./vite", - "prepublishOnly": "npm run build" - }, - "dependencies": {}, - "devDependencies": { - "@internal/bundler": "workspace:*", - "@internal/eslint-config": "workspace:*", - "@internal/ts-config": "workspace:*", - "@rushstack/eslint-patch": "~1.1.4", - "react": "^18.0.0", - "react-dom": "^18.0.0", - "@types/react": "^18.0.0", - "@types/react-dom": "^18.0.0", - "@vitejs/plugin-react": "3.1.0", - "eslint": "~8.18.0", - "vite": "3.2.6", - "typescript": "4.9.5" - } -} diff --git a/common/autoinstallers/create/templates/library/src/global.d.ts b/common/autoinstallers/create/templates/library/src/global.d.ts deleted file mode 100644 index 415c2c82..00000000 --- a/common/autoinstallers/create/templates/library/src/global.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare const __VERSION__: string; diff --git a/common/autoinstallers/create/templates/library/src/index.ts b/common/autoinstallers/create/templates/library/src/index.ts deleted file mode 100644 index a45af27d..00000000 --- a/common/autoinstallers/create/templates/library/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export const version = __VERSION__; diff --git a/common/autoinstallers/create/templates/library/tsconfig.json b/common/autoinstallers/create/templates/library/tsconfig.json deleted file mode 100644 index 47fb0bf8..00000000 --- a/common/autoinstallers/create/templates/library/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "@internal/ts-config/tsconfig.base.json", - "compilerOptions": { - "baseUrl": ".", - "outDir": "output" - }, - "include": [ - "src" - ] -} diff --git a/common/autoinstallers/create/templates/library/vite/index.html b/common/autoinstallers/create/templates/library/vite/index.html deleted file mode 100644 index e0d1c840..00000000 --- a/common/autoinstallers/create/templates/library/vite/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Vite + React + TS - - -
- - - diff --git a/common/autoinstallers/create/templates/library/vite/public/vite.svg b/common/autoinstallers/create/templates/library/vite/public/vite.svg deleted file mode 100644 index e7b8dfb1..00000000 --- a/common/autoinstallers/create/templates/library/vite/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/common/autoinstallers/create/templates/library/vite/src/App.css b/common/autoinstallers/create/templates/library/vite/src/App.css deleted file mode 100644 index b9d355df..00000000 --- a/common/autoinstallers/create/templates/library/vite/src/App.css +++ /dev/null @@ -1,42 +0,0 @@ -#root { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: filter 300ms; -} -.logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); -} -.logo.react:hover { - filter: drop-shadow(0 0 2em #61dafbaa); -} - -@keyframes logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -@media (prefers-reduced-motion: no-preference) { - a:nth-of-type(2) .logo { - animation: logo-spin infinite 20s linear; - } -} - -.card { - padding: 2em; -} - -.read-the-docs { - color: #888; -} diff --git a/common/autoinstallers/create/templates/library/vite/src/App.tsx b/common/autoinstallers/create/templates/library/vite/src/App.tsx deleted file mode 100644 index d6dcc835..00000000 --- a/common/autoinstallers/create/templates/library/vite/src/App.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React, { useState } from 'react'; -import reactLogo from './assets/react.svg'; -import viteLogo from '/vite.svg'; -import './App.css'; - -function App() { - const [count, setCount] = useState(0); - - return ( - <> - -

Vite + React

-
- -

- Edit src/App.tsx and save to test HMR -

-
-

Click on the Vite and React logos to learn more

- - ); -} - -export default App; diff --git a/common/autoinstallers/create/templates/library/vite/src/assets/react.svg b/common/autoinstallers/create/templates/library/vite/src/assets/react.svg deleted file mode 100644 index 6c87de9b..00000000 --- a/common/autoinstallers/create/templates/library/vite/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/common/autoinstallers/create/templates/library/vite/src/index.css b/common/autoinstallers/create/templates/library/vite/src/index.css deleted file mode 100644 index 2c3fac68..00000000 --- a/common/autoinstallers/create/templates/library/vite/src/index.css +++ /dev/null @@ -1,69 +0,0 @@ -:root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} diff --git a/common/autoinstallers/create/templates/library/vite/src/main.tsx b/common/autoinstallers/create/templates/library/vite/src/main.tsx deleted file mode 100644 index b3ad8a59..00000000 --- a/common/autoinstallers/create/templates/library/vite/src/main.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App.tsx'; -import './index.css'; - -ReactDOM.render( - - - , - document.getElementById('root') as HTMLElement -); diff --git a/common/autoinstallers/create/templates/library/vite/src/vite-env.d.ts b/common/autoinstallers/create/templates/library/vite/src/vite-env.d.ts deleted file mode 100644 index 11f02fe2..00000000 --- a/common/autoinstallers/create/templates/library/vite/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/common/autoinstallers/create/templates/library/vite/tsconfig.json b/common/autoinstallers/create/templates/library/vite/tsconfig.json deleted file mode 100644 index 4af7feed..00000000 --- a/common/autoinstallers/create/templates/library/vite/tsconfig.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "lib": [ - "DOM", - "DOM.Iterable", - "ESNext" - ], - "module": "ESNext", - "skipLibCheck": true, - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react", - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": [ - "src" - ], - "references": [ - { - "path": "./tsconfig.node.json" - } - ] -} diff --git a/common/autoinstallers/create/templates/library/vite/tsconfig.node.json b/common/autoinstallers/create/templates/library/vite/tsconfig.node.json deleted file mode 100644 index 42872c59..00000000 --- a/common/autoinstallers/create/templates/library/vite/tsconfig.node.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/common/autoinstallers/create/templates/library/vite/vite.config.ts b/common/autoinstallers/create/templates/library/vite/vite.config.ts deleted file mode 100644 index c8f4f283..00000000 --- a/common/autoinstallers/create/templates/library/vite/vite.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react({ jsxRuntime: 'classic' })] -}); diff --git a/common/autoinstallers/create/tsconfig.json b/common/autoinstallers/create/tsconfig.json deleted file mode 100644 index 51771570..00000000 --- a/common/autoinstallers/create/tsconfig.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "include": ["src"], - "exclude": ["template"], - "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": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - "lib": ["esnext"], /* 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": "ESNext", /* 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": ["node"], /* 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": "./", /* 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. */ - }, - "ts-node": { - "transpileOnly": true, - "compilerOptions": { - "module": "commonjs", - }, - } -} diff --git a/common/autoinstallers/lint/change-all.ts b/common/autoinstallers/lint/change-all.ts deleted file mode 100644 index 4b3a7fe4..00000000 --- a/common/autoinstallers/lint/change-all.ts +++ /dev/null @@ -1,68 +0,0 @@ -import path from 'path'; -import chalk from 'chalk'; -import minimist, { ParsedArgs } from 'minimist'; -import { spawnSync, execSync } from 'child_process'; - -interface RunScriptArgv extends ParsedArgs { - message?: string; - type?: string; - 'not-commit'?: boolean; -} - -function run() { - const commitLineConfigPath = path.resolve(__dirname, './commitlint.config.js'); - const commitLintBinPath = path.resolve(__dirname, './node_modules/.bin/commitlint'); - const argv: RunScriptArgv = minimist(process.argv.slice(2)); - let message = argv.message; - let bumpType = argv.type; - let notCommit = argv['not-commit']; - - if (!message) { - const lastCommitMessage = execSync('git log -1 --pretty=%B ').toString(); - - if (!lastCommitMessage) { - process.exit(1); - } - - console.log( - chalk.green( - `[Notice] no message is supplied, we'll use latest commit message: ${chalk.red.bold(lastCommitMessage)}` - ) - ); - message = lastCommitMessage; - } else { - const result = spawnSync('sh', ['-c', `echo ${message} | ${commitLintBinPath} --config ${commitLineConfigPath}`], { - stdio: 'inherit' - }); - - if (result.status !== 0) { - process.exit(1); - } - } - - if (!bumpType) { - console.log( - chalk.green(`[Notice] no bumpType is supplied, we'll use default bumpType: ${chalk.red.bold('patch')}`) - ); - bumpType = 'patch'; - } - - spawnSync('sh', ['-c', `rush change --bulk --bump-type '${bumpType}' --message '${message}'`], { - stdio: 'inherit', - shell: false - }); - - if (!notCommit) { - spawnSync('sh', ['-c', 'git add --all'], { - stdio: 'inherit', - shell: false - }); - - spawnSync('sh', ['-c', `git commit -m 'docs: update changlog of rush'`], { - stdio: 'inherit', - shell: false - }); - } -} - -run(); diff --git a/common/autoinstallers/lint/commit-lint.js b/common/autoinstallers/lint/commit-lint.js deleted file mode 100644 index 75cdd717..00000000 --- a/common/autoinstallers/lint/commit-lint.js +++ /dev/null @@ -1,24 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const child_process = require("child_process"); - -const gitPath = path.resolve(__dirname, "../../../.git"); -const configPath = path.resolve(__dirname, "./commitlint.config.js"); -const commitlintBinPath = path.resolve(__dirname, "./node_modules/.bin/commitlint"); - -if (!fs.existsSync(gitPath)) { - console.error("no valid .git path"); - process.exit(1); -} - -const result = child_process.spawnSync( - "sh", - ["-c", `${commitlintBinPath} --config ${configPath} --cwd ${path.dirname(gitPath)} --edit`], - { - stdio: "inherit", - }, -); - -if (result.status !== 0) { - process.exit(1); -} diff --git a/common/autoinstallers/lint/commitlint.config.js b/common/autoinstallers/lint/commitlint.config.js deleted file mode 100644 index f505321c..00000000 --- a/common/autoinstallers/lint/commitlint.config.js +++ /dev/null @@ -1,44 +0,0 @@ -module.exports = { - extends: ['@commitlint/config-conventional'], - rules: { - 'not-allowed-chars': [2, 'always'], - 'header-max-length': [0, 'always', 200], - 'header-min-length': [2, 'always', 16], - 'type-enum': [ - 2, - 'always', - [ - 'build', - 'chore', - 'ci', - 'docs', - 'feat', - 'fix', - 'perf', - 'refactor', - 'revert', - 'style', - 'test', - 'wip', - 'release', - 'demo' - ] - ] - }, - plugins: [ - { - rules: { - 'not-allowed-chars': params => { - const { raw } = params; - const reg = - /^[a-zA-Z0-9\s`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]+$/im; - - return [ - reg.exec(raw), - 'Your commit message should only contain english characters, numbers, empty space, and special characters.' - ]; - } - } - } - ] -}; diff --git a/common/autoinstallers/lint/package.json b/common/autoinstallers/lint/package.json deleted file mode 100644 index e416797b..00000000 --- a/common/autoinstallers/lint/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "lint", - "version": "0.0.1", - "private": true, - "dependencies": { - "@commitlint/cli": "17.0.3", - "@commitlint/config-conventional": "17.0.3", - "@microsoft/rush-lib": "5.94.1", - "commitizen": "4.2.5", - "eslint": "~8.18.0", - "lint-staged": "13.0.3", - "minimist": "1.2.6", - "prettier": "2.7.1", - "ts-node": "^10.9.2", - "chalk": "4.1.2" - }, - "devDependencies": { - "@types/minimist": "1.2.2", - "@types/node": "*", - "typescript": "5.0.2" - } -} diff --git a/common/autoinstallers/lint/pnpm-lock.yaml b/common/autoinstallers/lint/pnpm-lock.yaml deleted file mode 100644 index 4b5ff6de..00000000 --- a/common/autoinstallers/lint/pnpm-lock.yaml +++ /dev/null @@ -1,5127 +0,0 @@ -lockfileVersion: 5.4 - -specifiers: - '@commitlint/cli': 17.0.3 - '@commitlint/config-conventional': 17.0.3 - '@microsoft/rush-lib': 5.94.1 - '@types/minimist': 1.2.2 - '@types/node': '*' - chalk: 4.1.2 - commitizen: 4.2.5 - eslint: ~8.18.0 - lint-staged: 13.0.3 - minimist: 1.2.6 - prettier: 2.7.1 - ts-node: ^10.9.2 - typescript: 5.0.2 - -dependencies: - '@commitlint/cli': 17.0.3 - '@commitlint/config-conventional': 17.0.3 - '@microsoft/rush-lib': 5.94.1_@types+node@22.15.2 - chalk: 4.1.2 - commitizen: 4.2.5_sih53j22iwo4i6pyctnx5zarnu - eslint: 8.18.0 - lint-staged: 13.0.3 - minimist: 1.2.6 - prettier: 2.7.1 - ts-node: 10.9.2_sih53j22iwo4i6pyctnx5zarnu - -devDependencies: - '@types/minimist': 1.2.2 - '@types/node': 22.15.2 - typescript: 5.0.2 - -packages: - - /@azure/abort-controller/1.1.0: - resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} - engines: {node: '>=12.0.0'} - dependencies: - tslib: 2.8.1 - dev: false - - /@azure/abort-controller/2.1.2: - resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} - engines: {node: '>=18.0.0'} - dependencies: - tslib: 2.8.1 - dev: false - - /@azure/core-auth/1.9.0: - resolution: {integrity: sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==} - engines: {node: '>=18.0.0'} - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.11.0 - tslib: 2.8.1 - dev: false - - /@azure/core-client/1.9.3: - resolution: {integrity: sha512-/wGw8fJ4mdpJ1Cum7s1S+VQyXt1ihwKLzfabS1O/RDADnmzVc01dHn44qD0BvGH6KlZNzOMW95tEpKqhkCChPA==} - engines: {node: '>=18.0.0'} - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.9.0 - '@azure/core-rest-pipeline': 1.19.1 - '@azure/core-tracing': 1.2.0 - '@azure/core-util': 1.11.0 - '@azure/logger': 1.1.4 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@azure/core-http/2.3.2: - resolution: {integrity: sha512-Z4dfbglV9kNZO177CNx4bo5ekFuYwwsvjLiKdZI4r84bYGv3irrbQz7JC3/rUfFH2l4T/W6OFleJaa2X0IaQqw==} - engines: {node: '>=14.0.0'} - deprecated: This package is no longer supported. Please migrate to use @azure/core-rest-pipeline - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.9.0 - '@azure/core-tracing': 1.0.0-preview.13 - '@azure/core-util': 1.11.0 - '@azure/logger': 1.1.4 - '@types/node-fetch': 2.6.2 - '@types/tunnel': 0.0.3 - form-data: 4.0.2 - node-fetch: 2.6.7 - process: 0.11.10 - tough-cookie: 4.1.4 - tslib: 2.8.1 - tunnel: 0.0.6 - uuid: 8.3.2 - xml2js: 0.5.0 - transitivePeerDependencies: - - encoding - dev: false - - /@azure/core-lro/2.7.2: - resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==} - engines: {node: '>=18.0.0'} - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.11.0 - '@azure/logger': 1.1.4 - tslib: 2.8.1 - dev: false - - /@azure/core-paging/1.6.2: - resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} - engines: {node: '>=18.0.0'} - dependencies: - tslib: 2.8.1 - dev: false - - /@azure/core-rest-pipeline/1.19.1: - resolution: {integrity: sha512-zHeoI3NCs53lLBbWNzQycjnYKsA1CVKlnzSNuSFcUDwBp8HHVObePxrM7HaX+Ha5Ks639H7chNC9HOaIhNS03w==} - engines: {node: '>=18.0.0'} - dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.9.0 - '@azure/core-tracing': 1.2.0 - '@azure/core-util': 1.11.0 - '@azure/logger': 1.1.4 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@azure/core-tracing/1.0.0-preview.13: - resolution: {integrity: sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==} - engines: {node: '>=12.0.0'} - dependencies: - '@opentelemetry/api': 1.9.0 - tslib: 2.8.1 - dev: false - - /@azure/core-tracing/1.2.0: - resolution: {integrity: sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==} - engines: {node: '>=18.0.0'} - dependencies: - tslib: 2.8.1 - dev: false - - /@azure/core-util/1.11.0: - resolution: {integrity: sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==} - engines: {node: '>=18.0.0'} - dependencies: - '@azure/abort-controller': 2.1.2 - tslib: 2.8.1 - dev: false - - /@azure/identity/2.1.0: - resolution: {integrity: sha512-BPDz1sK7Ul9t0l9YKLEa8PHqWU4iCfhGJ+ELJl6c8CP3TpJt2urNCbm0ZHsthmxRsYoMPbz2Dvzj30zXZVmAFw==} - engines: {node: '>=12.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.9.0 - '@azure/core-client': 1.9.3 - '@azure/core-rest-pipeline': 1.19.1 - '@azure/core-tracing': 1.2.0 - '@azure/core-util': 1.11.0 - '@azure/logger': 1.1.4 - '@azure/msal-browser': 2.39.0 - '@azure/msal-common': 7.6.0 - '@azure/msal-node': 1.18.4 - events: 3.3.0 - jws: 4.0.0 - open: 8.4.2 - stoppable: 1.1.0 - tslib: 2.8.1 - uuid: 8.3.2 - transitivePeerDependencies: - - supports-color - dev: false - - /@azure/logger/1.1.4: - resolution: {integrity: sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==} - engines: {node: '>=18.0.0'} - dependencies: - tslib: 2.8.1 - dev: false - - /@azure/msal-browser/2.39.0: - resolution: {integrity: sha512-kks/n2AJzKUk+DBqZhiD+7zeQGBl+WpSOQYzWy6hff3bU0ZrYFqr4keFLlzB5VKuKZog0X59/FGHb1RPBDZLVg==} - engines: {node: '>=0.8.0'} - dependencies: - '@azure/msal-common': 13.3.3 - dev: false - - /@azure/msal-common/13.3.1: - resolution: {integrity: sha512-Lrk1ozoAtaP/cp53May3v6HtcFSVxdFrg2Pa/1xu5oIvsIwhxW6zSPibKefCOVgd5osgykMi5jjcZHv8XkzZEQ==} - engines: {node: '>=0.8.0'} - dev: false - - /@azure/msal-common/13.3.3: - resolution: {integrity: sha512-n278DdCXKeiWhLwhEL7/u9HRMyzhUXLefeajiknf6AmEedoiOiv2r5aRJ7LXdT3NGPyubkdIbthaJlVtmuEqvA==} - engines: {node: '>=0.8.0'} - dev: false - - /@azure/msal-common/7.6.0: - resolution: {integrity: sha512-XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==} - engines: {node: '>=0.8.0'} - dev: false - - /@azure/msal-node/1.18.4: - resolution: {integrity: sha512-Kc/dRvhZ9Q4+1FSfsTFDME/v6+R2Y1fuMty/TfwqE5p9GTPw08BPbKgeWinE8JRHRp+LemjQbUZsn4Q4l6Lszg==} - engines: {node: 10 || 12 || 14 || 16 || 18} - deprecated: A newer major version of this library is available. Please upgrade to the latest available version. - dependencies: - '@azure/msal-common': 13.3.1 - jsonwebtoken: 9.0.2 - uuid: 8.3.2 - dev: false - - /@azure/storage-blob/12.11.0: - resolution: {integrity: sha512-na+FisoARuaOWaHWpmdtk3FeuTWf2VWamdJ9/TJJzj5ZdXPLC3juoDgFs6XVuJIoK30yuBpyFBEDXVRK4pB7Tg==} - engines: {node: '>=12.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-http': 2.3.2 - '@azure/core-lro': 2.7.2 - '@azure/core-paging': 1.6.2 - '@azure/core-tracing': 1.0.0-preview.13 - '@azure/logger': 1.1.4 - events: 3.3.0 - tslib: 2.8.1 - transitivePeerDependencies: - - encoding - dev: false - - /@babel/code-frame/7.26.2: - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - dev: false - - /@babel/generator/7.27.0: - resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - dev: false - - /@babel/helper-string-parser/7.25.9: - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-validator-identifier/7.25.9: - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/parser/7.27.0: - resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.27.0 - dev: false - - /@babel/template/7.27.0: - resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - dev: false - - /@babel/traverse/7.27.0: - resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - debug: 4.4.0 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/types/7.27.0: - resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - dev: false - - /@commitlint/cli/17.0.3: - resolution: {integrity: sha512-oAo2vi5d8QZnAbtU5+0cR2j+A7PO8zuccux65R/EycwvsZrDVyW518FFrnJK2UQxbRtHFFIG+NjQ6vOiJV0Q8A==} - engines: {node: '>=v14'} - hasBin: true - dependencies: - '@commitlint/format': 17.8.1 - '@commitlint/lint': 17.8.1 - '@commitlint/load': 17.8.1 - '@commitlint/read': 17.8.1 - '@commitlint/types': 17.8.1 - execa: 5.1.1 - lodash: 4.17.21 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - dev: false - - /@commitlint/config-conventional/17.0.3: - resolution: {integrity: sha512-HCnzTm5ATwwwzNVq5Y57poS0a1oOOcd5pc1MmBpLbGmSysc4i7F/++JuwtdFPu16sgM3H9J/j2zznRLOSGVO2A==} - engines: {node: '>=v14'} - dependencies: - conventional-changelog-conventionalcommits: 5.0.0 - dev: false - - /@commitlint/config-validator/17.8.1: - resolution: {integrity: sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==} - engines: {node: '>=v14'} - dependencies: - '@commitlint/types': 17.8.1 - ajv: 8.17.1 - dev: false - - /@commitlint/config-validator/19.8.0: - resolution: {integrity: sha512-+r5ZvD/0hQC3w5VOHJhGcCooiAVdynFlCe2d6I9dU+PvXdV3O+fU4vipVg+6hyLbQUuCH82mz3HnT/cBQTYYuA==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 19.8.0 - ajv: 8.17.1 - dev: false - optional: true - - /@commitlint/ensure/17.8.1: - resolution: {integrity: sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==} - engines: {node: '>=v14'} - dependencies: - '@commitlint/types': 17.8.1 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.snakecase: 4.1.1 - lodash.startcase: 4.4.0 - lodash.upperfirst: 4.3.1 - dev: false - - /@commitlint/execute-rule/17.8.1: - resolution: {integrity: sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==} - engines: {node: '>=v14'} - dev: false - - /@commitlint/execute-rule/19.8.0: - resolution: {integrity: sha512-fuLeI+EZ9x2v/+TXKAjplBJWI9CNrHnyi5nvUQGQt4WRkww/d95oVRsc9ajpt4xFrFmqMZkd/xBQHZDvALIY7A==} - engines: {node: '>=v18'} - dev: false - optional: true - - /@commitlint/format/17.8.1: - resolution: {integrity: sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==} - engines: {node: '>=v14'} - dependencies: - '@commitlint/types': 17.8.1 - chalk: 4.1.2 - dev: false - - /@commitlint/is-ignored/17.8.1: - resolution: {integrity: sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==} - engines: {node: '>=v14'} - dependencies: - '@commitlint/types': 17.8.1 - semver: 7.5.4 - dev: false - - /@commitlint/lint/17.8.1: - resolution: {integrity: sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==} - engines: {node: '>=v14'} - dependencies: - '@commitlint/is-ignored': 17.8.1 - '@commitlint/parse': 17.8.1 - '@commitlint/rules': 17.8.1 - '@commitlint/types': 17.8.1 - dev: false - - /@commitlint/load/17.8.1: - resolution: {integrity: sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==} - engines: {node: '>=v14'} - dependencies: - '@commitlint/config-validator': 17.8.1 - '@commitlint/execute-rule': 17.8.1 - '@commitlint/resolve-extends': 17.8.1 - '@commitlint/types': 17.8.1 - '@types/node': 20.5.1 - chalk: 4.1.2 - cosmiconfig: 8.3.6_typescript@5.8.3 - cosmiconfig-typescript-loader: 4.4.0_iwag63elrqyuvuqfuez5hjipae - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - resolve-from: 5.0.0 - ts-node: 10.9.2_6v72ipms7rozpqco4327g2xjdm - typescript: 5.8.3 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - dev: false - - /@commitlint/load/19.8.0_sih53j22iwo4i6pyctnx5zarnu: - resolution: {integrity: sha512-4rvmm3ff81Sfb+mcWT5WKlyOa+Hd33WSbirTVUer0wjS1Hv/Hzr07Uv1ULIV9DkimZKNyOwXn593c+h8lsDQPQ==} - engines: {node: '>=v18'} - requiresBuild: true - dependencies: - '@commitlint/config-validator': 19.8.0 - '@commitlint/execute-rule': 19.8.0 - '@commitlint/resolve-extends': 19.8.0 - '@commitlint/types': 19.8.0 - chalk: 5.4.1 - cosmiconfig: 9.0.0_typescript@5.0.2 - cosmiconfig-typescript-loader: 6.1.0_hxwsehgdaco5p5wdty72tbvofq - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - transitivePeerDependencies: - - '@types/node' - - typescript - dev: false - optional: true - - /@commitlint/message/17.8.1: - resolution: {integrity: sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==} - engines: {node: '>=v14'} - dev: false - - /@commitlint/parse/17.8.1: - resolution: {integrity: sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==} - engines: {node: '>=v14'} - dependencies: - '@commitlint/types': 17.8.1 - conventional-changelog-angular: 6.0.0 - conventional-commits-parser: 4.0.0 - dev: false - - /@commitlint/read/17.8.1: - resolution: {integrity: sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==} - engines: {node: '>=v14'} - dependencies: - '@commitlint/top-level': 17.8.1 - '@commitlint/types': 17.8.1 - fs-extra: 11.3.0 - git-raw-commits: 2.0.11 - minimist: 1.2.6 - dev: false - - /@commitlint/resolve-extends/17.8.1: - resolution: {integrity: sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==} - engines: {node: '>=v14'} - dependencies: - '@commitlint/config-validator': 17.8.1 - '@commitlint/types': 17.8.1 - import-fresh: 3.3.1 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - dev: false - - /@commitlint/resolve-extends/19.8.0: - resolution: {integrity: sha512-CLanRQwuG2LPfFVvrkTrBR/L/DMy3+ETsgBqW1OvRxmzp/bbVJW0Xw23LnnExgYcsaFtos967lul1CsbsnJlzQ==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/config-validator': 19.8.0 - '@commitlint/types': 19.8.0 - global-directory: 4.0.1 - import-meta-resolve: 4.1.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - dev: false - optional: true - - /@commitlint/rules/17.8.1: - resolution: {integrity: sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==} - engines: {node: '>=v14'} - dependencies: - '@commitlint/ensure': 17.8.1 - '@commitlint/message': 17.8.1 - '@commitlint/to-lines': 17.8.1 - '@commitlint/types': 17.8.1 - execa: 5.1.1 - dev: false - - /@commitlint/to-lines/17.8.1: - resolution: {integrity: sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==} - engines: {node: '>=v14'} - dev: false - - /@commitlint/top-level/17.8.1: - resolution: {integrity: sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==} - engines: {node: '>=v14'} - dependencies: - find-up: 5.0.0 - dev: false - - /@commitlint/types/17.8.1: - resolution: {integrity: sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==} - engines: {node: '>=v14'} - dependencies: - chalk: 4.1.2 - dev: false - - /@commitlint/types/19.8.0: - resolution: {integrity: sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==} - engines: {node: '>=v18'} - dependencies: - '@types/conventional-commits-parser': 5.0.1 - chalk: 5.4.1 - dev: false - optional: true - - /@cspotcode/source-map-support/0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - dev: false - - /@devexpress/error-stack-parser/2.0.6: - resolution: {integrity: sha512-fneVypElGUH6Be39mlRZeAu00pccTlf4oVuzf9xPJD1cdEqI8NyAiQua/EW7lZdrbMUbgyXcJmfKPefhYius3A==} - dependencies: - stackframe: 1.3.4 - dev: false - - /@eslint/eslintrc/1.4.1: - resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.4.0 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@humanwhocodes/config-array/0.9.5: - resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.4.0 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /@humanwhocodes/object-schema/1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - deprecated: Use @eslint/object-schema instead - dev: false - - /@jridgewell/gen-mapping/0.3.8: - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - dev: false - - /@jridgewell/resolve-uri/3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/set-array/1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/sourcemap-codec/1.5.0: - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - dev: false - - /@jridgewell/trace-mapping/0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - dev: false - - /@jridgewell/trace-mapping/0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - dev: false - - /@microsoft/rush-lib/5.94.1_@types+node@22.15.2: - resolution: {integrity: sha512-qXeqtYYe4ImyYyaAIR+ZdZEpNUeOZSaP+sbfksvDu9oa4kNH+5pCemII8NSfmQd9Dx7zPGPNiGf4zE4/Jcs6VA==} - engines: {node: '>=5.6.0'} - dependencies: - '@pnpm/link-bins': 5.3.25 - '@rushstack/heft-config-file': 0.11.9_@types+node@22.15.2 - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@rushstack/package-deps-hash': 4.0.10_@types+node@22.15.2 - '@rushstack/rig-package': 0.3.18 - '@rushstack/rush-amazon-s3-build-cache-plugin': 5.94.1_@types+node@22.15.2 - '@rushstack/rush-azure-storage-build-cache-plugin': 5.94.1_@types+node@22.15.2 - '@rushstack/stream-collator': 4.0.228_@types+node@22.15.2 - '@rushstack/terminal': 0.5.3_@types+node@22.15.2 - '@rushstack/ts-command-line': 4.13.2 - '@types/node-fetch': 2.6.2 - '@yarnpkg/lockfile': 1.0.2 - builtin-modules: 3.1.0 - cli-table: 0.3.11 - colors: 1.2.5 - dependency-path: 9.2.8 - figures: 3.0.0 - git-repo-info: 2.1.1 - glob: 7.0.6 - glob-escape: 0.0.2 - https-proxy-agent: 5.0.1 - ignore: 5.1.9 - inquirer: 7.3.3 - js-yaml: 3.13.1 - jszip: 3.8.0 - lodash: 4.17.21 - node-fetch: 2.6.7 - npm-check: 6.0.1 - npm-package-arg: 6.1.1 - npm-packlist: 2.1.5 - read-package-tree: 5.1.6 - resolve: 1.22.10 - rxjs: 6.6.7 - semver: 7.3.8 - ssri: 8.0.1 - strict-uri-encode: 2.0.0 - tapable: 2.2.1 - tar: 6.1.15 - true-case-path: 2.2.1 - transitivePeerDependencies: - - '@types/node' - - encoding - - supports-color - dev: false - - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: false - - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: false - - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - dev: false - - /@opentelemetry/api/1.9.0: - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} - engines: {node: '>=8.0.0'} - dev: false - - /@pnpm/crypto.base32-hash/1.0.1: - resolution: {integrity: sha512-pzAXNn6KxTA3kbcI3iEnYs4vtH51XEVqmK/1EiD18MaPKylhqy8UvMJK3zKG+jeP82cqQbozcTGm4yOQ8i3vNw==} - engines: {node: '>=14.6'} - dependencies: - rfc4648: 1.5.4 - dev: false - - /@pnpm/error/1.4.0: - resolution: {integrity: sha512-vxkRrkneBPVmP23kyjnYwVOtipwlSl6UfL+h+Xa3TrABJTz5rYBXemlTsU5BzST8U4pD7YDkTb3SQu+MMuIDKA==} - engines: {node: '>=10.16'} - dev: false - - /@pnpm/link-bins/5.3.25: - resolution: {integrity: sha512-9Xq8lLNRHFDqvYPXPgaiKkZ4rtdsm7izwM/cUsFDc5IMnG0QYIVBXQbgwhz2UvjUotbJrvfKLJaCfA3NGBnLDg==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/error': 1.4.0 - '@pnpm/package-bins': 4.1.0 - '@pnpm/read-modules-dir': 2.0.3 - '@pnpm/read-package-json': 4.0.0 - '@pnpm/read-project-manifest': 1.1.7 - '@pnpm/types': 6.4.0 - '@zkochan/cmd-shim': 5.4.1 - is-subdir: 1.2.0 - is-windows: 1.0.2 - mz: 2.7.0 - normalize-path: 3.0.0 - p-settle: 4.1.1 - ramda: 0.27.2 - dev: false - - /@pnpm/package-bins/4.1.0: - resolution: {integrity: sha512-57/ioGYLBbVRR80Ux9/q2i3y8Q+uQADc3c+Yse8jr/60YLOi3jcWz13e2Jy+ANYtZI258Qc5wk2X077rp0Ly/Q==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/types': 6.4.0 - fast-glob: 3.3.3 - is-subdir: 1.2.0 - dev: false - - /@pnpm/read-modules-dir/2.0.3: - resolution: {integrity: sha512-i9OgRvSlxrTS9a2oXokhDxvQzDtfqtsooJ9jaGoHkznue5aFCTSrNZFQ6M18o8hC03QWfnxaKi0BtOvNkKu2+A==} - engines: {node: '>=10.13'} - dependencies: - mz: 2.7.0 - dev: false - - /@pnpm/read-package-json/4.0.0: - resolution: {integrity: sha512-1cr2tEwe4YU6SI0Hmg+wnsr6yxBt2iJtqv6wrF84On8pS9hx4A2PLw3CIgbwxaG0b+ur5wzhNogwl4qD5FLFNg==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/error': 1.4.0 - '@pnpm/types': 6.4.0 - load-json-file: 6.2.0 - normalize-package-data: 3.0.3 - dev: false - - /@pnpm/read-project-manifest/1.1.7: - resolution: {integrity: sha512-tj8ExXZeDcMmMUj7D292ETe/RiEirr1X1wpT6Zy85z2MrFYoG9jfCJpps40OdZBNZBhxbuKtGPWKVSgXD0yrVw==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/error': 1.4.0 - '@pnpm/types': 6.4.0 - '@pnpm/write-project-manifest': 1.1.7 - detect-indent: 6.1.0 - fast-deep-equal: 3.1.3 - graceful-fs: 4.2.4 - is-windows: 1.0.2 - json5: 2.2.3 - parse-json: 5.2.0 - read-yaml-file: 2.1.0 - sort-keys: 4.2.0 - strip-bom: 4.0.0 - dev: false - - /@pnpm/types/6.4.0: - resolution: {integrity: sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==} - engines: {node: '>=10.16'} - dev: false - - /@pnpm/types/8.9.0: - resolution: {integrity: sha512-3MYHYm8epnciApn6w5Fzx6sepawmsNU7l6lvIq+ER22/DPSrr83YMhU/EQWnf4lORn2YyiXFj0FJSyJzEtIGmw==} - engines: {node: '>=14.6'} - dev: false - - /@pnpm/write-project-manifest/1.1.7: - resolution: {integrity: sha512-OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/types': 6.4.0 - json5: 2.2.3 - mz: 2.7.0 - write-file-atomic: 3.0.3 - write-yaml-file: 4.2.0 - dev: false - - /@rushstack/heft-config-file/0.11.9_@types+node@22.15.2: - resolution: {integrity: sha512-01JFmD+G44v5btO0fVIbVBJCfGWLTN2l4Y/+IVU8D9eR14+wYJjV5CO25uxydDynMr334URFcITuzG21L9L0GA==} - engines: {node: '>=10.13.0'} - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@rushstack/rig-package': 0.3.18 - jsonpath-plus: 4.0.0 - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/node-core-library/3.55.2_@types+node@22.15.2: - resolution: {integrity: sha512-SaLe/x/Q/uBVdNFK5V1xXvsVps0y7h1sN7aSJllQyFbugyOaxhNRF25bwEDnicARNEjJw0pk0lYnJQ9Kr6ev0A==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@types/node': 22.15.2 - colors: 1.2.5 - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.10 - semver: 7.3.8 - z-schema: 5.0.5 - dev: false - - /@rushstack/package-deps-hash/4.0.10_@types+node@22.15.2: - resolution: {integrity: sha512-oW4M9olWay3qIpIULtpolh0MY1QprY2CqrrgUl7NpyMn1/r0laT8EUbkTylWRnytvXaNTDBlRz99+CdU1DKqgA==} - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/rig-package/0.3.18: - resolution: {integrity: sha512-SGEwNTwNq9bI3pkdd01yCaH+gAsHqs0uxfGvtw9b0LJXH52qooWXnrFTRRLG1aL9pf+M2CARdrA9HLHJys3jiQ==} - dependencies: - resolve: 1.22.10 - strip-json-comments: 3.1.1 - dev: false - - /@rushstack/rush-amazon-s3-build-cache-plugin/5.94.1_@types+node@22.15.2: - resolution: {integrity: sha512-NCZ5YscW9Qi9avvgspE76dfHtCcsSMpfm3X4D9gaTcGPyE7RpWY5yMTZhO31Z5g0NM6cw6eWEfKwJvZ5nGbnBQ==} - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@rushstack/rush-sdk': 5.94.1_@types+node@22.15.2 - https-proxy-agent: 5.0.1 - node-fetch: 2.6.7 - transitivePeerDependencies: - - '@types/node' - - encoding - - supports-color - dev: false - - /@rushstack/rush-azure-storage-build-cache-plugin/5.94.1_@types+node@22.15.2: - resolution: {integrity: sha512-uIdyoeGHyFlAnmAHF0KKDsg5KBde9nRl15x8wTr/zwzwydMMIdbfxHAMc3C78YE05SUYeIIut4qh5KCoEn9/Hw==} - dependencies: - '@azure/identity': 2.1.0 - '@azure/storage-blob': 12.11.0 - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@rushstack/rush-sdk': 5.94.1_@types+node@22.15.2 - '@rushstack/terminal': 0.5.3_@types+node@22.15.2 - transitivePeerDependencies: - - '@types/node' - - encoding - - supports-color - dev: false - - /@rushstack/rush-sdk/5.94.1_@types+node@22.15.2: - resolution: {integrity: sha512-T5euwYB4GzBGGCWCdk0djjHqsI7boGWKjutyNb+AguB7WsnRjDujEHC7CdosYtbsJo5caIwEdi9sspiaS4vyjA==} - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@types/node-fetch': 2.6.2 - tapable: 2.2.1 - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/stream-collator/4.0.228_@types+node@22.15.2: - resolution: {integrity: sha512-x7KR0IVNOEZBegdw7u2LVugD0U9uMw3IR1gPwV9bNWEC01cObc+9wk21suUxkzDtMVdKcNYoiZ814WnUqOF7pQ==} - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@rushstack/terminal': 0.5.3_@types+node@22.15.2 - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/terminal/0.5.3_@types+node@22.15.2: - resolution: {integrity: sha512-AFKlWyw6C3vWvRrkXIcchxUooNHSzZ0AS5mGbdon3tjnxhqnMitjdk0WZl2382i50Zz3WE6Fd3LFurVbrNrEyw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@rushstack/node-core-library': 3.55.2_@types+node@22.15.2 - '@types/node': 22.15.2 - wordwrap: 1.0.0 - dev: false - - /@rushstack/ts-command-line/4.13.2: - resolution: {integrity: sha512-bCU8qoL9HyWiciltfzg7GqdfODUeda/JpI0602kbN5YH22rzTxyqYvv7aRLENCM7XCQ1VRs7nMkEqgJUOU8Sag==} - dependencies: - '@types/argparse': 1.0.38 - argparse: 1.0.10 - colors: 1.2.5 - string-argv: 0.3.2 - dev: false - - /@sindresorhus/is/0.14.0: - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} - dev: false - - /@szmarczak/http-timer/1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} - dependencies: - defer-to-connect: 1.1.3 - dev: false - - /@tsconfig/node10/1.0.11: - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - dev: false - - /@tsconfig/node12/1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: false - - /@tsconfig/node14/1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: false - - /@tsconfig/node16/1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - dev: false - - /@types/argparse/1.0.38: - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - dev: false - - /@types/conventional-commits-parser/5.0.1: - resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} - dependencies: - '@types/node': 22.15.2 - dev: false - optional: true - - /@types/keyv/3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - dependencies: - '@types/node': 22.15.2 - dev: false - - /@types/lodash/4.17.16: - resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} - dev: false - - /@types/minimatch/3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - dev: false - - /@types/minimist/1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - - /@types/node-fetch/2.6.2: - resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} - dependencies: - '@types/node': 22.15.2 - form-data: 3.0.3 - dev: false - - /@types/node/20.5.1: - resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==} - dev: false - - /@types/node/22.15.2: - resolution: {integrity: sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==} - dependencies: - undici-types: 6.21.0 - - /@types/normalize-package-data/2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - dev: false - - /@types/parse-json/4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - dev: false - - /@types/responselike/1.0.3: - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - dependencies: - '@types/node': 22.15.2 - dev: false - - /@types/tunnel/0.0.3: - resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==} - dependencies: - '@types/node': 22.15.2 - dev: false - - /@vue/compiler-core/3.5.13: - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - dependencies: - '@babel/parser': 7.27.0 - '@vue/shared': 3.5.13 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - dev: false - - /@vue/compiler-dom/3.5.13: - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 - dev: false - - /@vue/compiler-sfc/3.5.13: - resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} - dependencies: - '@babel/parser': 7.27.0 - '@vue/compiler-core': 3.5.13 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - estree-walker: 2.0.2 - magic-string: 0.30.17 - postcss: 8.5.3 - source-map-js: 1.2.1 - dev: false - - /@vue/compiler-ssr/3.5.13: - resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} - dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 - dev: false - - /@vue/shared/3.5.13: - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - dev: false - - /@yarnpkg/lockfile/1.0.2: - resolution: {integrity: sha512-MqJ00WXw89ga0rK6GZkdmmgv3bAsxpJixyTthjcix73O44pBqotyU2BejBkLuIsaOBI6SEu77vAnSyLe5iIHkw==} - dev: false - - /@zkochan/cmd-shim/5.4.1: - resolution: {integrity: sha512-odWb1qUzt0dIOEUPyWBEpFDYQPRjEMr/dbHHAfgBkVkYR9aO7Zo+I7oYWrXIxl+cKlC7+49ftPm8uJxL1MA9kw==} - engines: {node: '>=10.13'} - dependencies: - cmd-extension: 1.0.2 - graceful-fs: 4.2.11 - is-windows: 1.0.2 - dev: false - - /JSONStream/1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: false - - /acorn-jsx/5.3.2_acorn@8.14.1: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.14.1 - dev: false - - /acorn-walk/8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - dependencies: - acorn: 8.14.1 - dev: false - - /acorn/8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: false - - /agent-base/6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - dev: false - - /agent-base/7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} - engines: {node: '>= 14'} - dev: false - - /aggregate-error/3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: false - - /ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: false - - /ajv/8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - dev: false - - /ansi-align/3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - dependencies: - string-width: 4.2.3 - dev: false - - /ansi-escapes/4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: false - - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: false - - /ansi-regex/6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - dev: false - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: false - - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: false - - /ansi-styles/6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: false - - /any-promise/1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: false - - /arg/4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: false - - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: false - - /argparse/2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: false - - /array-differ/3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} - dev: false - - /array-ify/1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - dev: false - - /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: false - - /arrify/1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: false - - /arrify/2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - dev: false - - /asap/2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - dev: false - - /astral-regex/2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: false - - /asynckit/0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false - - /at-least-node/1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: false - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: false - - /base64-js/1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false - - /better-path-resolve/1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - dependencies: - is-windows: 1.0.2 - dev: false - - /bl/4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: false - - /boxen/5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - dependencies: - ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 2.2.1 - string-width: 4.2.3 - type-fest: 0.20.2 - widest-line: 3.1.0 - wrap-ansi: 7.0.0 - dev: false - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: false - - /brace-expansion/2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: false - - /braces/3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.1.1 - dev: false - - /buffer-equal-constant-time/1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - dev: false - - /buffer/5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - - /builtin-modules/3.1.0: - resolution: {integrity: sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==} - engines: {node: '>=6'} - dev: false - - /builtins/1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - dev: false - - /cacheable-request/6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 3.1.0 - lowercase-keys: 2.0.0 - normalize-url: 4.5.1 - responselike: 1.0.2 - dev: false - - /cachedir/2.3.0: - resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} - engines: {node: '>=6'} - dev: false - - /call-bind-apply-helpers/1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - dev: false - - /callsite-record/4.1.5: - resolution: {integrity: sha512-OqeheDucGKifjQRx524URgV4z4NaKjocGhygTptDea+DLROre4ZEecA4KXDq+P7qlGCohYVNOh3qr+y5XH5Ftg==} - dependencies: - '@devexpress/error-stack-parser': 2.0.6 - '@types/lodash': 4.17.16 - callsite: 1.0.0 - chalk: 2.4.2 - highlight-es: 1.0.3 - lodash: 4.17.21 - pinkie-promise: 2.0.1 - dev: false - - /callsite/1.0.0: - resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} - dev: false - - /callsites/3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: false - - /camelcase-keys/6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: false - - /camelcase/5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: false - - /camelcase/6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: false - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: false - - /chalk/4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: false - - /chalk/5.4.1: - resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: false - optional: true - - /chardet/0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: false - - /chownr/2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - dev: false - - /ci-info/2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: false - - /clean-stack/2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: false - - /cli-boxes/2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - dev: false - - /cli-cursor/3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: false - - /cli-spinners/2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - dev: false - - /cli-table/0.3.11: - resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} - engines: {node: '>= 0.2.0'} - dependencies: - colors: 1.0.3 - dev: false - - /cli-truncate/2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} - dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - dev: false - - /cli-truncate/3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - dev: false - - /cli-width/3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - dev: false - - /cliui/7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: false - - /cliui/8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: false - - /clone-response/1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - dependencies: - mimic-response: 1.0.1 - dev: false - - /clone/1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: false - - /cmd-extension/1.0.2: - resolution: {integrity: sha512-iWDjmP8kvsMdBmLTHxFaqXikO8EdFRDfim7k6vUHglY/2xJ5jLrPsnQGijdfp4U+sr/BeecG0wKm02dSIAeQ1g==} - engines: {node: '>=10'} - dev: false - - /co/4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: false - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: false - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: false - - /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: false - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: false - - /colorette/2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - dev: false - - /colors/1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} - engines: {node: '>=0.1.90'} - dev: false - - /colors/1.2.5: - resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} - engines: {node: '>=0.1.90'} - dev: false - - /combined-stream/1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: false - - /commander/9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - dev: false - - /commitizen/4.2.5_sih53j22iwo4i6pyctnx5zarnu: - resolution: {integrity: sha512-9sXju8Qrz1B4Tw7kC5KhnvwYQN88qs2zbiB8oyMsnXZyJ24PPGiNM3nHr73d32dnE3i8VJEXddBFIbOgYSEXtQ==} - engines: {node: '>= 12'} - hasBin: true - dependencies: - cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0_sih53j22iwo4i6pyctnx5zarnu - dedent: 0.7.0 - detect-indent: 6.1.0 - find-node-modules: 2.1.3 - find-root: 1.1.0 - fs-extra: 9.1.0 - glob: 7.2.3 - inquirer: 8.2.4 - is-utf8: 0.2.1 - lodash: 4.17.21 - minimist: 1.2.6 - strip-bom: 4.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - '@types/node' - - typescript - dev: false - - /compare-func/2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - dev: false - - /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: false - - /configstore/5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} - dependencies: - dot-prop: 5.3.0 - graceful-fs: 4.2.11 - make-dir: 3.1.0 - unique-string: 2.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 4.0.0 - dev: false - - /conventional-changelog-angular/6.0.0: - resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} - engines: {node: '>=14'} - dependencies: - compare-func: 2.0.0 - dev: false - - /conventional-changelog-conventionalcommits/5.0.0: - resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - lodash: 4.17.21 - q: 1.5.1 - dev: false - - /conventional-commit-types/3.0.0: - resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} - dev: false - - /conventional-commits-parser/4.0.0: - resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} - engines: {node: '>=14'} - hasBin: true - dependencies: - JSONStream: 1.3.5 - is-text-path: 1.0.1 - meow: 8.1.2 - split2: 3.2.2 - dev: false - - /core-util-is/1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: false - - /cosmiconfig-typescript-loader/4.4.0_iwag63elrqyuvuqfuez5hjipae: - resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} - engines: {node: '>=v14.21.3'} - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=7' - ts-node: '>=10' - typescript: '>=4' - dependencies: - '@types/node': 20.5.1 - cosmiconfig: 8.3.6_typescript@5.8.3 - ts-node: 10.9.2_6v72ipms7rozpqco4327g2xjdm - typescript: 5.8.3 - dev: false - - /cosmiconfig-typescript-loader/6.1.0_hxwsehgdaco5p5wdty72tbvofq: - resolution: {integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==} - engines: {node: '>=v18'} - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=9' - typescript: '>=5' - dependencies: - '@types/node': 22.15.2 - cosmiconfig: 9.0.0_typescript@5.0.2 - jiti: 2.4.2 - typescript: 5.0.2 - dev: false - optional: true - - /cosmiconfig/7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.1 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: false - - /cosmiconfig/8.3.6_typescript@5.8.3: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - import-fresh: 3.3.1 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.8.3 - dev: false - - /cosmiconfig/9.0.0_typescript@5.0.2: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - parse-json: 5.2.0 - typescript: 5.0.2 - dev: false - optional: true - - /create-require/1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: false - - /cross-spawn/7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: false - - /crypto-random-string/2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: false - - /cz-conventional-changelog/3.3.0_sih53j22iwo4i6pyctnx5zarnu: - resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} - engines: {node: '>= 10'} - dependencies: - chalk: 2.4.2 - commitizen: 4.2.5_sih53j22iwo4i6pyctnx5zarnu - conventional-commit-types: 3.0.0 - lodash.map: 4.6.0 - longest: 2.0.1 - word-wrap: 1.2.5 - optionalDependencies: - '@commitlint/load': 19.8.0_sih53j22iwo4i6pyctnx5zarnu - transitivePeerDependencies: - - '@types/node' - - typescript - dev: false - - /dargs/7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - dev: false - - /debug/4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - dev: false - - /debuglog/1.0.1: - resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dev: false - - /decamelize-keys/1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: false - - /decamelize/1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: false - - /decompress-response/3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} - dependencies: - mimic-response: 1.0.1 - dev: false - - /dedent/0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dev: false - - /deep-extend/0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: false - - /deep-is/0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: false - - /defaults/1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: false - - /defer-to-connect/1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - dev: false - - /define-lazy-prop/2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: false - - /delayed-stream/1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: false - - /depcheck/1.4.7: - resolution: {integrity: sha512-1lklS/bV5chOxwNKA/2XUUk/hPORp8zihZsXflr8x0kLwmcZ9Y9BsS6Hs3ssvA+2wUVbG0U2Ciqvm1SokNjPkA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@babel/parser': 7.27.0 - '@babel/traverse': 7.27.0 - '@vue/compiler-sfc': 3.5.13 - callsite: 1.0.0 - camelcase: 6.3.0 - cosmiconfig: 7.1.0 - debug: 4.4.0 - deps-regex: 0.2.0 - findup-sync: 5.0.0 - ignore: 5.3.2 - is-core-module: 2.16.1 - js-yaml: 3.14.1 - json5: 2.2.3 - lodash: 4.17.21 - minimatch: 7.4.6 - multimatch: 5.0.0 - please-upgrade-node: 3.2.0 - readdirp: 3.6.0 - require-package-name: 2.0.1 - resolve: 1.22.10 - resolve-from: 5.0.0 - semver: 7.7.1 - yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - dev: false - - /dependency-path/9.2.8: - resolution: {integrity: sha512-S0OhIK7sIyAsph8hVH/LMCTDL3jozKtlrPx3dMQrlE2nAlXTquTT+AcOufphDMTQqLkfn4acvfiem9I1IWZ4jQ==} - engines: {node: '>=14.6'} - dependencies: - '@pnpm/crypto.base32-hash': 1.0.1 - '@pnpm/types': 8.9.0 - encode-registry: 3.0.1 - semver: 7.3.8 - dev: false - - /deps-regex/0.2.0: - resolution: {integrity: sha512-PwuBojGMQAYbWkMXOY9Pd/NWCDNHVH12pnS7WHqZkTSeMESe4hwnKKRp0yR87g37113x4JPbo/oIvXY+s/f56Q==} - dev: false - - /detect-file/1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} - dev: false - - /detect-indent/6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: false - - /dezalgo/1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - dependencies: - asap: 2.0.6 - wrappy: 1.0.2 - dev: false - - /diff/4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: false - - /dir-glob/3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: false - - /doctrine/3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: false - - /dot-prop/5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: false - - /dunder-proto/1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - dev: false - - /duplexer3/0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - dev: false - - /eastasianwidth/0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: false - - /ecdsa-sig-formatter/1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: false - - /emoji-regex/9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: false - - /encode-registry/3.0.1: - resolution: {integrity: sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==} - engines: {node: '>=10'} - dependencies: - mem: 8.1.1 - dev: false - - /end-of-stream/1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: false - - /entities/4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: false - - /env-paths/2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - dev: false - optional: true - - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: false - - /es-define-property/1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - dev: false - - /es-errors/1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - dev: false - - /es-object-atoms/1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - dev: false - - /es-set-tostringtag/2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - dev: false - - /escalade/3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - dev: false - - /escape-goat/2.1.1: - resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} - engines: {node: '>=8'} - dev: false - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: false - - /escape-string-regexp/4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: false - - /eslint-scope/7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: false - - /eslint-utils/3.0.0_eslint@8.18.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.18.0 - eslint-visitor-keys: 2.1.0 - dev: false - - /eslint-visitor-keys/2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: false - - /eslint-visitor-keys/3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - - /eslint/8.18.0: - resolution: {integrity: sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - dependencies: - '@eslint/eslintrc': 1.4.1 - '@humanwhocodes/config-array': 0.9.5 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-utils: 3.0.0_eslint@8.18.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 6.0.2 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - regexpp: 3.2.0 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - v8-compile-cache: 2.4.0 - transitivePeerDependencies: - - supports-color - dev: false - - /espree/9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2_acorn@8.14.1 - eslint-visitor-keys: 3.4.3 - dev: false - - /esprima/4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: false - - /esquery/1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: false - - /esrecurse/4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: false - - /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: false - - /estree-walker/2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: false - - /esutils/2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: false - - /events/3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - dev: false - - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: false - - /execa/6.1.0: - resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 3.0.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - dev: false - - /expand-tilde/2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} - dependencies: - homedir-polyfill: 1.0.3 - dev: false - - /external-editor/3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: false - - /fast-deep-equal/3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: false - - /fast-glob/3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - dev: false - - /fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: false - - /fast-levenshtein/2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: false - - /fast-uri/3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - dev: false - - /fastq/1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - dependencies: - reusify: 1.1.0 - dev: false - - /figures/3.0.0: - resolution: {integrity: sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: false - - /figures/3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: false - - /file-entry-cache/6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.2.0 - dev: false - - /fill-range/7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: false - - /find-node-modules/2.1.3: - resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} - dependencies: - findup-sync: 4.0.0 - merge: 2.1.1 - dev: false - - /find-root/1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - dev: false - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: false - - /find-up/5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: false - - /find-yarn-workspace-root2/1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - dependencies: - micromatch: 4.0.8 - pkg-dir: 4.2.0 - dev: false - - /findup-sync/4.0.0: - resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} - engines: {node: '>= 8'} - dependencies: - detect-file: 1.0.0 - is-glob: 4.0.3 - micromatch: 4.0.8 - resolve-dir: 1.0.1 - dev: false - - /findup-sync/5.0.0: - resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} - engines: {node: '>= 10.13.0'} - dependencies: - detect-file: 1.0.0 - is-glob: 4.0.3 - micromatch: 4.0.8 - resolve-dir: 1.0.1 - dev: false - - /flat-cache/3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - rimraf: 3.0.2 - dev: false - - /flatted/3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - dev: false - - /form-data/3.0.3: - resolution: {integrity: sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - mime-types: 2.1.35 - dev: false - - /form-data/4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - mime-types: 2.1.35 - dev: false - - /fs-extra/11.3.0: - resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} - engines: {node: '>=14.14'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: false - - /fs-extra/7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: false - - /fs-extra/9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: false - - /fs-minipass/2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: false - - /fs.realpath/1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: false - - /function-bind/1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: false - - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: false - - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: false - - /get-intrinsic/1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - dev: false - - /get-proto/1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - dev: false - - /get-stream/4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - dependencies: - pump: 3.0.2 - dev: false - - /get-stream/5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.2 - dev: false - - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: false - - /git-raw-commits/2.0.11: - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - dargs: 7.0.0 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - dev: false - - /git-repo-info/2.1.1: - resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==} - engines: {node: '>= 4.0'} - dev: false - - /giturl/1.0.3: - resolution: {integrity: sha512-qVDEXufVtYUzYqI5hoDUONh9GCEPi0n+e35KNDafdsNt9fPxB0nvFW/kFiw7W42wkg8TUyhBqb+t24yyaoc87A==} - engines: {node: '>= 0.10.0'} - dev: false - - /glob-escape/0.0.2: - resolution: {integrity: sha512-L/cXYz8x7qer1HAyUQ+mbjcUsJVdpRxpAf7CwqHoNBs9vTpABlGfNN4tzkDxt+u3Z7ZncVyKlCNPtzb0R/7WbA==} - engines: {node: '>= 0.10'} - dev: false - - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: false - - /glob-parent/6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: false - - /glob/7.0.6: - resolution: {integrity: sha512-f8c0rE8JiCxpa52kWPAOa3ZaYEnzofDzCQLCn3Vdk0Z5OVLq3BsRFJI4S4ykpeVW6QMGBUkMeUpoEgWnMTnw5Q==} - deprecated: Glob versions prior to v9 are no longer supported - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: false - - /glob/7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: false - - /global-directory/4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} - dependencies: - ini: 4.1.1 - dev: false - optional: true - - /global-dirs/0.1.1: - resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} - engines: {node: '>=4'} - dependencies: - ini: 1.3.8 - dev: false - - /global-dirs/3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - dependencies: - ini: 2.0.0 - dev: false - - /global-modules/1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} - dependencies: - global-prefix: 1.0.2 - is-windows: 1.0.2 - resolve-dir: 1.0.1 - dev: false - - /global-modules/2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - dependencies: - global-prefix: 3.0.0 - dev: false - - /global-prefix/1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - homedir-polyfill: 1.0.3 - ini: 1.3.8 - is-windows: 1.0.2 - which: 1.3.1 - dev: false - - /global-prefix/3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - dev: false - - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: false - - /globals/13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: false - - /globby/11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - dev: false - - /gopd/1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - dev: false - - /got/9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} - dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.3 - cacheable-request: 6.1.0 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 4.1.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 1.1.0 - to-readable-stream: 1.0.0 - url-parse-lax: 3.0.0 - dev: false - - /graceful-fs/4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: false - - /graceful-fs/4.2.4: - resolution: {integrity: sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==} - dev: false - - /hard-rejection/2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: false - - /has-flag/3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: false - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: false - - /has-symbols/1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - dev: false - - /has-tostringtag/1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.1.0 - dev: false - - /has-yarn/2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} - engines: {node: '>=8'} - dev: false - - /hasown/2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: false - - /highlight-es/1.0.3: - resolution: {integrity: sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==} - dependencies: - chalk: 2.4.2 - is-es2016-keyword: 1.0.0 - js-tokens: 3.0.2 - dev: false - - /homedir-polyfill/1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - dependencies: - parse-passwd: 1.0.0 - dev: false - - /hosted-git-info/2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: false - - /hosted-git-info/4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: false - - /http-cache-semantics/4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: false - - /http-proxy-agent/7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.3 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - dev: false - - /https-proxy-agent/5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - dev: false - - /https-proxy-agent/7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.3 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - dev: false - - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: false - - /human-signals/3.0.1: - resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} - engines: {node: '>=12.20.0'} - dev: false - - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: false - - /ieee754/1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false - - /ignore-walk/3.0.4: - resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} - dependencies: - minimatch: 3.1.2 - dev: false - - /ignore/5.1.9: - resolution: {integrity: sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==} - engines: {node: '>= 4'} - dev: false - - /ignore/5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - dev: false - - /immediate/3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - dev: false - - /import-fresh/3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: false - - /import-lazy/2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} - engines: {node: '>=4'} - dev: false - - /import-lazy/4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: false - - /import-meta-resolve/4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} - dev: false - optional: true - - /imurmurhash/0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: false - - /indent-string/4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: false - - /inflight/1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: false - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: false - - /ini/1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: false - - /ini/2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: false - - /ini/4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: false - optional: true - - /inquirer/7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} - engines: {node: '>=8.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.0.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - run-async: 2.4.1 - rxjs: 6.6.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - dev: false - - /inquirer/8.2.4: - resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==} - engines: {node: '>=12.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.2 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 7.0.0 - dev: false - - /is-arrayish/0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: false - - /is-ci/2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - dependencies: - ci-info: 2.0.0 - dev: false - - /is-core-module/2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - dependencies: - hasown: 2.0.2 - dev: false - - /is-docker/2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: false - - /is-es2016-keyword/1.0.0: - resolution: {integrity: sha512-JtZWPUwjdbQ1LIo9OSZ8MdkWEve198ors27vH+RzUUvZXXZkzXCxFnlUhzWYxy5IexQSRiXVw9j2q/tHMmkVYQ==} - dev: false - - /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: false - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: false - - /is-fullwidth-code-point/4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - dev: false - - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: false - - /is-installed-globally/0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 - dev: false - - /is-interactive/1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: false - - /is-npm/5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} - engines: {node: '>=10'} - dev: false - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: false - - /is-obj/2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: false - - /is-path-inside/3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: false - - /is-plain-obj/1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: false - - /is-plain-obj/2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: false - - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: false - - /is-stream/3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false - - /is-subdir/1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - dependencies: - better-path-resolve: 1.0.0 - dev: false - - /is-text-path/1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} - engines: {node: '>=0.10.0'} - dependencies: - text-extensions: 1.9.0 - dev: false - - /is-typedarray/1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: false - - /is-unicode-supported/0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: false - - /is-utf8/0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - dev: false - - /is-windows/1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: false - - /is-wsl/2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: false - - /is-yarn-global/0.3.0: - resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} - dev: false - - /isarray/1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: false - - /isexe/2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: false - - /jiti/2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} - hasBin: true - dev: false - optional: true - - /jju/1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - dev: false - - /js-tokens/3.0.2: - resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} - dev: false - - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: false - - /js-yaml/3.13.1: - resolution: {integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: false - - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: false - - /js-yaml/4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: false - - /jsesc/3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - dev: false - - /json-buffer/3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} - dev: false - - /json-buffer/3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: false - - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: false - - /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: false - - /json-schema-traverse/1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: false - - /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: false - - /json5/2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: false - - /jsonfile/4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - optionalDependencies: - graceful-fs: 4.2.11 - dev: false - - /jsonfile/6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - dev: false - - /jsonparse/1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - dev: false - - /jsonpath-plus/4.0.0: - resolution: {integrity: sha512-e0Jtg4KAzDJKKwzbLaUtinCn0RZseWBVRTRGihSpvFlM3wTR7ExSp+PTdeTsDrLNJUe7L7JYJe8mblHX5SCT6A==} - engines: {node: '>=10.0'} - dev: false - - /jsonwebtoken/9.0.2: - resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} - engines: {node: '>=12', npm: '>=6'} - dependencies: - jws: 3.2.2 - lodash.includes: 4.3.0 - lodash.isboolean: 3.0.3 - lodash.isinteger: 4.0.4 - lodash.isnumber: 3.0.3 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.once: 4.1.1 - ms: 2.1.3 - semver: 7.7.1 - dev: false - - /jszip/3.8.0: - resolution: {integrity: sha512-cnpQrXvFSLdsR9KR5/x7zdf6c3m8IhZfZzSblFEHSqBaVwD2nvJ4CuCKLyvKvwBgZm08CgfSoiTBQLm5WW9hGw==} - dependencies: - lie: 3.3.0 - pako: 1.0.11 - readable-stream: 2.3.8 - set-immediate-shim: 1.0.1 - dev: false - - /jwa/1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - dev: false - - /jwa/2.0.0: - resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - dev: false - - /jws/3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - dependencies: - jwa: 1.4.1 - safe-buffer: 5.2.1 - dev: false - - /jws/4.0.0: - resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} - dependencies: - jwa: 2.0.0 - safe-buffer: 5.2.1 - dev: false - - /keyv/3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} - dependencies: - json-buffer: 3.0.0 - dev: false - - /keyv/4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - dev: false - - /kind-of/6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: false - - /latest-version/5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} - engines: {node: '>=8'} - dependencies: - package-json: 6.5.0 - dev: false - - /levn/0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: false - - /lie/3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - dependencies: - immediate: 3.0.6 - dev: false - - /lilconfig/2.0.5: - resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} - engines: {node: '>=10'} - dev: false - - /lines-and-columns/1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: false - - /lint-staged/13.0.3: - resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true - dependencies: - cli-truncate: 3.1.0 - colorette: 2.0.20 - commander: 9.5.0 - debug: 4.4.0 - execa: 6.1.0 - lilconfig: 2.0.5 - listr2: 4.0.5 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-inspect: 1.13.4 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.7.1 - transitivePeerDependencies: - - enquirer - - supports-color - dev: false - - /listr2/4.0.5: - resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} - engines: {node: '>=12'} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true - dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.20 - log-update: 4.0.0 - p-map: 4.0.0 - rfdc: 1.4.1 - rxjs: 7.8.2 - through: 2.3.8 - wrap-ansi: 7.0.0 - dev: false - - /load-json-file/6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 5.2.0 - strip-bom: 4.0.0 - type-fest: 0.6.0 - dev: false - - /load-yaml-file/0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - dev: false - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: false - - /locate-path/6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: false - - /lodash.camelcase/4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - dev: false - - /lodash.get/4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. - dev: false - - /lodash.includes/4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - dev: false - - /lodash.isboolean/3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - dev: false - - /lodash.isequal/4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. - dev: false - - /lodash.isinteger/4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - dev: false - - /lodash.isnumber/3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - dev: false - - /lodash.isplainobject/4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: false - - /lodash.isstring/4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - dev: false - - /lodash.kebabcase/4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - dev: false - - /lodash.map/4.6.0: - resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} - dev: false - - /lodash.merge/4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: false - - /lodash.mergewith/4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - dev: false - - /lodash.once/4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - dev: false - - /lodash.snakecase/4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - dev: false - - /lodash.startcase/4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - dev: false - - /lodash.uniq/4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: false - - /lodash.upperfirst/4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - dev: false - - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: false - - /log-symbols/4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: false - - /log-update/4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} - dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 - dev: false - - /longest/2.0.1: - resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} - engines: {node: '>=0.10.0'} - dev: false - - /lowercase-keys/1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: false - - /lowercase-keys/2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: false - - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: false - - /magic-string/0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - dev: false - - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: false - - /make-error/1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: false - - /map-age-cleaner/0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} - dependencies: - p-defer: 1.0.0 - dev: false - - /map-obj/1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: false - - /map-obj/4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: false - - /math-intrinsics/1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - dev: false - - /mem/8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 - dev: false - - /meow/8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - dev: false - - /meow/9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} - engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize: 1.2.0 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - dev: false - - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: false - - /merge/2.1.1: - resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} - dev: false - - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: false - - /micromatch/4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - dev: false - - /mime-db/1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: false - - /mime-types/2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: false - - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: false - - /mimic-fn/3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - dev: false - - /mimic-fn/4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: false - - /mimic-response/1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: false - - /min-indent/1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: false - - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: false - - /minimatch/7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: false - - /minimist-options/4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: false - - /minimist/1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - dev: false - - /minipass/3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 - dev: false - - /minipass/5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - dev: false - - /minizlib/2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - dev: false - - /mkdirp/1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: false - - /ms/2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: false - - /multimatch/5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} - dependencies: - '@types/minimatch': 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.1.2 - dev: false - - /mute-stream/0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: false - - /mz/2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: false - - /nanoid/3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: false - - /natural-compare/1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: false - - /node-emoji/1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} - dependencies: - lodash: 4.17.21 - dev: false - - /node-fetch/2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: false - - /normalize-package-data/2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.10 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - dev: false - - /normalize-package-data/3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.16.1 - semver: 7.7.1 - validate-npm-package-license: 3.0.4 - dev: false - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: false - - /normalize-url/4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} - dev: false - - /npm-bundled/1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} - dependencies: - npm-normalize-package-bin: 1.0.1 - dev: false - - /npm-check/6.0.1: - resolution: {integrity: sha512-tlEhXU3689VLUHYEZTS/BC61vfeN2xSSZwoWDT6WLuenZTpDmGmNT5mtl15erTR0/A15ldK06/NEKg9jYJ9OTQ==} - engines: {node: '>=10.9.0'} - hasBin: true - dependencies: - callsite-record: 4.1.5 - chalk: 4.1.2 - co: 4.6.0 - depcheck: 1.4.7 - execa: 5.1.1 - giturl: 1.0.3 - global-modules: 2.0.0 - globby: 11.1.0 - inquirer: 7.3.3 - is-ci: 2.0.0 - lodash: 4.17.21 - meow: 9.0.0 - minimatch: 3.1.2 - node-emoji: 1.11.0 - ora: 5.4.1 - package-json: 6.5.0 - path-exists: 4.0.0 - pkg-dir: 5.0.0 - preferred-pm: 3.1.4 - rc-config-loader: 4.1.3 - semver: 7.3.8 - semver-diff: 3.1.1 - strip-ansi: 6.0.1 - text-table: 0.2.0 - throat: 6.0.2 - update-notifier: 5.1.0 - xtend: 4.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /npm-normalize-package-bin/1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} - dev: false - - /npm-package-arg/6.1.1: - resolution: {integrity: sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==} - dependencies: - hosted-git-info: 2.8.9 - osenv: 0.1.5 - semver: 5.7.2 - validate-npm-package-name: 3.0.0 - dev: false - - /npm-packlist/2.1.5: - resolution: {integrity: sha512-KCfK3Vi2F+PH1klYauoQzg81GQ8/GGjQRKYY6tRnpQUPKTs/1gBZSRWtTEd7jGdSn1LZL7gpAmJT+BcS55k2XQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - glob: 7.2.3 - ignore-walk: 3.0.4 - npm-bundled: 1.1.2 - npm-normalize-package-bin: 1.0.1 - dev: false - - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: false - - /npm-run-path/5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: false - - /object-assign/4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: false - - /object-inspect/1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - dev: false - - /once/1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - dev: false - - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: false - - /onetime/6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: false - - /open/8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: false - - /optionator/0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - dev: false - - /ora/5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: false - - /os-homedir/1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} - engines: {node: '>=0.10.0'} - dev: false - - /os-tmpdir/1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: false - - /osenv/0.1.5: - resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} - deprecated: This package is no longer supported. - dependencies: - os-homedir: 1.0.2 - os-tmpdir: 1.0.2 - dev: false - - /p-cancelable/1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} - dev: false - - /p-defer/1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - dev: false - - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: false - - /p-limit/3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: false - - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: false - - /p-locate/5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: false - - /p-map/4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - dependencies: - aggregate-error: 3.1.0 - dev: false - - /p-reflect/2.1.0: - resolution: {integrity: sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==} - engines: {node: '>=8'} - dev: false - - /p-settle/4.1.1: - resolution: {integrity: sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==} - engines: {node: '>=10'} - dependencies: - p-limit: 2.3.0 - p-reflect: 2.1.0 - dev: false - - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: false - - /package-json/6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} - engines: {node: '>=8'} - dependencies: - got: 9.6.0 - registry-auth-token: 4.2.2 - registry-url: 5.1.0 - semver: 6.3.1 - dev: false - - /pako/1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: false - - /parent-module/1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: false - - /parse-json/5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: false - - /parse-passwd/1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - dev: false - - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: false - - /path-is-absolute/1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: false - - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: false - - /path-key/4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: false - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: false - - /path-type/4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: false - - /picocolors/1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - dev: false - - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: false - - /pidtree/0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - dev: false - - /pify/4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: false - - /pinkie-promise/2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - dependencies: - pinkie: 2.0.4 - dev: false - - /pinkie/2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - dev: false - - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: false - - /pkg-dir/5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - dependencies: - find-up: 5.0.0 - dev: false - - /please-upgrade-node/3.2.0: - resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} - dependencies: - semver-compare: 1.0.0 - dev: false - - /postcss/8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - dev: false - - /preferred-pm/3.1.4: - resolution: {integrity: sha512-lEHd+yEm22jXdCphDrkvIJQU66EuLojPPtvZkpKIkiD+l0DMThF/niqZKJSoU8Vl7iuvtmzyMhir9LdVy5WMnA==} - engines: {node: '>=10'} - dependencies: - find-up: 5.0.0 - find-yarn-workspace-root2: 1.2.16 - path-exists: 4.0.0 - which-pm: 2.2.0 - dev: false - - /prelude-ls/1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: false - - /prepend-http/2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} - engines: {node: '>=4'} - dev: false - - /prettier/2.7.1: - resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: false - - /process-nextick-args/2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: false - - /process/0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - dev: false - - /psl/1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - dependencies: - punycode: 2.3.1 - dev: false - - /pump/3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: false - - /punycode/2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - dev: false - - /pupa/2.1.1: - resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} - engines: {node: '>=8'} - dependencies: - escape-goat: 2.1.1 - dev: false - - /q/1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - deprecated: |- - You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. - - (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) - dev: false - - /querystringify/2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: false - - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: false - - /quick-lru/4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: false - - /ramda/0.27.2: - resolution: {integrity: sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==} - dev: false - - /rc-config-loader/4.1.3: - resolution: {integrity: sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==} - dependencies: - debug: 4.4.0 - js-yaml: 4.1.0 - json5: 2.2.3 - require-from-string: 2.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /rc/1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.6 - strip-json-comments: 2.0.1 - dev: false - - /read-package-json/2.1.2: - resolution: {integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==} - deprecated: This package is no longer supported. Please use @npmcli/package-json instead. - dependencies: - glob: 7.2.3 - json-parse-even-better-errors: 2.3.1 - normalize-package-data: 2.5.0 - npm-normalize-package-bin: 1.0.1 - dev: false - - /read-package-tree/5.1.6: - resolution: {integrity: sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==} - deprecated: The functionality that this package provided is now in @npmcli/arborist - dependencies: - debuglog: 1.0.1 - dezalgo: 1.0.4 - once: 1.4.0 - read-package-json: 2.1.2 - readdir-scoped-modules: 1.1.0 - dev: false - - /read-pkg-up/7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - dev: false - - /read-pkg/5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - dev: false - - /read-yaml-file/2.1.0: - resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} - engines: {node: '>=10.13'} - dependencies: - js-yaml: 4.1.0 - strip-bom: 4.0.0 - dev: false - - /readable-stream/2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: false - - /readable-stream/3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: false - - /readdir-scoped-modules/1.1.0: - resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} - deprecated: This functionality has been moved to @npmcli/fs - dependencies: - debuglog: 1.0.1 - dezalgo: 1.0.4 - graceful-fs: 4.2.11 - once: 1.4.0 - dev: false - - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: false - - /redent/3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - dev: false - - /regexpp/3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: false - - /registry-auth-token/4.2.2: - resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} - engines: {node: '>=6.0.0'} - dependencies: - rc: 1.2.8 - dev: false - - /registry-url/5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} - dependencies: - rc: 1.2.8 - dev: false - - /require-directory/2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: false - - /require-from-string/2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: false - - /require-package-name/2.0.1: - resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==} - dev: false - - /requires-port/1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: false - - /resolve-dir/1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - global-modules: 1.0.0 - dev: false - - /resolve-from/4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: false - - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: false - - /resolve-global/1.0.0: - resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} - engines: {node: '>=8'} - dependencies: - global-dirs: 0.1.1 - dev: false - - /resolve/1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: false - - /responselike/1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} - dependencies: - lowercase-keys: 1.0.1 - dev: false - - /restore-cursor/3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: false - - /reusify/1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: false - - /rfc4648/1.5.4: - resolution: {integrity: sha512-rRg/6Lb+IGfJqO05HZkN50UtY7K/JhxJag1kP23+zyMfrvoB0B7RWv06MbOzoc79RgCdNTiUaNsTT1AJZ7Z+cg==} - dev: false - - /rfdc/1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - dev: false - - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - dependencies: - glob: 7.2.3 - dev: false - - /run-async/2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: false - - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: false - - /rxjs/6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - dependencies: - tslib: 1.14.1 - dev: false - - /rxjs/7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - dependencies: - tslib: 2.8.1 - dev: false - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: false - - /safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: false - - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: false - - /sax/1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - dev: false - - /semver-compare/1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} - dev: false - - /semver-diff/3.1.1: - resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: false - - /semver/5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - dev: false - - /semver/6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: false - - /semver/7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: false - - /semver/7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: false - - /semver/7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - dev: false - - /set-immediate-shim/1.0.1: - resolution: {integrity: sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==} - engines: {node: '>=0.10.0'} - dev: false - - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: false - - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: false - - /signal-exit/3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: false - - /slash/3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: false - - /slice-ansi/3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: false - - /slice-ansi/4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: false - - /slice-ansi/5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - dev: false - - /sort-keys/4.2.0: - resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} - engines: {node: '>=8'} - dependencies: - is-plain-obj: 2.1.0 - dev: false - - /source-map-js/1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - dev: false - - /spdx-correct/3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.21 - dev: false - - /spdx-exceptions/2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - dev: false - - /spdx-expression-parse/3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 - dev: false - - /spdx-license-ids/3.0.21: - resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} - dev: false - - /split2/3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - dependencies: - readable-stream: 3.6.2 - dev: false - - /sprintf-js/1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: false - - /ssri/8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: false - - /stackframe/1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - dev: false - - /stoppable/1.1.0: - resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} - engines: {node: '>=4', npm: '>=6'} - dev: false - - /strict-uri-encode/2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - dev: false - - /string-argv/0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - dev: false - - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: false - - /string-width/5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - dev: false - - /string_decoder/1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: false - - /string_decoder/1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: false - - /strip-ansi/7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - dependencies: - ansi-regex: 6.1.0 - dev: false - - /strip-bom/3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: false - - /strip-bom/4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: false - - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: false - - /strip-final-newline/3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: false - - /strip-indent/3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: false - - /strip-json-comments/2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: false - - /strip-json-comments/3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: false - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: false - - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: false - - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: false - - /tapable/2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - dev: false - - /tar/6.1.15: - resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} - engines: {node: '>=10'} - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - dev: false - - /text-extensions/1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} - dev: false - - /text-table/0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: false - - /thenify-all/1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: false - - /thenify/3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: false - - /throat/6.0.2: - resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} - dev: false - - /through/2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: false - - /through2/4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - dependencies: - readable-stream: 3.6.2 - dev: false - - /tmp/0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: false - - /to-readable-stream/1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} - dev: false - - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: false - - /tough-cookie/4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} - dependencies: - psl: 1.15.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 - dev: false - - /tr46/0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: false - - /trim-newlines/3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: false - - /true-case-path/2.2.1: - resolution: {integrity: sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==} - dev: false - - /ts-node/10.9.2_6v72ipms7rozpqco4327g2xjdm: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.5.1 - acorn: 8.14.1 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.8.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: false - - /ts-node/10.9.2_sih53j22iwo4i6pyctnx5zarnu: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.2 - acorn: 8.14.1 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.0.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: false - - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: false - - /tslib/2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - dev: false - - /tunnel/0.0.6: - resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} - engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - dev: false - - /type-check/0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: false - - /type-fest/0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - dev: false - - /type-fest/0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: false - - /type-fest/0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: false - - /type-fest/0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: false - - /type-fest/0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: false - - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: false - - /typescript/5.0.2: - resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} - engines: {node: '>=12.20'} - hasBin: true - - /typescript/5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} - engines: {node: '>=14.17'} - hasBin: true - dev: false - - /undici-types/6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - /unique-string/2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - dependencies: - crypto-random-string: 2.0.0 - dev: false - - /universalify/0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: false - - /universalify/0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - dev: false - - /universalify/2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - dev: false - - /update-notifier/5.1.0: - resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} - engines: {node: '>=10'} - dependencies: - boxen: 5.1.2 - chalk: 4.1.2 - configstore: 5.0.1 - has-yarn: 2.1.0 - import-lazy: 2.1.0 - is-ci: 2.0.0 - is-installed-globally: 0.4.0 - is-npm: 5.0.0 - is-yarn-global: 0.3.0 - latest-version: 5.1.0 - pupa: 2.1.1 - semver: 7.3.8 - semver-diff: 3.1.1 - xdg-basedir: 4.0.0 - dev: false - - /uri-js/4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.1 - dev: false - - /url-parse-lax/3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} - engines: {node: '>=4'} - dependencies: - prepend-http: 2.0.0 - dev: false - - /url-parse/1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - dev: false - - /util-deprecate/1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: false - - /uuid/8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: false - - /v8-compile-cache-lib/3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: false - - /v8-compile-cache/2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} - dev: false - - /validate-npm-package-license/3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - dev: false - - /validate-npm-package-name/3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} - dependencies: - builtins: 1.0.3 - dev: false - - /validator/13.15.0: - resolution: {integrity: sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA==} - engines: {node: '>= 0.10'} - dev: false - - /wcwidth/1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - dependencies: - defaults: 1.0.4 - dev: false - - /webidl-conversions/3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: false - - /whatwg-url/5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - dev: false - - /which-pm/2.2.0: - resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} - engines: {node: '>=8.15'} - dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 - dev: false - - /which/1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: false - - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: false - - /widest-line/3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - dependencies: - string-width: 4.2.3 - dev: false - - /word-wrap/1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - dev: false - - /wordwrap/1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: false - - /wrap-ansi/6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: false - - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: false - - /wrappy/1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: false - - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: false - - /write-yaml-file/4.2.0: - resolution: {integrity: sha512-LwyucHy0uhWqbrOkh9cBluZBeNVxzHjDaE9mwepZG3n3ZlbM4v3ndrFw51zW/NXYFFqP+QWZ72ihtLWTh05e4Q==} - engines: {node: '>=10.13'} - dependencies: - js-yaml: 4.1.0 - write-file-atomic: 3.0.3 - dev: false - - /xdg-basedir/4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} - dev: false - - /xml2js/0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} - engines: {node: '>=4.0.0'} - dependencies: - sax: 1.4.1 - xmlbuilder: 11.0.1 - dev: false - - /xmlbuilder/11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - dev: false - - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: false - - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: false - - /yaml/1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: false - - /yaml/2.7.1: - resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} - engines: {node: '>= 14'} - hasBin: true - dev: false - - /yargs-parser/20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: false - - /yargs-parser/21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: false - - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: false - - /yargs/17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - dev: false - - /yn/3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: false - - /yocto-queue/0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: false - - /z-schema/5.0.5: - resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} - engines: {node: '>=8.0.0'} - hasBin: true - dependencies: - lodash.get: 4.4.2 - lodash.isequal: 4.5.0 - validator: 13.15.0 - optionalDependencies: - commander: 9.5.0 - dev: false diff --git a/common/autoinstallers/lint/prettier.ts b/common/autoinstallers/lint/prettier.ts deleted file mode 100644 index 4748c05f..00000000 --- a/common/autoinstallers/lint/prettier.ts +++ /dev/null @@ -1,44 +0,0 @@ -import minimist, { ParsedArgs } from "minimist"; -import { spawnSync } from "child_process"; -import { RushConfiguration } from "@microsoft/rush-lib"; - -interface PrettierScriptArgv extends ParsedArgs { - dir?: string; - ext?: string; -} - -function run() { - const cwd = process.cwd(); - const rushConfiguration = RushConfiguration.loadFromDefaultLocation({ startingFolder: cwd }); - - const argv: PrettierScriptArgv = minimist(process.argv.slice(2)); - const configFilePath = rushConfiguration.rushJsonFolder + "/.prettierrc.js"; - const ignoreFilePath = rushConfiguration.rushJsonFolder + "/.prettierignore"; - - let ext = "{ts,tsx,less}"; - if (argv.ext) { - const length = argv.ext.split(",").length; - ext = length === 1 ? `${argv.ext}` : `{${argv.ext}}`; - } - - let patterns = `{apps,libs}/**/src/**/**/*.${ext}`; - if (argv.dir) { - patterns = `${argv.dir}/src/**/**/*.${ext}`; - } - - console.log(patterns); - - spawnSync( - "sh", - [ - "-c", - `prettier --config ${configFilePath} --ignore-path ${ignoreFilePath} --write ${patterns}`, - ], - { - shell: false, - stdio: [0, 1, 2], - }, - ); -} - -run(); diff --git a/common/autoinstallers/lint/tsconfig.json b/common/autoinstallers/lint/tsconfig.json deleted file mode 100644 index 57b9dd91..00000000 --- a/common/autoinstallers/lint/tsconfig.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - "module": "ESNext" /* 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. */, - "types": ["node"] /* Disable emitting comments. */, - "noEmit": true /* Disable emitting files from a compilation. */, - "noEmitOnError": true /* Disable emitting files if any type checking errors are reported. */, - - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, - "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": false /* Disable error reporting for unused labels. */, - "allowUnreachableCode": false /* 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. */ - }, - "ts-node": { - "transpileOnly": true, - "compilerOptions": { - "module": "commonjs" - } - } -} diff --git a/common/autoinstallers/run-script/package.json b/common/autoinstallers/run-script/package.json deleted file mode 100644 index 9596b9ca..00000000 --- a/common/autoinstallers/run-script/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "run-script", - "version": "0.0.1", - "private": true, - "dependencies": { - "@microsoft/rush-lib": "5.94.1", - "minimist": "1.2.6", - "ts-node": "^10.9.2" - }, - "devDependencies": { - "@types/node": "*", - "@types/minimist": "1.2.2", - "typescript": "5.0.2" - } -} diff --git a/common/autoinstallers/run-script/pnpm-lock.yaml b/common/autoinstallers/run-script/pnpm-lock.yaml deleted file mode 100644 index 116eed22..00000000 --- a/common/autoinstallers/run-script/pnpm-lock.yaml +++ /dev/null @@ -1,3717 +0,0 @@ -lockfileVersion: '6.0' - -dependencies: - '@microsoft/rush-lib': - specifier: 5.94.1 - version: 5.94.1(@types/node@0.0.0) - minimist: - specifier: 1.2.6 - version: 1.2.6 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@types/node@0.0.0)(typescript@5.0.2) - -devDependencies: - '@types/minimist': - specifier: 1.2.2 - version: 1.2.2 - '@types/node': - specifier: '*' - version: 0.0.0 - typescript: - specifier: 5.0.2 - version: 5.0.2 - -packages: - - /@azure/abort-controller@1.1.0: - resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} - engines: {node: '>=12.0.0'} - dependencies: - tslib: 2.5.0 - dev: false - - /@azure/core-auth@1.4.0: - resolution: {integrity: sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==} - engines: {node: '>=12.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - tslib: 2.5.0 - dev: false - - /@azure/core-client@1.7.2: - resolution: {integrity: sha512-ye5554gnVnXdfZ64hptUtETgacXoRWxYv1JF5MctoAzTSH5dXhDPZd9gOjDPyWMcLIk58pnP5+p5vGX6PYn1ag==} - engines: {node: '>=14.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.4.0 - '@azure/core-rest-pipeline': 1.10.3 - '@azure/core-tracing': 1.0.1 - '@azure/core-util': 1.3.1 - '@azure/logger': 1.0.4 - tslib: 2.5.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@azure/core-http@2.3.2: - resolution: {integrity: sha512-Z4dfbglV9kNZO177CNx4bo5ekFuYwwsvjLiKdZI4r84bYGv3irrbQz7JC3/rUfFH2l4T/W6OFleJaa2X0IaQqw==} - engines: {node: '>=14.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.4.0 - '@azure/core-tracing': 1.0.0-preview.13 - '@azure/core-util': 1.3.1 - '@azure/logger': 1.0.4 - '@types/node-fetch': 2.6.2 - '@types/tunnel': 0.0.3 - form-data: 4.0.0 - node-fetch: 2.6.7 - process: 0.11.10 - tough-cookie: 4.1.2 - tslib: 2.5.0 - tunnel: 0.0.6 - uuid: 8.3.2 - xml2js: 0.5.0 - transitivePeerDependencies: - - encoding - dev: false - - /@azure/core-lro@2.5.2: - resolution: {integrity: sha512-tucUutPhBwCPu6v16KEFYML81npEL6gnT+iwewXvK5ZD55sr0/Vw2jfQETMiKVeARRrXHB2QQ3SpxxGi1zAUWg==} - engines: {node: '>=14.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-util': 1.3.1 - '@azure/logger': 1.0.4 - tslib: 2.5.0 - dev: false - - /@azure/core-paging@1.5.0: - resolution: {integrity: sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.5.0 - dev: false - - /@azure/core-rest-pipeline@1.10.3: - resolution: {integrity: sha512-AMQb0ttiGJ0MIV/r+4TVra6U4+90mPeOveehFnrqKlo7dknPJYdJ61wOzYJXJjDxF8LcCtSogfRelkq+fCGFTw==} - engines: {node: '>=14.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.4.0 - '@azure/core-tracing': 1.0.1 - '@azure/core-util': 1.3.1 - '@azure/logger': 1.0.4 - form-data: 4.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - tslib: 2.5.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@azure/core-tracing@1.0.0-preview.13: - resolution: {integrity: sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==} - engines: {node: '>=12.0.0'} - dependencies: - '@opentelemetry/api': 1.4.1 - tslib: 2.5.0 - dev: false - - /@azure/core-tracing@1.0.1: - resolution: {integrity: sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==} - engines: {node: '>=12.0.0'} - dependencies: - tslib: 2.5.0 - dev: false - - /@azure/core-util@1.3.1: - resolution: {integrity: sha512-pjfOUAb+MPLODhGuXot/Hy8wUgPD0UTqYkY3BiYcwEETrLcUCVM1t0roIvlQMgvn1lc48TGy5bsonsFpF862Jw==} - engines: {node: '>=14.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - tslib: 2.5.0 - dev: false - - /@azure/identity@2.1.0: - resolution: {integrity: sha512-BPDz1sK7Ul9t0l9YKLEa8PHqWU4iCfhGJ+ELJl6c8CP3TpJt2urNCbm0ZHsthmxRsYoMPbz2Dvzj30zXZVmAFw==} - engines: {node: '>=12.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.4.0 - '@azure/core-client': 1.7.2 - '@azure/core-rest-pipeline': 1.10.3 - '@azure/core-tracing': 1.0.1 - '@azure/core-util': 1.3.1 - '@azure/logger': 1.0.4 - '@azure/msal-browser': 2.36.0 - '@azure/msal-common': 7.6.0 - '@azure/msal-node': 1.17.1 - events: 3.3.0 - jws: 4.0.0 - open: 8.4.2 - stoppable: 1.1.0 - tslib: 2.5.0 - uuid: 8.3.2 - transitivePeerDependencies: - - supports-color - dev: false - - /@azure/logger@1.0.4: - resolution: {integrity: sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.5.0 - dev: false - - /@azure/msal-browser@2.36.0: - resolution: {integrity: sha512-OrVDZ9ftO7ExqZVHripAt+doKg6G14YbP2LoSygiWQoSqoO4CejoXLRLqANc/HGg18N0p/oaRETw4IHZvwsxZw==} - engines: {node: '>=0.8.0'} - dependencies: - '@azure/msal-common': 12.1.0 - dev: false - - /@azure/msal-common@12.1.0: - resolution: {integrity: sha512-9RUiv0evSHvYtvF7r9ksShw9FgCeT6Rf6JB/SOMbMzI0VySZDUBSE+0b9e7DgL2Ph8wSARIh3m8c5pCK9TRY3w==} - engines: {node: '>=0.8.0'} - dev: false - - /@azure/msal-common@7.6.0: - resolution: {integrity: sha512-XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==} - engines: {node: '>=0.8.0'} - dev: false - - /@azure/msal-node@1.17.1: - resolution: {integrity: sha512-1lC80yV+Y/gHqkYJ21Qy1Ej/cI/Kt1JcdY0xiM7/+mcEuBAkArR9B1YMY538PMZ5GfyVlYkCHYh/N0CBD5FJlQ==} - engines: {node: 10 || 12 || 14 || 16 || 18} - dependencies: - '@azure/msal-common': 12.1.0 - jsonwebtoken: 9.0.0 - uuid: 8.3.2 - dev: false - - /@azure/storage-blob@12.11.0: - resolution: {integrity: sha512-na+FisoARuaOWaHWpmdtk3FeuTWf2VWamdJ9/TJJzj5ZdXPLC3juoDgFs6XVuJIoK30yuBpyFBEDXVRK4pB7Tg==} - engines: {node: '>=12.0.0'} - dependencies: - '@azure/abort-controller': 1.1.0 - '@azure/core-http': 2.3.2 - '@azure/core-lro': 2.5.2 - '@azure/core-paging': 1.5.0 - '@azure/core-tracing': 1.0.0-preview.13 - '@azure/logger': 1.0.4 - events: 3.3.0 - tslib: 2.5.0 - transitivePeerDependencies: - - encoding - dev: false - - /@babel/code-frame@7.21.4: - resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.18.6 - dev: false - - /@babel/generator@7.21.4: - resolution: {integrity: sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.21.4 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - jsesc: 2.5.2 - dev: false - - /@babel/helper-environment-visitor@7.18.9: - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-function-name@7.21.0: - resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.21.4 - dev: false - - /@babel/helper-hoist-variables@7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.21.4 - dev: false - - /@babel/helper-split-export-declaration@7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.21.4 - dev: false - - /@babel/helper-string-parser@7.19.4: - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: false - - /@babel/parser@7.16.4: - resolution: {integrity: sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.21.4 - dev: false - - /@babel/parser@7.21.4: - resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.21.4 - dev: false - - /@babel/template@7.20.7: - resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.21.4 - '@babel/parser': 7.21.4 - '@babel/types': 7.21.4 - dev: false - - /@babel/traverse@7.21.4: - resolution: {integrity: sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.21.4 - '@babel/helper-environment-visitor': 7.18.9 - '@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.4 - '@babel/types': 7.21.4 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/types@7.21.4: - resolution: {integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - dev: false - - /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - dev: false - - /@devexpress/error-stack-parser@2.0.6: - resolution: {integrity: sha512-fneVypElGUH6Be39mlRZeAu00pccTlf4oVuzf9xPJD1cdEqI8NyAiQua/EW7lZdrbMUbgyXcJmfKPefhYius3A==} - dependencies: - stackframe: 1.3.4 - dev: false - - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 - dev: false - - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: false - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: false - - /@jridgewell/trace-mapping@0.3.18: - resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} - dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 - dev: false - - /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: false - - /@microsoft/rush-lib@5.94.1(@types/node@0.0.0): - resolution: {integrity: sha512-qXeqtYYe4ImyYyaAIR+ZdZEpNUeOZSaP+sbfksvDu9oa4kNH+5pCemII8NSfmQd9Dx7zPGPNiGf4zE4/Jcs6VA==} - engines: {node: '>=5.6.0'} - dependencies: - '@pnpm/link-bins': 5.3.25 - '@rushstack/heft-config-file': 0.11.9(@types/node@0.0.0) - '@rushstack/node-core-library': 3.55.2(@types/node@0.0.0) - '@rushstack/package-deps-hash': 4.0.10(@types/node@0.0.0) - '@rushstack/rig-package': 0.3.18 - '@rushstack/rush-amazon-s3-build-cache-plugin': 5.94.1(@types/node@0.0.0) - '@rushstack/rush-azure-storage-build-cache-plugin': 5.94.1(@types/node@0.0.0) - '@rushstack/stream-collator': 4.0.228(@types/node@0.0.0) - '@rushstack/terminal': 0.5.3(@types/node@0.0.0) - '@rushstack/ts-command-line': 4.13.2 - '@types/node-fetch': 2.6.2 - '@yarnpkg/lockfile': 1.0.2 - builtin-modules: 3.1.0 - cli-table: 0.3.11 - colors: 1.2.5 - dependency-path: 9.2.8 - figures: 3.0.0 - git-repo-info: 2.1.1 - glob: 7.0.6 - glob-escape: 0.0.2 - https-proxy-agent: 5.0.1 - ignore: 5.1.9 - inquirer: 7.3.3 - js-yaml: 3.13.1 - jszip: 3.8.0 - lodash: 4.17.21 - node-fetch: 2.6.7 - npm-check: 6.0.1 - npm-package-arg: 6.1.1 - npm-packlist: 2.1.5 - read-package-tree: 5.1.6 - resolve: 1.22.2 - rxjs: 6.6.7 - semver: 7.3.8 - ssri: 8.0.1 - strict-uri-encode: 2.0.0 - tapable: 2.2.1 - tar: 6.1.13 - true-case-path: 2.2.1 - transitivePeerDependencies: - - '@types/node' - - encoding - - supports-color - dev: false - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: false - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: false - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - dev: false - - /@opentelemetry/api@1.4.1: - resolution: {integrity: sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==} - engines: {node: '>=8.0.0'} - dev: false - - /@pnpm/crypto.base32-hash@1.0.1: - resolution: {integrity: sha512-pzAXNn6KxTA3kbcI3iEnYs4vtH51XEVqmK/1EiD18MaPKylhqy8UvMJK3zKG+jeP82cqQbozcTGm4yOQ8i3vNw==} - engines: {node: '>=14.6'} - dependencies: - rfc4648: 1.5.2 - dev: false - - /@pnpm/error@1.4.0: - resolution: {integrity: sha512-vxkRrkneBPVmP23kyjnYwVOtipwlSl6UfL+h+Xa3TrABJTz5rYBXemlTsU5BzST8U4pD7YDkTb3SQu+MMuIDKA==} - engines: {node: '>=10.16'} - dev: false - - /@pnpm/link-bins@5.3.25: - resolution: {integrity: sha512-9Xq8lLNRHFDqvYPXPgaiKkZ4rtdsm7izwM/cUsFDc5IMnG0QYIVBXQbgwhz2UvjUotbJrvfKLJaCfA3NGBnLDg==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/error': 1.4.0 - '@pnpm/package-bins': 4.1.0 - '@pnpm/read-modules-dir': 2.0.3 - '@pnpm/read-package-json': 4.0.0 - '@pnpm/read-project-manifest': 1.1.7 - '@pnpm/types': 6.4.0 - '@zkochan/cmd-shim': 5.4.1 - is-subdir: 1.2.0 - is-windows: 1.0.2 - mz: 2.7.0 - normalize-path: 3.0.0 - p-settle: 4.1.1 - ramda: 0.27.2 - dev: false - - /@pnpm/package-bins@4.1.0: - resolution: {integrity: sha512-57/ioGYLBbVRR80Ux9/q2i3y8Q+uQADc3c+Yse8jr/60YLOi3jcWz13e2Jy+ANYtZI258Qc5wk2X077rp0Ly/Q==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/types': 6.4.0 - fast-glob: 3.2.12 - is-subdir: 1.2.0 - dev: false - - /@pnpm/read-modules-dir@2.0.3: - resolution: {integrity: sha512-i9OgRvSlxrTS9a2oXokhDxvQzDtfqtsooJ9jaGoHkznue5aFCTSrNZFQ6M18o8hC03QWfnxaKi0BtOvNkKu2+A==} - engines: {node: '>=10.13'} - dependencies: - mz: 2.7.0 - dev: false - - /@pnpm/read-package-json@4.0.0: - resolution: {integrity: sha512-1cr2tEwe4YU6SI0Hmg+wnsr6yxBt2iJtqv6wrF84On8pS9hx4A2PLw3CIgbwxaG0b+ur5wzhNogwl4qD5FLFNg==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/error': 1.4.0 - '@pnpm/types': 6.4.0 - load-json-file: 6.2.0 - normalize-package-data: 3.0.3 - dev: false - - /@pnpm/read-project-manifest@1.1.7: - resolution: {integrity: sha512-tj8ExXZeDcMmMUj7D292ETe/RiEirr1X1wpT6Zy85z2MrFYoG9jfCJpps40OdZBNZBhxbuKtGPWKVSgXD0yrVw==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/error': 1.4.0 - '@pnpm/types': 6.4.0 - '@pnpm/write-project-manifest': 1.1.7 - detect-indent: 6.1.0 - fast-deep-equal: 3.1.3 - graceful-fs: 4.2.4 - is-windows: 1.0.2 - json5: 2.2.3 - parse-json: 5.2.0 - read-yaml-file: 2.1.0 - sort-keys: 4.2.0 - strip-bom: 4.0.0 - dev: false - - /@pnpm/types@6.4.0: - resolution: {integrity: sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==} - engines: {node: '>=10.16'} - dev: false - - /@pnpm/types@8.9.0: - resolution: {integrity: sha512-3MYHYm8epnciApn6w5Fzx6sepawmsNU7l6lvIq+ER22/DPSrr83YMhU/EQWnf4lORn2YyiXFj0FJSyJzEtIGmw==} - engines: {node: '>=14.6'} - dev: false - - /@pnpm/write-project-manifest@1.1.7: - resolution: {integrity: sha512-OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==} - engines: {node: '>=10.16'} - dependencies: - '@pnpm/types': 6.4.0 - json5: 2.2.3 - mz: 2.7.0 - write-file-atomic: 3.0.3 - write-yaml-file: 4.2.0 - dev: false - - /@rushstack/heft-config-file@0.11.9(@types/node@0.0.0): - resolution: {integrity: sha512-01JFmD+G44v5btO0fVIbVBJCfGWLTN2l4Y/+IVU8D9eR14+wYJjV5CO25uxydDynMr334URFcITuzG21L9L0GA==} - engines: {node: '>=10.13.0'} - dependencies: - '@rushstack/node-core-library': 3.55.2(@types/node@0.0.0) - '@rushstack/rig-package': 0.3.18 - jsonpath-plus: 4.0.0 - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/node-core-library@3.55.2(@types/node@0.0.0): - resolution: {integrity: sha512-SaLe/x/Q/uBVdNFK5V1xXvsVps0y7h1sN7aSJllQyFbugyOaxhNRF25bwEDnicARNEjJw0pk0lYnJQ9Kr6ev0A==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@types/node': 0.0.0 - colors: 1.2.5 - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.2 - semver: 7.3.8 - z-schema: 5.0.5 - dev: false - - /@rushstack/package-deps-hash@4.0.10(@types/node@0.0.0): - resolution: {integrity: sha512-oW4M9olWay3qIpIULtpolh0MY1QprY2CqrrgUl7NpyMn1/r0laT8EUbkTylWRnytvXaNTDBlRz99+CdU1DKqgA==} - dependencies: - '@rushstack/node-core-library': 3.55.2(@types/node@0.0.0) - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/rig-package@0.3.18: - resolution: {integrity: sha512-SGEwNTwNq9bI3pkdd01yCaH+gAsHqs0uxfGvtw9b0LJXH52qooWXnrFTRRLG1aL9pf+M2CARdrA9HLHJys3jiQ==} - dependencies: - resolve: 1.22.2 - strip-json-comments: 3.1.1 - dev: false - - /@rushstack/rush-amazon-s3-build-cache-plugin@5.94.1(@types/node@0.0.0): - resolution: {integrity: sha512-NCZ5YscW9Qi9avvgspE76dfHtCcsSMpfm3X4D9gaTcGPyE7RpWY5yMTZhO31Z5g0NM6cw6eWEfKwJvZ5nGbnBQ==} - dependencies: - '@rushstack/node-core-library': 3.55.2(@types/node@0.0.0) - '@rushstack/rush-sdk': 5.94.1(@types/node@0.0.0) - https-proxy-agent: 5.0.1 - node-fetch: 2.6.7 - transitivePeerDependencies: - - '@types/node' - - encoding - - supports-color - dev: false - - /@rushstack/rush-azure-storage-build-cache-plugin@5.94.1(@types/node@0.0.0): - resolution: {integrity: sha512-uIdyoeGHyFlAnmAHF0KKDsg5KBde9nRl15x8wTr/zwzwydMMIdbfxHAMc3C78YE05SUYeIIut4qh5KCoEn9/Hw==} - dependencies: - '@azure/identity': 2.1.0 - '@azure/storage-blob': 12.11.0 - '@rushstack/node-core-library': 3.55.2(@types/node@0.0.0) - '@rushstack/rush-sdk': 5.94.1(@types/node@0.0.0) - '@rushstack/terminal': 0.5.3(@types/node@0.0.0) - transitivePeerDependencies: - - '@types/node' - - encoding - - supports-color - dev: false - - /@rushstack/rush-sdk@5.94.1(@types/node@0.0.0): - resolution: {integrity: sha512-T5euwYB4GzBGGCWCdk0djjHqsI7boGWKjutyNb+AguB7WsnRjDujEHC7CdosYtbsJo5caIwEdi9sspiaS4vyjA==} - dependencies: - '@rushstack/node-core-library': 3.55.2(@types/node@0.0.0) - '@types/node-fetch': 2.6.2 - tapable: 2.2.1 - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/stream-collator@4.0.228(@types/node@0.0.0): - resolution: {integrity: sha512-x7KR0IVNOEZBegdw7u2LVugD0U9uMw3IR1gPwV9bNWEC01cObc+9wk21suUxkzDtMVdKcNYoiZ814WnUqOF7pQ==} - dependencies: - '@rushstack/node-core-library': 3.55.2(@types/node@0.0.0) - '@rushstack/terminal': 0.5.3(@types/node@0.0.0) - transitivePeerDependencies: - - '@types/node' - dev: false - - /@rushstack/terminal@0.5.3(@types/node@0.0.0): - resolution: {integrity: sha512-AFKlWyw6C3vWvRrkXIcchxUooNHSzZ0AS5mGbdon3tjnxhqnMitjdk0WZl2382i50Zz3WE6Fd3LFurVbrNrEyw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@rushstack/node-core-library': 3.55.2(@types/node@0.0.0) - '@types/node': 0.0.0 - wordwrap: 1.0.0 - dev: false - - /@rushstack/ts-command-line@4.13.2: - resolution: {integrity: sha512-bCU8qoL9HyWiciltfzg7GqdfODUeda/JpI0602kbN5YH22rzTxyqYvv7aRLENCM7XCQ1VRs7nMkEqgJUOU8Sag==} - dependencies: - '@types/argparse': 1.0.38 - argparse: 1.0.10 - colors: 1.2.5 - string-argv: 0.3.1 - dev: false - - /@sindresorhus/is@0.14.0: - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} - dev: false - - /@szmarczak/http-timer@1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} - dependencies: - defer-to-connect: 1.1.3 - dev: false - - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - dev: false - - /@tsconfig/node10@1.0.9: - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - dev: false - - /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: false - - /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: false - - /@tsconfig/node16@1.0.3: - resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} - dev: false - - /@types/argparse@1.0.38: - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - dev: false - - /@types/keyv@3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - dependencies: - '@types/node': 0.0.0 - dev: false - - /@types/lodash@4.14.194: - resolution: {integrity: sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==} - dev: false - - /@types/minimatch@3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - dev: false - - /@types/minimist@1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - - /@types/node-fetch@2.6.2: - resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} - dependencies: - '@types/node': 0.0.0 - form-data: 3.0.1 - dev: false - - /@types/node@0.0.0: - resolution: {integrity: sha512-WTVTibPZsmWNm4thlkPnc0QPbT4+Vw+48e4otLxwdBVZduwrZ2pDvAH9dnpOe/fQnNl84PO4XOq3dHAyjaornA==} - - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: false - - /@types/parse-json@4.0.0: - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} - dev: false - - /@types/responselike@1.0.0: - resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} - dependencies: - '@types/node': 0.0.0 - dev: false - - /@types/tunnel@0.0.3: - resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==} - dependencies: - '@types/node': 0.0.0 - dev: false - - /@vue/compiler-core@3.2.47: - resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} - dependencies: - '@babel/parser': 7.21.4 - '@vue/shared': 3.2.47 - estree-walker: 2.0.2 - source-map: 0.6.1 - dev: false - - /@vue/compiler-dom@3.2.47: - resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} - dependencies: - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 - dev: false - - /@vue/compiler-sfc@3.2.47: - resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} - dependencies: - '@babel/parser': 7.16.4 - '@vue/compiler-core': 3.2.47 - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-ssr': 3.2.47 - '@vue/reactivity-transform': 3.2.47 - '@vue/shared': 3.2.47 - estree-walker: 2.0.2 - magic-string: 0.25.9 - postcss: 8.4.22 - source-map: 0.6.1 - dev: false - - /@vue/compiler-ssr@3.2.47: - resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} - dependencies: - '@vue/compiler-dom': 3.2.47 - '@vue/shared': 3.2.47 - dev: false - - /@vue/reactivity-transform@3.2.47: - resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} - dependencies: - '@babel/parser': 7.21.4 - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 - estree-walker: 2.0.2 - magic-string: 0.25.9 - dev: false - - /@vue/shared@3.2.47: - resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} - dev: false - - /@yarnpkg/lockfile@1.0.2: - resolution: {integrity: sha512-MqJ00WXw89ga0rK6GZkdmmgv3bAsxpJixyTthjcix73O44pBqotyU2BejBkLuIsaOBI6SEu77vAnSyLe5iIHkw==} - dev: false - - /@zkochan/cmd-shim@5.4.1: - resolution: {integrity: sha512-odWb1qUzt0dIOEUPyWBEpFDYQPRjEMr/dbHHAfgBkVkYR9aO7Zo+I7oYWrXIxl+cKlC7+49ftPm8uJxL1MA9kw==} - engines: {node: '>=10.13'} - dependencies: - cmd-extension: 1.0.2 - graceful-fs: 4.2.11 - is-windows: 1.0.2 - dev: false - - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - dev: false - - /acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: false - - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - - /ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - dependencies: - string-width: 4.2.3 - dev: false - - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: false - - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: false - - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: false - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: false - - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: false - - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: false - - /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: false - - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: false - - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: false - - /array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} - dev: false - - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: false - - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: false - - /arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - dev: false - - /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - dev: false - - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false - - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: false - - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false - - /better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - dependencies: - is-windows: 1.0.2 - dev: false - - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: false - - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: false - - /boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - dependencies: - ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 2.2.1 - string-width: 4.2.3 - type-fest: 0.20.2 - widest-line: 3.1.0 - wrap-ansi: 7.0.0 - dev: false - - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: false - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: false - - /buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - dev: false - - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - - /builtin-modules@3.1.0: - resolution: {integrity: sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==} - engines: {node: '>=6'} - dev: false - - /builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - dev: false - - /cacheable-request@6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 3.1.0 - lowercase-keys: 2.0.0 - normalize-url: 4.5.1 - responselike: 1.0.2 - dev: false - - /callsite-record@4.1.5: - resolution: {integrity: sha512-OqeheDucGKifjQRx524URgV4z4NaKjocGhygTptDea+DLROre4ZEecA4KXDq+P7qlGCohYVNOh3qr+y5XH5Ftg==} - dependencies: - '@devexpress/error-stack-parser': 2.0.6 - '@types/lodash': 4.14.194 - callsite: 1.0.0 - chalk: 2.4.2 - highlight-es: 1.0.3 - lodash: 4.17.21 - pinkie-promise: 2.0.1 - dev: false - - /callsite@1.0.0: - resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} - dev: false - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: false - - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: false - - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: false - - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: false - - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: false - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: false - - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: false - - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - dev: false - - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - dev: false - - /ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: false - - /cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - dev: false - - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: false - - /cli-spinners@2.8.0: - resolution: {integrity: sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==} - engines: {node: '>=6'} - dev: false - - /cli-table@0.3.11: - resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} - engines: {node: '>= 0.2.0'} - dependencies: - colors: 1.0.3 - dev: false - - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - dev: false - - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: false - - /clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - dependencies: - mimic-response: 1.0.1 - dev: false - - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: false - - /cmd-extension@1.0.2: - resolution: {integrity: sha512-iWDjmP8kvsMdBmLTHxFaqXikO8EdFRDfim7k6vUHglY/2xJ5jLrPsnQGijdfp4U+sr/BeecG0wKm02dSIAeQ1g==} - engines: {node: '>=10'} - dev: false - - /co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: false - - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: false - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: false - - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: false - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: false - - /colors@1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} - engines: {node: '>=0.1.90'} - dev: false - - /colors@1.2.5: - resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} - engines: {node: '>=0.1.90'} - dev: false - - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: false - - /commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - requiresBuild: true - dev: false - optional: true - - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: false - - /configstore@5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} - dependencies: - dot-prop: 5.3.0 - graceful-fs: 4.2.11 - make-dir: 3.1.0 - unique-string: 2.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 4.0.0 - dev: false - - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: false - - /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: false - - /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: false - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: false - - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: false - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: false - - /debuglog@1.0.1: - resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} - dev: false - - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: false - - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: false - - /decompress-response@3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} - dependencies: - mimic-response: 1.0.1 - dev: false - - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: false - - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: false - - /defer-to-connect@1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - dev: false - - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: false - - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: false - - /depcheck@1.4.3: - resolution: {integrity: sha512-vy8xe1tlLFu7t4jFyoirMmOR7x7N601ubU9Gkifyr9z8rjBFtEdWHDBMqXyk6OkK+94NXutzddVXJuo0JlUQKQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@babel/parser': 7.16.4 - '@babel/traverse': 7.21.4 - '@vue/compiler-sfc': 3.2.47 - camelcase: 6.3.0 - cosmiconfig: 7.1.0 - debug: 4.3.4 - deps-regex: 0.1.4 - ignore: 5.1.9 - is-core-module: 2.12.0 - js-yaml: 3.14.1 - json5: 2.2.3 - lodash: 4.17.21 - minimatch: 3.1.2 - multimatch: 5.0.0 - please-upgrade-node: 3.2.0 - query-ast: 1.0.5 - readdirp: 3.6.0 - require-package-name: 2.0.1 - resolve: 1.22.2 - sass: 1.62.0 - scss-parser: 1.0.6 - semver: 7.3.8 - yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - dev: false - - /dependency-path@9.2.8: - resolution: {integrity: sha512-S0OhIK7sIyAsph8hVH/LMCTDL3jozKtlrPx3dMQrlE2nAlXTquTT+AcOufphDMTQqLkfn4acvfiem9I1IWZ4jQ==} - engines: {node: '>=14.6'} - dependencies: - '@pnpm/crypto.base32-hash': 1.0.1 - '@pnpm/types': 8.9.0 - encode-registry: 3.0.0 - semver: 7.3.8 - dev: false - - /deps-regex@0.1.4: - resolution: {integrity: sha512-3tzwGYogSJi8HoG93R5x9NrdefZQOXgHgGih/7eivloOq6yC6O+yoFxZnkgP661twvfILONfoKRdF9GQOGx2RA==} - dev: false - - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: false - - /dezalgo@1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - dependencies: - asap: 2.0.6 - wrappy: 1.0.2 - dev: false - - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: false - - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: false - - /dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: false - - /duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - dev: false - - /ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: false - - /encode-registry@3.0.0: - resolution: {integrity: sha512-2fRYji8K6FwYuQ6EPBKR/J9mcqb7kIoNqt1vGvJr3NrvKfncRiNm00Oxo6gi/YJF8R5Sp2bNFSFdGKTG0rje1Q==} - engines: {node: '>=10'} - dependencies: - mem: 8.1.1 - dev: false - - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: false - - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: false - - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: false - - /escape-goat@2.1.1: - resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} - engines: {node: '>=8'} - dev: false - - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: false - - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: false - - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: false - - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - dev: false - - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: false - - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: false - - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: false - - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: false - - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - dependencies: - reusify: 1.0.4 - dev: false - - /figures@3.0.0: - resolution: {integrity: sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: false - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: false - - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: false - - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: false - - /find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - dependencies: - micromatch: 4.0.5 - pkg-dir: 4.2.0 - dev: false - - /form-data@3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: false - - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: false - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: false - - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: false - - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: false - - /get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - dependencies: - pump: 3.0.0 - dev: false - - /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - dev: false - - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: false - - /git-repo-info@2.1.1: - resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==} - engines: {node: '>= 4.0'} - dev: false - - /giturl@1.0.1: - resolution: {integrity: sha512-wQourBdI13n8tbjcZTDl6k+ZrCRMU6p9vfp9jknZq+zfWc8xXNztpZFM4XkPHVzHcMSUZxEMYYKZjIGkPlei6Q==} - engines: {node: '>= 0.10.0'} - dev: false - - /glob-escape@0.0.2: - resolution: {integrity: sha512-L/cXYz8x7qer1HAyUQ+mbjcUsJVdpRxpAf7CwqHoNBs9vTpABlGfNN4tzkDxt+u3Z7ZncVyKlCNPtzb0R/7WbA==} - engines: {node: '>= 0.10'} - dev: false - - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: false - - /glob@7.0.6: - resolution: {integrity: sha512-f8c0rE8JiCxpa52kWPAOa3ZaYEnzofDzCQLCn3Vdk0Z5OVLq3BsRFJI4S4ykpeVW6QMGBUkMeUpoEgWnMTnw5Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: false - - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: false - - /global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - dependencies: - ini: 2.0.0 - dev: false - - /global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - dependencies: - global-prefix: 3.0.0 - dev: false - - /global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - dev: false - - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: false - - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - dev: false - - /got@9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} - dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.0 - cacheable-request: 6.1.0 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 4.1.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 1.1.0 - to-readable-stream: 1.0.0 - url-parse-lax: 3.0.0 - dev: false - - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: false - - /graceful-fs@4.2.4: - resolution: {integrity: sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==} - dev: false - - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: false - - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: false - - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: false - - /has-yarn@2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} - engines: {node: '>=8'} - dev: false - - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: false - - /highlight-es@1.0.3: - resolution: {integrity: sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==} - dependencies: - chalk: 2.4.2 - is-es2016-keyword: 1.0.0 - js-tokens: 3.0.2 - dev: false - - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: false - - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: false - - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: false - - /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: false - - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: false - - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false - - /ignore-walk@3.0.4: - resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} - dependencies: - minimatch: 3.1.2 - dev: false - - /ignore@5.1.9: - resolution: {integrity: sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==} - engines: {node: '>= 4'} - dev: false - - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - dev: false - - /immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - dev: false - - /immutable@4.3.0: - resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} - dev: false - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: false - - /import-lazy@2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} - engines: {node: '>=4'} - dev: false - - /import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: false - - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: false - - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: false - - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: false - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: false - - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: false - - /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: false - - /inquirer@7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} - engines: {node: '>=8.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.0.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - run-async: 2.4.1 - rxjs: 6.6.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - dev: false - - /invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - dependencies: - loose-envify: 1.4.0 - dev: false - - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: false - - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: false - - /is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - dependencies: - ci-info: 2.0.0 - dev: false - - /is-core-module@2.12.0: - resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} - dependencies: - has: 1.0.3 - dev: false - - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: false - - /is-es2016-keyword@1.0.0: - resolution: {integrity: sha512-JtZWPUwjdbQ1LIo9OSZ8MdkWEve198ors27vH+RzUUvZXXZkzXCxFnlUhzWYxy5IexQSRiXVw9j2q/tHMmkVYQ==} - dev: false - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: false - - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: false - - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: false - - /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 - dev: false - - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: false - - /is-npm@5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} - engines: {node: '>=10'} - dev: false - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: false - - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: false - - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: false - - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: false - - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: false - - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: false - - /is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - dependencies: - better-path-resolve: 1.0.0 - dev: false - - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: false - - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: false - - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: false - - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: false - - /is-yarn-global@0.3.0: - resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} - dev: false - - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: false - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: false - - /jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - dev: false - - /js-tokens@3.0.2: - resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} - dev: false - - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: false - - /js-yaml@3.13.1: - resolution: {integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: false - - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: false - - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: false - - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: false - - /json-buffer@3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} - dev: false - - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: false - - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: false - - /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - optionalDependencies: - graceful-fs: 4.2.11 - dev: false - - /jsonpath-plus@4.0.0: - resolution: {integrity: sha512-e0Jtg4KAzDJKKwzbLaUtinCn0RZseWBVRTRGihSpvFlM3wTR7ExSp+PTdeTsDrLNJUe7L7JYJe8mblHX5SCT6A==} - engines: {node: '>=10.0'} - dev: false - - /jsonwebtoken@9.0.0: - resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==} - engines: {node: '>=12', npm: '>=6'} - dependencies: - jws: 3.2.2 - lodash: 4.17.21 - ms: 2.1.3 - semver: 7.3.8 - dev: false - - /jszip@3.8.0: - resolution: {integrity: sha512-cnpQrXvFSLdsR9KR5/x7zdf6c3m8IhZfZzSblFEHSqBaVwD2nvJ4CuCKLyvKvwBgZm08CgfSoiTBQLm5WW9hGw==} - dependencies: - lie: 3.3.0 - pako: 1.0.11 - readable-stream: 2.3.8 - set-immediate-shim: 1.0.1 - dev: false - - /jwa@1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - dev: false - - /jwa@2.0.0: - resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - dev: false - - /jws@3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - dependencies: - jwa: 1.4.1 - safe-buffer: 5.2.1 - dev: false - - /jws@4.0.0: - resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} - dependencies: - jwa: 2.0.0 - safe-buffer: 5.2.1 - dev: false - - /keyv@3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} - dependencies: - json-buffer: 3.0.0 - dev: false - - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: false - - /latest-version@5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} - engines: {node: '>=8'} - dependencies: - package-json: 6.5.0 - dev: false - - /lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - dependencies: - immediate: 3.0.6 - dev: false - - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: false - - /load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 5.2.0 - strip-bom: 4.0.0 - type-fest: 0.6.0 - dev: false - - /load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - dev: false - - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: false - - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: false - - /lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - dev: false - - /lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - dev: false - - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: false - - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: false - - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: false - - /lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: false - - /lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: false - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: false - - /magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - dev: false - - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.0 - dev: false - - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: false - - /map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} - dependencies: - p-defer: 1.0.0 - dev: false - - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: false - - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: false - - /mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 - dev: false - - /meow@9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} - engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize: 1.2.0 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - dev: false - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: false - - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: false - - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: false - - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: false - - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: false - - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: false - - /mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - dev: false - - /mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: false - - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: false - - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: false - - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: false - - /minimist@1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - dev: false - - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 - dev: false - - /minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} - dev: false - - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - dev: false - - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: false - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: false - - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: false - - /multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} - dependencies: - '@types/minimatch': 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.1.2 - dev: false - - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: false - - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: false - - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: false - - /node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} - dependencies: - lodash: 4.17.21 - dev: false - - /node-fetch@2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: false - - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.2 - semver: 5.7.1 - validate-npm-package-license: 3.0.4 - dev: false - - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.12.0 - semver: 7.3.8 - validate-npm-package-license: 3.0.4 - dev: false - - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: false - - /normalize-url@4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} - dev: false - - /npm-bundled@1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} - dependencies: - npm-normalize-package-bin: 1.0.1 - dev: false - - /npm-check@6.0.1: - resolution: {integrity: sha512-tlEhXU3689VLUHYEZTS/BC61vfeN2xSSZwoWDT6WLuenZTpDmGmNT5mtl15erTR0/A15ldK06/NEKg9jYJ9OTQ==} - engines: {node: '>=10.9.0'} - hasBin: true - dependencies: - callsite-record: 4.1.5 - chalk: 4.1.2 - co: 4.6.0 - depcheck: 1.4.3 - execa: 5.1.1 - giturl: 1.0.1 - global-modules: 2.0.0 - globby: 11.1.0 - inquirer: 7.3.3 - is-ci: 2.0.0 - lodash: 4.17.21 - meow: 9.0.0 - minimatch: 3.1.2 - node-emoji: 1.11.0 - ora: 5.4.1 - package-json: 6.5.0 - path-exists: 4.0.0 - pkg-dir: 5.0.0 - preferred-pm: 3.0.3 - rc-config-loader: 4.1.2 - semver: 7.3.8 - semver-diff: 3.1.1 - strip-ansi: 6.0.1 - text-table: 0.2.0 - throat: 6.0.2 - update-notifier: 5.1.0 - xtend: 4.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /npm-normalize-package-bin@1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} - dev: false - - /npm-package-arg@6.1.1: - resolution: {integrity: sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==} - dependencies: - hosted-git-info: 2.8.9 - osenv: 0.1.5 - semver: 5.7.1 - validate-npm-package-name: 3.0.0 - dev: false - - /npm-packlist@2.1.5: - resolution: {integrity: sha512-KCfK3Vi2F+PH1klYauoQzg81GQ8/GGjQRKYY6tRnpQUPKTs/1gBZSRWtTEd7jGdSn1LZL7gpAmJT+BcS55k2XQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - glob: 7.2.3 - ignore-walk: 3.0.4 - npm-bundled: 1.1.2 - npm-normalize-package-bin: 1.0.1 - dev: false - - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: false - - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: false - - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - dev: false - - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: false - - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: false - - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.8.0 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: false - - /os-homedir@1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} - engines: {node: '>=0.10.0'} - dev: false - - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: false - - /osenv@0.1.5: - resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} - dependencies: - os-homedir: 1.0.2 - os-tmpdir: 1.0.2 - dev: false - - /p-cancelable@1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} - dev: false - - /p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - dev: false - - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: false - - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: false - - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: false - - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: false - - /p-reflect@2.1.0: - resolution: {integrity: sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==} - engines: {node: '>=8'} - dev: false - - /p-settle@4.1.1: - resolution: {integrity: sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==} - engines: {node: '>=10'} - dependencies: - p-limit: 2.3.0 - p-reflect: 2.1.0 - dev: false - - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: false - - /package-json@6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} - engines: {node: '>=8'} - dependencies: - got: 9.6.0 - registry-auth-token: 4.2.2 - registry-url: 5.1.0 - semver: 6.3.0 - dev: false - - /pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: false - - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: false - - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.21.4 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: false - - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: false - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: false - - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: false - - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: false - - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: false - - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: false - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: false - - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: false - - /pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - dependencies: - pinkie: 2.0.4 - dev: false - - /pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - dev: false - - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: false - - /pkg-dir@5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - dependencies: - find-up: 5.0.0 - dev: false - - /please-upgrade-node@3.2.0: - resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} - dependencies: - semver-compare: 1.0.0 - dev: false - - /postcss@8.4.22: - resolution: {integrity: sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: false - - /preferred-pm@3.0.3: - resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} - engines: {node: '>=10'} - dependencies: - find-up: 5.0.0 - find-yarn-workspace-root2: 1.2.16 - path-exists: 4.0.0 - which-pm: 2.0.0 - dev: false - - /prepend-http@2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} - engines: {node: '>=4'} - dev: false - - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: false - - /process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - dev: false - - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: false - - /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: false - - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - dev: false - - /pupa@2.1.1: - resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} - engines: {node: '>=8'} - dependencies: - escape-goat: 2.1.1 - dev: false - - /query-ast@1.0.5: - resolution: {integrity: sha512-JK+1ma4YDuLjvKKcz9JZ70G+CM9qEOs/l1cZzstMMfwKUabTJ9sud5jvDGrUNuv03yKUgs82bLkHXJkDyhRmBw==} - dependencies: - invariant: 2.2.4 - lodash: 4.17.21 - dev: false - - /querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: false - - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: false - - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: false - - /ramda@0.27.2: - resolution: {integrity: sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==} - dev: false - - /rc-config-loader@4.1.2: - resolution: {integrity: sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==} - dependencies: - debug: 4.3.4 - js-yaml: 4.1.0 - json5: 2.2.3 - require-from-string: 2.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.6 - strip-json-comments: 2.0.1 - dev: false - - /read-package-json@2.1.2: - resolution: {integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==} - dependencies: - glob: 7.2.3 - json-parse-even-better-errors: 2.3.1 - normalize-package-data: 2.5.0 - npm-normalize-package-bin: 1.0.1 - dev: false - - /read-package-tree@5.1.6: - resolution: {integrity: sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==} - deprecated: The functionality that this package provided is now in @npmcli/arborist - dependencies: - debuglog: 1.0.1 - dezalgo: 1.0.4 - once: 1.4.0 - read-package-json: 2.1.2 - readdir-scoped-modules: 1.1.0 - dev: false - - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - dev: false - - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - dev: false - - /read-yaml-file@2.1.0: - resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} - engines: {node: '>=10.13'} - dependencies: - js-yaml: 4.1.0 - strip-bom: 4.0.0 - dev: false - - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: false - - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: false - - /readdir-scoped-modules@1.1.0: - resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} - deprecated: This functionality has been moved to @npmcli/fs - dependencies: - debuglog: 1.0.1 - dezalgo: 1.0.4 - graceful-fs: 4.2.11 - once: 1.4.0 - dev: false - - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: false - - /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - dev: false - - /registry-auth-token@4.2.2: - resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} - engines: {node: '>=6.0.0'} - dependencies: - rc: 1.2.8 - dev: false - - /registry-url@5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} - dependencies: - rc: 1.2.8 - dev: false - - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: false - - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: false - - /require-package-name@2.0.1: - resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==} - dev: false - - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: false - - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: false - - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} - hasBin: true - dependencies: - is-core-module: 2.12.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: false - - /responselike@1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} - dependencies: - lowercase-keys: 1.0.1 - dev: false - - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: false - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: false - - /rfc4648@1.5.2: - resolution: {integrity: sha512-tLOizhR6YGovrEBLatX1sdcuhoSCXddw3mqNVAcKxGJ+J0hFeJ+SjeWCv5UPA/WU3YzWPPuCVYgXBKZUPGpKtg==} - dev: false - - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: false - - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: false - - /rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - dependencies: - tslib: 1.14.1 - dev: false - - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: false - - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: false - - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: false - - /sass@1.62.0: - resolution: {integrity: sha512-Q4USplo4pLYgCi+XlipZCWUQz5pkg/ruSSgJ0WRDSb/+3z9tXUOkQ7QPYn4XrhZKYAK4HlpaQecRwKLJX6+DBg==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - chokidar: 3.5.3 - immutable: 4.3.0 - source-map-js: 1.0.2 - dev: false - - /sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} - dev: false - - /scss-parser@1.0.6: - resolution: {integrity: sha512-SH3TaoaJFzfAtqs3eG1j5IuHJkeEW5rKUPIjIN+ZorLAyJLHItQGnsgwHk76v25GtLtpT9IqfAcqK4vFWdiw+w==} - engines: {node: '>=6.0.0'} - dependencies: - invariant: 2.2.4 - lodash: 4.17.21 - dev: false - - /semver-compare@1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} - dev: false - - /semver-diff@3.1.1: - resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.0 - dev: false - - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: false - - /semver@6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true - dev: false - - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: false - - /set-immediate-shim@1.0.1: - resolution: {integrity: sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==} - engines: {node: '>=0.10.0'} - dev: false - - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: false - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: false - - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: false - - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: false - - /sort-keys@4.2.0: - resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} - engines: {node: '>=8'} - dependencies: - is-plain-obj: 2.1.0 - dev: false - - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: false - - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: false - - /sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - dev: false - - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.13 - dev: false - - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: false - - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.13 - dev: false - - /spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} - dev: false - - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: false - - /ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: false - - /stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - dev: false - - /stoppable@1.1.0: - resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} - engines: {node: '>=4', npm: '>=6'} - dev: false - - /strict-uri-encode@2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - dev: false - - /string-argv@0.3.1: - resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} - engines: {node: '>=0.6.19'} - dev: false - - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: false - - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: false - - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: false - - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: false - - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: false - - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: false - - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: false - - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: false - - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: false - - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: false - - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: false - - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: false - - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - dev: false - - /tar@6.1.13: - resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} - engines: {node: '>=10'} - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 4.2.8 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - dev: false - - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: false - - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: false - - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: false - - /throat@6.0.2: - resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} - dev: false - - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: false - - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: false - - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: false - - /to-readable-stream@1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} - dev: false - - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: false - - /tough-cookie@4.1.2: - resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} - engines: {node: '>=6'} - dependencies: - psl: 1.9.0 - punycode: 2.3.0 - universalify: 0.2.0 - url-parse: 1.5.10 - dev: false - - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: false - - /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: false - - /true-case-path@2.2.1: - resolution: {integrity: sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==} - dev: false - - /ts-node@10.9.2(@types/node@0.0.0)(typescript@5.0.2): - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.3 - '@types/node': 0.0.0 - acorn: 8.8.2 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.0.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: false - - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: false - - /tslib@2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - dev: false - - /tunnel@0.0.6: - resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} - engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - dev: false - - /type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - dev: false - - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: false - - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: false - - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: false - - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: false - - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: false - - /typescript@5.0.2: - resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} - engines: {node: '>=12.20'} - hasBin: true - - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - dependencies: - crypto-random-string: 2.0.0 - dev: false - - /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: false - - /universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - dev: false - - /update-notifier@5.1.0: - resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} - engines: {node: '>=10'} - dependencies: - boxen: 5.1.2 - chalk: 4.1.2 - configstore: 5.0.1 - has-yarn: 2.1.0 - import-lazy: 2.1.0 - is-ci: 2.0.0 - is-installed-globally: 0.4.0 - is-npm: 5.0.0 - is-yarn-global: 0.3.0 - latest-version: 5.1.0 - pupa: 2.1.1 - semver: 7.3.8 - semver-diff: 3.1.1 - xdg-basedir: 4.0.0 - dev: false - - /url-parse-lax@3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} - engines: {node: '>=4'} - dependencies: - prepend-http: 2.0.0 - dev: false - - /url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - dev: false - - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: false - - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: false - - /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: false - - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - dev: false - - /validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} - dependencies: - builtins: 1.0.3 - dev: false - - /validator@13.9.0: - resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==} - engines: {node: '>= 0.10'} - dev: false - - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - dependencies: - defaults: 1.0.4 - dev: false - - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: false - - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - dev: false - - /which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} - dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 - dev: false - - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: false - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: false - - /widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - dependencies: - string-width: 4.2.3 - dev: false - - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: false - - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: false - - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: false - - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: false - - /write-yaml-file@4.2.0: - resolution: {integrity: sha512-LwyucHy0uhWqbrOkh9cBluZBeNVxzHjDaE9mwepZG3n3ZlbM4v3ndrFw51zW/NXYFFqP+QWZ72ihtLWTh05e4Q==} - engines: {node: '>=10.13'} - dependencies: - js-yaml: 4.1.0 - write-file-atomic: 3.0.3 - dev: false - - /xdg-basedir@4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} - dev: false - - /xml2js@0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} - engines: {node: '>=4.0.0'} - dependencies: - sax: 1.2.4 - xmlbuilder: 11.0.1 - dev: false - - /xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - dev: false - - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: false - - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: false - - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: false - - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: false - - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: false - - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: false - - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: false - - /z-schema@5.0.5: - resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} - engines: {node: '>=8.0.0'} - hasBin: true - dependencies: - lodash.get: 4.4.2 - lodash.isequal: 4.5.0 - validator: 13.9.0 - optionalDependencies: - commander: 9.5.0 - dev: false diff --git a/common/autoinstallers/run-script/run.ts b/common/autoinstallers/run-script/run.ts deleted file mode 100644 index 7f311c15..00000000 --- a/common/autoinstallers/run-script/run.ts +++ /dev/null @@ -1,30 +0,0 @@ -import minimist, { ParsedArgs } from "minimist"; -import { RushConfiguration } from "@microsoft/rush-lib"; -import { spawnSync } from "child_process"; - -interface RunScriptArgv extends ParsedArgs { - project?: string; - script?: string; -} - -function run() { - const argv: RunScriptArgv = minimist(process.argv.slice(2)); - const projects = RushConfiguration.loadFromDefaultLocation({ - startingFolder: process.cwd(), - }); - - const targetProject = projects.findProjectByShorthandName(argv.project!); - - if (targetProject) { - const result = spawnSync("sh", ["-c", `rushx ${argv.script}`], { - cwd: targetProject?.projectFolder, - shell: false, - stdio: [0, 1, 2], - }); - if (result.status !== 0) { - process.exit(result.status); - } - } -} - -run(); diff --git a/common/autoinstallers/run-script/tsconfig.json b/common/autoinstallers/run-script/tsconfig.json deleted file mode 100644 index 57b9dd91..00000000 --- a/common/autoinstallers/run-script/tsconfig.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - "module": "ESNext" /* 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. */, - "types": ["node"] /* Disable emitting comments. */, - "noEmit": true /* Disable emitting files from a compilation. */, - "noEmitOnError": true /* Disable emitting files if any type checking errors are reported. */, - - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, - "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": false /* Disable error reporting for unused labels. */, - "allowUnreachableCode": false /* 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. */ - }, - "ts-node": { - "transpileOnly": true, - "compilerOptions": { - "module": "commonjs" - } - } -} diff --git a/common/config/rush/.npmrc b/common/config/rush/.npmrc deleted file mode 100644 index 8643dba0..00000000 --- a/common/config/rush/.npmrc +++ /dev/null @@ -1,23 +0,0 @@ -# Rush uses this file to configure the NPM package registry during installation. It is applicable -# to PNPM, NPM, and Yarn package managers. It is used by operations such as "rush install", -# "rush update", and the "install-run.js" scripts. -# -# NOTE: The "rush publish" command uses .npmrc-publish instead. -# -# Before invoking the package manager, Rush will copy this file to the folder where installation -# is performed. The copied file will omit any config lines that reference environment variables -# that are undefined in that session; this avoids problems that would otherwise result due to -# a missing variable being replaced by an empty string. -# -# * * * SECURITY WARNING * * * -# -# It is NOT recommended to store authentication tokens in a text file on a lab machine, because -# other unrelated processes may be able to read the file. Also, the file may persist indefinitely, -# for example if the machine loses power. A safer practice is to pass the token via an -# environment variable, which can be referenced from .npmrc using ${} expansion. For example: -# -# //registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN} -# -registry=https://registry.npmjs.org/ -always-auth=false - diff --git a/common/config/rush/.npmrc-publish b/common/config/rush/.npmrc-publish deleted file mode 100644 index bae448b6..00000000 --- a/common/config/rush/.npmrc-publish +++ /dev/null @@ -1,20 +0,0 @@ -# This config file is very similar to common/config/rush/.npmrc, except that .npmrc-publish -# is used by the "rush publish" command, as publishing often involves different credentials -# and registries than other operations. -# -# Before invoking the package manager, Rush will copy this file to "common/temp/publish-home/.npmrc" -# and then temporarily map that folder as the "home directory" for the current user account. -# This enables the same settings to apply for each project folder that gets published. The copied file -# will omit any config lines that reference environment variables that are undefined in that session; -# this avoids problems that would otherwise result due to a missing variable being replaced by -# an empty string. -# -# * * * SECURITY WARNING * * * -# -# It is NOT recommended to store authentication tokens in a text file on a lab machine, because -# other unrelated processes may be able to read the file. Also, the file may persist indefinitely, -# for example if the machine loses power. A safer practice is to pass the token via an -# environment variable, which can be referenced from .npmrc using ${} expansion. For example: -# -//registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN} -# diff --git a/common/config/rush/.pnpmfile.cjs b/common/config/rush/.pnpmfile.cjs deleted file mode 100644 index b13d6ca7..00000000 --- a/common/config/rush/.pnpmfile.cjs +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -/** - * When using the PNPM package manager, you can use pnpmfile.js to workaround - * dependencies that have mistakes in their package.json file. (This feature is - * functionally similar to Yarn's "resolutions".) - * - * For details, see the PNPM documentation: - * https://pnpm.js.org/docs/en/hooks.html - * - * IMPORTANT: SINCE THIS FILE CONTAINS EXECUTABLE CODE, MODIFYING IT IS LIKELY TO INVALIDATE - * ANY CACHED DEPENDENCY ANALYSIS. After any modification to pnpmfile.js, it's recommended to run - * "rush update --full" so that PNPM will recalculate all version selections. - */ -module.exports = { - hooks: { - readPackage - } -}; - -/** - * This hook is invoked during installation before a package's dependencies - * are selected. - * The `packageJson` parameter is the deserialized package.json - * contents for the package that is about to be installed. - * The `context` parameter provides a log() function. - * The return value is the updated object. - */ -function readPackage(packageJson, context) { - - // // The karma types have a missing dependency on typings from the log4js package. - // if (packageJson.name === '@types/karma') { - // context.log('Fixed up dependencies for @types/karma'); - // packageJson.dependencies['log4js'] = '0.6.38'; - // } - - return packageJson; -} diff --git a/common/config/rush/artifactory.json b/common/config/rush/artifactory.json deleted file mode 100644 index 26806547..00000000 --- a/common/config/rush/artifactory.json +++ /dev/null @@ -1,109 +0,0 @@ -/** - * This configuration file manages Rush integration with JFrog Artifactory services. - * More documentation is available on the Rush website: https://rushjs.io - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/artifactory.schema.json", - - "packageRegistry": { - /** - * (Required) Set this to "true" to enable Rush to manage tokens for an Artifactory NPM registry. - * When enabled, "rush install" will automatically detect when the user's ~/.npmrc - * authentication token is missing or expired. And "rush setup" will prompt the user to - * renew their token. - * - * The default value is false. - */ - "enabled": false, - - /** - * (Required) Specify the URL of your NPM registry. This is the same URL that appears in - * your .npmrc file. It should look something like this example: - * - * https://your-company.jfrog.io/your-project/api/npm/npm-private/ - */ - "registryUrl": "", - - /** - * A list of custom strings that "rush setup" should add to the user's ~/.npmrc file at the time - * when the token is updated. This could be used for example to configure the company registry - * to be used whenever NPM is invoked as a standalone command (but it's not needed for Rush - * operations like "rush add" and "rush install", which get their mappings from the monorepo's - * common/config/rush/.npmrc file). - * - * NOTE: The ~/.npmrc settings are global for the user account on a given machine, so be careful - * about adding settings that may interfere with other work outside the monorepo. - */ - "userNpmrcLinesToAdd": [ - // "@example:registry=https://your-company.jfrog.io/your-project/api/npm/npm-private/" - ], - - /** - * (Required) Specifies the URL of the Artifactory control panel where the user can generate - * an API key. This URL is printed after the "visitWebsite" message. - * It should look something like this example: https://your-company.jfrog.io/ - * Specify an empty string to suppress this line entirely. - */ - "artifactoryWebsiteUrl": "", - - /** - * Uncomment this line to specify the type of credential to save in the user's ~/.npmrc file. - * The default is "password", which means the user's API token will be traded in for an - * npm password specific to that registry. Optionally you can specify "authToken", which - * will save the user's API token as credentials instead. - */ - // "credentialType": "password", - - /** - * These settings allow the "rush setup" interactive prompts to be customized, for - * example with messages specific to your team or configuration. Specify an empty string - * to suppress that message entirely. - */ - "messageOverrides": { - /** - * Overrides the message that normally says: - * "This monorepo consumes packages from an Artifactory private NPM registry." - */ - // "introduction": "", - - /** - * Overrides the message that normally says: - * "Please contact the repository maintainers for help with setting up an Artifactory user account." - */ - // "obtainAnAccount": "", - - /** - * Overrides the message that normally says: - * "Please open this URL in your web browser:" - * - * The "artifactoryWebsiteUrl" string is printed after this message. - */ - // "visitWebsite": "", - - /** - * Overrides the message that normally says: - * "Your user name appears in the upper-right corner of the JFrog website." - */ - // "locateUserName": "", - - /** - * Overrides the message that normally says: - * "Click 'Edit Profile' on the JFrog website. Click the 'Generate API Key' - * button if you haven't already done so previously." - */ - // "locateApiKey": "" - - /** - * Overrides the message that normally prompts: - * "What is your Artifactory user name?" - */ - // "userNamePrompt": "" - - /** - * Overrides the message that normally prompts: - * "What is your Artifactory API key?" - */ - // "apiKeyPrompt": "" - } - } -} diff --git a/common/config/rush/build-cache.json b/common/config/rush/build-cache.json deleted file mode 100644 index 45571cbd..00000000 --- a/common/config/rush/build-cache.json +++ /dev/null @@ -1,100 +0,0 @@ -/** - * This configuration file manages Rush's build cache feature. - * More documentation is available on the Rush website: https://rushjs.io - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/build-cache.schema.json", - - /** - * (Required) EXPERIMENTAL - Set this to true to enable the build cache feature. - * - * See https://rushjs.io/pages/maintainer/build_cache/ for details about this experimental feature. - */ - "buildCacheEnabled": false, - - /** - * (Required) Choose where project build outputs will be cached. - * - * Possible values: "local-only", "azure-blob-storage", "amazon-s3" - */ - "cacheProvider": "local-only", - - /** - * Setting this property overrides the cache entry ID. If this property is set, it must contain - * a [hash] token. - * - * Other available tokens: - * - [projectName] - * - [projectName:normalize] - * - [phaseName] - * - [phaseName:normalize] - * - [phaseName:trimPrefix] - */ - // "cacheEntryNamePattern": "[projectName:normalize]-[phaseName:normalize]-[hash]" - - /** - * Use this configuration with "cacheProvider"="azure-blob-storage" - */ - "azureBlobStorageConfiguration": { - /** - * (Required) The name of the the Azure storage account to use for build cache. - */ - // "storageAccountName": "example", - - /** - * (Required) The name of the container in the Azure storage account to use for build cache. - */ - // "storageContainerName": "my-container", - - /** - * The Azure environment the storage account exists in. Defaults to AzurePublicCloud. - * - * Possible values: "AzurePublicCloud", "AzureChina", "AzureGermany", "AzureGovernment" - */ - // "azureEnvironment": "AzurePublicCloud", - - /** - * An optional prefix for cache item blob names. - */ - // "blobPrefix": "my-prefix", - - /** - * If set to true, allow writing to the cache. Defaults to false. - */ - // "isCacheWriteAllowed": true - }, - - /** - * Use this configuration with "cacheProvider"="amazon-s3" - */ - "amazonS3Configuration": { - /** - * (Required unless s3Endpoint is specified) The name of the bucket to use for build cache. - * Example: "my-bucket" - */ - // "s3Bucket": "my-bucket", - - /** - * (Required unless s3Bucket is specified) The Amazon S3 endpoint of the bucket to use for build cache. - * This should not include any path; use the s3Prefix to set the path. - * Examples: "my-bucket.s3.us-east-2.amazonaws.com" or "http://localhost:9000" - */ - // "s3Endpoint": "https://my-bucket.s3.us-east-2.amazonaws.com", - - /** - * (Required) The Amazon S3 region of the bucket to use for build cache. - * Example: "us-east-1" - */ - // "s3Region": "us-east-1", - - /** - * An optional prefix ("folder") for cache items. It should not start with "/". - */ - // "s3Prefix": "my-prefix", - - /** - * If set to true, allow writing to the cache. Defaults to false. - */ - // "isCacheWriteAllowed": true - } -} diff --git a/common/config/rush/command-line.json b/common/config/rush/command-line.json deleted file mode 100644 index 88e6e667..00000000 --- a/common/config/rush/command-line.json +++ /dev/null @@ -1,205 +0,0 @@ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json", - "commands": [ - { - "name": "rebuild", - "summary": "", - "enableParallelism": false, - "commandKind": "bulk", - "ignoreMissingScript": true, - "allowWarningsInSuccessfulBuild": true - }, - { - "name": "build", - "summary": "", - "enableParallelism": false, - "commandKind": "bulk", - "ignoreMissingScript": true, - "allowWarningsInSuccessfulBuild": true - }, - { - "name": "compile", - "summary": "", - "enableParallelism": false, - "commandKind": "bulk", - "ignoreMissingScript": true, - "allowWarningsInSuccessfulBuild": true - }, - { - "name": "eslint", - "summary": "", - "enableParallelism": false, - "commandKind": "bulk", - "ignoreMissingScript": true, - "ignoreDependencyOrder": true, - "allowWarningsInSuccessfulBuild": true - }, - { - "name": "test", - "summary": "", - "enableParallelism": false, - "commandKind": "bulk", - "ignoreMissingScript": true, - "ignoreDependencyOrder": true, - "allowWarningsInSuccessfulBuild": true - }, - { - "name": "run", - "summary": "", - "commandKind": "global", - "autoinstallerName": "run-script", - "safeForSimultaneousRushProcesses": true, - "shellCommand": "ts-node common/autoinstallers/run-script/run.ts" - }, - { - "name": "commitlint", - "commandKind": "global", - "summary": "Used by the commit-msg Git hook. This command invokes commitlint to lint commit message.", - "autoinstallerName": "lint", - "safeForSimultaneousRushProcesses": true, - "shellCommand": "node common/autoinstallers/lint/commit-lint.js" - }, - { - "name": "lint-staged", - "commandKind": "global", - "summary": "Used by the pre-commit Git hook. This command invokes eslint to lint staged changes.", - "autoinstallerName": "lint", - "safeForSimultaneousRushProcesses": true, - "shellCommand": "lint-staged" - }, - { - "name": "prettier", - "commandKind": "global", - "summary": "Used by the pre-commit Git hook. This command invokes Prettier to reformat staged changes.", - "safeForSimultaneousRushProcesses": true, - "autoinstallerName": "lint", - "shellCommand": "ts-node common/autoinstallers/lint/prettier.ts" - }, - { - "name": "create", - "commandKind": "global", - "summary": "Create a project in 'packages' dir", - "autoinstallerName": "create", - "safeForSimultaneousRushProcesses": true, - "shellCommand": "ts-node common/autoinstallers/create/src/cli.ts" - }, - { - "commandKind": "global", - "name": "start", - "summary": "Start the development server", - "description": "Run this command to start VMind development server", - "shellCommand": "rush run -p @visactor/vmind -s start" - }, - { - "commandKind": "global", - "name": "vmind", - "summary": "Start the development server", - "description": "Run this command to start VMind development server", - "shellCommand": "rush run -p @visactor/vmind -s start" - }, - { - "name": "change-all", - "commandKind": "global", - "autoinstallerName": "run-script", - "summary": "Run rush change width lint", - "description": "Run rush change width lint", - "safeForSimultaneousRushProcesses": true, - "shellCommand": "ts-node common/autoinstallers/lint/change-all.ts" - }, - { - "commandKind": "global", - "name": "docs", - "summary": "Start the document development server", - "description": "Run this command to start document development server", - "shellCommand": "rush run -p @internal/docs -s start" - } - ], - "parameters": [ - { - "parameterKind": "string", - "longName": "--dir", - "description": "Specify which dir will handle", - "associatedCommands": [ - "prettier" - ], - "argumentName": "DIR", - "required": false - }, - { - "parameterKind": "string", - "longName": "--ext", - "description": "Specify which file type will handle, example `rush prettier --ext 'tsx,scss'`", - "associatedCommands": [ - "prettier" - ], - "argumentName": "EXT", - "required": false - }, - { - "parameterKind": "string", - "longName": "--project", - "shortName": "-p", - "description": "Specify the name of the main Rush project to be run", - "associatedCommands": [ - "run" - ], - "argumentName": "PROJECT_NAME", - "required": true - }, - { - "parameterKind": "string", - "longName": "--script", - "shortName": "-s", - "description": "Specify script name in project", - "associatedCommands": [ - "run" - ], - "argumentName": "SCRIPT_NAME", - "required": true - }, - { - "parameterKind": "string", - "longName": "--message", - "shortName": "-m", - "description": "Write a message for change", - "associatedCommands": [ - "change-all" - ], - "argumentName": "MESSAGE", - "required": false - }, - { - "parameterKind": "flag", - "longName": "--not-commit", - "shortName": "-n", - "description": "not commit after run rush change", - "associatedCommands": [ - "change-all" - ], - "required": false - }, - { - "parameterKind": "choice", - "longName": "--type", - "shortName": "-t", - "description": "The bump type of change: major, minor, patch, none", - "associatedCommands": [ - "change-all" - ], - "alternatives": [ - { - "name": "patch", - "description": "A patch change" - }, - { - "name": "minor", - "description": "A minor change" - }, - { - "name": "major", - "description": "A major change" - } - ] - } - ] -} diff --git a/common/config/rush/common-versions.json b/common/config/rush/common-versions.json deleted file mode 100644 index 548de126..00000000 --- a/common/config/rush/common-versions.json +++ /dev/null @@ -1,62 +0,0 @@ -/** - * This configuration file specifies NPM dependency version selections that affect all projects - * in a Rush repo. More documentation is available on the Rush website: https://rushjs.io - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/common-versions.schema.json", - - /** - * A table that specifies a "preferred version" for a given NPM package. This feature is typically used - * to hold back an indirect dependency to a specific older version, or to reduce duplication of indirect dependencies. - * - * The "preferredVersions" value can be any SemVer range specifier (e.g. "~1.2.3"). Rush injects these values into - * the "dependencies" field of the top-level common/temp/package.json, which influences how the package manager - * will calculate versions. The specific effect depends on your package manager. Generally it will have no - * effect on an incompatible or already constrained SemVer range. If you are using PNPM, similar effects can be - * achieved using the pnpmfile.js hook. See the Rush documentation for more details. - * - * After modifying this field, it's recommended to run "rush update --full" so that the package manager - * will recalculate all version selections. - */ - "preferredVersions": { - /** - * When someone asks for "^1.0.0" make sure they get "1.2.3" when working in this repo, - * instead of the latest version. - */ - // "some-library": "1.2.3" - }, - - /** - * When set to true, for all projects in the repo, all dependencies will be automatically added as preferredVersions, - * except in cases where different projects specify different version ranges for a given dependency. For older - * package managers, this tended to reduce duplication of indirect dependencies. However, it can sometimes cause - * trouble for indirect dependencies with incompatible peerDependencies ranges. - * - * The default value is true. If you're encountering installation errors related to peer dependencies, - * it's recommended to set this to false. - * - * After modifying this field, it's recommended to run "rush update --full" so that the package manager - * will recalculate all version selections. - */ - // "implicitlyPreferredVersions": false, - - /** - * The "rush check" command can be used to enforce that every project in the repo must specify - * the same SemVer range for a given dependency. However, sometimes exceptions are needed. - * The allowedAlternativeVersions table allows you to list other SemVer ranges that will be - * accepted by "rush check" for a given dependency. - * - * IMPORTANT: THIS TABLE IS FOR *ADDITIONAL* VERSION RANGES THAT ARE ALTERNATIVES TO THE - * USUAL VERSION (WHICH IS INFERRED BY LOOKING AT ALL PROJECTS IN THE REPO). - * This design avoids unnecessary churn in this file. - */ - "allowedAlternativeVersions": { - /** - * For example, allow some projects to use an older TypeScript compiler - * (in addition to whatever "usual" version is being used by other projects in the repo): - */ - // "typescript": [ - // "4.0.2" - // ] - } -} diff --git a/common/config/rush/experiments.json b/common/config/rush/experiments.json deleted file mode 100644 index 498d8125..00000000 --- a/common/config/rush/experiments.json +++ /dev/null @@ -1,50 +0,0 @@ -/** - * This configuration file allows repo maintainers to enable and disable experimental - * Rush features. More documentation is available on the Rush website: https://rushjs.io - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/experiments.schema.json", - - /** - * By default, 'rush install' passes --no-prefer-frozen-lockfile to 'pnpm install'. - * Set this option to true to pass '--frozen-lockfile' instead for faster installs. - */ - // "usePnpmFrozenLockfileForRushInstall": true, - - /** - * By default, 'rush update' passes --no-prefer-frozen-lockfile to 'pnpm install'. - * Set this option to true to pass '--prefer-frozen-lockfile' instead to minimize shrinkwrap changes. - */ - // "usePnpmPreferFrozenLockfileForRushUpdate": true, - - /** - * If using the 'preventManualShrinkwrapChanges' option, restricts the hash to only include the layout of external dependencies. - * Used to allow links between workspace projects or the addition/removal of references to existing dependency versions to not - * cause hash changes. - */ - // "omitImportersFromPreventManualShrinkwrapChanges": true, - - /** - * If true, the chmod field in temporary project tar headers will not be normalized. - * This normalization can help ensure consistent tarball integrity across platforms. - */ - // "noChmodFieldInTarHeaderNormalization": true, - - /** - * If true, build caching will respect the allowWarningsInSuccessfulBuild flag and cache builds with warnings. - * This will not replay warnings from the cached build. - */ - // "buildCacheWithAllowWarningsInSuccessfulBuild": true, - - /** - * If true, the phased commands feature is enabled. To use this feature, create a "phased" command - * in common/config/rush/command-line.json. - */ - // "phasedCommands": true, - - /** - * If true, perform a clean install after when running `rush install` or `rush update` if the - * `.npmrc` file has changed since the last install. - */ - // "cleanInstallAfterNpmrcChanges": true -} diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json deleted file mode 100644 index dae57c3b..00000000 --- a/common/config/rush/pnpm-config.json +++ /dev/null @@ -1,205 +0,0 @@ -/** - * This configuration file provides settings specific to the PNPM package manager. - * More documentation is available on the Rush website: https://rushjs.io - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/pnpm-config.schema.json", - - /** - * If true, then `rush install` and `rush update` will use the PNPM workspaces feature - * to perform the install, instead of the old model where Rush generated the symlinks - * for each projects's node_modules folder. - * - * When using workspaces, Rush will generate a `common/temp/pnpm-workspace.yaml` file referencing - * all local projects to install. Rush will also generate a `.pnpmfile.cjs` shim which implements - * Rush-specific features such as preferred versions. The user's `common/config/rush/.pnpmfile.cjs` - * is invoked by the shim. - * - * This option is strongly recommended. The default value is false. - */ - "useWorkspaces": true, - - /** - * If true, then Rush will add the `--strict-peer-dependencies` command-line parameter when - * invoking PNPM. This causes `rush update` to fail if there are unsatisfied peer dependencies, - * which is an invalid state that can cause build failures or incompatible dependency versions. - * (For historical reasons, JavaScript package managers generally do not treat this invalid - * state as an error.) - * - * PNPM documentation: https://pnpm.io/npmrc#strict-peer-dependencies - * - * The default value is false to avoid legacy compatibility issues. - * It is strongly recommended to set `strictPeerDependencies=true`. - */ - // "strictPeerDependencies": true, - - /** - * Environment variables that will be provided to PNPM. - */ - // "environmentVariables": { - // "NODE_OPTIONS": { - // "value": "--max-old-space-size=4096", - // "override": false - // } - // }, - - /** - * Specifies the location of the PNPM store. There are two possible values: - * - * - `local` - use the `pnpm-store` folder in the current configured temp folder: - * `common/temp/pnpm-store` by default. - * - `global` - use PNPM's global store, which has the benefit of being shared - * across multiple repo folders, but the disadvantage of less isolation for builds - * (for example, bugs or incompatibilities when two repos use different releases of PNPM) - * - * In both cases, the store path can be overridden by the environment variable `RUSH_PNPM_STORE_PATH`. - * - * The default value is `local`. - */ - // "pnpmStore": "global", - - /** - * If true, then `rush install` will report an error if manual modifications - * were made to the PNPM shrinkwrap file without running `rush update` afterwards. - * - * This feature protects against accidental inconsistencies that may be introduced - * if the PNPM shrinkwrap file (`pnpm-lock.yaml`) is manually edited. When this - * feature is enabled, `rush update` will append a hash to the file as a YAML comment, - * and then `rush update` and `rush install` will validate the hash. Note that this - * does not prohibit manual modifications, but merely requires `rush update` be run - * afterwards, ensuring that PNPM can report or repair any potential inconsistencies. - * - * To temporarily disable this validation when invoking `rush install`, use the - * `--bypass-policy` command-line parameter. - * - * The default value is false. - */ - // "preventManualShrinkwrapChanges": true, - - /** - * The "globalOverrides" setting provides a simple mechanism for overriding version selections - * for all dependencies of all projects in the monorepo workspace. The settings are copied - * into the `pnpm.overrides` field of the `common/temp/package.json` file that is generated - * by Rush during installation. - * - * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by - * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`, - * and `globalOverrides` has lowest precedence. - * - * PNPM documentation: https://pnpm.io/package_json#pnpmoverrides - */ - "globalOverrides": { - // "@visactor/vrender-core": "0.17.2-alpha.0", - // "@visactor/vrender-kits": "0.17.2-alpha.0", - // "@visactor/vrender-components": "0.17.2-alpha.0" - }, - - /** - * The `globalPeerDependencyRules` setting provides various settings for suppressing validation errors - * that are reported during installation with `strictPeerDependencies=true`. The settings are copied - * into the `pnpm.peerDependencyRules` field of the `common/temp/package.json` file that is generated - * by Rush during installation. - * - * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by - * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`, - * and `globalOverrides` has lowest precedence. - * - * https://pnpm.io/package_json#pnpmpeerdependencyrules - */ - "globalPeerDependencyRules": { - // "ignoreMissing": ["@eslint/*"], - // "allowedVersions": { "react": "17" }, - // "allowAny": ["@babel/*"] - }, - - /** - * The `globalPackageExtension` setting provides a way to patch arbitrary package.json fields - * for any PNPM dependency of the monorepo. The settings are copied into the `pnpm.packageExtensions` - * field of the `common/temp/package.json` file that is generated by Rush during installation. - * The `globalPackageExtension` setting has similar capabilities as `.pnpmfile.cjs` but without - * the downsides of an executable script (nondeterminism, unreliable caching, performance concerns). - * - * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by - * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`, - * and `globalOverrides` has lowest precedence. - * - * PNPM documentation: https://pnpm.io/package_json#pnpmpackageextensions - */ - "globalPackageExtensions": { - // "fork-ts-checker-webpack-plugin": { - // "dependencies": { - // "@babel/core": "1" - // }, - // "peerDependencies": { - // "eslint": ">= 6" - // }, - // "peerDependenciesMeta": { - // "eslint": { - // "optional": true - // } - // } - // } - }, - - /** - * The `globalNeverBuiltDependencies` setting suppresses the `preinstall`, `install`, and `postinstall` - * lifecycle events for the specified NPM dependencies. This is useful for scripts with poor practices - * such as downloading large binaries without retries or attempting to invoke OS tools such as - * a C++ compiler. (PNPM's terminology refers to these lifecycle events as "building" a package; - * it has nothing to do with build system operations such as `rush build` or `rushx build`.) - * The settings are copied into the `pnpm.neverBuiltDependencies` field of the `common/temp/package.json` - * file that is generated by Rush during installation. - * - * PNPM documentation: https://pnpm.io/package_json#pnpmneverbuiltdependencies - */ - "globalNeverBuiltDependencies": [ - // "fsevents" - ], - - /** - * The `globalAllowedDeprecatedVersions` setting suppresses installation warnings for package - * versions that the NPM registry reports as being deprecated. This is useful if the - * deprecated package is an indirect dependency of an external package that has not released a fix. - * The settings are copied into the `pnpm.allowedDeprecatedVersions` field of the `common/temp/package.json` - * file that is generated by Rush during installation. - * - * PNPM documentation: https://pnpm.io/package_json#pnpmalloweddeprecatedversions - * - * If you are working to eliminate a deprecated version, it's better to specify `allowedDeprecatedVersions` - * in the package.json file for individual Rush projects. - */ - "globalAllowedDeprecatedVersions": { - // "request": "*" - }, - - /** - * (THIS FIELD IS MACHINE GENERATED) The "globalPatchedDependencies" field is updated automatically - * by the `rush-pnpm patch-commit` command. It is a dictionary, where the key is an NPM package name - * and exact version, and the value is a relative path to the associated patch file. - * - * PNPM documentation: https://pnpm.io/package_json#pnpmpatcheddependencies - */ - "globalPatchedDependencies": {}, - - /** - * (USE AT YOUR OWN RISK) This is a free-form property bag that will be copied into - * the `common/temp/package.json` file that is generated by Rush during installation. - * This provides a way to experiment with new PNPM features. These settings will override - * any other Rush configuration associated with a given JSON field except for `.pnpmfile.cjs`. - * - * USAGE OF THIS SETTING IS NOT SUPPORTED BY THE RUSH MAINTAINERS AND MAY CAUSE RUSH - * TO MALFUNCTION. If you encounter a missing PNPM setting that you believe should - * be supported, please create a GitHub issue or PR. Note that Rush does not aim to - * support every possible PNPM setting, but rather to promote a battle-tested installation - * strategy that is known to provide a good experience for large teams with lots of projects. - */ - "unsupportedPackageJsonSettings": { - // "dependencies": { - // "not-a-good-practice": "*" - // }, - // "scripts": { - // "do-something": "echo Also not a good practice" - // }, - // "pnpm": { "futurePnpmFeature": true } - } -} diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml deleted file mode 100644 index f56d7cdc..00000000 --- a/common/config/rush/pnpm-lock.yaml +++ /dev/null @@ -1,14071 +0,0 @@ -lockfileVersion: 5.4 - -importers: - - .: - specifiers: {} - - ../../docs: - specifiers: - '@arco-design/web-react': 2.46.1 - '@types/highlightjs': ^9.12.0 - '@types/markdown-it': ^13.0.0 - '@types/react': ^18.0.0 - '@types/react-dom': ^18.0.0 - '@visactor/vutils': ~0.19.3 - '@vitejs/plugin-react': 3.1.0 - axios: ^1.4.0 - chalk: ^3.0.0 - chokidar: ^3.5.0 - fs-extra: 10.1.0 - globby: 11.1.0 - highlight.js: ^11.8.0 - htmlparser2: ^4.1.0 - lodash: 4.17.21 - markdown-it: ^13.0.0 - marked: ^0.3.19 - react: ^18.0.0 - react-dom: ^18.0.0 - react-router-dom: 6.9.0 - typescript: 4.9.5 - vite: 3.2.6 - yargs: ^17.1.1 - dependencies: - '@arco-design/web-react': 2.46.1_27kzlijtntas6645qwojwuhdba - '@visactor/vutils': 0.19.5 - axios: 1.9.0 - highlight.js: 11.11.1 - lodash: 4.17.21 - markdown-it: 13.0.2 - react: 18.3.1 - react-dom: 18.3.1_react@18.3.1 - react-router-dom: 6.9.0_nnrd3gsncyragczmpvfhocinkq - devDependencies: - '@types/highlightjs': 9.12.6 - '@types/markdown-it': 13.0.9 - '@types/react': 18.3.20 - '@types/react-dom': 18.3.6_@types+react@18.3.20 - '@vitejs/plugin-react': 3.1.0_vite@3.2.6 - chalk: 3.0.0 - chokidar: 3.6.0 - fs-extra: 10.1.0 - globby: 11.1.0 - htmlparser2: 4.1.0 - marked: 0.3.19 - typescript: 4.9.5 - vite: 3.2.6 - yargs: 17.7.2 - - ../../packages/calculator: - specifiers: - '@internal/bundler': workspace:* - '@internal/eslint-config': workspace:* - '@internal/jest-config': workspace:* - '@internal/ts-config': workspace:* - '@jest/globals': ~29.5.0 - '@types/jest': ~29.5.0 - '@types/node': '*' - '@typescript-eslint/eslint-plugin': 5.30.0 - '@typescript-eslint/parser': 5.30.0 - '@visactor/vutils': ~0.19.3 - jest: ~29.5.0 - jest-environment-jsdom: ~29.5.0 - node-sql-parser: ~4.17.0 - npm-run-all: ^4.1.5 - rimraf: ^3.0.2 - ts-jest: ~29.2.5 - ts-node: ^10.9.2 - ts-pattern: ~4.1.4 - typescript: 4.9.5 - dependencies: - '@visactor/vutils': 0.19.5 - node-sql-parser: 4.17.0 - ts-pattern: 4.1.4 - devDependencies: - '@internal/bundler': link:../../tools/bundler - '@internal/eslint-config': link:../../share/eslint-config - '@internal/jest-config': link:../../share/jest-config - '@internal/ts-config': link:../../share/ts-config - '@jest/globals': 29.5.0 - '@types/jest': 29.5.14 - '@types/node': 22.15.1 - '@typescript-eslint/eslint-plugin': 5.30.0_dwvk2jxdxtyxgoclhbqbxvd22a - '@typescript-eslint/parser': 5.30.0_typescript@4.9.5 - jest: 29.5.0_mb2oyrpzg3jg7gqunu3hmdvhw4 - jest-environment-jsdom: 29.5.0 - npm-run-all: 4.1.5 - rimraf: 3.0.2 - ts-jest: 29.2.6_doipufordlnvh5g4adbwayvyvy - ts-node: 10.9.2_h6k6hc6r4guqd4kfcmr723djsq - typescript: 4.9.5 - - ../../packages/chart-advisor: - specifiers: - '@internal/bundler': workspace:* - '@internal/eslint-config': workspace:* - '@internal/jest-config': workspace:* - '@internal/ts-config': workspace:* - '@jest/globals': ~29.5.0 - '@rushstack/eslint-patch': ~1.1.4 - '@types/jest': ~29.5.0 - '@types/node': '*' - '@typescript-eslint/eslint-plugin': 5.30.0 - '@typescript-eslint/parser': 5.30.0 - '@visactor/vutils': ~0.19.3 - jest: ~29.5.0 - jest-environment-jsdom: ~29.5.0 - npm-run-all: ^4.1.5 - rimraf: ^3.0.2 - ts-jest: ~29.2.5 - typescript: 4.9.5 - undici-types: ^5.27.2 - dependencies: - '@visactor/vutils': 0.19.5 - devDependencies: - '@internal/bundler': link:../../tools/bundler - '@internal/eslint-config': link:../../share/eslint-config - '@internal/jest-config': link:../../share/jest-config - '@internal/ts-config': link:../../share/ts-config - '@jest/globals': 29.5.0 - '@rushstack/eslint-patch': 1.1.4 - '@types/jest': 29.5.14 - '@types/node': 22.15.1 - '@typescript-eslint/eslint-plugin': 5.30.0_dwvk2jxdxtyxgoclhbqbxvd22a - '@typescript-eslint/parser': 5.30.0_typescript@4.9.5 - jest: 29.5.0_@types+node@22.15.1 - jest-environment-jsdom: 29.5.0 - npm-run-all: 4.1.5 - rimraf: 3.0.2 - ts-jest: 29.2.6_doipufordlnvh5g4adbwayvyvy - typescript: 4.9.5 - undici-types: 5.28.4 - - ../../packages/generate-vchart: - specifiers: - '@internal/bundler': workspace:* - '@internal/eslint-config': workspace:* - '@internal/jest-config': workspace:* - '@internal/ts-config': workspace:* - '@jest/globals': ~29.5.0 - '@rushstack/eslint-patch': ~1.1.4 - '@types/jest': ~29.5.0 - '@types/node': '*' - '@typescript-eslint/eslint-plugin': 5.30.0 - '@typescript-eslint/parser': 5.30.0 - '@visactor/vchart-theme': ~1.12.2 - '@visactor/vutils': ~0.19.3 - dayjs: ~1.11.10 - jest: ~29.5.0 - jest-environment-jsdom: ~29.5.0 - node-sql-parser: ~4.17.0 - npm-run-all: ^4.1.5 - rimraf: ^3.0.2 - ts-jest: ~29.2.5 - ts-node: ^10.9.2 - ts-pattern: ~4.1.4 - typescript: 4.9.5 - dependencies: - '@visactor/vchart-theme': 1.12.2 - '@visactor/vutils': 0.19.5 - dayjs: 1.11.13 - node-sql-parser: 4.17.0 - ts-pattern: 4.1.4 - devDependencies: - '@internal/bundler': link:../../tools/bundler - '@internal/eslint-config': link:../../share/eslint-config - '@internal/jest-config': link:../../share/jest-config - '@internal/ts-config': link:../../share/ts-config - '@jest/globals': 29.5.0 - '@rushstack/eslint-patch': 1.1.4 - '@types/jest': 29.5.14 - '@types/node': 22.15.1 - '@typescript-eslint/eslint-plugin': 5.30.0_dwvk2jxdxtyxgoclhbqbxvd22a - '@typescript-eslint/parser': 5.30.0_typescript@4.9.5 - jest: 29.5.0_mb2oyrpzg3jg7gqunu3hmdvhw4 - jest-environment-jsdom: 29.5.0 - npm-run-all: 4.1.5 - rimraf: 3.0.2 - ts-jest: 29.2.6_doipufordlnvh5g4adbwayvyvy - ts-node: 10.9.2_h6k6hc6r4guqd4kfcmr723djsq - typescript: 4.9.5 - - ../../packages/vmind: - specifiers: - '@arco-design/web-react': 2.46.1 - '@ffmpeg/ffmpeg': ^0.11.6 - '@internal/bundler': workspace:* - '@internal/eslint-config': workspace:* - '@internal/jest-config': workspace:* - '@internal/ts-config': workspace:* - '@jest/globals': ~29.5.0 - '@monaco-editor/react': ~4.7.0 - '@rollup/plugin-dynamic-import-vars': ~2.1.0 - '@rushstack/eslint-patch': ~1.1.4 - '@stdlib/stats-base-dists-t-quantile': 0.2.1 - '@types/array-normalize': ~2.0.5 - '@types/density-clustering': ~1.3.3 - '@types/euclidean-distance': ~1.0.3 - '@types/jest': ~29.5.0 - '@types/js-yaml': ~4.0.9 - '@types/node': '*' - '@types/react': ^18.0.0 - '@types/react-dom': ^18.0.0 - '@typescript-eslint/eslint-plugin': 5.30.0 - '@typescript-eslint/parser': 5.30.0 - '@visactor/calculator': workspace:2.0.10 - '@visactor/chart-advisor': workspace:2.0.10 - '@visactor/generate-vchart': workspace:2.0.10 - '@visactor/vchart': ^1.13.2 - '@visactor/vchart-theme': ~1.12.2 - '@visactor/vdataset': ~0.19.3 - '@visactor/vrender-core': 0.21.8 - '@visactor/vutils': ~0.19.3 - '@vitejs/plugin-react': 3.1.0 - alasql: ~4.3.2 - array-normalize: ~2.0.0 - axios: ^1.4.0 - bayesian-changepoint: ~1.0.1 - canvas: ^2.11.2 - dayjs: ~1.11.10 - density-clustering: ~1.3.0 - dotenv: ~16.3.1 - eslint: ~8.18.0 - eslint-config-prettier: 8.5.0 - eslint-plugin-import: ^2.27.5 - eslint-plugin-jsx-a11y: ^6.7.1 - eslint-plugin-prettier: ^4.2.1 - eslint-plugin-react: 7.30.1 - euclidean-distance: ~1.0.0 - express: ~4.21.1 - jest: ~29.5.0 - jest-environment-jsdom: ~29.5.0 - js-yaml: ~4.1.0 - json5: ~2.2.3 - jsonrepair: ~3.8.1 - jstat: ~1.9.6 - less: 4.1.3 - react: ^18.0.0 - react-dom: ^18.0.0 - react-router-dom: 6.9.0 - sass: ^1.65.1 - string-similarity-js: ~2.1.4 - ts-jest: ~29.2.5 - ts-node: ^10.9.2 - typescript: 4.9.5 - util: ~0.12.5 - vite: 3.2.6 - vite-plugin-css: ~1.0.4 - vite-plugin-libcss: ~1.1.1 - dependencies: - '@stdlib/stats-base-dists-t-quantile': 0.2.1 - '@visactor/calculator': link:../calculator - '@visactor/chart-advisor': link:../chart-advisor - '@visactor/generate-vchart': link:../generate-vchart - '@visactor/vchart-theme': 1.12.2_@visactor+vchart@1.13.9 - '@visactor/vdataset': 0.19.5 - '@visactor/vutils': 0.19.5 - alasql: 4.3.3 - array-normalize: 2.0.0 - axios: 1.9.0 - bayesian-changepoint: 1.0.1 - dayjs: 1.11.13 - density-clustering: 1.3.0 - euclidean-distance: 1.0.0 - js-yaml: 4.1.0 - json5: 2.2.3 - jsonrepair: 3.8.1 - jstat: 1.9.6 - string-similarity-js: 2.1.4 - devDependencies: - '@arco-design/web-react': 2.46.1_27kzlijtntas6645qwojwuhdba - '@ffmpeg/ffmpeg': 0.11.6 - '@internal/bundler': link:../../tools/bundler - '@internal/eslint-config': link:../../share/eslint-config - '@internal/jest-config': link:../../share/jest-config - '@internal/ts-config': link:../../share/ts-config - '@jest/globals': 29.5.0 - '@monaco-editor/react': 4.7.0_nnrd3gsncyragczmpvfhocinkq - '@rollup/plugin-dynamic-import-vars': 2.1.5 - '@rushstack/eslint-patch': 1.1.4 - '@types/array-normalize': 2.0.5 - '@types/density-clustering': 1.3.3 - '@types/euclidean-distance': 1.0.3 - '@types/jest': 29.5.14 - '@types/js-yaml': 4.0.9 - '@types/node': 22.15.1 - '@types/react': 18.3.20 - '@types/react-dom': 18.3.6_@types+react@18.3.20 - '@typescript-eslint/eslint-plugin': 5.30.0_cow5zg7tx6c3eisi5a4ud5kwia - '@typescript-eslint/parser': 5.30.0_vwud3sodsb5zxmzckoj7rdwdbq - '@visactor/vchart': 1.13.9 - '@visactor/vrender-core': 0.21.8 - '@vitejs/plugin-react': 3.1.0_vite@3.2.6 - canvas: 2.11.2 - dotenv: 16.3.2 - eslint: 8.18.0 - eslint-config-prettier: 8.5.0_eslint@8.18.0 - eslint-plugin-import: 2.31.0_eslint@8.18.0 - eslint-plugin-jsx-a11y: 6.10.2_eslint@8.18.0 - eslint-plugin-prettier: 4.2.1_ohknqdiadpdc4n44qqsbqlxxwa - eslint-plugin-react: 7.30.1_eslint@8.18.0 - express: 4.21.2 - jest: 29.5.0_mb2oyrpzg3jg7gqunu3hmdvhw4 - jest-environment-jsdom: 29.5.0_canvas@2.11.2 - less: 4.1.3 - react: 18.3.1 - react-dom: 18.3.1_react@18.3.1 - react-router-dom: 6.9.0_nnrd3gsncyragczmpvfhocinkq - sass: 1.87.0 - ts-jest: 29.2.6_doipufordlnvh5g4adbwayvyvy - ts-node: 10.9.2_h6k6hc6r4guqd4kfcmr723djsq - typescript: 4.9.5 - util: 0.12.5 - vite: 3.2.6_74mdfjwjjuekt5dohrm44kqp7i - vite-plugin-css: 1.0.4 - vite-plugin-libcss: 1.1.1_vite@3.2.6 - - ../../share/eslint-config: - specifiers: - '@typescript-eslint/eslint-plugin': 5.30.0 - '@typescript-eslint/parser': 5.30.0 - eslint: ~8.18.0 - eslint-config-prettier: 8.5.0 - eslint-plugin-promise: 6.0.0 - eslint-plugin-react: 7.30.1 - eslint-plugin-react-hooks: 4.6.0 - typescript: 4.9.5 - dependencies: - '@typescript-eslint/eslint-plugin': 5.30.0_cow5zg7tx6c3eisi5a4ud5kwia - '@typescript-eslint/parser': 5.30.0_vwud3sodsb5zxmzckoj7rdwdbq - eslint-config-prettier: 8.5.0_eslint@8.18.0 - eslint-plugin-promise: 6.0.0_eslint@8.18.0 - eslint-plugin-react: 7.30.1_eslint@8.18.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.18.0 - devDependencies: - eslint: 8.18.0 - typescript: 4.9.5 - - ../../share/jest-config: - specifiers: - '@jest/globals': ~29.5.0 - '@types/jest': ~29.5.0 - jest: ~29.5.0 - jest-environment-jsdom: ~29.5.0 - jsdom: ~22.1.0 - typescript: 4.9.5 - dependencies: - '@jest/globals': 29.5.0 - jest-environment-jsdom: 29.5.0 - jsdom: 22.1.0 - devDependencies: - '@types/jest': 29.5.14 - jest: 29.5.0 - typescript: 4.9.5 - - ../../share/ts-config: - specifiers: {} - - ../../tools/bundler: - specifiers: - '@babel/core': 7.20.12 - '@babel/generator': 7.21.1 - '@babel/plugin-proposal-class-properties': 7.18.6 - '@babel/plugin-proposal-export-default-from': 7.18.10 - '@babel/plugin-transform-private-methods': 7.25.9 - '@babel/preset-env': 7.20.2 - '@babel/preset-react': 7.18.6 - '@babel/preset-typescript': 7.18.6 - '@internal/eslint-config': workspace:* - '@internal/ts-config': workspace:* - '@rollup/plugin-alias': 5.0.0 - '@rollup/plugin-babel': 6.0.3 - '@rollup/plugin-commonjs': 24.1.0 - '@rollup/plugin-json': 6.0.1 - '@rollup/plugin-node-resolve': 15.0.2 - '@rollup/plugin-replace': 5.0.2 - '@rollup/plugin-terser': 0.4.1 - '@rollup/plugin-typescript': 11.1.0 - '@rollup/plugin-url': 8.0.1 - '@rushstack/eslint-patch': ~1.1.4 - '@trufflesuite/spinnies': 0.1.1 - '@types/babel__core': 7.20.0 - '@types/clean-css': 4.2.6 - '@types/debug': 4.1.7 - '@types/fs-extra': 9.0.13 - '@types/glob-watcher': 5.0.2 - '@types/gulp': 4.0.10 - '@types/gulp-if': 0.0.34 - '@types/gulp-match': 1.1.2 - '@types/gulp-sourcemaps': 0.0.35 - '@types/less': 3.0.3 - '@types/lodash': 4.14.182 - '@types/merge2': 1.4.0 - '@types/minimist': 1.2.2 - '@types/ms': 0.7.31 - '@types/node': '*' - '@types/semver': 7.3.12 - '@types/terser': 3.12.0 - '@types/through2': 2.0.38 - '@types/undertaker': 1.2.8 - '@types/vinyl': 2.0.7 - '@types/yargs-parser': 21.0.0 - autoprefixer: 10.4.13 - babel-plugin-import: 1.13.6 - clean-css: 5.3.2 - debug: 4.3.4 - eslint: ~8.18.0 - fs-extra: 10.1.0 - glob-watcher: 5.0.5 - globby: 11.1.0 - gulp: 4.0.2 - gulp-clean: 0.4.0 - gulp-if: 3.0.0 - gulp-match: 1.1.0 - gulp-replace: 1.1.4 - gulp-sourcemaps: 3.0.0 - gulp-typescript: 6.0.0-alpha.1 - less: 4.1.3 - lodash: 4.17.21 - merge2: 1.4.1 - ms: 2.1.3 - postcss: 8.4.21 - rollup: 3.20.5 - semver: 7.3.4 - terser: 5.17.1 - through2: 4.0.2 - ts-node: ^10.9.2 - typescript: 4.9.5 - undertaker: 1.3.0 - vinyl: 2.2.1 - vitest: 0.30.1 - yargs-parser: 21.1.1 - dependencies: - '@babel/core': 7.20.12 - '@babel/generator': 7.21.1 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.20.12 - '@babel/plugin-transform-private-methods': 7.25.9_@babel+core@7.20.12 - '@babel/preset-env': 7.20.2_@babel+core@7.20.12 - '@babel/preset-react': 7.18.6_@babel+core@7.20.12 - '@babel/preset-typescript': 7.18.6_@babel+core@7.20.12 - '@rollup/plugin-alias': 5.0.0_rollup@3.20.5 - '@rollup/plugin-babel': 6.0.3_i2zi3w2axzphgkbxj6nc7ioafa - '@rollup/plugin-commonjs': 24.1.0_rollup@3.20.5 - '@rollup/plugin-json': 6.0.1_rollup@3.20.5 - '@rollup/plugin-node-resolve': 15.0.2_rollup@3.20.5 - '@rollup/plugin-replace': 5.0.2_rollup@3.20.5 - '@rollup/plugin-terser': 0.4.1_rollup@3.20.5 - '@rollup/plugin-typescript': 11.1.0_ivokygnvpraqsbyfg47pib5bri - '@rollup/plugin-url': 8.0.1_rollup@3.20.5 - '@trufflesuite/spinnies': 0.1.1 - autoprefixer: 10.4.13_postcss@8.4.21 - babel-plugin-import: 1.13.6 - clean-css: 5.3.2 - debug: 4.3.4 - fs-extra: 10.1.0 - glob-watcher: 5.0.5 - globby: 11.1.0 - gulp: 4.0.2 - gulp-clean: 0.4.0 - gulp-if: 3.0.0 - gulp-match: 1.1.0 - gulp-replace: 1.1.4 - gulp-sourcemaps: 3.0.0 - gulp-typescript: 6.0.0-alpha.1_typescript@4.9.5 - less: 4.1.3 - lodash: 4.17.21 - merge2: 1.4.1 - ms: 2.1.3 - postcss: 8.4.21 - rollup: 3.20.5 - semver: 7.3.4 - terser: 5.17.1 - through2: 4.0.2 - undertaker: 1.3.0 - vinyl: 2.2.1 - yargs-parser: 21.1.1 - devDependencies: - '@internal/eslint-config': link:../../share/eslint-config - '@internal/ts-config': link:../../share/ts-config - '@rushstack/eslint-patch': 1.1.4 - '@types/babel__core': 7.20.0 - '@types/clean-css': 4.2.6 - '@types/debug': 4.1.7 - '@types/fs-extra': 9.0.13 - '@types/glob-watcher': 5.0.2 - '@types/gulp': 4.0.10 - '@types/gulp-if': 0.0.34 - '@types/gulp-match': 1.1.2 - '@types/gulp-sourcemaps': 0.0.35 - '@types/less': 3.0.3 - '@types/lodash': 4.14.182 - '@types/merge2': 1.4.0 - '@types/minimist': 1.2.2 - '@types/ms': 0.7.31 - '@types/node': 22.15.1 - '@types/semver': 7.3.12 - '@types/terser': 3.12.0 - '@types/through2': 2.0.38 - '@types/undertaker': 1.2.8 - '@types/vinyl': 2.0.7 - '@types/yargs-parser': 21.0.0 - eslint: 8.18.0 - ts-node: 10.9.2_h6k6hc6r4guqd4kfcmr723djsq - typescript: 4.9.5 - vitest: 0.30.1_less@4.1.3+terser@5.17.1 - - ../../tools/typescript-json-schema: - specifiers: - '@types/chai': ^4.2.21 - '@types/glob': ^7.1.4 - '@types/json-schema': ^7.0.9 - '@types/mocha': ^9.0.0 - '@types/node': '*' - ajv: ^8.12.0 - ajv-formats: ^2.1.1 - chai: ^4.3.4 - glob: ^7.1.7 - mocha: ^9.1.3 - path-equal: ^1.2.5 - safe-stable-stringify: ^2.2.0 - source-map-support: ^0.5.20 - ts-node: ^10.9.2 - typescript: 4.9.5 - yargs: ^17.1.1 - dependencies: - '@types/json-schema': 7.0.15 - '@types/node': 22.15.1 - glob: 7.2.3 - path-equal: 1.2.5 - safe-stable-stringify: 2.5.0 - ts-node: 10.9.2_h6k6hc6r4guqd4kfcmr723djsq - typescript: 4.9.5 - yargs: 17.7.2 - devDependencies: - '@types/chai': 4.3.20 - '@types/glob': 7.2.0 - '@types/mocha': 9.1.1 - ajv: 8.17.1 - ajv-formats: 2.1.1_ajv@8.17.1 - chai: 4.5.0 - mocha: 9.2.2 - source-map-support: 0.5.21 - -packages: - - /@ampproject/remapping/2.3.0: - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - /@arco-design/color/0.4.0: - resolution: {integrity: sha512-s7p9MSwJgHeL8DwcATaXvWT3m2SigKpxx4JA1BGPHL4gfvaQsmQfrLBDpjOJFJuJ2jG2dMt3R3P8Pm9E65q18g==} - dependencies: - color: 3.2.1 - - /@arco-design/web-react/2.46.1_27kzlijtntas6645qwojwuhdba: - resolution: {integrity: sha512-XjG44rODJklDu++OApvxjt/TbRrgkNqVq6grt/H+9skysm46jFn2SwhuSljBHmjo11LtIeB1m/OMPMaFtafeYg==} - peerDependencies: - react: '>=16' - react-dom: '>=16' - dependencies: - '@arco-design/color': 0.4.0 - '@babel/runtime': 7.27.0 - b-tween: 0.3.3 - b-validate: 1.5.3 - compute-scroll-into-view: 1.0.20 - dayjs: 1.11.13 - lodash: 4.17.21 - number-precision: 1.6.0 - react: 18.3.1 - react-dom: 18.3.1_react@18.3.1 - react-focus-lock: 2.13.6_po4keleilqsm4vrhgxl2cr46aq - react-transition-group: 4.4.5_nnrd3gsncyragczmpvfhocinkq - resize-observer-polyfill: 1.5.1 - scroll-into-view-if-needed: 2.2.20 - shallowequal: 1.1.0 - transitivePeerDependencies: - - '@types/react' - - /@babel/code-frame/7.26.2: - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - /@babel/compat-data/7.26.8: - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} - engines: {node: '>=6.9.0'} - - /@babel/core/7.20.12: - resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.21.1 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-module-transforms': 7.26.0_@babel+core@7.20.12 - '@babel/helpers': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /@babel/core/7.26.10: - resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-module-transforms': 7.26.0_@babel+core@7.26.10 - '@babel/helpers': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/generator/7.21.1: - resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.27.0 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - /@babel/generator/7.27.0: - resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - - /@babel/helper-annotate-as-pure/7.25.9: - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.27.0 - dev: false - - /@babel/helper-compilation-targets/7.27.0: - resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 - - /@babel/helper-create-class-features-plugin/7.27.0_@babel+core@7.20.12: - resolution: {integrity: sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.26.5_@babel+core@7.20.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.27.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-create-regexp-features-plugin/7.27.0_@babel+core@7.20.12: - resolution: {integrity: sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 - semver: 6.3.1 - dev: false - - /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.20.12: - resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} - peerDependencies: - '@babel/core': ^7.4.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.10 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-environment-visitor/7.24.7: - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.27.0 - dev: false - - /@babel/helper-member-expression-to-functions/7.25.9: - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-module-imports/7.25.9: - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color - - /@babel/helper-module-transforms/7.26.0_@babel+core@7.20.12: - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - - /@babel/helper-module-transforms/7.26.0_@babel+core@7.26.10: - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-optimise-call-expression/7.25.9: - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.27.0 - dev: false - - /@babel/helper-plugin-utils/7.26.5: - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} - engines: {node: '>=6.9.0'} - - /@babel/helper-remap-async-to-generator/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-replace-supers/7.26.5_@babel+core@7.20.12: - resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-skip-transparent-expression-wrappers/7.25.9: - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-string-parser/7.25.9: - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-identifier/7.25.9: - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-option/7.25.9: - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - - /@babel/helper-wrap-function/7.25.9: - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helpers/7.27.0: - resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - - /@babel/parser/7.27.0: - resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.27.0 - - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.27.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.20.12: - resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.27.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 - dev: false - - /@babel/plugin-proposal-export-default-from/7.18.10_@babel+core@7.20.12: - resolution: {integrity: sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-export-default-from': 7.25.9_@babel+core@7.20.12 - dev: false - - /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 - dev: false - - /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 - dev: false - - /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 - dev: false - - /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 - dev: false - - /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 - dev: false - - /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-transform-parameters': 7.25.9_@babel+core@7.20.12 - dev: false - - /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 - dev: false - - /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.20.12: - resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.27.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-proposal-private-property-in-object/7.21.11_@babel+core@7.20.12: - resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.27.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} - engines: {node: '>=4'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.27.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.12: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.12: - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-syntax-export-default-from/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-9MhJ/SMTsVqsd69GyQg89lYR4o9T+oDGv5F6IsigxxqFVOyR/IflDLYP8WDI1l8fkhNGGktqkvL5qwNCtGEpgQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-syntax-import-assertions/7.26.0_@babel+core@7.20.12: - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-syntax-import-attributes/7.26.0_@babel+core@7.20.12: - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-jsx/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.12: - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-syntax-typescript/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - - /@babel/plugin-transform-arrow-functions/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-async-to-generator/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-block-scoped-functions/7.26.5_@babel+core@7.20.12: - resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-block-scoping/7.27.0_@babel+core@7.20.12: - resolution: {integrity: sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-classes/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5_@babel+core@7.20.12 - '@babel/traverse': 7.27.0 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-computed-properties/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/template': 7.27.0 - dev: false - - /@babel/plugin-transform-destructuring/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-dotall-regex/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.27.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-duplicate-keys/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-exponentiation-operator/7.26.3_@babel+core@7.20.12: - resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-for-of/7.26.9_@babel+core@7.20.12: - resolution: {integrity: sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-function-name/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-literals/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-member-expression-literals/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-modules-amd/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.26.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-modules-commonjs/7.26.3_@babel+core@7.20.12: - resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.26.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-modules-systemjs/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.26.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-modules-umd/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.26.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-named-capturing-groups-regex/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.27.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-new-target/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-object-super/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-optional-chaining/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-parameters/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-private-methods/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.27.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-property-literals/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-react-display-name/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-react-jsx-development/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/plugin-transform-react-jsx': 7.25.9_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-react-jsx-self/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: true - - /@babel/plugin-transform-react-jsx-source/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: true - - /@babel/plugin-transform-react-jsx/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-jsx': 7.25.9_@babel+core@7.20.12 - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-react-pure-annotations/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-regenerator/7.27.0_@babel+core@7.20.12: - resolution: {integrity: sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - regenerator-transform: 0.15.2 - dev: false - - /@babel/plugin-transform-reserved-words/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-shorthand-properties/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-spread/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-sticky-regex/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-template-literals/7.26.8_@babel+core@7.20.12: - resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-typeof-symbol/7.27.0_@babel+core@7.20.12: - resolution: {integrity: sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-typescript/7.27.0_@babel+core@7.20.12: - resolution: {integrity: sha512-fRGGjO2UEGPjvEcyAZXRXAS8AfdaQoq7HnxAbJoAoW10B9xOKesmmndJv+Sym2a+9FHWZ9KbyyLCe9s0Sn5jtg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.27.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-unicode-escapes/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/plugin-transform-unicode-regex/7.25.9_@babel+core@7.20.12: - resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.27.0_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - dev: false - - /@babel/preset-env/7.20.2_@babel+core@7.20.12: - resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-class-static-block': 7.21.0_@babel+core@7.20.12 - '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.20.12 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-private-property-in-object': 7.21.11_@babel+core@7.20.12 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-import-assertions': 7.26.0_@babel+core@7.20.12 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-transform-arrow-functions': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-async-to-generator': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-block-scoped-functions': 7.26.5_@babel+core@7.20.12 - '@babel/plugin-transform-block-scoping': 7.27.0_@babel+core@7.20.12 - '@babel/plugin-transform-classes': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-computed-properties': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-destructuring': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-dotall-regex': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-duplicate-keys': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-exponentiation-operator': 7.26.3_@babel+core@7.20.12 - '@babel/plugin-transform-for-of': 7.26.9_@babel+core@7.20.12 - '@babel/plugin-transform-function-name': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-literals': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-member-expression-literals': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-modules-amd': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-modules-commonjs': 7.26.3_@babel+core@7.20.12 - '@babel/plugin-transform-modules-systemjs': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-modules-umd': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-new-target': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-object-super': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-parameters': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-property-literals': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-regenerator': 7.27.0_@babel+core@7.20.12 - '@babel/plugin-transform-reserved-words': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-shorthand-properties': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-spread': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-sticky-regex': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-template-literals': 7.26.8_@babel+core@7.20.12 - '@babel/plugin-transform-typeof-symbol': 7.27.0_@babel+core@7.20.12 - '@babel/plugin-transform-unicode-escapes': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-unicode-regex': 7.25.9_@babel+core@7.20.12 - '@babel/preset-modules': 0.1.6_@babel+core@7.20.12 - '@babel/types': 7.27.0 - babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12 - babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12 - babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12 - core-js-compat: 3.41.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/preset-modules/0.1.6_@babel+core@7.20.12: - resolution: {integrity: sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-dotall-regex': 7.25.9_@babel+core@7.20.12 - '@babel/types': 7.27.0 - esutils: 2.0.3 - dev: false - - /@babel/preset-react/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-transform-react-display-name': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-react-jsx': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-react-jsx-development': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-react-pure-annotations': 7.25.9_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/preset-typescript/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-transform-typescript': 7.27.0_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/runtime/7.27.0: - resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.1 - - /@babel/template/7.27.0: - resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - - /@babel/traverse/7.27.0: - resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - /@babel/types/7.27.0: - resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - /@bcoe/v8-coverage/0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - - /@cspotcode/source-map-support/0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - /@esbuild/android-arm/0.15.18: - resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64/0.15.18: - resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@eslint/eslintrc/1.4.1: - resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - /@ffmpeg/ffmpeg/0.11.6: - resolution: {integrity: sha512-uN8J8KDjADEavPhNva6tYO9Fj0lWs9z82swF3YXnTxWMBoFLGq3LZ6FLlIldRKEzhOBKnkVfA8UnFJuvGvNxcA==} - engines: {node: '>=12.16.1'} - dependencies: - is-url: 1.2.4 - node-fetch: 2.7.0 - regenerator-runtime: 0.13.11 - resolve-url: 0.2.1 - transitivePeerDependencies: - - encoding - dev: true - - /@gulp-sourcemaps/identity-map/2.0.1: - resolution: {integrity: sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==} - engines: {node: '>= 0.10'} - dependencies: - acorn: 6.4.2 - normalize-path: 3.0.0 - postcss: 7.0.39 - source-map: 0.6.1 - through2: 3.0.2 - dev: false - - /@gulp-sourcemaps/map-sources/1.0.0: - resolution: {integrity: sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==} - engines: {node: '>= 0.10'} - dependencies: - normalize-path: 2.1.1 - through2: 2.0.5 - dev: false - - /@humanwhocodes/config-array/0.9.5: - resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - /@humanwhocodes/object-schema/1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - deprecated: Use @eslint/object-schema instead - - /@istanbuljs/load-nyc-config/1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - - /@istanbuljs/schema/0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - /@jest/console/29.7.0: - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - dev: true - - /@jest/core/29.7.0: - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0_@types+node@22.15.1 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /@jest/core/29.7.0_ts-node@10.9.2: - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0_mb2oyrpzg3jg7gqunu3hmdvhw4 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /@jest/environment/29.7.0: - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - jest-mock: 29.7.0 - - /@jest/expect-utils/29.7.0: - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.6.3 - - /@jest/expect/29.7.0: - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - /@jest/fake-timers/29.7.0: - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.1 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - /@jest/globals/29.5.0: - resolution: {integrity: sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - - /@jest/globals/29.7.0: - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/reporters/29.7.0: - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.15.1 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/schemas/29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - - /@jest/source-map/29.6.3: - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - callsites: 3.1.0 - graceful-fs: 4.2.11 - dev: true - - /@jest/test-result/29.7.0: - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 - dev: true - - /@jest/test-sequencer/29.7.0: - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 - dev: true - - /@jest/transform/29.7.0: - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.20.12 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.8 - pirates: 4.0.7 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - - /@jest/types/29.6.3: - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.1 - '@types/yargs': 17.0.33 - chalk: 4.1.2 - - /@jridgewell/gen-mapping/0.3.8: - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - /@jridgewell/resolve-uri/3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - /@jridgewell/set-array/1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - /@jridgewell/source-map/0.3.6: - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - /@jridgewell/sourcemap-codec/1.5.0: - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - /@jridgewell/trace-mapping/0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - /@jridgewell/trace-mapping/0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - /@mapbox/node-pre-gyp/1.0.11: - resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} - hasBin: true - dependencies: - detect-libc: 2.0.4 - https-proxy-agent: 5.0.1 - make-dir: 3.1.0 - node-fetch: 2.7.0 - nopt: 5.0.0 - npmlog: 5.0.1 - rimraf: 3.0.2 - semver: 7.7.1 - tar: 6.2.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@monaco-editor/loader/1.5.0: - resolution: {integrity: sha512-hKoGSM+7aAc7eRTRjpqAZucPmoNOC4UUbknb/VNoTkEIkCPhqV8LfbsgM1webRM7S/z21eHEx9Fkwx8Z/C/+Xw==} - dependencies: - state-local: 1.0.7 - dev: true - - /@monaco-editor/react/4.7.0_nnrd3gsncyragczmpvfhocinkq: - resolution: {integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==} - peerDependencies: - monaco-editor: '>= 0.25.0 < 1' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - dependencies: - '@monaco-editor/loader': 1.5.0 - react: 18.3.1 - react-dom: 18.3.1_react@18.3.1 - dev: true - - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - - /@parcel/watcher-android-arm64/2.5.1: - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-darwin-arm64/2.5.1: - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-darwin-x64/2.5.1: - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-freebsd-x64/2.5.1: - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-arm-glibc/2.5.1: - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-arm-musl/2.5.1: - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-arm64-glibc/2.5.1: - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-arm64-musl/2.5.1: - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-x64-glibc/2.5.1: - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-x64-musl/2.5.1: - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-win32-arm64/2.5.1: - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-win32-ia32/2.5.1: - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-win32-x64/2.5.1: - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher/2.5.1: - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} - engines: {node: '>= 10.0.0'} - requiresBuild: true - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 - dev: true - optional: true - - /@remix-run/router/1.4.0: - resolution: {integrity: sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q==} - engines: {node: '>=14'} - - /@resvg/resvg-js-android-arm-eabi/2.4.1: - resolution: {integrity: sha512-AA6f7hS0FAPpvQMhBCf6f1oD1LdlqNXKCxAAPpKh6tR11kqV0YIB9zOlIYgITM14mq2YooLFl6XIbbvmY+jwUw==} - engines: {node: '>= 10'} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - /@resvg/resvg-js-android-arm64/2.4.1: - resolution: {integrity: sha512-/QleoRdPfsEuH9jUjilYcDtKK/BkmWcK+1LXM8L2nsnf/CI8EnFyv7ZzCj4xAIvZGAy9dTYr/5NZBcTwxG2HQg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - /@resvg/resvg-js-darwin-arm64/2.4.1: - resolution: {integrity: sha512-U1oMNhea+kAXgiEXgzo7EbFGCD1Edq5aSlQoe6LMly6UjHzgx2W3N5kEXCwU/CgN5FiQhZr7PlSJSlcr7mdhfg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - /@resvg/resvg-js-darwin-x64/2.4.1: - resolution: {integrity: sha512-avyVh6DpebBfHHtTQTZYSr6NG1Ur6TEilk1+H0n7V+g4F7x7WPOo8zL00ZhQCeRQ5H4f8WXNWIEKL8fwqcOkYw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - /@resvg/resvg-js-linux-arm-gnueabihf/2.4.1: - resolution: {integrity: sha512-isY/mdKoBWH4VB5v621co+8l101jxxYjuTkwOLsbW+5RK9EbLciPlCB02M99ThAHzI2MYxIUjXNmNgOW8btXvw==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - /@resvg/resvg-js-linux-arm64-gnu/2.4.1: - resolution: {integrity: sha512-uY5voSCrFI8TH95vIYBm5blpkOtltLxLRODyhKJhGfskOI7XkRw5/t1u0sWAGYD8rRSNX+CA+np86otKjubrNg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@resvg/resvg-js-linux-arm64-musl/2.4.1: - resolution: {integrity: sha512-6mT0+JBCsermKMdi/O2mMk3m7SqOjwi9TKAwSngRZ/nQoL3Z0Z5zV+572ztgbWr0GODB422uD8e9R9zzz38dRQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@resvg/resvg-js-linux-x64-gnu/2.4.1: - resolution: {integrity: sha512-60KnrscLj6VGhkYOJEmmzPlqqfcw1keDh6U+vMcNDjPhV3B5vRSkpP/D/a8sfokyeh4VEacPSYkWGezvzS2/mg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@resvg/resvg-js-linux-x64-musl/2.4.1: - resolution: {integrity: sha512-0AMyZSICC1D7ge115cOZQW8Pcad6PjWuZkBFF3FJuSxC6Dgok0MQnLTs2MfMdKBlAcwO9dXsf3bv9tJZj8pATA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@resvg/resvg-js-win32-arm64-msvc/2.4.1: - resolution: {integrity: sha512-76XDFOFSa3d0QotmcNyChh2xHwk+JTFiEQBVxMlHpHMeq7hNrQJ1IpE1zcHSQvrckvkdfLboKRrlGB86B10Qjw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - /@resvg/resvg-js-win32-ia32-msvc/2.4.1: - resolution: {integrity: sha512-odyVFGrEWZIzzJ89KdaFtiYWaIJh9hJRW/frcEcG3agJ464VXkN/2oEVF5ulD+5mpGlug9qJg7htzHcKxDN8sg==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - - /@resvg/resvg-js-win32-x64-msvc/2.4.1: - resolution: {integrity: sha512-vY4kTLH2S3bP+puU5x7hlAxHv+ulFgcK6Zn3efKSr0M0KnZ9A3qeAjZteIpkowEFfUeMPNg2dvvoFRJA9zqxSw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - /@resvg/resvg-js/2.4.1: - resolution: {integrity: sha512-wTOf1zerZX8qYcMmLZw3czR4paI4hXqPjShNwJRh5DeHxvgffUS5KM7XwxtbIheUW6LVYT5fhT2AJiP6mU7U4A==} - engines: {node: '>= 10'} - optionalDependencies: - '@resvg/resvg-js-android-arm-eabi': 2.4.1 - '@resvg/resvg-js-android-arm64': 2.4.1 - '@resvg/resvg-js-darwin-arm64': 2.4.1 - '@resvg/resvg-js-darwin-x64': 2.4.1 - '@resvg/resvg-js-linux-arm-gnueabihf': 2.4.1 - '@resvg/resvg-js-linux-arm64-gnu': 2.4.1 - '@resvg/resvg-js-linux-arm64-musl': 2.4.1 - '@resvg/resvg-js-linux-x64-gnu': 2.4.1 - '@resvg/resvg-js-linux-x64-musl': 2.4.1 - '@resvg/resvg-js-win32-arm64-msvc': 2.4.1 - '@resvg/resvg-js-win32-ia32-msvc': 2.4.1 - '@resvg/resvg-js-win32-x64-msvc': 2.4.1 - - /@rollup/plugin-alias/5.0.0_rollup@3.20.5: - resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - rollup: 3.20.5 - slash: 4.0.0 - dev: false - - /@rollup/plugin-babel/6.0.3_i2zi3w2axzphgkbxj6nc7ioafa: - resolution: {integrity: sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==} - engines: {node: '>=14.0.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - '@types/babel__core': - optional: true - rollup: - optional: true - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-imports': 7.25.9 - '@rollup/pluginutils': 5.1.4_rollup@3.20.5 - '@types/babel__core': 7.20.0 - rollup: 3.20.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@rollup/plugin-commonjs/24.1.0_rollup@3.20.5: - resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.68.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.4_rollup@3.20.5 - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 8.1.0 - is-reference: 1.2.1 - magic-string: 0.27.0 - rollup: 3.20.5 - dev: false - - /@rollup/plugin-dynamic-import-vars/2.1.5: - resolution: {integrity: sha512-Mymi24fd9hlRifdZV/jYIFj1dn99F34imiYu3KzlAcgBcRi3i9SucgW/VRo5SQ9K4NuQ7dCep6pFWgNyhRdFHQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.4 - astring: 1.9.0 - estree-walker: 2.0.2 - fast-glob: 3.3.3 - magic-string: 0.30.17 - dev: true - - /@rollup/plugin-json/6.0.1_rollup@3.20.5: - resolution: {integrity: sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.4_rollup@3.20.5 - rollup: 3.20.5 - dev: false - - /@rollup/plugin-node-resolve/15.0.2_rollup@3.20.5: - resolution: {integrity: sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.4_rollup@3.20.5 - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-builtin-module: 3.2.1 - is-module: 1.0.0 - resolve: 1.22.10 - rollup: 3.20.5 - dev: false - - /@rollup/plugin-replace/5.0.2_rollup@3.20.5: - resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.4_rollup@3.20.5 - magic-string: 0.27.0 - rollup: 3.20.5 - dev: false - - /@rollup/plugin-terser/0.4.1_rollup@3.20.5: - resolution: {integrity: sha512-aKS32sw5a7hy+fEXVy+5T95aDIwjpGHCTv833HXVtyKMDoVS7pBr5K3L9hEQoNqbJFjfANPrNpIXlTQ7is00eA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.x || ^3.x - peerDependenciesMeta: - rollup: - optional: true - dependencies: - rollup: 3.20.5 - serialize-javascript: 6.0.2 - smob: 0.0.6 - terser: 5.17.1 - dev: false - - /@rollup/plugin-typescript/11.1.0_ivokygnvpraqsbyfg47pib5bri: - resolution: {integrity: sha512-86flrfE+bSHB69znnTV6kVjkncs2LBMhcTCyxWgRxLyfXfQrxg4UwlAqENnjrrxnSNS/XKCDJCl8EkdFJVHOxw==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.14.0||^3.0.0 - tslib: '*' - typescript: '>=3.7.0' - peerDependenciesMeta: - rollup: - optional: true - tslib: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.4_rollup@3.20.5 - resolve: 1.22.10 - rollup: 3.20.5 - typescript: 4.9.5 - dev: false - - /@rollup/plugin-url/8.0.1_rollup@3.20.5: - resolution: {integrity: sha512-8ajztphXb5e19dk3Iwjtm2eSYJR8jFQubZ8pJ1GG2MBMM7/qUedLnZAN+Vt4jqbcT/m27jfjIBocvrzV0giNRw==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.4_rollup@3.20.5 - make-dir: 3.1.0 - mime: 3.0.0 - rollup: 3.20.5 - dev: false - - /@rollup/pluginutils/5.1.4: - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.7 - estree-walker: 2.0.2 - picomatch: 4.0.2 - dev: true - - /@rollup/pluginutils/5.1.4_rollup@3.20.5: - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.7 - estree-walker: 2.0.2 - picomatch: 4.0.2 - rollup: 3.20.5 - dev: false - - /@rtsao/scc/1.1.0: - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - dev: true - - /@rushstack/eslint-patch/1.1.4: - resolution: {integrity: sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==} - dev: true - - /@sinclair/typebox/0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - /@sinonjs/commons/3.0.1: - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - dependencies: - type-detect: 4.0.8 - - /@sinonjs/fake-timers/10.3.0: - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - dependencies: - '@sinonjs/commons': 3.0.1 - - /@stdlib/array-base-filled/0.2.2: - resolution: {integrity: sha512-T7nB7dni5Y4/nsq6Gc1bAhYfzJbcOdqsmVZJUI698xpDbhCdVCIIaEbf0PnDMGN24psN+5mgAVmnNBom+uF0Xg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/array-base-zeros/0.2.2: - resolution: {integrity: sha512-iwxqaEtpi4c2qpqabmhFdaQGkzgo5COwjHPn2T0S0wfJuM1VuVl5UBl15syr+MmZPJQOB1eBbh6F1uTh9597qw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-base-filled': 0.2.2 - dev: false - - /@stdlib/array-float32/0.2.2: - resolution: {integrity: sha512-pTcy1FNQrrJLL1LMxJjuVpcKJaibbGCFFTe41iCSXpSOC8SuTBuNohrO6K9+xR301Ruxxn4yrzjJJ6Fa3nQJ2g==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-float32array-support': 0.2.2 - dev: false - - /@stdlib/array-float64/0.2.2: - resolution: {integrity: sha512-ZmV5wcacGrhT0maw9dfLXNv4N3ZwFUV3D7ItFfZFGFnKIJbubrWzwtaYnxzIXigrDc8g3F6FVHRpsQLMxq0/lA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-float64array-support': 0.2.2 - dev: false - - /@stdlib/array-uint16/0.2.2: - resolution: {integrity: sha512-z5c/Izw43HkKfb1pTgEUMAS8GFvhtHkkHZSjX3XJN+17P0VjknxjlSvPiCBGqaDX9jXtlWH3mn1LSyDKtJQoeA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-uint16array-support': 0.2.2 - dev: false - - /@stdlib/array-uint32/0.2.2: - resolution: {integrity: sha512-3T894I9C2MqZJJmRCYFTuJp4Qw9RAt+GzYnVPyIXoK1h3TepUXe9VIVx50cUFIibdXycgu0IFGASeAb3YMyupw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-uint32array-support': 0.2.2 - dev: false - - /@stdlib/array-uint8/0.2.2: - resolution: {integrity: sha512-Ip9MUC8+10U9x0crMKWkpvfoUBBhWzc6k5SI4lxx38neFVmiJ3f+5MBADEagjpoKSBs71vlY2drnEZe+Gs2Ytg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-uint8array-support': 0.2.2 - dev: false - - /@stdlib/assert-has-float32array-support/0.2.2: - resolution: {integrity: sha512-pi2akQl8mVki43fF1GNQVLYW0bHIPp2HuRNThX9GjB3OFQTpvrV8/3zPSh4lOxQa5gRiabgf0+Rgeu3AOhEw9A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-float32array': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - dev: false - - /@stdlib/assert-has-float64array-support/0.2.2: - resolution: {integrity: sha512-8L3GuKY1o0dJARCOsW9MXcugXapaMTpSG6dGxyNuUVEvFfY5UOzcj9/JIDal5FjqSgqVOGL5qZl2qtRwub34VA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-float64array': 0.2.2 - dev: false - - /@stdlib/assert-has-generator-support/0.2.2: - resolution: {integrity: sha512-TcE9BGV8i7B2OmxPlJ/2DUrAwG0W4fFS/DE7HmVk68PXVZsgyNQ/WP/IHBoazHDjhN5c3dU21c20kM/Bw007Rw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-eval': 0.2.2 - dev: false - - /@stdlib/assert-has-own-property/0.2.2: - resolution: {integrity: sha512-m5rV4Z2/iNkwx2vRsNheM6sQZMzc8rQQOo90LieICXovXZy8wA5jNld4kRKjMNcRt/TjrNP7i2Rhh8hruRDlHg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/assert-has-symbol-support/0.2.2: - resolution: {integrity: sha512-vCsGGmDZz5dikGgdF26rIL0y0nHvH7qaVf89HLLTybceuZijAqFSJEqcB3Gpl5uaeueLNAWExHi2EkoUVqKHGg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/assert-has-tostringtag-support/0.2.2: - resolution: {integrity: sha512-bSHGqku11VH0swPEzO4Y2Dr+lTYEtjSWjamwqCTC8udOiOIOHKoxuU4uaMGKJjVfXG1L+XefLHqzuO5azxdRaA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-symbol-support': 0.2.2 - dev: false - - /@stdlib/assert-has-uint16array-support/0.2.2: - resolution: {integrity: sha512-aL188V7rOkkEH4wYjfpB+1waDO4ULxo5ppGEK6X0kG4YiXYBL2Zyum53bjEQvo0Nkn6ixe18dNzqqWWytBmDeg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-uint16array': 0.2.2 - '@stdlib/constants-uint16-max': 0.2.2 - dev: false - - /@stdlib/assert-has-uint32array-support/0.2.2: - resolution: {integrity: sha512-+UHKP3mZOACkJ9CQjeKNfbXHm5HGQB862V5nV5q3UQlHPzhslnXKyG1SwAxTx+0g88C/2vlDLeqG8H4TH2UTFA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-uint32array': 0.2.2 - '@stdlib/constants-uint32-max': 0.2.2 - dev: false - - /@stdlib/assert-has-uint8array-support/0.2.2: - resolution: {integrity: sha512-VfzrB0BMik9MvPyKcMDJL3waq4nM30RZUrr2EuuQ/RbUpromRWSDbzGTlRq5SfjtJrHDxILPV3rytDCc03dgWA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-uint8array': 0.2.2 - '@stdlib/constants-uint8-max': 0.2.2 - dev: false - - /@stdlib/assert-is-array/0.2.2: - resolution: {integrity: sha512-aJyTX2U3JqAGCATgaAX9ygvDHc97GCIKkIhiZm/AZaLoFHPtMA1atQ4bKcefEC8Um9eefryxTHfFPfSr9CoNQQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-is-big-endian/0.2.2: - resolution: {integrity: sha512-mPEl30/bqZh++UyQbxlyOuB7k0wC73y5J9nD2J6Ud6Fcl76R5IAGHRW0WT3W18is/6jG1jzMd8hrISFyD7N0sA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-uint16': 0.2.2 - '@stdlib/array-uint8': 0.2.2 - dev: false - - /@stdlib/assert-is-boolean/0.2.2: - resolution: {integrity: sha512-3KFLRTYZpX6u95baZ6PubBvjehJs2xBU6+zrenR0jx8KToUYCnJPxqqj7JXRhSD+cOURmcjj9rocVaG9Nz18Pg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-tostringtag-support': 0.2.2 - '@stdlib/boolean-ctor': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-is-buffer/0.2.2: - resolution: {integrity: sha512-4/WMFTEcDYlVbRhxY8Wlqag4S70QCnn6WmQ4wmfiLW92kqQHsLvTNvdt/qqh/SDyDV31R/cpd3QPsVN534dNEA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-object-like': 0.2.2 - dev: false - - /@stdlib/assert-is-float32array/0.2.2: - resolution: {integrity: sha512-hxEKz/Y4m1NYuOaiQKoqQA1HeAYwNXFqSk3FJ4hC71DuGNit2tuxucVyck3mcWLpLmqo0+Qlojgwo5P9/C/9MQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-is-float64array/0.2.2: - resolution: {integrity: sha512-3R1wLi6u/IHXsXMtaLnvN9BSpqAJ8tWhwjOOr6kadDqCWsU7Odc7xKLeAXAInAxwnV8VDpO4ifym4A3wehazPQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-is-function/0.2.2: - resolution: {integrity: sha512-whY69DUYWljCJ79Cvygp7VzWGOtGTsh3SQhzNuGt+ut6EsOW+8nwiRkyBXYKf/MOF+NRn15pxg8cJEoeRgsPcA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-type-of': 0.2.2 - dev: false - - /@stdlib/assert-is-little-endian/0.2.2: - resolution: {integrity: sha512-KMzPndj85jDiE1+hYCpw12k2OQOVkfpCo7ojCmCl8366wtKGEaEdGbz1iH98zkxRvnZLSMXcYXI2z3gtdmB0Ag==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-uint16': 0.2.2 - '@stdlib/array-uint8': 0.2.2 - dev: false - - /@stdlib/assert-is-number/0.2.2: - resolution: {integrity: sha512-sWpJ59GqGbmlcdYSUV/OYkmQW8k47w10+E0K0zPu1x1VKzhjgA5ZB2sJcpgI8Vt3ckRLjdhuc62ZHJkrJujG7A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-tostringtag-support': 0.2.2 - '@stdlib/number-ctor': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-is-object-like/0.2.2: - resolution: {integrity: sha512-MjQBpHdEebbJwLlxh/BKNH8IEHqY0YlcCMRKOQU0UOlILSJg0vG+GL4fDDqtx9FSXxcTqC+w3keHx8kAKvQhzg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-tools-array-function': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - dev: false - - /@stdlib/assert-is-object/0.2.2: - resolution: {integrity: sha512-sNnphJuHyMDHHHaonlx6vaCKMe4sHOn0ag5Ck4iW3kJtM2OZB2J4h8qFcwKzlMk7fgFu7vYNGCZtpm1dYbbUfQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-array': 0.2.2 - dev: false - - /@stdlib/assert-is-plain-object/0.2.2: - resolution: {integrity: sha512-o4AFWgBsSNzZAOOfIrxoDFYTqnLuGiaHDFwIeZGUHdpQeav2Fll+sGeaqOcekF7yKawoswnwWdJqTsjapb4Yzw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-own-property': 0.2.2 - '@stdlib/assert-is-function': 0.2.2 - '@stdlib/assert-is-object': 0.2.2 - '@stdlib/utils-get-prototype-of': 0.2.2 - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-is-regexp/0.2.2: - resolution: {integrity: sha512-2JtiUtRJxPaVXL7dkWoV3n5jouI65DwYDXsDXg3xo23TXlTNGgU/HhKO4FWC1Yqju7YMZi0hcZSW6E9v8ISqeQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-tostringtag-support': 0.2.2 - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-is-string/0.2.2: - resolution: {integrity: sha512-SOkFg4Hq443hkadM4tzcwTHWvTyKP9ULOZ8MSnnqmU0nBX1zLVFLFGY8jnF6Cary0dL0V7QQBCfuxqKFM6u2PQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-tostringtag-support': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-is-uint16array/0.2.2: - resolution: {integrity: sha512-w3+HeTiXGLJGw5nCqr0WbvgArNMEj7ulED1Yd19xXbmmk2W1ZUB+g9hJDOQTiKsTU4AVyH4/As+aA8eDVmWtmg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-is-uint32array/0.2.2: - resolution: {integrity: sha512-3F4nIHg1Qp0mMIsImWUC8DwQ3qBK5vdIJTjS2LufLbFBhHNmv5kK1yJiIXQDTLkENU0STZe05TByo01ZNLOmDQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-is-uint8array/0.2.2: - resolution: {integrity: sha512-51WnDip6H2RrN0CbqWmfqySAjam8IZ0VjlfUDc3PtcgrZGrKKjVgyHAsT/L3ZDydwF+aB94uvYJu5QyrCPNaZw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/assert-tools-array-function/0.2.2: - resolution: {integrity: sha512-FYeT7X9x0C8Nh+MN6IJUDz+7i7yB6mio2/SDlrvyepjyPSU/cfHfwW0GEOnQhxZ+keLZC/YqDD930WjRODwMdA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-array': 0.2.2 - '@stdlib/error-tools-fmtprodmsg': 0.2.2 - '@stdlib/string-format': 0.2.2 - dev: false - - /@stdlib/boolean-ctor/0.2.2: - resolution: {integrity: sha512-qIkHzmfxDvGzQ3XI9R7sZG97QSaWG5TvWVlrvcysOGT1cs6HtQgnf4D//SRzZ52VLm8oICP+6OKtd8Hpm6G7Ww==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/complex-float32-ctor/0.0.2: - resolution: {integrity: sha512-QsTLynhTRmDT0mSkfdHj0FSqQSxh2nKx+vvrH3Y0/Cd/r0WoHFZwyibndDxshfkf9B7nist8QKyvV82I3IZciA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-number': 0.2.2 - '@stdlib/error-tools-fmtprodmsg': 0.2.2 - '@stdlib/number-float64-base-to-float32': 0.2.2 - '@stdlib/string-format': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - '@stdlib/utils-define-property': 0.2.4 - dev: false - - /@stdlib/complex-float32-reim/0.1.2: - resolution: {integrity: sha512-24H+t1xwQF6vhOoMZdDA3TFB4M+jb5Swm/FwNaepovlzVIG2NlthUZs6mZg1T3oegqesIRQRwhpn4jIPjuGiTw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float32': 0.2.2 - '@stdlib/complex-float32-ctor': 0.0.2 - dev: false - - /@stdlib/complex-float32/0.2.1: - resolution: {integrity: sha512-tp83HfJzcZLK7/6P6gZPcAa/8F/aHS7gBHgB6ft45d/n6oE+/VbnyOvsJKanRv8S96kBRj8xkvlWHz4IiBrT0Q==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-number': 0.2.2 - '@stdlib/number-float64-base-to-float32': 0.2.2 - '@stdlib/string-format': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - '@stdlib/utils-define-property': 0.2.4 - dev: false - - /@stdlib/complex-float64-ctor/0.0.3: - resolution: {integrity: sha512-oixCtBif+Uab2rKtgedwQTbQTEC+wVSu4JQH935eJ8Jo0eL6vXUHHlVrkLgYKlCDLvq5px1QQn42Czg/ixh6Gw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-number': 0.2.2 - '@stdlib/complex-float32-ctor': 0.0.2 - '@stdlib/error-tools-fmtprodmsg': 0.2.2 - '@stdlib/string-format': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - '@stdlib/utils-define-property': 0.2.4 - dev: false - - /@stdlib/complex-float64-reim/0.1.2: - resolution: {integrity: sha512-q6RnfgbUunApAYuGmkft1oOM3x3xVMVJwNRlRgfIXwKDb8pYt+S/CeIwi3Su5SF6ay3AqA1s+ze7m21osXAJyw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float64': 0.2.2 - '@stdlib/complex-float64-ctor': 0.0.3 - dev: false - - /@stdlib/complex-float64/0.2.1: - resolution: {integrity: sha512-vN9GqlSaonoREf8/RIN9tfNLnkfN4s7AI0DPsGnvc1491oOqq9UqMw8rYTrnxuum9/OaNAAUqDkb5GLu5uTveQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-number': 0.2.2 - '@stdlib/complex-float32': 0.2.1 - '@stdlib/string-format': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - '@stdlib/utils-define-property': 0.2.4 - dev: false - - /@stdlib/complex-reim/0.2.1: - resolution: {integrity: sha512-67nakj+HwBRx/ha3j/sLbrMr2hwFVgEZtaczOgn1Jy/cU03lKvNbMkR7QI9s+sA+b+A3yJB3ob8ZQSqh3D1+dA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float64': 0.2.2 - '@stdlib/complex-float64': 0.2.1 - dev: false - - /@stdlib/complex-reimf/0.2.1: - resolution: {integrity: sha512-6HyPPmo0CEHoBjOg2w70mMFLcFEunM78ljnW6kf1OxjM/mqMaBM1NRpDrQoFwCIdh1RF1ojl3JR0YLllEf0qyQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float32': 0.2.2 - '@stdlib/complex-float32': 0.2.1 - dev: false - - /@stdlib/constants-float32-max/0.2.2: - resolution: {integrity: sha512-uxvIm/KmIeZP4vyfoqPd72l5/uidnCN9YJT3p7Z2LD8hYN3PPLu6pd/5b51HMFLwfkZ27byRJ9+YK6XnneJP0Q==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float32-smallest-normal/0.2.2: - resolution: {integrity: sha512-2qkGjGML2/8P9YguHnac2AKXLbfycpYdCxKmuXQdAVzMMNCJWjHoIqZMFG29WBEDBOP057X+48S6WhIqoxRpWA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-e/0.2.2: - resolution: {integrity: sha512-7fxHaABwosbUzpBsw6Z9Dd9MqUYne8x+44EjohVcWDr0p0mHB/DXVYEYTlwEP/U/XbRrKdO3jUG6IO/GsEjzWg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-eps/0.2.2: - resolution: {integrity: sha512-61Pb2ip9aPhHXxiCn+VZ0UVw2rMYUp0xrX93FXyB3UTLacrofRKLMKtbV0SFac4VXx5igv2+0G+h6G/fwCgjyw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-eulergamma/0.2.2: - resolution: {integrity: sha512-XsuVud0d1hLTQspFzgUSH2e3IawTXLlJi2k4Vg0Nn6juulxfNO9PnAGtHz+p1BynYF/YwN+qhKnISQxrN31rsQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-exponent-bias/0.2.2: - resolution: {integrity: sha512-zLWkjzDYHSsBsXB/4mwHysOGl64JS3XBt/McjvjCLc/IZpfsUNFxLCl7oVCplXzYYHcQj/RfEBFy6cxQ6FvdpQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-fourth-pi/0.2.2: - resolution: {integrity: sha512-j0NOg45ouibms4ML8pfS/eDrurdtnhJTNPCGQM4mg3X+1ljsuO0pvkpVCvuz29t5J23KTcfGBXXr90ikoBmjlw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-gamma-lanczos-g/0.2.2: - resolution: {integrity: sha512-hCaZbZ042htCy9mlGrfUEbz4d0xW/DLdr3vHs5KiBWU+G+WHVH33vubSnEoyT0ugWpAk2ZqWXe/V8sLGgOu0xg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-half-ln-two/0.2.2: - resolution: {integrity: sha512-yv1XhzZR2AfJmnAGL0kdWlIUhc/vqdWol+1Gq2brXPVfgqbUmJu5XZuuK+jZA2k+fHyvRHNEwQRv9OPnOjchFg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-half-pi/0.2.2: - resolution: {integrity: sha512-lM3SiDsZCKiuF5lPThZFFqioIwh1bUiBUnnDMLB04/QkVRCAaXUo+dsq2hOB6iBhHoYhiKds6T+PsHSBlpqAaA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-high-word-abs-mask/0.2.2: - resolution: {integrity: sha512-YtYngcHlw9qvOpmsSlkNHi6cy/7Y7QkyYh5kJbDvuOUXPDKa3rEwBln4mKjbWsXhmmN0bk7TLypH7Ryd/UAjUQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-high-word-exponent-mask/0.2.2: - resolution: {integrity: sha512-LhYUXvpnLOFnWr8ucHA9N/H75VxcS2T9EoBDTmWBZoKj2Pg0icGVDmcNciRLIWbuPA9osgcKpxoU+ADIfaipVA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-high-word-sign-mask/0.2.1: - resolution: {integrity: sha512-Fep/Ccgvz5i9d5k96zJsDjgXGno8HJfmH7wihLmziFmA2z9t7NSacH4/BH4rPJ5yXFHLkacNLDxaF1gO1XpcLA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-high-word-significand-mask/0.2.2: - resolution: {integrity: sha512-eDDyiQ5PR1/qyklrW0Pus0ZopM7BYjkWTjqhSHhj0DibH6UMwSMlIl4ddCh3VX37p5eByuAavnaPgizk5c9mUw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-ln-sqrt-two-pi/0.2.2: - resolution: {integrity: sha512-C9YS9W/lvv54wUC7DojQSRH9faKw0sMAM09oMRVm8OOYNr01Rs1wXeSPStl9ns4qiV/G13vZzd1I3nGqgqihbw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-ln-two/0.2.2: - resolution: {integrity: sha512-EQ8EJ6B1wPfuhva0aApKIsF7lTna++txV4AUzL2wTfwDHw6RzWpA44u+k54KnLF8ZXUNIYDNQHHvtzdfKrFzCA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-max-base2-exponent-subnormal/0.2.1: - resolution: {integrity: sha512-D1wBNn54Hu2pK6P/yBz0FtPBI3/7HdgK8igYjWDKWUKzC92R/6PHZ9q5NzedcGxoBs8MUk1zNpP0tZyYj9Y4YQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-max-base2-exponent/0.2.2: - resolution: {integrity: sha512-KmDe98pJ2HXz2SbqyFfSDhlSSVD7JssjbZ5K11HEK2avqMcoCbdHH20T+6/TpA01VqaK8dLbeyphOfALcDdMKA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-max-ln/0.2.2: - resolution: {integrity: sha512-FPAEGjnoQMDPWJbCyyto7HWQ/SY2jjD8IkjyD8aOwENqbswjCbOINXRiK2ar27OOXG7Dv7CCpFpoorTxv0gmfA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-max-safe-integer/0.2.2: - resolution: {integrity: sha512-d+sxmxhkt980SDFhnnRDSpujPQTv4nEt5Ox3L86HgYZU4mQU/wbzYVkMuHIANW9x3ehww5blnGXTKYG9rQCXAw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-max-safe-nth-factorial/0.1.0: - resolution: {integrity: sha512-sppIfkBbeyKNwfRbmNFi5obI7Q+IJCQzfWKYqvzmEJVOkmEg6hhtEeFc8zZJGCU7+Pndc3M2wdbTT5a3rhamHw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-max/0.2.2: - resolution: {integrity: sha512-S3kcIKTK65hPqirziof3KTYqfFKopgaTnaiDlDKdzaCzBZ5qkrAcRd4vl+W1KHoZruUyWC2/RYZUa/8+h075TQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-min-base2-exponent-subnormal/0.2.1: - resolution: {integrity: sha512-fTXfvctXWj/48gK+gbRBrHuEHEKY4QOJoXSGp414Sz6vUxHusHJJ686p8ze3XqM7CY6fmL09ZgdGz/uhJl/7lw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-min-base2-exponent/0.2.2: - resolution: {integrity: sha512-YZmBiKik6LbWB4EOZ/ZUs/u6OIF742xNK8mhEqL0OEN4NuJe3OdErpOic6KjMmHjQuqCXdFoSqsWZaFHcIN7HA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-min-ln/0.2.2: - resolution: {integrity: sha512-N1Sxjo3uTdEIpHeG2TzaX06UuvpcKHvjYKpIMhJSajbxvfVDURHlc9kIpfbP9C9/YYoCy0FvewA/kvbqNaYypA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-ninf/0.2.2: - resolution: {integrity: sha512-Iu+wZs/vgudAKVg9FEcRY3FadkmvsWuq/wJ3jIHjhaP5xcnoF3XJUO4IneEndybHwehfJL65NShnDsJcg1gicw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/number-ctor': 0.2.2 - dev: false - - /@stdlib/constants-float64-pi/0.2.2: - resolution: {integrity: sha512-ix34KmpUQ0LUM++L6avLhM9LFCcGTlsUDyWD/tYVGZBiIzDS3TMKShHRkZvC+v87fuyYNPoxolYtk5AlbacI6g==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-pinf/0.2.2: - resolution: {integrity: sha512-UcwnWaSkUMD8QyKADwkXPlY7yOosCPZpE2EDXf/+WOzuWi5vpsec+JaasD5ggAN8Rv8OTVmexTFs1uZfrHgqVQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-smallest-normal/0.2.2: - resolution: {integrity: sha512-GXNBkdqLT9X+dU59O1kmb7W5da/RhSXSvxx0xG5r7ipJPOtRLfTXGGvvTzWD4xA3Z5TKlrEL6ww5sph9BsPJnA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-smallest-subnormal/0.2.2: - resolution: {integrity: sha512-KuF+scDOsP0okx8RLF+q3l1RheaYChf+u/HbhzFbz82GeCIdIVp86UMwoBgfn8AT8cnR5SrtvLtQw15MGfa/vg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-sqrt-eps/0.2.2: - resolution: {integrity: sha512-X7LnGfnwNnhiwlY+zd3FX6zclsx61MaboGTNAAdaV78YjBDTdGdWMHk5MQo1U17ryPlhdGphOAejhDHeaSnTXQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-sqrt-two-pi/0.2.2: - resolution: {integrity: sha512-I8Ylr64x8AFSQ2hFBT8szuIBAy2wqPx69taJMzfcmuM5SnSbS8SE/H19YnCimZErVFo4bz0Rh8Fp3edN4i6teQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-sqrt-two/0.2.2: - resolution: {integrity: sha512-iqqouCuS9pUhjD91i5siScxLDtQTF1HsSZor6jaZRviMiOjCj/mjzxxTFHWUlU/rxHMBBhj/u7i12fv6a7dCAQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-float64-two-pi/0.2.2: - resolution: {integrity: sha512-cyXuwYOersVsA8tDSJ0ocMbtOc5KGxjlGvYC4vrpLQVkgNpxcGbA57n6JvaGmNk7+InXXbQ7qhTWGbTNgafcLQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-int32-max/0.2.1: - resolution: {integrity: sha512-vKtp3q/HdAeGG8BJBZdNzFrYpVQeleODgvOxh9Pn/TX1Ktjc50I9TVl7nTVWsT2QnacruOorILk2zNsdgBHPUQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-int32-max/0.3.0: - resolution: {integrity: sha512-jYN84QfG/yP2RYw98OR6UYehFFs0PsGAihV6pYU0ey+WF9IOXgSjRP56KMoZ7ctHwl4wsnj9I+qB2tGuEXr+pQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-uint16-max/0.2.2: - resolution: {integrity: sha512-qaFXbxgFnAkt73P5Ch7ODb0TsOTg0LEBM52hw6qt7+gTMZUdS0zBAiy5J2eEkTxA9rD9X3nIyUtLf2C7jafNdw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-uint32-max/0.2.2: - resolution: {integrity: sha512-2G44HQgIKDrh3tJUkmvtz+eM+uwDvOMF+2I3sONcTHacANb+zP7la4LDYiTp+HFkPJyfh/kPapXBiHpissAb1A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/constants-uint8-max/0.2.2: - resolution: {integrity: sha512-ZTBQq3fqS/Y4ll6cPY5SKaS266EfmKP9PW3YLJaTELmYIzVo9w2RFtfCqN05G3olTQ6Le9MUEE/C6VFgZNElDQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/error-tools-fmtprodmsg/0.2.2: - resolution: {integrity: sha512-2IliQfTes4WV5odPidZFGD5eYDswZrPXob7oOu95Q69ERqImo8WzSwnG2EDbHPyOyYCewuMfM5Ha6Ggf+u944Q==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/fs-exists/0.2.2: - resolution: {integrity: sha512-uGLqc7izCIam2aTyv0miyktl4l8awgRkCS39eIEvvvnKIaTBF6pxfac7FtFHeEQKE3XhtKsOmdQ/yJjUMChLuA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - dev: false - - /@stdlib/fs-resolve-parent-path/0.2.2: - resolution: {integrity: sha512-ZG78ouZc+pdPLtU+sSpYTvbKTiLUgn6NTtlVFYmcmkYRFn+fGOOakwVuhYMcYG6ti10cLD6WzB/YujxIt8f+nA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-own-property': 0.2.2 - '@stdlib/assert-is-function': 0.2.2 - '@stdlib/assert-is-plain-object': 0.2.2 - '@stdlib/assert-is-string': 0.2.2 - '@stdlib/error-tools-fmtprodmsg': 0.2.2 - '@stdlib/fs-exists': 0.2.2 - '@stdlib/process-cwd': 0.2.2 - '@stdlib/string-format': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - dev: false - - /@stdlib/function-ctor/0.2.2: - resolution: {integrity: sha512-qSn1XQnnhgCSYBfFy4II0dY5eW4wdOprgDTHcOJ3PkPWuZHDC1fXZsok1OYAosHqIiIw44zBFcMS/JRex4ebdQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/math-base-assert-is-even/0.2.3: - resolution: {integrity: sha512-cziGv8F/aNyfME7Wx2XJjnYBnf9vIeh8yTIzlLELd0OqGHqfsHU5OQxxcl9x5DbjZ1G/w0lphWxHFHYCuwFCHw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-assert-is-integer': 0.2.5 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-assert-is-infinite/0.2.2: - resolution: {integrity: sha512-4zDZuinC3vkXRdQepr0ZTwWX3KgM0VIWqYthOmCSgLLA87L9M9z9MgUZL1QeYeYa0+60epjDcQ8MS3ecT70Jxw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-assert-is-integer/0.2.5: - resolution: {integrity: sha512-Zi8N66GbWtSCR3OUsRdBknjNlX+aBN8w6CaVEP5+Jy/a7MgMYzevS52TNS5sm8jqzKBlFhZlPLex+Zl2GlPvSA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-special-floor': 0.2.3 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-assert-is-nan/0.2.2: - resolution: {integrity: sha512-QVS8rpWdkR9YmHqiYLDVLsCiM+dASt/2feuTl4T/GSdou3Y/PS/4j/tuDvCDoHDNfDkULUW+FCVjKYpbyoeqBQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-assert-is-negative-zero/0.2.2: - resolution: {integrity: sha512-WvKNuBZ6CDarOTzOuFLmO1jwZnFD+butIvfD2Ws6SsuqSCiWOaF4OhIckqPzo1XEdkqqhRNPqBxqc0D+hsEYVA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-assert-is-odd/0.2.1: - resolution: {integrity: sha512-V4qQuCO6/AA5udqlNatMRZ8R/MgpqD8mPIkFrpSZJdpLcGYSz815uAAf3NBOuWXkE2Izw0/Tg/hTQ+YcOW2g5g==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-assert-is-even': 0.2.3 - dev: false - - /@stdlib/math-base-assert-is-odd/0.3.0: - resolution: {integrity: sha512-V44F3xdR5/bHXqqYvE/AldLnVmijLr/rgf7EjnJXXDQLfPCgemy0iHTFl19N68KG1YO9SMPdyOaNjh4K0O9Qqw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-assert-is-even': 0.2.3 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-assert-is-positive-zero/0.2.2: - resolution: {integrity: sha512-mMX5xsemKpHRAgjpVJCb3eVZ3WIkZh6KnHQH8i8n4vI44pcdpN5rcTdEAMlhLjxT/rT7H2wq85f7/FRsq9r9rw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-napi-binary/0.2.1: - resolution: {integrity: sha512-ewGarSRaz5gaLsE17yJ4me03e56ICgPAA0ru0SYFCeMK2E5Z4Z2Lbu7HAQTTg+8XhpoaZSw0h2GJopTV7PCKmw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/complex-float32': 0.2.1 - '@stdlib/complex-float64': 0.2.1 - '@stdlib/complex-reim': 0.2.1 - '@stdlib/complex-reimf': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-napi-binary/0.3.0: - resolution: {integrity: sha512-bhwsmGMOMN1srcpNAFRjDMSXe9ue1s/XmaoBBlqcG6S2nqRQlIVnKKH4WZx4hmC1jDqoFXuNPJGE47VXpVV+mA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/complex-float32-ctor': 0.0.2 - '@stdlib/complex-float32-reim': 0.1.2 - '@stdlib/complex-float64-ctor': 0.0.3 - '@stdlib/complex-float64-reim': 0.1.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-napi-unary/0.2.3: - resolution: {integrity: sha512-BCyJmpq2S8EFo2yMt1z+v1EL7nn8RHcM6jn7fa8n3BTP679K0MSlawIh3A0CFogfrTdjPM4G44VO1ddsdLExcg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/complex-float32-ctor': 0.0.2 - '@stdlib/complex-float32-reim': 0.1.2 - '@stdlib/complex-float64-ctor': 0.0.3 - '@stdlib/complex-float64-reim': 0.1.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-abs/0.2.2: - resolution: {integrity: sha512-cw5CXj05c/L0COaD9J+paHXwmoN5IBYh+Spk0331f1pEMvGxSO1KmCREZaooUEEFKPhKDukEHKeitja2yAQh4Q==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-acos/0.2.3: - resolution: {integrity: sha512-f66Ikq0E3U5XQm6sTu4UHwP3TmcPrVgSK/mZTvg2JenswZ6qPtGO1A8KHZ5+/5bk1TSc9EW4zDGUqWG7mGzT4Q==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-fourth-pi': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/math-base-special-asin': 0.2.3 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-asin/0.2.3: - resolution: {integrity: sha512-Ju1UFJspOOL630SqBtVmUh3lHv5JMu1szcAgx7kQupJwZiwWljoVQ5MmxlNY4l3nGM5oMokenlqTDNXOau43lw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-fourth-pi': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-beta/0.2.1: - resolution: {integrity: sha512-/crN/ptCu7ld7KodGkYUJIweUTHdxO5mw+rgkrMqNVqJ83QQPd1czB6hvNYFLfmhy3ckj7t/UYoYhhg/x/Wd7g==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-e': 0.2.2 - '@stdlib/constants-float64-eps': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-exp': 0.2.4 - '@stdlib/math-base-special-log1p': 0.2.3 - '@stdlib/math-base-special-pow': 0.2.1 - '@stdlib/math-base-special-sqrt': 0.2.2 - dev: false - - /@stdlib/math-base-special-beta/0.3.0: - resolution: {integrity: sha512-SWUF1AZLqaEJ8g1Lj0/UOfj955AsIS3QPYH/ZMijELVxCwmp7VRgalI0AxMM09IraJt1cH5WrSwSnouH1WC3ZQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-e': 0.2.2 - '@stdlib/constants-float64-eps': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-binary': 0.3.0 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-exp': 0.2.4 - '@stdlib/math-base-special-log1p': 0.2.3 - '@stdlib/math-base-special-pow': 0.3.0 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-betainc/0.2.2: - resolution: {integrity: sha512-95tzDgn5d9RV9al4gxHwKfszd9M6AizlpnhAiwIi0JwqcO+OY3xgbABWal4/H09Tb8DaC9jDqiyGuyPuB0iDew==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-special-kernel-betainc': 0.2.2 - dev: false - - /@stdlib/math-base-special-binomcoef/0.2.3: - resolution: {integrity: sha512-RxnQ/QGgKUeqTvBL+7IH8rNKQYCfGs0I3PsFYfb0e9V1O2yIVvthURUpzjukurZM89JRapK1dN6aeZ5UM71Zgw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-max-safe-integer': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-integer': 0.2.5 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-assert-is-odd': 0.3.0 - '@stdlib/math-base-special-floor': 0.2.3 - '@stdlib/math-base-special-gcd': 0.2.1 - dev: false - - /@stdlib/math-base-special-ceil/0.2.2: - resolution: {integrity: sha512-zGkDaMcPrxQ9Zo+fegf2MyI8UPIrVTK5sc/FgCN9qdwEFJTKGLsBd249T3xH7L2MDxx5JbIMGrr6L4U4uEm2Hw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-copysign/0.2.2: - resolution: {integrity: sha512-m9nWIQhKsaNrZtS2vIPeToWDbzs/T0d0NWy7gSci38auQVufSbF6FYnCKl0f+uwiWlh5GYXs0uVbyCp7FFXN+A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 - '@stdlib/constants-float64-high-word-sign-mask': 0.2.1 - '@stdlib/math-base-napi-binary': 0.3.0 - '@stdlib/number-float64-base-from-words': 0.2.2 - '@stdlib/number-float64-base-get-high-word': 0.2.2 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-cos/0.2.1: - resolution: {integrity: sha512-Yre+ASwsv4pQJk5dqY6488ZfmYDA6vtUTdapAVjCx28NluSFhXw1+S8EmsqnzYnqp/4x7Y1H7V2UPZfw+AdnbQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-special-kernel-cos': 0.2.3 - '@stdlib/math-base-special-kernel-sin': 0.2.3 - '@stdlib/math-base-special-rempio2': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.2 - dev: false - - /@stdlib/math-base-special-erfc/0.2.4: - resolution: {integrity: sha512-tVI+mMnW+oDfQXwoH86sZ8q4ximpUXX6wZFCYZB6KcO5GXeKuvK74DnU0YyIm+sTV+r9WJiTSBEW9iVQLZOkzg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/math-base-special-exp': 0.2.4 - '@stdlib/number-float64-base-set-low-word': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-erfcinv/0.2.3: - resolution: {integrity: sha512-B8u7WZiIh0+rX8VWNOwvjPWpmeKBHIQoJtIigUseBgbch/rmgV43k63MCkjh2u+V2SmcFo38yD94qJg5bYyWeA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/math-base-special-ln': 0.2.4 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-exp/0.2.4: - resolution: {integrity: sha512-G6pZqu1wA4WwBj7DcnztA+/ro61wXJUTpKFLOwrIb2f/28pHGpA//Lub+3vAk6/ksAkhJ+qM/dfdM2ue7zLuEw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/math-base-special-ldexp': 0.2.3 - '@stdlib/math-base-special-trunc': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-expm1/0.2.3: - resolution: {integrity: sha512-uJlYZjPjG9X8owuwp1h1/iz9xf21v3dlyEAuutQ0NoacUDzZKVSCbQ3Of0i2Mujn+4N+kjCvEeph6cqhfYAl+A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.2 - '@stdlib/constants-float64-half-ln-two': 0.2.2 - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/number-float64-base-from-words': 0.2.2 - '@stdlib/number-float64-base-get-high-word': 0.2.2 - '@stdlib/number-float64-base-set-high-word': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-factorial/0.2.1: - resolution: {integrity: sha512-uqsANeW4gHFzhgDrV9X0INEwO74MPzQvDVXbxY9+b0E13Vq2HHCi0GqdtPOWXdhOCUk8RkLRs9GizU3X6Coy8A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-integer': 0.2.5 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-special-gamma': 0.2.1 - dev: false - - /@stdlib/math-base-special-factorial/0.3.0: - resolution: {integrity: sha512-tXdXqstF4gmy4HpzALo3Bhkj2UQSlyk+PU3alWXZH5XtKUozHuXhQDnak+2c4w0JqnKxHq4mnaR2qgjfkDNZcA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-max-safe-nth-factorial': 0.1.0 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-integer': 0.2.5 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/math-base-special-gamma': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-floor/0.2.3: - resolution: {integrity: sha512-zTkxVRawtWwJ4NmAT/1e+ZsIoBj1JqUquGOpiNVGNIKtyLOeCONZlZSbN7zuxPkshvmcSjpQ/VLKR8Tw/37E9A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-fmod/0.1.0: - resolution: {integrity: sha512-osHwmEOT5MPWOXRx8y3wKCp362eGHIcJRt8LARJJICr/qTZlu1HMnZnbwuhfy1NIQzpJ8aLOhEdl2PrProTt3A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.2 - '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 - '@stdlib/constants-float64-high-word-exponent-mask': 0.2.2 - '@stdlib/constants-float64-high-word-sign-mask': 0.2.1 - '@stdlib/constants-float64-high-word-significand-mask': 0.2.2 - '@stdlib/constants-float64-min-base2-exponent': 0.2.2 - '@stdlib/math-base-napi-binary': 0.3.0 - '@stdlib/number-float64-base-from-words': 0.2.2 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-gamma-delta-ratio/0.2.2: - resolution: {integrity: sha512-lan+cfafH7aoyUxa88vLO+pYwLA+0uiyVFmCumxDemQUboCrTiNCYhBjONFGI/ljE3RukHoE3ZV4AccIcx526A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-e': 0.2.2 - '@stdlib/constants-float64-eps': 0.2.2 - '@stdlib/constants-float64-gamma-lanczos-g': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-exp': 0.2.4 - '@stdlib/math-base-special-factorial': 0.2.1 - '@stdlib/math-base-special-floor': 0.2.3 - '@stdlib/math-base-special-gamma': 0.2.1 - '@stdlib/math-base-special-gamma-lanczos-sum': 0.3.0 - '@stdlib/math-base-special-log1p': 0.2.3 - '@stdlib/math-base-special-pow': 0.3.0 - dev: false - - /@stdlib/math-base-special-gamma-lanczos-sum-expg-scaled/0.3.0: - resolution: {integrity: sha512-hScjKZvueOK5piX84ZLIV3ZiYvtvYtcixN8psxkPIxJlN7Bd5nAmSkEOBL+T+LeW2RjmdEMXFFJMF7FsK1js/Q==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-gamma-lanczos-sum/0.3.0: - resolution: {integrity: sha512-q13p6r7G0TmbD54cU8QgG8wGgdGGznV9dNKiNszw+hOqCQ+1DqziG8I6vN64R3EQLP7QN4yVprZcmuXSK+fgsg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-gamma/0.2.1: - resolution: {integrity: sha512-Sfq1HnVoL4kN9EDHH3YparEAF0r7QD5jNFppUTOXmrqkofgImSl5tLttttnr2I7O9zsNhYkBAiTx9q0y25bAiA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-eulergamma': 0.2.2 - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pi': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/constants-float64-sqrt-two-pi': 0.2.2 - '@stdlib/math-base-assert-is-integer': 0.2.5 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-assert-is-negative-zero': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-exp': 0.2.4 - '@stdlib/math-base-special-floor': 0.2.3 - '@stdlib/math-base-special-pow': 0.2.1 - '@stdlib/math-base-special-sin': 0.2.1 - dev: false - - /@stdlib/math-base-special-gamma/0.3.0: - resolution: {integrity: sha512-YfW+e5xuSDoUxgpquXPrFtAbdwOzE7Kqt7M0dcAkDNot8/yUn+QmrDGzURyBVzUyhRm9SaC9bACHxTShdJkcuA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-eulergamma': 0.2.2 - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pi': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/constants-float64-sqrt-two-pi': 0.2.2 - '@stdlib/math-base-assert-is-integer': 0.2.5 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-assert-is-negative-zero': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-exp': 0.2.4 - '@stdlib/math-base-special-floor': 0.2.3 - '@stdlib/math-base-special-pow': 0.3.0 - '@stdlib/math-base-special-sin': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-gamma1pm1/0.2.2: - resolution: {integrity: sha512-lNT1lk0ifK2a/ta3GfR5V8KvfgkgheE44n5AQ/07BBfcVBMiAdqNuyjSMeWqsH/zVGzjU6G8+kLBzmaJXivPXQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-eps': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-special-expm1': 0.2.3 - '@stdlib/math-base-special-gamma': 0.2.1 - '@stdlib/math-base-special-ln': 0.2.4 - '@stdlib/math-base-special-log1p': 0.2.3 - dev: false - - /@stdlib/math-base-special-gammainc/0.2.2: - resolution: {integrity: sha512-ffKZFiv/41SXs2Xms7IW3lPnICR898yfWAidq5uKjOLgRb3wrzNjq0sZ6EAVXvdBwyGULvSjyud28PpVhDLv3A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-e': 0.2.2 - '@stdlib/constants-float64-gamma-lanczos-g': 0.2.2 - '@stdlib/constants-float64-max': 0.2.2 - '@stdlib/constants-float64-max-ln': 0.2.2 - '@stdlib/constants-float64-min-ln': 0.2.2 - '@stdlib/constants-float64-pi': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/constants-float64-sqrt-eps': 0.2.2 - '@stdlib/constants-float64-sqrt-two-pi': 0.2.2 - '@stdlib/constants-float64-two-pi': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-erfc': 0.2.4 - '@stdlib/math-base-special-exp': 0.2.4 - '@stdlib/math-base-special-floor': 0.2.3 - '@stdlib/math-base-special-gamma': 0.3.0 - '@stdlib/math-base-special-gamma-lanczos-sum-expg-scaled': 0.3.0 - '@stdlib/math-base-special-gamma1pm1': 0.2.2 - '@stdlib/math-base-special-gammaln': 0.2.2 - '@stdlib/math-base-special-ln': 0.2.4 - '@stdlib/math-base-special-log1p': 0.2.3 - '@stdlib/math-base-special-log1pmx': 0.2.3 - '@stdlib/math-base-special-max': 0.3.0 - '@stdlib/math-base-special-min': 0.2.3 - '@stdlib/math-base-special-pow': 0.3.0 - '@stdlib/math-base-special-powm1': 0.3.1 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/math-base-tools-continued-fraction': 0.2.2 - '@stdlib/math-base-tools-evalpoly': 0.2.2 - '@stdlib/math-base-tools-sum-series': 0.2.2 - dev: false - - /@stdlib/math-base-special-gammaincinv/0.2.2: - resolution: {integrity: sha512-bIZ94ob1rY87seDWsvBTBRxp8Ja2Y46DLtQYuaylHUQuK+I2xKy8XKL2ZHPsOfuwhXRqm+q+91PDjPEAdH1dQw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float32-max': 0.2.2 - '@stdlib/constants-float32-smallest-normal': 0.2.2 - '@stdlib/constants-float64-ln-sqrt-two-pi': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/constants-float64-sqrt-two-pi': 0.2.2 - '@stdlib/constants-float64-two-pi': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-erfcinv': 0.2.3 - '@stdlib/math-base-special-exp': 0.2.4 - '@stdlib/math-base-special-gamma': 0.3.0 - '@stdlib/math-base-special-gammainc': 0.2.2 - '@stdlib/math-base-special-gammaln': 0.2.2 - '@stdlib/math-base-special-ln': 0.2.4 - '@stdlib/math-base-special-min': 0.2.3 - '@stdlib/math-base-special-pow': 0.3.0 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/math-base-tools-evalpoly': 0.2.2 - debug: 2.6.9 - dev: false - - /@stdlib/math-base-special-gammaln/0.2.2: - resolution: {integrity: sha512-opG6HUlspi/GLvQAr4pcwyAevm7BYuymlopgNZ1VulWUvksDpytalaX3zva0idlD2HvniKrDmzHngT1N9p0J1A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-pi': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-infinite': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-ln': 0.2.4 - '@stdlib/math-base-special-sinpi': 0.2.1 - '@stdlib/math-base-special-trunc': 0.2.2 - dev: false - - /@stdlib/math-base-special-gcd/0.2.1: - resolution: {integrity: sha512-w10k9W176lDkbiDIwnmVr1nkTyypTQLwA3/CN9qEUmXh/u8NlxkSnDYBpArcWnxE0oFaIggw8sLJ58TuMvxMaw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/constants-int32-max': 0.2.1 - '@stdlib/math-base-assert-is-integer': 0.2.5 - '@stdlib/math-base-assert-is-nan': 0.2.2 - dev: false - - /@stdlib/math-base-special-kernel-betainc/0.2.2: - resolution: {integrity: sha512-DQwQUWQkmZtjRgdvZ1yZOEdAYLQoEUEndbr47Z69Oe6AgwKwxxpZUh09h9imKheFCFHLVnwVUz20azIM5KifQw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-e': 0.2.2 - '@stdlib/constants-float64-eps': 0.2.2 - '@stdlib/constants-float64-gamma-lanczos-g': 0.2.2 - '@stdlib/constants-float64-half-pi': 0.2.2 - '@stdlib/constants-float64-max': 0.2.2 - '@stdlib/constants-float64-max-ln': 0.2.2 - '@stdlib/constants-float64-min-ln': 0.2.2 - '@stdlib/constants-float64-pi': 0.2.2 - '@stdlib/constants-float64-smallest-normal': 0.2.2 - '@stdlib/constants-int32-max': 0.3.0 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-asin': 0.2.3 - '@stdlib/math-base-special-beta': 0.3.0 - '@stdlib/math-base-special-binomcoef': 0.2.3 - '@stdlib/math-base-special-exp': 0.2.4 - '@stdlib/math-base-special-expm1': 0.2.3 - '@stdlib/math-base-special-factorial': 0.3.0 - '@stdlib/math-base-special-floor': 0.2.3 - '@stdlib/math-base-special-gamma': 0.3.0 - '@stdlib/math-base-special-gamma-delta-ratio': 0.2.2 - '@stdlib/math-base-special-gamma-lanczos-sum-expg-scaled': 0.3.0 - '@stdlib/math-base-special-gammainc': 0.2.2 - '@stdlib/math-base-special-gammaln': 0.2.2 - '@stdlib/math-base-special-ln': 0.2.4 - '@stdlib/math-base-special-log1p': 0.2.3 - '@stdlib/math-base-special-max': 0.3.0 - '@stdlib/math-base-special-maxabs': 0.3.0 - '@stdlib/math-base-special-min': 0.2.3 - '@stdlib/math-base-special-minabs': 0.2.3 - '@stdlib/math-base-special-pow': 0.3.0 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/math-base-tools-continued-fraction': 0.2.2 - '@stdlib/math-base-tools-sum-series': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - dev: false - - /@stdlib/math-base-special-kernel-betaincinv/0.1.1: - resolution: {integrity: sha512-DZLALmQj0m3Wx8L8/na8Jj9vluNj4Z5DxmAPvnA1AWGYy7KsotmP4HXwgSTlsfbXeF3iGcrmworPOo4HJUSxIQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-eps': 0.2.2 - '@stdlib/constants-float64-half-pi': 0.2.2 - '@stdlib/constants-float64-max': 0.2.2 - '@stdlib/constants-float64-pi': 0.2.2 - '@stdlib/constants-float64-smallest-normal': 0.2.2 - '@stdlib/constants-float64-smallest-subnormal': 0.2.2 - '@stdlib/constants-float64-sqrt-two': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-acos': 0.2.3 - '@stdlib/math-base-special-asin': 0.2.3 - '@stdlib/math-base-special-beta': 0.2.1 - '@stdlib/math-base-special-betainc': 0.2.2 - '@stdlib/math-base-special-cos': 0.2.1 - '@stdlib/math-base-special-erfcinv': 0.2.3 - '@stdlib/math-base-special-exp': 0.2.4 - '@stdlib/math-base-special-expm1': 0.2.3 - '@stdlib/math-base-special-floor': 0.2.3 - '@stdlib/math-base-special-gamma-delta-ratio': 0.2.2 - '@stdlib/math-base-special-gammaincinv': 0.2.2 - '@stdlib/math-base-special-kernel-betainc': 0.2.2 - '@stdlib/math-base-special-ldexp': 0.2.3 - '@stdlib/math-base-special-ln': 0.2.4 - '@stdlib/math-base-special-log1p': 0.2.3 - '@stdlib/math-base-special-max': 0.2.1 - '@stdlib/math-base-special-min': 0.2.3 - '@stdlib/math-base-special-pow': 0.2.1 - '@stdlib/math-base-special-round': 0.2.1 - '@stdlib/math-base-special-signum': 0.2.2 - '@stdlib/math-base-special-sin': 0.2.1 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/math-base-tools-evalpoly': 0.2.2 - dev: false - - /@stdlib/math-base-special-kernel-cos/0.2.3: - resolution: {integrity: sha512-K5FbN25SmEc5Z89GejUkrZpqCv05ZX6D7g9SUFcKWFJ1fwiZNgxrF8q4aJtGDQhuV3q66C1gaKJyQeLq/OI8lQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-napi-binary': 0.3.0 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-kernel-sin/0.2.3: - resolution: {integrity: sha512-PFnlGdapUaCaMXqZr+tG5Ioq+l4TCyGE5e8XEYlsyhNDILf0XE2ghHzlROA/wW365Arl4sPLWUoo4oH98DUPqw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-napi-binary': 0.3.0 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-ldexp/0.2.3: - resolution: {integrity: sha512-yD4YisQGVTJmTJUshuzpaoq34sxJtrU+Aw4Ih39mzgXiQi6sh3E3nijB8WXDNKr2v05acUWJ1PRMkkJSfu16Kg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.2 - '@stdlib/constants-float64-max-base2-exponent': 0.2.2 - '@stdlib/constants-float64-max-base2-exponent-subnormal': 0.2.1 - '@stdlib/constants-float64-min-base2-exponent-subnormal': 0.2.1 - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-infinite': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-copysign': 0.2.2 - '@stdlib/number-float32-base-to-word': 0.2.2 - '@stdlib/number-float64-base-exponent': 0.2.2 - '@stdlib/number-float64-base-from-words': 0.2.2 - '@stdlib/number-float64-base-normalize': 0.2.3 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-ln/0.2.4: - resolution: {integrity: sha512-lSB47USaixrEmxwadT0/yByvTtxNhaRwN0FIXt5oj38bsgMXGW4V8xrANOy1N+hrn3KGfHJNDyFPYbXWVdMTIw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.2 - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/number-float64-base-get-high-word': 0.2.2 - '@stdlib/number-float64-base-set-high-word': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-log1p/0.2.3: - resolution: {integrity: sha512-1Pu3attNR+DcskIvhvyls+2KRZ0UCHQ/jP2tvgFI9bWDCgb4oEimXPzjFteGNg9Mj6WlAW2b9wU9tHt3bp8R3g==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.2 - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/number-float64-base-get-high-word': 0.2.2 - '@stdlib/number-float64-base-set-high-word': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-log1pmx/0.2.3: - resolution: {integrity: sha512-HfjDXcbFztm/GQRrn7a9FMYS0rm/4VPXWa50sYQzBHSYaEwYv5Y1awaZz+cA/ncuqAq1Mw0dfcwEMNRmZtnxEQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-eps': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-ln': 0.2.4 - '@stdlib/math-base-special-log1p': 0.2.3 - '@stdlib/math-base-tools-sum-series': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-max/0.2.1: - resolution: {integrity: sha512-jsA3x5azfclbULDFwvHjNlB2nciUDHwrw7qHP/QlSdJi47E1iBDNYdzhlOa3JKzblbrITpzgZEsGBcpCinEInQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-assert-is-positive-zero': 0.2.2 - dev: false - - /@stdlib/math-base-special-max/0.3.0: - resolution: {integrity: sha512-yXsmdFCLHRB24l34Kn1kHZXHKoGqBxPY/5Mi+n5qLg+FwrX85ZG6KGVbO3DfcpG1NxDTcEKb1hxbUargI0P5fw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-assert-is-positive-zero': 0.2.2 - '@stdlib/math-base-napi-binary': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-maxabs/0.3.0: - resolution: {integrity: sha512-SDj+rGD9itZ/YG2hKzhLX4Tf13SNJdOyNsMy1ezjec6Az3xJXKzv2wJAJIteo0KF6jQnEDkI/F6OIF65MY+o0g==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-napi-binary': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-max': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-min/0.2.3: - resolution: {integrity: sha512-tNrKnkcHCRVWzteZJpZ/xql9B6N6EzecnUVizDYqG9y66bOVtI+TADcQ5I/bijEwAIi2BjrIVeq/TBEgQEQBkw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-assert-is-negative-zero': 0.2.2 - '@stdlib/math-base-napi-binary': 0.2.1 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-minabs/0.2.3: - resolution: {integrity: sha512-IV7PSL09S2GHmsxxtFgebPEwLm/wHnC1e1ulP8Uiuo2zinOiv4NXy2tpf9T+nq95d0ICFMnr9IGxFs6Nd74hRw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-napi-binary': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-min': 0.2.3 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-pow/0.2.1: - resolution: {integrity: sha512-7SvgVzDkuilZKrHh4tPiXx9fypF/V7PSvAcUVjvcRj5kVEwv/15RpzlmCJlT9B20VPSx4gJ1S0UIA6xgmYFuAg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.2 - '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 - '@stdlib/constants-float64-high-word-significand-mask': 0.2.2 - '@stdlib/constants-float64-ln-two': 0.2.2 - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-infinite': 0.2.2 - '@stdlib/math-base-assert-is-integer': 0.2.5 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-assert-is-odd': 0.2.1 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-copysign': 0.2.2 - '@stdlib/math-base-special-ldexp': 0.2.3 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/number-float64-base-get-high-word': 0.2.2 - '@stdlib/number-float64-base-set-high-word': 0.2.2 - '@stdlib/number-float64-base-set-low-word': 0.2.2 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/number-uint32-base-to-int32': 0.2.2 - dev: false - - /@stdlib/math-base-special-pow/0.3.0: - resolution: {integrity: sha512-sMDYRUYGFyMXDHcCYy7hE07lV7jgI6rDspLMROKyESWcH4n8j54XE4/0w0i8OpdzR40H895MaPWU/tVnU1tP6w==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.2 - '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 - '@stdlib/constants-float64-high-word-significand-mask': 0.2.2 - '@stdlib/constants-float64-ln-two': 0.2.2 - '@stdlib/constants-float64-ninf': 0.2.2 - '@stdlib/constants-float64-pinf': 0.2.2 - '@stdlib/math-base-assert-is-infinite': 0.2.2 - '@stdlib/math-base-assert-is-integer': 0.2.5 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-assert-is-odd': 0.3.0 - '@stdlib/math-base-napi-binary': 0.3.0 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-copysign': 0.2.2 - '@stdlib/math-base-special-ldexp': 0.2.3 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/number-float64-base-get-high-word': 0.2.2 - '@stdlib/number-float64-base-set-high-word': 0.2.2 - '@stdlib/number-float64-base-set-low-word': 0.2.2 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/number-uint32-base-to-int32': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-powm1/0.3.1: - resolution: {integrity: sha512-Pz7e2JlZH9EktJCDuyFPoT9IxMUSiZiJquyh2xB92NQQi9CAIdyaPUryNo36LxG65bne5GZF47MeiWCE8oWgiA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-assert-is-infinite': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-binary': 0.3.0 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-expm1': 0.2.3 - '@stdlib/math-base-special-fmod': 0.1.0 - '@stdlib/math-base-special-ln': 0.2.4 - '@stdlib/math-base-special-pow': 0.3.0 - '@stdlib/math-base-special-trunc': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-rempio2/0.2.1: - resolution: {integrity: sha512-ErV5EAe3SQCSijg4Pi4Z0sRPOGrODF3jkyCeiLM+iYj2TMOwDaOWQ0xCTME0p9G45TDrbZCLM5arxN83TfzgXQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-base-zeros': 0.2.2 - '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 - '@stdlib/constants-float64-high-word-exponent-mask': 0.2.2 - '@stdlib/constants-float64-high-word-significand-mask': 0.2.2 - '@stdlib/math-base-special-floor': 0.2.3 - '@stdlib/math-base-special-ldexp': 0.2.3 - '@stdlib/math-base-special-round': 0.2.1 - '@stdlib/number-float64-base-from-words': 0.2.2 - '@stdlib/number-float64-base-get-high-word': 0.2.2 - '@stdlib/number-float64-base-get-low-word': 0.2.2 - dev: false - - /@stdlib/math-base-special-round/0.2.1: - resolution: {integrity: sha512-ibeKiN9z//6wS4H4uaa+vGnh/t1vJtZYXz+NqRVtwoP+nnE/mtL+fIrBlAnkIWVIH+smQPNNo8qsohjyGLBvUQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/math-base-special-signum/0.2.2: - resolution: {integrity: sha512-cszwgkfeMTnUiORRWdWv6Q/tpoXkXkMYNMoAFO5qzHTuahnDP37Lkn8fTmCEtgHEasg3Cm69xLbqP0UDuNPHyA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-sin/0.2.1: - resolution: {integrity: sha512-IQ6+bzfiZ6/VUn5DIe6iwCsYERE1pwtAOsAWkgNZ1Ih3FzXUxdEOyHtv1zraPrVUb8mR+V5q7OfAGy8TCTnkUg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-high-word-abs-mask': 0.2.2 - '@stdlib/constants-float64-high-word-exponent-mask': 0.2.2 - '@stdlib/math-base-special-kernel-cos': 0.2.3 - '@stdlib/math-base-special-kernel-sin': 0.2.3 - '@stdlib/math-base-special-rempio2': 0.2.1 - '@stdlib/number-float64-base-get-high-word': 0.2.2 - dev: false - - /@stdlib/math-base-special-sinpi/0.2.1: - resolution: {integrity: sha512-Q3yCp1CoD7gemIILO28bU7iBn8OFiCgXm9vP/9q0tRBxmjtiUnjqbFd+3jRXdAmiCc/B/bPjwGBtVnCnrEMY9g==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-pi': 0.2.2 - '@stdlib/math-base-assert-is-infinite': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/math-base-special-copysign': 0.2.2 - '@stdlib/math-base-special-cos': 0.2.1 - '@stdlib/math-base-special-sin': 0.2.1 - dev: false - - /@stdlib/math-base-special-sqrt/0.2.2: - resolution: {integrity: sha512-YWxe9vVE5blDbRPDAdZfU03vfGTBHy/8pLDa/qLz7SiJj5n5sVWKObdbMR2oPHF4c6DaZh4IYkrcHFleiY8YkQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-special-trunc/0.2.2: - resolution: {integrity: sha512-cvizbo6oFEbdiv7BrtEMODGW+cJcBgyAIleJnIpCf75C722Y/IZgWikWhACSjv4stxGywFubx85B7uvm3vLgwA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-napi-unary': 0.2.3 - '@stdlib/math-base-special-ceil': 0.2.2 - '@stdlib/math-base-special-floor': 0.2.3 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/math-base-tools-continued-fraction/0.2.2: - resolution: {integrity: sha512-5dm72lTXwSVOsBsOLF57RZqqHehRd9X3HKdQ3WhOoHx7fNc0lxJJEDjtK8gMdV3NvfoER1MBiGbs2h23oaK5qw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-generator-support': 0.2.2 - '@stdlib/constants-float32-smallest-normal': 0.2.2 - '@stdlib/constants-float64-eps': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - dev: false - - /@stdlib/math-base-tools-evalpoly/0.2.2: - resolution: {integrity: sha512-vLvfkMkccXZGFiyI3GPf8Ayi6vPEZeHgENnoBDGC+eMIDIoVWmOpVWsjpUz8xtc5xGNsa1hKalSI40IrouHsYA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/function-ctor': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - dev: false - - /@stdlib/math-base-tools-sum-series/0.2.2: - resolution: {integrity: sha512-P3X+jMONClp93ucJi1Up/x26uwL0kH20CMV9bLzcQyRY8Mceh7jPZuEwzGQR0jq/tJ/4J7AnHg4kdrx4Pd+BNA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-generator-support': 0.2.2 - '@stdlib/constants-float64-eps': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - dev: false - - /@stdlib/number-ctor/0.2.2: - resolution: {integrity: sha512-98pL4f1uiXVIw9uRV6t4xecMFUYRRTUoctsqDDV8MSRtKEYDzqkWCNz/auupJFJ135L1ejzkejh73fASsgcwKQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/number-float32-base-to-word/0.2.2: - resolution: {integrity: sha512-/I866ocLExPpAjgZnHAjeaBw3ZHg5tVPcRdJoTPEiBG2hwD/OonHdCsfB9lu6FxO6sbp7I9BR1JolCoEyrhmYg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float32': 0.2.2 - '@stdlib/array-uint32': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/number-float64-base-exponent/0.2.2: - resolution: {integrity: sha512-mYivBQKCuu54ulorf5A5rIhFaGPjGvmtkxhvK14q7gzRA80si83dk8buUsLpeeYsakg7yLn10RCVjBEP9/gm7Q==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-exponent-bias': 0.2.2 - '@stdlib/constants-float64-high-word-exponent-mask': 0.2.2 - '@stdlib/number-float64-base-get-high-word': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/number-float64-base-from-words/0.2.2: - resolution: {integrity: sha512-SzMDXSnIDZ8l3PDmtN9TPKTf0mUmh83kKCtj4FisKTcTbcmUmT/ovmrpMTiqdposymjHBieNvGiCz/K03NmlAA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float64': 0.2.2 - '@stdlib/array-uint32': 0.2.2 - '@stdlib/assert-is-little-endian': 0.2.2 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/number-float64-base-get-high-word/0.2.2: - resolution: {integrity: sha512-LMNQAHdLZepKOFMRXAXLuq30GInmEdTtR0rO7Ka4F3m7KpYvw84JMyvZByMQHBu+daR6JNr2a/o9aFjmVIe51g==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float64': 0.2.2 - '@stdlib/array-uint32': 0.2.2 - '@stdlib/assert-is-little-endian': 0.2.2 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/number-float64-base-get-low-word/0.2.2: - resolution: {integrity: sha512-VZjflvoQ9//rZwwuhl7uSLUnnscdIIYmBrHofnBHRjHwdLGUzSd9PM0iagtvI82OHw5QnydBYI4hohBeAAg+aQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float64': 0.2.2 - '@stdlib/array-uint32': 0.2.2 - '@stdlib/assert-is-little-endian': 0.2.2 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/number-float64-base-normalize/0.2.3: - resolution: {integrity: sha512-HT+3fhYZOEg2JgHBWS/ysc9ZveQZV10weKbtxhLHOsvceQVp1GbThsLik62mU2/3f96S9MgiVfPfSDI3jnBoYw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/constants-float64-smallest-normal': 0.2.2 - '@stdlib/math-base-assert-is-infinite': 0.2.2 - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-special-abs': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/number-float64-base-set-high-word/0.2.2: - resolution: {integrity: sha512-bLvH15GJgX5URMaOOJAQgO8/dCJPYUQoXPZH7ecSC3XnnVMfWEf43knkjEGYCnWp4nro5hPRElbtdV4mKEjpUg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float64': 0.2.2 - '@stdlib/array-uint32': 0.2.2 - '@stdlib/assert-is-little-endian': 0.2.2 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/number-float64-base-set-low-word/0.2.2: - resolution: {integrity: sha512-E1pGjTwacJ+Tkt5rKQNdwitKnM1iDgMlulYosNdn6CtvU0Pkq359bNhscMscxehdY3MifwuJpuGzDWD2EGUXzQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float64': 0.2.2 - '@stdlib/array-uint32': 0.2.2 - '@stdlib/assert-is-little-endian': 0.2.2 - '@stdlib/number-float64-base-to-words': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/number-float64-base-to-float32/0.2.2: - resolution: {integrity: sha512-T5snDkVNZY6pomrSW/qLWQfZ9JHgqCFLi8jaaarfNj2o+5NMUuvvRifLUIacTm8/uC96xB0j3+wKTh1zbIV5ig==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float32': 0.2.2 - dev: false - - /@stdlib/number-float64-base-to-words/0.2.2: - resolution: {integrity: sha512-nkFHHXoMhb3vcfl7ZvzgiNdqBdBfbKxHtgvDXRxrNQoVmyYbnjljjYD489d2/TAhe+Zvn7qph6QLgTod3zaeww==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/array-float64': 0.2.2 - '@stdlib/array-uint32': 0.2.2 - '@stdlib/assert-is-little-endian': 0.2.2 - '@stdlib/os-byte-order': 0.2.2 - '@stdlib/os-float-word-order': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - '@stdlib/utils-library-manifest': 0.2.2 - dev: false - - /@stdlib/number-uint32-base-to-int32/0.2.2: - resolution: {integrity: sha512-NPADfdHE/3VEifKDttXM24dRj5YQqxwh2wTRD8fQrpHeaWiMIUo8yDqWrrFNIdLVAcqjL2SwWpo4VJ7oKTYaIA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/object-ctor/0.2.1: - resolution: {integrity: sha512-HEIBBpfdQS9Nh5mmIqMk9fzedx6E0tayJrVa2FD7No86rVuq/Ikxq1QP7qNXm+i6z9iNUUS/lZq7BmJESWO/Zg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/os-byte-order/0.2.2: - resolution: {integrity: sha512-2y6rHAvZo43YmZu9u/E/7cnqZa0hNTLoIiMpV1IxQ/7iv03xZ45Z3xyvWMk0b7bAWwWL7iUknOAAmEchK/kHBA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-big-endian': 0.2.2 - '@stdlib/assert-is-little-endian': 0.2.2 - dev: false - - /@stdlib/os-float-word-order/0.2.2: - resolution: {integrity: sha512-5xpcEuxv/CudKctHS5czKdM7Bj/gC+sm/5R5bRPYyqxANM67t365j3v2v8rmmOxkEp9t0fa8Dggx8VmOkpJXaA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/os-byte-order': 0.2.2 - dev: false - - /@stdlib/process-cwd/0.2.2: - resolution: {integrity: sha512-8Q/nA/ud5d5PEzzG6ZtKzcOw+RMLm5CWR8Wd+zVO5vcPj+JD7IV7M2lBhbzfUzr63Torrf/vEhT3cob8vUHV/A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/regexp-extended-length-path/0.2.2: - resolution: {integrity: sha512-z3jqauEsaxpsQU3rj1A1QnOgu17pyW5kt+Az8QkoTk7wqNE8HhPikI6k4o7XBHV689rSFWZCl4c4W+7JAiNObQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - dev: false - - /@stdlib/regexp-function-name/0.2.2: - resolution: {integrity: sha512-0z/KRsgHJJ3UQkmBeLH+Nin0hXIeA+Fw1T+mnG2V5CHnTA6FKlpxJxWrvwLEsRX7mR/DNtDp06zGyzMFE/4kig==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - dev: false - - /@stdlib/stats-base-dists-t-quantile/0.2.1: - resolution: {integrity: sha512-59sdJjHsOMd9JlZ/Kdz4Jc/QHESejDRATw/G/zHafMrO6vIhaus9Y5O2PYUzPQx7nR6i5hsXnT8OQwqZ+RoVNQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/math-base-assert-is-nan': 0.2.2 - '@stdlib/math-base-special-kernel-betaincinv': 0.1.1 - '@stdlib/math-base-special-signum': 0.2.2 - '@stdlib/math-base-special-sqrt': 0.2.2 - '@stdlib/utils-constant-function': 0.2.2 - '@stdlib/utils-define-nonenumerable-read-only-property': 0.2.2 - dev: false - - /@stdlib/string-base-format-interpolate/0.2.2: - resolution: {integrity: sha512-i9nU9rAB2+o/RR66TS9iQ8x+YzeUDL1SGiAo6GY3hP6Umz5Dx9Qp/v8T69gWVsb4a1YSclz5+YeCWaFgwvPjKA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/string-base-format-tokenize/0.2.2: - resolution: {integrity: sha512-kXq2015i+LJjqth5dN+hYnvJXBSzRm8w0ABWB5tYAsIuQTpQK+mSo2muM8JBEFEnqUHAwpUsu2qNTK/9o8lsJg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/string-base-lowercase/0.4.0: - resolution: {integrity: sha512-IH35Z5e4T+S3b3SfYY39mUhrD2qvJVp4VS7Rn3+jgj4+C3syocuAPsJ8C4OQXWGfblX/N9ymizbpFBCiVvMW8w==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/string-base-replace/0.2.2: - resolution: {integrity: sha512-Y4jZwRV4Uertw7AlA/lwaYl1HjTefSriN5+ztRcQQyDYmoVN3gzoVKLJ123HPiggZ89vROfC+sk/6AKvly+0CA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/string-format/0.2.2: - resolution: {integrity: sha512-GUa50uxgMAtoItsxTbMmwkyhIwrCxCrsjzk3nAbLnt/1Kt1EWOWMwsALqZdD6K4V/xSJ4ns6PZur3W6w+vKk9g==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/string-base-format-interpolate': 0.2.2 - '@stdlib/string-base-format-tokenize': 0.2.2 - dev: false - - /@stdlib/string-replace/0.2.2: - resolution: {integrity: sha512-czNS5IU7sBuHjac45Y3VWUTsUoi82yc8JsMZrOMcjgSrEuDrVmA6sNJg7HC1DuSpdPjm/v9uUk102s1gIfk3Nw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-function': 0.2.2 - '@stdlib/assert-is-regexp': 0.2.2 - '@stdlib/assert-is-string': 0.2.2 - '@stdlib/error-tools-fmtprodmsg': 0.2.2 - '@stdlib/string-base-replace': 0.2.2 - '@stdlib/string-format': 0.2.2 - '@stdlib/utils-escape-regexp-string': 0.2.2 - dev: false - - /@stdlib/symbol-ctor/0.2.2: - resolution: {integrity: sha512-XsmiTfHnTb9jSPf2SoK3O0wrNOXMxqzukvDvtzVur1XBKfim9+seaAS4akmV1H3+AroAXQWVtde885e1B6jz1w==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/utils-constant-function/0.2.2: - resolution: {integrity: sha512-ezRenGy5zU4R0JTfha/bpF8U+Hx0b52AZV++ca/pcaQVvPBRkgCsJacXX0eDbexoBB4+ZZ1vcyIi4RKJ0RRlbQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/utils-constructor-name/0.2.2: - resolution: {integrity: sha512-TBtO3MKDAf05ij5ajmyBCbpKKt0Lfahn5tu18gqds4PkFltgcw5tVZfSHY5DZ2HySJQ2GMMYjPW2Kbg6yPCSVg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-buffer': 0.2.2 - '@stdlib/regexp-function-name': 0.2.2 - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/utils-convert-path/0.2.2: - resolution: {integrity: sha512-8nNuAgt23Np9NssjShUrPK42c6gRTweGuoQw+yTpTfBR9VQv8WFyt048n8gRGUlAHizrdMNpEY9VAb7IBzpVYw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-string': 0.2.2 - '@stdlib/error-tools-fmtprodmsg': 0.2.2 - '@stdlib/regexp-extended-length-path': 0.2.2 - '@stdlib/string-base-lowercase': 0.4.0 - '@stdlib/string-format': 0.2.2 - '@stdlib/string-replace': 0.2.2 - dev: false - - /@stdlib/utils-define-nonenumerable-read-only-property/0.2.2: - resolution: {integrity: sha512-V3mpAesJemLYDKG376CsmoczWPE/4LKsp8xBvUxCt5CLNAx3J/1W39iZQyA5q6nY1RStGinGn1/dYZwa8ig0Uw==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-define-property': 0.2.4 - dev: false - - /@stdlib/utils-define-property/0.2.4: - resolution: {integrity: sha512-XlMdz7xwuw/sqXc9LbsV8XunCzZXjbZPC+OAdf4t4PBw4ZRwGzlTI6WED+f4PYR5Tp9F1cHgLPyMYCIBfA2zRg==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/error-tools-fmtprodmsg': 0.2.2 - '@stdlib/string-format': 0.2.2 - dev: false - - /@stdlib/utils-escape-regexp-string/0.2.2: - resolution: {integrity: sha512-areCibzgpmvm6pGKBg+mXkSDJW4NxtS5jcAT7RtunGMdAYhA/I5whISMPaeJkIT2XhjjFkjKBaIs5pF6aPr4fQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-string': 0.2.2 - '@stdlib/error-tools-fmtprodmsg': 0.2.2 - '@stdlib/string-format': 0.2.2 - dev: false - - /@stdlib/utils-eval/0.2.2: - resolution: {integrity: sha512-MaFpWZh3fGcTjUeozju5faXqH8w4MRVfpO/M5pon3osTM0by8zrKiI5D9oWqNVygb9JBd+etE+4tj2L1nr5j2A==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dev: false - - /@stdlib/utils-get-prototype-of/0.2.2: - resolution: {integrity: sha512-eDb1BAvt7GW/jduBkfuQrUsA9p09mV8RW20g0DWPaxci6ORYg/UB0tdbAA23aZz2QUoxdYY5s/UJxlq/GHwoKQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-function': 0.2.2 - '@stdlib/object-ctor': 0.2.1 - '@stdlib/utils-native-class': 0.2.2 - dev: false - - /@stdlib/utils-global/0.2.2: - resolution: {integrity: sha512-A4E8VFHn+1bpfJ4PA8H2b62CMQpjv2A+H3QDEBrouLFWne0wrx0TNq8vH6VYHxx9ZRxhgWQjfHiSAxtUJobrbQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-is-boolean': 0.2.2 - '@stdlib/error-tools-fmtprodmsg': 0.2.2 - '@stdlib/string-format': 0.2.2 - dev: false - - /@stdlib/utils-library-manifest/0.2.2: - resolution: {integrity: sha512-YqzVLuBsB4wTqzdUtRArAjBJoT3x61iop2jFChXexhl6ejV3vDpHcukEEkqIOcJKut+1cG5TLJdexgHNt1C0NA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/fs-resolve-parent-path': 0.2.2 - '@stdlib/utils-convert-path': 0.2.2 - debug: 2.6.9 - resolve: 1.22.10 - dev: false - - /@stdlib/utils-native-class/0.2.2: - resolution: {integrity: sha512-cSn/FozbEpfR/FlJAoceQtZ8yUJFhZ8RFkbEsxW/7+H4o09yln3lBS0HSfUJISYNtpTNN/2/Fup88vmvwspvwA==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/assert-has-own-property': 0.2.2 - '@stdlib/assert-has-tostringtag-support': 0.2.2 - '@stdlib/symbol-ctor': 0.2.2 - dev: false - - /@stdlib/utils-type-of/0.2.2: - resolution: {integrity: sha512-RLGFxPNgY9AtVVrFGdKO6Y3pOd/Ov2WA4O2/czZN/AbgYzbPdoF0KkfvHRIney6k+TtvoyYB8YqZXJ4G88f9BQ==} - engines: {node: '>=0.10.0', npm: '>2.7.0'} - os: [aix, darwin, freebsd, linux, macos, openbsd, sunos, win32, windows] - dependencies: - '@stdlib/utils-constructor-name': 0.2.2 - '@stdlib/utils-global': 0.2.2 - dev: false - - /@tootallnate/once/2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - - /@trufflesuite/spinnies/0.1.1: - resolution: {integrity: sha512-jltEtmFJj6xmQqr85gP8OqBHCEiId+zw+uAsb3DyLLRD17O6sySW6Afa2Z/jpzSafj+32ssDfLJ+c0of1NLqcA==} - dependencies: - chalk: 4.1.2 - cli-cursor: 3.1.0 - strip-ansi: 6.0.1 - dev: false - - /@tsconfig/node10/1.0.11: - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - - /@tsconfig/node12/1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - /@tsconfig/node14/1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - /@tsconfig/node16/1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - /@turf/boolean-clockwise/6.5.0: - resolution: {integrity: sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==} - dependencies: - '@turf/helpers': 6.5.0 - '@turf/invariant': 6.5.0 - - /@turf/clone/6.5.0: - resolution: {integrity: sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==} - dependencies: - '@turf/helpers': 6.5.0 - - /@turf/flatten/6.5.0: - resolution: {integrity: sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==} - dependencies: - '@turf/helpers': 6.5.0 - '@turf/meta': 6.5.0 - - /@turf/helpers/6.5.0: - resolution: {integrity: sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==} - - /@turf/invariant/6.5.0: - resolution: {integrity: sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==} - dependencies: - '@turf/helpers': 6.5.0 - - /@turf/meta/3.14.0: - resolution: {integrity: sha512-OtXqLQuR9hlQ/HkAF/OdzRea7E0eZK1ay8y8CBXkoO2R6v34CsDrWYLMSo0ZzMsaQDpKo76NPP2GGo+PyG1cSg==} - - /@turf/meta/6.5.0: - resolution: {integrity: sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==} - dependencies: - '@turf/helpers': 6.5.0 - - /@turf/rewind/6.5.0: - resolution: {integrity: sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==} - dependencies: - '@turf/boolean-clockwise': 6.5.0 - '@turf/clone': 6.5.0 - '@turf/helpers': 6.5.0 - '@turf/invariant': 6.5.0 - '@turf/meta': 6.5.0 - - /@types/array-normalize/2.0.5: - resolution: {integrity: sha512-o60338Bls/NAg8eBEezb1Cxrc/JrquyS0iiylZuCINh1MnOZuxbA99hOmiwyrleSipaLf2cugHMwkknjyV7ljw==} - dev: true - - /@types/babel__core/7.20.0: - resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - '@types/babel__generator': 7.27.0 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.7 - - /@types/babel__generator/7.27.0: - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} - dependencies: - '@babel/types': 7.27.0 - - /@types/babel__template/7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - - /@types/babel__traverse/7.20.7: - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} - dependencies: - '@babel/types': 7.27.0 - - /@types/chai-subset/1.3.6_@types+chai@4.3.20: - resolution: {integrity: sha512-m8lERkkQj+uek18hXOZuec3W/fCRTrU4hrnXjH3qhHy96ytuPaPiWGgu7sJb7tZxZonO75vYAjCvpe/e4VUwRw==} - peerDependencies: - '@types/chai': <5.2.0 - dependencies: - '@types/chai': 4.3.20 - dev: true - - /@types/chai/4.3.20: - resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} - dev: true - - /@types/clean-css/4.2.6: - resolution: {integrity: sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw==} - dependencies: - '@types/node': 22.15.1 - source-map: 0.6.1 - dev: true - - /@types/debug/4.1.7: - resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} - dependencies: - '@types/ms': 0.7.31 - dev: true - - /@types/density-clustering/1.3.3: - resolution: {integrity: sha512-p2zEz57kHxWVg39XZ9QQVW6ity4rC3/1cCeLqm2eqqomvOrf8CFYaw7jO8gdYuchO4532ak0Z0f/vBr9irwG/w==} - dev: true - - /@types/estree/1.0.7: - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - - /@types/euclidean-distance/1.0.3: - resolution: {integrity: sha512-xC2/ybsj2K+/B7QeoRzvkmhfweUuOkkUGvpefkp4wKrdk7XnzFlepETI2dkYsb0ladJhTwI6P2VfKoEIhy68gA==} - dev: true - - /@types/expect/1.20.4: - resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} - - /@types/fs-extra/9.0.13: - resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - dependencies: - '@types/node': 22.15.1 - dev: true - - /@types/glob-stream/8.0.2: - resolution: {integrity: sha512-kyuRfGE+yiSJWzSO3t74rXxdZNdYfLcllO0IUha4eX1fl40pm9L02Q/TEc3mykTLjoWz4STBNwYnUWdFu3I0DA==} - dependencies: - '@types/node': 22.15.1 - '@types/picomatch': 4.0.0 - '@types/streamx': 2.9.5 - dev: true - - /@types/glob-watcher/5.0.2: - resolution: {integrity: sha512-MZeh2nIzibl/euv5UV0femkGzcKTSE4G2+zv48d6ymeitWwCx52+4X+FqzML9oH2mQnPs+N/JHp3CsBPj1x1Ug==} - dependencies: - '@types/node': 22.15.1 - dev: true - - /@types/glob/7.2.0: - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 22.15.1 - dev: true - - /@types/graceful-fs/4.1.9: - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - dependencies: - '@types/node': 22.15.1 - - /@types/gulp-if/0.0.34: - resolution: {integrity: sha512-r2A04hHDC+ZWMRAm+3q6/UeC3ggvl+TZm9P1+2umnp4q9bOlBmUQnR178Io3c0DkZPQAwup8VNtOvmvaWCpP5w==} - dependencies: - '@types/node': 22.15.1 - '@types/vinyl': 2.0.7 - dev: true - - /@types/gulp-match/1.1.2: - resolution: {integrity: sha512-R/yI2NT2NJk2e8F5G0BAUM/f4c03QcxE7oWOGOgCccy1ABbkoH8NUBEuEnd1/MKr0lqO0EyGWJtgH5kqWf6zNA==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/vinyl': 2.0.7 - dev: true - - /@types/gulp-sourcemaps/0.0.35: - resolution: {integrity: sha512-vUBuizwA4CAV3Mke0DJYHQxyN4YOB1aAql284qAO7Et7fe0hmnPi/R9Fhu2UhxMuSxAwFktsJUOQk5dJHOU1eA==} - dependencies: - '@types/node': 22.15.1 - '@types/vinyl': 2.0.7 - dev: true - - /@types/gulp/4.0.10: - resolution: {integrity: sha512-spgZHJFqiEJGwqGlf7T/k4nkBpBcLgP7T0EfN6G2vvnhUfvd4uO1h8RwpXOE8x/54DVYUs1XCAtBHkX/R3axAQ==} - dependencies: - '@types/undertaker': 1.2.8 - '@types/vinyl-fs': 3.0.5 - chokidar: 3.6.0 - dev: true - - /@types/highlightjs/9.12.6: - resolution: {integrity: sha512-Qfd1DUrwE851Hc3tExADJY4qY8yeZMt06Xw9AJm/UtpneepJS3MZY29c33BY0wP899veaaHD4gZzYiSuQm84Fg==} - dev: true - - /@types/istanbul-lib-coverage/2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - /@types/istanbul-lib-report/3.0.3: - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - /@types/istanbul-reports/3.0.4: - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - /@types/jest/29.5.14: - resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - dev: true - - /@types/js-yaml/4.0.9: - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - dev: true - - /@types/jsdom/20.0.1: - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - dependencies: - '@types/node': 22.15.1 - '@types/tough-cookie': 4.0.5 - parse5: 7.3.0 - - /@types/json-schema/7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - /@types/json5/0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true - - /@types/less/3.0.3: - resolution: {integrity: sha512-1YXyYH83h6We1djyoUEqTlVyQtCfJAFXELSKW2ZRtjHD4hQ82CC4lvrv5D0l0FLcKBaiPbXyi3MpMsI9ZRgKsw==} - dev: true - - /@types/linkify-it/3.0.5: - resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} - dev: true - - /@types/lodash/4.14.182: - resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} - dev: true - - /@types/markdown-it/13.0.9: - resolution: {integrity: sha512-1XPwR0+MgXLWfTn9gCsZ55AHOKW1WN+P9vr0PaQh5aerR9LLQXUbjfEAFhjmEmyoYFWAyuN2Mqkn40MZ4ukjBw==} - dependencies: - '@types/linkify-it': 3.0.5 - '@types/mdurl': 1.0.5 - dev: true - - /@types/mdurl/1.0.5: - resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} - dev: true - - /@types/merge2/1.4.0: - resolution: {integrity: sha512-MRHDvln2ldZELrUC8n1PGaQzZ33aNh8uDcsGehREW0zR1Fr818a4/JTZjO9eloHPPxnpUp8fz/YFTRc5CWm7Xw==} - dependencies: - '@types/node': 22.15.1 - dev: true - - /@types/minimatch/5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - dev: true - - /@types/minimist/1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true - - /@types/mocha/9.1.1: - resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} - dev: true - - /@types/ms/0.7.31: - resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} - dev: true - - /@types/node/22.15.1: - resolution: {integrity: sha512-gSZyd0Qmv7qvbd2fJ9HGdYmv1yhNdelIA4YOtN6vkcmSwFhthxSEsBgU/JYZcXjWT6DFzoATcHrc52Ckh8SeRA==} - dependencies: - undici-types: 6.21.0 - - /@types/picomatch/4.0.0: - resolution: {integrity: sha512-J1Bng+wlyEERWSgJQU1Pi0HObCLVcr994xT/M+1wcl/yNRTGBupsCxthgkdYG+GCOMaQH7iSVUY3LJVBBqG7MQ==} - dev: true - - /@types/prop-types/15.7.14: - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - - /@types/react-dom/18.3.6_@types+react@18.3.20: - resolution: {integrity: sha512-nf22//wEbKXusP6E9pfOCDwFdHAX4u172eaJI4YkDRQEZiorm6KfYnSC2SWLDMVWUOWPERmJnN0ujeAfTBLvrw==} - peerDependencies: - '@types/react': ^18.0.0 - dependencies: - '@types/react': 18.3.20 - dev: true - - /@types/react/18.3.20: - resolution: {integrity: sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==} - dependencies: - '@types/prop-types': 15.7.14 - csstype: 3.1.3 - - /@types/resolve/1.20.2: - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - dev: false - - /@types/semver/7.3.12: - resolution: {integrity: sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==} - dev: true - - /@types/stack-utils/2.0.3: - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - /@types/streamx/2.9.5: - resolution: {integrity: sha512-IHYsa6jYrck8VEdSwpY141FTTf6D7boPeMq9jy4qazNrFMA4VbRz/sw5LSsfR7jwdDcx0QKWkUexZvsWBC2eIQ==} - dependencies: - '@types/node': 22.15.1 - dev: true - - /@types/terser/3.12.0: - resolution: {integrity: sha512-J0Wy8A7ULEqVJftkWhrXZbH0iBk4tYuTj0gBiiveKaY9deNi6cCsxl0ApJ27ojqwYv51bvEw85lOb8Wt4ng9zA==} - deprecated: This is a stub types definition. terser provides its own type definitions, so you do not need this installed. - dependencies: - terser: 5.17.1 - dev: true - - /@types/through2/2.0.38: - resolution: {integrity: sha512-YFu+nHmjxMurkH1BSzA0Z1WrKDAY8jUKPZctNQn7mc+/KKtp2XxnclHFXxdB1m7Iqnzb5aywgP8TMK283LezGQ==} - dependencies: - '@types/node': 22.15.1 - dev: true - - /@types/tough-cookie/4.0.5: - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - - /@types/undertaker-registry/1.0.4: - resolution: {integrity: sha512-tW77pHh2TU4uebWXWeEM5laiw8BuJ7pyJYDh6xenOs75nhny2kVgwYbegJ4BoLMYsIrXaBpKYaPdYO3/udG+hg==} - dev: true - - /@types/undertaker/1.2.8: - resolution: {integrity: sha512-gW3PRqCHYpo45XFQHJBhch7L6hytPsIe0QeLujlnFsjHPnXLhJcPdN6a9368d7aIQgH2I/dUTPFBlGeSNA3qOg==} - dependencies: - '@types/node': 22.15.1 - '@types/undertaker-registry': 1.0.4 - async-done: 1.3.2 - dev: true - - /@types/vinyl-fs/3.0.5: - resolution: {integrity: sha512-ckYz9giHgV6U10RFuf9WsDQ3X86EFougapxHmmoxLK7e6ICQqO8CE+4V/3lBN148V5N1pb4nQMmMjyScleVsig==} - dependencies: - '@types/glob-stream': 8.0.2 - '@types/node': 22.15.1 - '@types/vinyl': 2.0.7 - dev: true - - /@types/vinyl/2.0.7: - resolution: {integrity: sha512-4UqPv+2567NhMQuMLdKAyK4yzrfCqwaTt6bLhHEs8PFcxbHILsrxaY63n4wgE/BRLDWDQeI+WcTmkXKExh9hQg==} - dependencies: - '@types/expect': 1.20.4 - '@types/node': 22.15.1 - - /@types/yargs-parser/21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - - /@types/yargs/17.0.33: - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - dependencies: - '@types/yargs-parser': 21.0.0 - - /@typescript-eslint/eslint-plugin/5.30.0_cow5zg7tx6c3eisi5a4ud5kwia: - resolution: {integrity: sha512-lvhRJ2pGe2V9MEU46ELTdiHgiAFZPKtLhiU5wlnaYpMc2+c1R8fh8i80ZAa665drvjHKUJyRRGg3gEm1If54ow==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/parser': 5.30.0_vwud3sodsb5zxmzckoj7rdwdbq - '@typescript-eslint/scope-manager': 5.30.0 - '@typescript-eslint/type-utils': 5.30.0_vwud3sodsb5zxmzckoj7rdwdbq - '@typescript-eslint/utils': 5.30.0_vwud3sodsb5zxmzckoj7rdwdbq - debug: 4.3.4 - eslint: 8.18.0 - functional-red-black-tree: 1.0.1 - ignore: 5.3.2 - regexpp: 3.2.0 - semver: 7.7.1 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - /@typescript-eslint/eslint-plugin/5.30.0_dwvk2jxdxtyxgoclhbqbxvd22a: - resolution: {integrity: sha512-lvhRJ2pGe2V9MEU46ELTdiHgiAFZPKtLhiU5wlnaYpMc2+c1R8fh8i80ZAa665drvjHKUJyRRGg3gEm1If54ow==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/parser': 5.30.0_typescript@4.9.5 - '@typescript-eslint/scope-manager': 5.30.0 - '@typescript-eslint/type-utils': 5.30.0_typescript@4.9.5 - '@typescript-eslint/utils': 5.30.0_typescript@4.9.5 - debug: 4.3.4 - functional-red-black-tree: 1.0.1 - ignore: 5.3.2 - regexpp: 3.2.0 - semver: 7.7.1 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser/5.30.0_typescript@4.9.5: - resolution: {integrity: sha512-2oYYUws5o2liX6SrFQ5RB88+PuRymaM2EU02/9Ppoyu70vllPnHVO7ioxDdq/ypXHA277R04SVjxvwI8HmZpzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.30.0 - '@typescript-eslint/types': 5.30.0 - '@typescript-eslint/typescript-estree': 5.30.0_typescript@4.9.5 - debug: 4.3.4 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser/5.30.0_vwud3sodsb5zxmzckoj7rdwdbq: - resolution: {integrity: sha512-2oYYUws5o2liX6SrFQ5RB88+PuRymaM2EU02/9Ppoyu70vllPnHVO7ioxDdq/ypXHA277R04SVjxvwI8HmZpzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.30.0 - '@typescript-eslint/types': 5.30.0 - '@typescript-eslint/typescript-estree': 5.30.0_typescript@4.9.5 - debug: 4.3.4 - eslint: 8.18.0 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - /@typescript-eslint/scope-manager/5.30.0: - resolution: {integrity: sha512-3TZxvlQcK5fhTBw5solQucWSJvonXf5yua5nx8OqK94hxdrT7/6W3/CS42MLd/f1BmlmmbGEgQcTHHCktUX5bQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.30.0 - '@typescript-eslint/visitor-keys': 5.30.0 - - /@typescript-eslint/type-utils/5.30.0_typescript@4.9.5: - resolution: {integrity: sha512-GF8JZbZqSS+azehzlv/lmQQ3EU3VfWYzCczdZjJRxSEeXDQkqFhCBgFhallLDbPwQOEQ4MHpiPfkjKk7zlmeNg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/utils': 5.30.0_typescript@4.9.5 - debug: 4.3.4 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/type-utils/5.30.0_vwud3sodsb5zxmzckoj7rdwdbq: - resolution: {integrity: sha512-GF8JZbZqSS+azehzlv/lmQQ3EU3VfWYzCczdZjJRxSEeXDQkqFhCBgFhallLDbPwQOEQ4MHpiPfkjKk7zlmeNg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/utils': 5.30.0_vwud3sodsb5zxmzckoj7rdwdbq - debug: 4.3.4 - eslint: 8.18.0 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - /@typescript-eslint/types/5.30.0: - resolution: {integrity: sha512-vfqcBrsRNWw/LBXyncMF/KrUTYYzzygCSsVqlZ1qGu1QtGs6vMkt3US0VNSQ05grXi5Yadp3qv5XZdYLjpp8ag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /@typescript-eslint/typescript-estree/5.30.0_typescript@4.9.5: - resolution: {integrity: sha512-hDEawogreZB4n1zoqcrrtg/wPyyiCxmhPLpZ6kmWfKF5M5G0clRLaEexpuWr31fZ42F96SlD/5xCt1bT5Qm4Nw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.30.0 - '@typescript-eslint/visitor-keys': 5.30.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.7.1 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - /@typescript-eslint/utils/5.30.0_typescript@4.9.5: - resolution: {integrity: sha512-0bIgOgZflLKIcZsWvfklsaQTM3ZUbmtH0rJ1hKyV3raoUYyeZwcjQ8ZUJTzS7KnhNcsVT1Rxs7zeeMHEhGlltw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@types/json-schema': 7.0.15 - '@typescript-eslint/scope-manager': 5.30.0 - '@typescript-eslint/types': 5.30.0 - '@typescript-eslint/typescript-estree': 5.30.0_typescript@4.9.5 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils/5.30.0_vwud3sodsb5zxmzckoj7rdwdbq: - resolution: {integrity: sha512-0bIgOgZflLKIcZsWvfklsaQTM3ZUbmtH0rJ1hKyV3raoUYyeZwcjQ8ZUJTzS7KnhNcsVT1Rxs7zeeMHEhGlltw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@types/json-schema': 7.0.15 - '@typescript-eslint/scope-manager': 5.30.0 - '@typescript-eslint/types': 5.30.0 - '@typescript-eslint/typescript-estree': 5.30.0_typescript@4.9.5 - eslint: 8.18.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.18.0 - transitivePeerDependencies: - - supports-color - - typescript - - /@typescript-eslint/visitor-keys/5.30.0: - resolution: {integrity: sha512-6WcIeRk2DQ3pHKxU1Ni0qMXJkjO/zLjBymlYBy/53qxe7yjEFSvzKLDToJjURUhSl2Fzhkl4SMXQoETauF74cw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.30.0 - eslint-visitor-keys: 3.4.3 - - /@ungap/promise-all-settled/1.1.2: - resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - dev: true - - /@visactor/vchart-theme/1.12.2: - resolution: {integrity: sha512-r298TUdK+CKbHGVYWgQnNSEB5uqpFvF2/aMNZ/2POQnd2CovAPJOx2nTE6hAcOn8rra2FwJ2xF8AyP1O5OhrTw==} - peerDependencies: - '@visactor/vchart': '>=1.10.4' - dev: false - - /@visactor/vchart-theme/1.12.2_@visactor+vchart@1.13.9: - resolution: {integrity: sha512-r298TUdK+CKbHGVYWgQnNSEB5uqpFvF2/aMNZ/2POQnd2CovAPJOx2nTE6hAcOn8rra2FwJ2xF8AyP1O5OhrTw==} - peerDependencies: - '@visactor/vchart': '>=1.10.4' - dependencies: - '@visactor/vchart': 1.13.9 - dev: false - - /@visactor/vchart/1.13.9: - resolution: {integrity: sha512-5MUrnqYW3RVMQdRERJlbfebQqa9REdHH3mRR2YHKReuRinXSndIi1tVMjJMiCZN1TAMsA6tx2Ew6Zv2jJtiy3g==} - dependencies: - '@visactor/vdataset': 0.19.5 - '@visactor/vgrammar-core': 0.16.6 - '@visactor/vgrammar-hierarchy': 0.16.6 - '@visactor/vgrammar-projection': 0.16.6 - '@visactor/vgrammar-sankey': 0.16.6 - '@visactor/vgrammar-util': 0.16.6 - '@visactor/vgrammar-venn': 0.16.6 - '@visactor/vgrammar-wordcloud': 0.16.6 - '@visactor/vgrammar-wordcloud-shape': 0.16.6 - '@visactor/vrender-components': 0.22.10 - '@visactor/vrender-core': 0.22.10 - '@visactor/vrender-kits': 0.22.10 - '@visactor/vscale': 0.19.5 - '@visactor/vutils': 0.19.5 - '@visactor/vutils-extension': 1.13.9 - - /@visactor/vdataset/0.19.5: - resolution: {integrity: sha512-8sOzJKHRLTdjmCDGemroxo3t3iWYrw4aDgPaCUbV1GiKuttC4CdTJlVsfq/JLdSldvMgNDTAmovAchVgjBNH6Q==} - dependencies: - '@turf/flatten': 6.5.0 - '@turf/helpers': 6.5.0 - '@turf/rewind': 6.5.0 - '@visactor/vutils': 0.19.5 - d3-dsv: 2.0.0 - d3-geo: 1.12.1 - d3-hexbin: 0.2.2 - d3-hierarchy: 3.1.2 - eventemitter3: 4.0.7 - geobuf: 3.0.2 - geojson-dissolve: 3.1.0 - path-browserify: 1.0.1 - pbf: 3.3.0 - point-at-length: 1.1.0 - simple-statistics: 7.8.8 - simplify-geojson: 1.0.5 - topojson-client: 3.1.0 - - /@visactor/vgrammar-coordinate/0.16.6: - resolution: {integrity: sha512-stLKmcoz+qLnHxrQVpMNL6wtc53Sd5+mGXLo+56KG7DDxwAUg/p5rWEJW84tfYW1QvfC3xJxiC1iWHK+KkfFPg==} - dependencies: - '@visactor/vgrammar-util': 0.16.6 - '@visactor/vutils': 0.19.5 - - /@visactor/vgrammar-core/0.16.6: - resolution: {integrity: sha512-+K3mP/VQyNzsLtnf21Y9hmGU5gyRmaiLMIhVOvaSd0+vlSVB2rJKCVe9wSj3Q2IZXtLHI9mXe7nFV0m1AUVXkA==} - dependencies: - '@visactor/vdataset': 0.19.5 - '@visactor/vgrammar-coordinate': 0.16.6 - '@visactor/vgrammar-util': 0.16.6 - '@visactor/vrender-components': 0.22.10 - '@visactor/vrender-core': 0.22.10 - '@visactor/vrender-kits': 0.22.10 - '@visactor/vscale': 0.19.5 - '@visactor/vutils': 0.19.5 - - /@visactor/vgrammar-hierarchy/0.16.6: - resolution: {integrity: sha512-aekYeT5Z6CUeztLf3OpjBj+plyM8s6AzwlTNlEw3UIiluofARli+jlRRYHdXZuvSk2yGhL7q1DK7WTw/6hZ+Nw==} - dependencies: - '@visactor/vgrammar-core': 0.16.6 - '@visactor/vgrammar-util': 0.16.6 - '@visactor/vrender-core': 0.22.10 - '@visactor/vrender-kits': 0.22.10 - '@visactor/vutils': 0.19.5 - - /@visactor/vgrammar-projection/0.16.6: - resolution: {integrity: sha512-RsE4lgWVBKGlCGI/IIApAZAbGDd8fnGK/1iNk+afaTW9nTmCMyqakZ/d1s0iSiVHYZMY7XPAJzv1bkoFr7za8A==} - dependencies: - '@visactor/vgrammar-core': 0.16.6 - '@visactor/vgrammar-util': 0.16.6 - '@visactor/vutils': 0.19.5 - d3-geo: 1.12.1 - - /@visactor/vgrammar-sankey/0.16.6: - resolution: {integrity: sha512-ijGkm26s7oI4xvV2EhE9lH8SsutM+b6Pn3M34nO5dH7M+kIrFfF70RRPz1xSb+dXf9Es/cm7K935YtUwoqfE/A==} - dependencies: - '@visactor/vgrammar-core': 0.16.6 - '@visactor/vgrammar-util': 0.16.6 - '@visactor/vrender-core': 0.22.10 - '@visactor/vrender-kits': 0.22.10 - '@visactor/vutils': 0.19.5 - - /@visactor/vgrammar-util/0.16.6: - resolution: {integrity: sha512-E6X7w6DXm6oee4wfVFbiBpy+BUY1UcCMexMxMuPI2FFVgaZbsKAh2bbMwwSpVvCFZp4gUEwMRYUetoJXJ+hdSw==} - dependencies: - '@visactor/vrender-core': 0.22.10 - '@visactor/vutils': 0.19.5 - - /@visactor/vgrammar-venn/0.16.6: - resolution: {integrity: sha512-/fObOTB/dZ8P2cD/lgnB//bs3Wv4ivpcM3bf7TIEE0KvO6Sf91Kc5ajH/ld2feWyS7bogW/Qm2jESc/KYd3J7g==} - dependencies: - '@visactor/vgrammar-core': 0.16.6 - '@visactor/vgrammar-util': 0.16.6 - '@visactor/vrender-core': 0.22.10 - '@visactor/vrender-kits': 0.22.10 - '@visactor/vutils': 0.19.5 - - /@visactor/vgrammar-wordcloud-shape/0.16.6: - resolution: {integrity: sha512-XF6qnwvvw1EocAYuUMnObgL32aVzC2scEyb0CYy7Fw285cghoAYMRiw99Jgntsvy22fNENJjzzGWC36w71te7Q==} - dependencies: - '@visactor/vgrammar-core': 0.16.6 - '@visactor/vgrammar-util': 0.16.6 - '@visactor/vrender-core': 0.22.10 - '@visactor/vrender-kits': 0.22.10 - '@visactor/vscale': 0.19.5 - '@visactor/vutils': 0.19.5 - - /@visactor/vgrammar-wordcloud/0.16.6: - resolution: {integrity: sha512-bdLHriR6YHIT37gKXhufPSrJgH5tDciDRkO/R1V26yMpJ/jQKmte8xL5YRC25/ah4txKexuCTyloQj5qTiynTQ==} - dependencies: - '@visactor/vgrammar-core': 0.16.6 - '@visactor/vgrammar-util': 0.16.6 - '@visactor/vrender-core': 0.22.10 - '@visactor/vrender-kits': 0.22.10 - '@visactor/vutils': 0.19.5 - - /@visactor/vrender-components/0.22.10: - resolution: {integrity: sha512-rfsci9y9AkEp/TCqCs0wpYdmPYqRnViEZ3EF9yiKhuFMExzdO8opga7JPfHJSbGCMoaqU5mWVCiEALsQkFuRQg==} - dependencies: - '@visactor/vrender-core': 0.22.10 - '@visactor/vrender-kits': 0.22.10 - '@visactor/vscale': 0.19.5 - '@visactor/vutils': 0.19.5 - - /@visactor/vrender-core/0.21.8: - resolution: {integrity: sha512-5tHGC8HaMQ+LkMyO+yD82gYvSg2Gw+PdxVRM+A8kVbINDmElME336nCM8tQObbWRt8UlqZOUvUkzKmczsiralA==} - dependencies: - '@visactor/vutils': 0.19.5 - color-convert: 2.0.1 - dev: true - - /@visactor/vrender-core/0.22.10: - resolution: {integrity: sha512-I2+/odcPphPujZtA26S4RG8Yn9BNPt4jlcsbOPwDGP5MvN7oLkWTSMgu4C9r0/lWYvfkwi5JpaoU8lLBZT7e6w==} - dependencies: - '@visactor/vutils': 0.19.5 - color-convert: 2.0.1 - - /@visactor/vrender-kits/0.22.10: - resolution: {integrity: sha512-XjhThrOLvd1m7+o2jKNGKZSSAlHQG4cIm7H6BV2ew9/eQ532Fj8Vd7N17KU8bBnXzPulCmPpnEFj++E4Mnoqpg==} - dependencies: - '@resvg/resvg-js': 2.4.1 - '@visactor/vrender-core': 0.22.10 - '@visactor/vutils': 0.19.5 - gifuct-js: 2.1.2 - lottie-web: 5.12.2 - roughjs: 4.5.2 - - /@visactor/vscale/0.19.5: - resolution: {integrity: sha512-KiXrn184Fh5aJBl/IcOK5irkJr0jwrpNjLPJ/0wfepYSycyEF5z7lDdfnvoJFEcMoljYjDQVg6Fxg9Adozc6vg==} - dependencies: - '@visactor/vutils': 0.19.5 - - /@visactor/vutils-extension/1.13.9: - resolution: {integrity: sha512-eLrfbqt2THKXtl9GMwpZNeMdlUENvNWDtX1TUme59TOjYad+duvZNqUD/5ZLKZ8GScgRXdzBZzr8pezDpCBLow==} - dependencies: - '@visactor/vdataset': 0.19.5 - '@visactor/vutils': 0.19.5 - - /@visactor/vutils/0.19.5: - resolution: {integrity: sha512-sSU9Gnmnej7LgkENKkdmVqx1I3ZYVugDbGP0KEzgo8j+txAwrthEQTSeFwZcVS0iYrAvSzpmAVuN0/NRo6+vpg==} - dependencies: - '@turf/helpers': 6.5.0 - '@turf/invariant': 6.5.0 - eventemitter3: 4.0.7 - - /@vitejs/plugin-react/3.1.0_vite@3.2.6: - resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.1.0-beta.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/plugin-transform-react-jsx-self': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-transform-react-jsx-source': 7.25.9_@babel+core@7.20.12 - magic-string: 0.27.0 - react-refresh: 0.14.2 - vite: 3.2.6 - transitivePeerDependencies: - - supports-color - dev: true - - /@vitest/expect/0.30.1: - resolution: {integrity: sha512-c3kbEtN8XXJSeN81iDGq29bUzSjQhjES2WR3aColsS4lPGbivwLtas4DNUe0jD9gg/FYGIteqOenfU95EFituw==} - dependencies: - '@vitest/spy': 0.30.1 - '@vitest/utils': 0.30.1 - chai: 4.5.0 - dev: true - - /@vitest/runner/0.30.1: - resolution: {integrity: sha512-W62kT/8i0TF1UBCNMRtRMOBWJKRnNyv9RrjIgdUryEe0wNpGZvvwPDLuzYdxvgSckzjp54DSpv1xUbv4BQ0qVA==} - dependencies: - '@vitest/utils': 0.30.1 - concordance: 5.0.4 - p-limit: 4.0.0 - pathe: 1.1.2 - dev: true - - /@vitest/snapshot/0.30.1: - resolution: {integrity: sha512-fJZqKrE99zo27uoZA/azgWyWbFvM1rw2APS05yB0JaLwUIg9aUtvvnBf4q7JWhEcAHmSwbrxKFgyBUga6tq9Tw==} - dependencies: - magic-string: 0.30.17 - pathe: 1.1.2 - pretty-format: 27.5.1 - dev: true - - /@vitest/spy/0.30.1: - resolution: {integrity: sha512-YfJeIf37GvTZe04ZKxzJfnNNuNSmTEGnla2OdL60C8od16f3zOfv9q9K0nNii0NfjDJRt/CVN/POuY5/zTS+BA==} - dependencies: - tinyspy: 2.2.1 - dev: true - - /@vitest/utils/0.30.1: - resolution: {integrity: sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==} - dependencies: - concordance: 5.0.4 - loupe: 2.3.7 - pretty-format: 27.5.1 - dev: true - - /abab/2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - - /abbrev/1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - dev: true - - /abs-svg-path/0.1.1: - resolution: {integrity: sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==} - - /accepts/1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - dev: true - - /acorn-globals/7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - dependencies: - acorn: 8.14.1 - acorn-walk: 8.3.4 - - /acorn-jsx/5.3.2_acorn@8.14.1: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.14.1 - - /acorn-walk/8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - dependencies: - acorn: 8.14.1 - - /acorn/6.4.2: - resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: false - - /acorn/8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} - engines: {node: '>=0.4.0'} - hasBin: true - - /agent-base/6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - - /ajv-formats/2.1.1_ajv@8.17.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: - ajv: 8.17.1 - dev: true - - /ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - /ajv/8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - dev: true - - /alasql/4.3.3: - resolution: {integrity: sha512-IP64TOG+zBTPA41OB2NJVkM3urEIhvZtYwtPFC/1QSH7nCzwShIwWfxwyOhTK7yzF/ZaNGEpc3Eexyzb2nUbFg==} - engines: {node: '>=15'} - hasBin: true - dependencies: - cross-fetch: 4.1.0 - yargs: 16.2.0 - transitivePeerDependencies: - - encoding - dev: false - - /ansi-colors/1.1.0: - resolution: {integrity: sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-wrap: 0.1.0 - dev: false - - /ansi-colors/4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true - - /ansi-colors/4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: false - - /ansi-cyan/0.1.1: - resolution: {integrity: sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-wrap: 0.1.0 - dev: false - - /ansi-escapes/4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - - /ansi-gray/0.1.1: - resolution: {integrity: sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-wrap: 0.1.0 - dev: false - - /ansi-red/0.1.1: - resolution: {integrity: sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-wrap: 0.1.0 - dev: false - - /ansi-regex/2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} - dev: false - - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - - /ansi-styles/5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - /ansi-wrap/0.1.0: - resolution: {integrity: sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==} - engines: {node: '>=0.10.0'} - dev: false - - /anymatch/2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - dev: false - - /anymatch/3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - /append-buffer/1.0.2: - resolution: {integrity: sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==} - engines: {node: '>=0.10.0'} - dependencies: - buffer-equal: 1.0.1 - dev: false - - /aproba/2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: true - - /archy/1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - dev: false - - /are-we-there-yet/2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - dev: true - - /arg/4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - - /argparse/2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - /aria-query/5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - dev: true - - /arr-diff/1.1.0: - resolution: {integrity: sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==} - engines: {node: '>=0.10.0'} - dependencies: - arr-flatten: 1.1.0 - array-slice: 0.2.3 - dev: false - - /arr-diff/4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} - dev: false - - /arr-filter/1.1.2: - resolution: {integrity: sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==} - engines: {node: '>=0.10.0'} - dependencies: - make-iterator: 1.0.1 - dev: false - - /arr-flatten/1.1.0: - resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} - engines: {node: '>=0.10.0'} - dev: false - - /arr-map/2.0.2: - resolution: {integrity: sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==} - engines: {node: '>=0.10.0'} - dependencies: - make-iterator: 1.0.1 - dev: false - - /arr-union/2.1.0: - resolution: {integrity: sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==} - engines: {node: '>=0.10.0'} - dev: false - - /arr-union/3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} - dev: false - - /array-bounds/1.0.1: - resolution: {integrity: sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==} - dev: false - - /array-buffer-byte-length/1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - - /array-each/1.0.1: - resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} - engines: {node: '>=0.10.0'} - dev: false - - /array-flatten/1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - dev: true - - /array-includes/3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - is-string: 1.1.1 - - /array-initial/1.1.0: - resolution: {integrity: sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==} - engines: {node: '>=0.10.0'} - dependencies: - array-slice: 1.1.0 - is-number: 4.0.0 - dev: false - - /array-last/1.3.0: - resolution: {integrity: sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 4.0.0 - dev: false - - /array-normalize/2.0.0: - resolution: {integrity: sha512-WofPolGg9OqpmfYh2qqOJ0yeJ9Idjn+EcQ+Nyy3eQbqtuz0MRyqTEHB0PH/Ypp2PpsOAfjsqTMzu1fHOaPzO1Q==} - dependencies: - array-bounds: 1.0.1 - dev: false - - /array-slice/0.2.3: - resolution: {integrity: sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==} - engines: {node: '>=0.10.0'} - dev: false - - /array-slice/1.1.0: - resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} - engines: {node: '>=0.10.0'} - dev: false - - /array-sort/1.0.0: - resolution: {integrity: sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==} - engines: {node: '>=0.10.0'} - dependencies: - default-compare: 1.0.0 - get-value: 2.0.6 - kind-of: 5.1.0 - dev: false - - /array-source/0.0.4: - resolution: {integrity: sha512-frNdc+zBn80vipY+GdcJkLEbMWj3xmzArYApmUGxoiV8uAu/ygcs9icPdsGdA26h0MkHUMW6EN2piIvVx+M5Mw==} - - /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - /array-unique/0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} - dev: false - - /array.prototype.findlastindex/1.2.6: - resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - dev: true - - /array.prototype.flat/1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - /array.prototype.flatmap/1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - /arraybuffer.prototype.slice/1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - - /assertion-error/1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true - - /assign-symbols/1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} - dev: false - - /ast-types-flow/0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - dev: true - - /astring/1.9.0: - resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} - hasBin: true - dev: true - - /async-done/1.3.2: - resolution: {integrity: sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==} - engines: {node: '>= 0.10'} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - process-nextick-args: 2.0.1 - stream-exhaust: 1.0.2 - - /async-each/1.0.6: - resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} - dev: false - - /async-function/1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - - /async-settle/1.0.0: - resolution: {integrity: sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==} - engines: {node: '>= 0.10'} - dependencies: - async-done: 1.3.2 - dev: false - - /async/3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - dev: true - - /asynckit/0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - /atob/2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - dev: false - - /autoprefixer/10.4.13_postcss@8.4.21: - resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001715 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.4.21 - postcss-value-parser: 4.2.0 - dev: false - - /available-typed-arrays/1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - dependencies: - possible-typed-array-names: 1.1.0 - - /axe-core/4.10.3: - resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} - engines: {node: '>=4'} - dev: true - - /axios/1.9.0: - resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} - dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.2 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - dev: false - - /axobject-query/4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - dev: true - - /b-tween/0.3.3: - resolution: {integrity: sha512-oEHegcRpA7fAuc9KC4nktucuZn2aS8htymCPcP3qkEGPqiBH+GfqtqoG2l7LxHngg6O0HFM7hOeOYExl1Oz4ZA==} - - /b-validate/1.5.3: - resolution: {integrity: sha512-iCvCkGFskbaYtfQ0a3GmcQCHl/Sv1GufXFGuUQ+FE+WJa7A/espLOuFIn09B944V8/ImPj71T4+rTASxO2PAuA==} - - /babel-jest/29.7.0_@babel+core@7.20.12: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.20.12 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.0 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3_@babel+core@7.20.12 - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-import/1.13.6: - resolution: {integrity: sha512-N7FYnGh0DFsvDRkAPsvFq/metVfVD7P2h1rokOPpEH4cZbdRHCW+2jbXt0nnuqowkm/xhh2ww1anIdEpfYa7ZA==} - dependencies: - '@babel/helper-module-imports': 7.25.9 - transitivePeerDependencies: - - supports-color - dev: false - - /babel-plugin-istanbul/6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.26.5 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - /babel-plugin-jest-hoist/29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - '@types/babel__core': 7.20.0 - '@types/babel__traverse': 7.20.7 - dev: true - - /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.12: - resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/core': 7.20.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.12: - resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 - core-js-compat: 3.41.0 - transitivePeerDependencies: - - supports-color - dev: false - - /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.12: - resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: false - - /babel-preset-current-node-syntax/1.1.0_@babel+core@7.20.12: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-syntax-import-attributes': 7.26.0_@babel+core@7.20.12 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 - - /babel-preset-jest/29.6.3_@babel+core@7.20.12: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0_@babel+core@7.20.12 - dev: true - - /bach/1.2.0: - resolution: {integrity: sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==} - engines: {node: '>= 0.10'} - dependencies: - arr-filter: 1.1.2 - arr-flatten: 1.1.0 - arr-map: 2.0.2 - array-each: 1.0.1 - array-initial: 1.1.0 - array-last: 1.3.0 - async-done: 1.3.2 - async-settle: 1.0.0 - now-and-later: 2.0.1 - dev: false - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - /base/0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} - dependencies: - cache-base: 1.0.1 - class-utils: 0.3.6 - component-emitter: 1.3.1 - define-property: 1.0.0 - isobject: 3.0.1 - mixin-deep: 1.3.2 - pascalcase: 0.1.1 - dev: false - - /bayesian-changepoint/1.0.1: - resolution: {integrity: sha512-OhSHWfGiEcBtI46b5guJGmj6pJEjvyaXsRPCAQy5MPoVaDZ38poXmzVZLSIuw6VLQmZs58+uf5F9iFA4NVmTTA==} - dev: false - - /big-integer/1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} - dev: false - - /binary-extensions/1.13.1: - resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} - engines: {node: '>=0.10.0'} - dev: false - - /binary-extensions/2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - dev: true - - /binaryextensions/2.3.0: - resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==} - engines: {node: '>=0.8'} - dev: false - - /bindings/1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - dependencies: - file-uri-to-path: 1.0.0 - dev: false - optional: true - - /blueimp-md5/2.19.0: - resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} - dev: true - - /body-parser/1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - dev: true - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - /brace-expansion/2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - - /braces/2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} - dependencies: - arr-flatten: 1.1.0 - array-unique: 0.3.2 - extend-shallow: 2.0.1 - fill-range: 4.0.0 - isobject: 3.0.1 - repeat-element: 1.1.4 - snapdragon: 0.8.2 - snapdragon-node: 2.1.1 - split-string: 3.1.0 - to-regex: 3.0.2 - dev: false - - /braces/3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.1.1 - - /browser-stdout/1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - dev: true - - /browserslist/4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001715 - electron-to-chromium: 1.5.142 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3_browserslist@4.24.4 - - /bs-logger/0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - dependencies: - fast-json-stable-stringify: 2.1.0 - dev: true - - /bser/2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - dependencies: - node-int64: 0.4.0 - - /buffer-equal/1.0.1: - resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} - engines: {node: '>=0.4'} - dev: false - - /buffer-from/1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - /builtin-modules/3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: false - - /bytes/3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - dev: true - - /cac/6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - dev: true - - /cache-base/1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} - dependencies: - collection-visit: 1.0.0 - component-emitter: 1.3.1 - get-value: 2.0.6 - has-value: 1.0.0 - isobject: 3.0.1 - set-value: 2.0.1 - to-object-path: 0.3.0 - union-value: 1.0.1 - unset-value: 1.0.0 - dev: false - - /call-bind-apply-helpers/1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - /call-bind/1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - /call-bound/1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - - /callsites/3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - /camelcase/3.0.0: - resolution: {integrity: sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==} - engines: {node: '>=0.10.0'} - dev: false - - /camelcase/5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - /camelcase/6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true - - /caniuse-lite/1.0.30001715: - resolution: {integrity: sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==} - - /canvas/2.11.2: - resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} - engines: {node: '>=6'} - requiresBuild: true - dependencies: - '@mapbox/node-pre-gyp': 1.0.11 - nan: 2.22.2 - simple-get: 3.1.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /chai/4.5.0: - resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} - engines: {node: '>=4'} - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.4 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.1.0 - dev: true - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - - /chalk/3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /chalk/4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - /char-regex/1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true - - /check-error/1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /chokidar/2.1.8: - resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} - dependencies: - anymatch: 2.0.0 - async-each: 1.0.6 - braces: 2.3.2 - glob-parent: 3.1.0 - inherits: 2.0.4 - is-binary-path: 1.0.1 - is-glob: 4.0.3 - normalize-path: 3.0.0 - path-is-absolute: 1.0.1 - readdirp: 2.2.1 - upath: 1.2.0 - optionalDependencies: - fsevents: 1.2.13 - dev: false - - /chokidar/3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /chokidar/3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /chokidar/4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - dependencies: - readdirp: 4.1.2 - dev: true - - /chownr/2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - dev: true - - /ci-info/3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - /cjs-module-lexer/1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - dev: true - - /class-utils/0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - define-property: 0.2.5 - isobject: 3.0.1 - static-extend: 0.1.2 - dev: false - - /clean-css/5.3.2: - resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} - engines: {node: '>= 10.0'} - dependencies: - source-map: 0.6.1 - dev: false - - /cli-cursor/3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: false - - /cliui/3.2.0: - resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==} - dependencies: - string-width: 1.0.2 - strip-ansi: 3.0.1 - wrap-ansi: 2.1.0 - dev: false - - /cliui/7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - /cliui/8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - /clone-buffer/1.0.0: - resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} - engines: {node: '>= 0.10'} - dev: false - - /clone-stats/1.0.0: - resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} - dev: false - - /clone/2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - dev: false - - /cloneable-readable/1.1.3: - resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} - dependencies: - inherits: 2.0.4 - process-nextick-args: 2.0.1 - readable-stream: 2.3.8 - dev: false - - /co/4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - - /code-point-at/1.1.0: - resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} - engines: {node: '>=0.10.0'} - dev: false - - /collect-v8-coverage/1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - dev: true - - /collection-map/1.0.0: - resolution: {integrity: sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==} - engines: {node: '>=0.10.0'} - dependencies: - arr-map: 2.0.2 - for-own: 1.0.0 - make-iterator: 1.0.1 - dev: false - - /collection-visit/1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} - dependencies: - map-visit: 1.0.0 - object-visit: 1.0.1 - dev: false - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - - /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - /color-string/1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - - /color-support/1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - - /color/3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} - dependencies: - color-convert: 1.9.3 - color-string: 1.9.1 - - /combined-stream/1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - - /commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - /commondir/1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: false - - /component-emitter/1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} - dev: false - - /compute-scroll-into-view/1.0.11: - resolution: {integrity: sha512-uUnglJowSe0IPmWOdDtrlHXof5CTIJitfJEyITHBW6zDVOGu9Pjk5puaLM73SLcwak0L4hEjO7Td88/a6P5i7A==} - - /compute-scroll-into-view/1.0.20: - resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} - - /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - /concat-stream/1.4.11: - resolution: {integrity: sha512-X3JMh8+4je3U1cQpG87+f9lXHDrqcb2MVLg9L7o8b1UZ0DzhRrUpdn65ttzu10PpJPPI3MQNkis+oha6TSA9Mw==} - engines: {'0': node >= 0.8} - dependencies: - inherits: 2.0.4 - readable-stream: 1.1.14 - typedarray: 0.0.7 - - /concat-stream/1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 2.3.8 - typedarray: 0.0.6 - dev: false - - /concat-stream/2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.2 - typedarray: 0.0.6 - - /concordance/5.0.4: - resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} - engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} - dependencies: - date-time: 3.1.0 - esutils: 2.0.3 - fast-diff: 1.3.0 - js-string-escape: 1.0.1 - lodash: 4.17.21 - md5-hex: 3.0.1 - semver: 7.3.4 - well-known-symbols: 2.0.0 - dev: true - - /confbox/0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - dev: true - - /console-control-strings/1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - dev: true - - /content-disposition/0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /content-type/1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - dev: true - - /convert-source-map/1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - - /convert-source-map/2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - /cookie-signature/1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - dev: true - - /cookie/0.7.1: - resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} - engines: {node: '>= 0.6'} - dev: true - - /copy-anything/2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} - dependencies: - is-what: 3.14.1 - - /copy-descriptor/0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} - dev: false - - /copy-props/2.0.5: - resolution: {integrity: sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==} - dependencies: - each-props: 1.3.2 - is-plain-object: 5.0.0 - dev: false - - /core-js-compat/3.41.0: - resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==} - dependencies: - browserslist: 4.24.4 - dev: false - - /core-util-is/1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - /create-jest/29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0 - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /create-jest/29.7.0_@types+node@22.15.1: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0_@types+node@22.15.1 - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /create-jest/29.7.0_mb2oyrpzg3jg7gqunu3hmdvhw4: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0_mb2oyrpzg3jg7gqunu3hmdvhw4 - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /create-require/1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - /cross-fetch/4.1.0: - resolution: {integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==} - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - dev: false - - /cross-spawn/6.0.6: - resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} - engines: {node: '>=4.8'} - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.2 - shebang-command: 1.2.0 - which: 1.3.1 - dev: true - - /cross-spawn/7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - /css/3.0.0: - resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==} - dependencies: - inherits: 2.0.4 - source-map: 0.6.1 - source-map-resolve: 0.6.0 - dev: false - - /cssom/0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - - /cssom/0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - - /cssstyle/2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - dependencies: - cssom: 0.3.8 - - /cssstyle/3.0.0: - resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} - engines: {node: '>=14'} - dependencies: - rrweb-cssom: 0.6.0 - dev: false - - /csstype/3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - /d/1.0.2: - resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} - engines: {node: '>=0.12'} - dependencies: - es5-ext: 0.10.64 - type: 2.7.3 - dev: false - - /d3-array/1.2.4: - resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==} - - /d3-dsv/2.0.0: - resolution: {integrity: sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==} - hasBin: true - dependencies: - commander: 2.20.3 - iconv-lite: 0.4.24 - rw: 1.3.3 - - /d3-geo/1.12.1: - resolution: {integrity: sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==} - dependencies: - d3-array: 1.2.4 - - /d3-hexbin/0.2.2: - resolution: {integrity: sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==} - - /d3-hierarchy/3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} - - /damerau-levenshtein/1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: true - - /data-urls/3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - - /data-urls/4.0.0: - resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} - engines: {node: '>=14'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 3.0.0 - whatwg-url: 12.0.1 - dev: false - - /data-view-buffer/1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - /data-view-byte-length/1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - /data-view-byte-offset/1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - /date-time/3.1.0: - resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} - engines: {node: '>=6'} - dependencies: - time-zone: 1.0.0 - dev: true - - /dayjs/1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - - /debug-fabulous/1.1.0: - resolution: {integrity: sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==} - dependencies: - debug: 3.2.7 - memoizee: 0.4.17 - object-assign: 4.1.1 - dev: false - - /debug/2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - dependencies: - ms: 2.0.0 - - /debug/3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - dependencies: - ms: 2.1.3 - - /debug/4.3.3_supports-color@8.1.1: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - supports-color: 8.1.1 - dev: true - - /debug/4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /decamelize/1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: false - - /decamelize/4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - dev: true - - /decimal.js/10.5.0: - resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} - - /decode-uri-component/0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - dev: false - - /decompress-response/4.2.1: - resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} - engines: {node: '>=8'} - dependencies: - mimic-response: 2.1.0 - dev: true - - /dedent/1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - dev: true - - /deep-eql/4.1.4: - resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} - engines: {node: '>=6'} - dependencies: - type-detect: 4.1.0 - dev: true - - /deep-is/0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - /deepmerge/4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - /default-compare/1.0.0: - resolution: {integrity: sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 5.1.0 - dev: false - - /default-resolution/2.0.0: - resolution: {integrity: sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==} - engines: {node: '>= 0.10'} - dev: false - - /define-data-property/1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - /define-properties/1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - - /define-property/0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 0.1.7 - dev: false - - /define-property/1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.3 - dev: false - - /define-property/2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.3 - isobject: 3.0.1 - dev: false - - /delayed-stream/1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - /delegates/1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: true - - /density-clustering/1.3.0: - resolution: {integrity: sha512-icpmBubVTwLnsaor9qH/4tG5+7+f61VcqMN3V3pm9sxxSCt2Jcs0zWOgwZW9ARJYaKD3FumIgHiMOcIMRRAzFQ==} - dev: false - - /depd/2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: true - - /destroy/1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dev: true - - /detect-file/1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} - dev: false - - /detect-libc/1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - optional: true - - /detect-libc/2.0.4: - resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} - engines: {node: '>=8'} - dev: true - - /detect-newline/2.1.0: - resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==} - engines: {node: '>=0.10.0'} - dev: false - - /detect-newline/3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true - - /detect-node-es/1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - - /diff-sequences/29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - /diff/4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - /diff/5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - dev: true - - /dir-glob/3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - - /doctrine/2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - - /doctrine/3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - - /dom-helpers/5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - dependencies: - '@babel/runtime': 7.27.0 - csstype: 3.1.3 - - /dom-serializer/1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - dev: true - - /domelementtype/2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: true - - /domexception/4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead - dependencies: - webidl-conversions: 7.0.0 - - /domhandler/3.3.0: - resolution: {integrity: sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: true - - /domhandler/4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: true - - /domutils/2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - dev: true - - /dotenv/16.3.2: - resolution: {integrity: sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==} - engines: {node: '>=12'} - dev: true - - /dunder-proto/1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - /duplexify/3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 2.3.8 - stream-shift: 1.0.3 - dev: false - - /duplexify/4.1.3: - resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 3.6.2 - stream-shift: 1.0.3 - dev: false - - /each-props/1.3.2: - resolution: {integrity: sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==} - dependencies: - is-plain-object: 2.0.4 - object.defaults: 1.1.0 - dev: false - - /ee-first/1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - dev: true - - /ejs/3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - jake: 10.9.2 - dev: true - - /electron-to-chromium/1.5.142: - resolution: {integrity: sha512-Ah2HgkTu/9RhTDNThBtzu2Wirdy4DC9b0sMT1pUhbkZQ5U/iwmE+PHZX1MpjD5IkJCc2wSghgGG/B04szAx07w==} - - /emittery/0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - dev: true - - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - /emoji-regex/9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - - /encodeurl/1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - dev: true - - /encodeurl/2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - dev: true - - /end-of-stream/1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - - /entities/2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: true - - /entities/3.0.1: - resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} - engines: {node: '>=0.12'} - dev: false - - /entities/6.0.0: - resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} - engines: {node: '>=0.12'} - - /errno/0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true - requiresBuild: true - dependencies: - prr: 1.0.1 - optional: true - - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - - /es-abstract/1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 - - /es-define-property/1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - /es-errors/1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - /es-object-atoms/1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - - /es-set-tostringtag/2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - /es-shim-unscopables/1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} - dependencies: - hasown: 2.0.2 - - /es-to-primitive/1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - - /es5-ext/0.10.64: - resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} - engines: {node: '>=0.10'} - requiresBuild: true - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.4 - esniff: 2.0.1 - next-tick: 1.1.0 - dev: false - - /es6-iterator/2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-symbol: 3.1.4 - dev: false - - /es6-symbol/3.1.4: - resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} - engines: {node: '>=0.12'} - dependencies: - d: 1.0.2 - ext: 1.7.0 - dev: false - - /es6-weak-map/2.0.3: - resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-iterator: 2.0.3 - es6-symbol: 3.1.4 - dev: false - - /esbuild-android-64/0.15.18: - resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64/0.15.18: - resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64/0.15.18: - resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.15.18: - resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.15.18: - resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.15.18: - resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.15.18: - resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.15.18: - resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.15.18: - resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.15.18: - resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.15.18: - resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.15.18: - resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64/0.15.18: - resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x/0.15.18: - resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64/0.15.18: - resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64/0.15.18: - resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64/0.15.18: - resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.15.18: - resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64/0.15.18: - resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64/0.15.18: - resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild/0.15.18: - resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.18 - '@esbuild/linux-loong64': 0.15.18 - esbuild-android-64: 0.15.18 - esbuild-android-arm64: 0.15.18 - esbuild-darwin-64: 0.15.18 - esbuild-darwin-arm64: 0.15.18 - esbuild-freebsd-64: 0.15.18 - esbuild-freebsd-arm64: 0.15.18 - esbuild-linux-32: 0.15.18 - esbuild-linux-64: 0.15.18 - esbuild-linux-arm: 0.15.18 - esbuild-linux-arm64: 0.15.18 - esbuild-linux-mips64le: 0.15.18 - esbuild-linux-ppc64le: 0.15.18 - esbuild-linux-riscv64: 0.15.18 - esbuild-linux-s390x: 0.15.18 - esbuild-netbsd-64: 0.15.18 - esbuild-openbsd-64: 0.15.18 - esbuild-sunos-64: 0.15.18 - esbuild-windows-32: 0.15.18 - esbuild-windows-64: 0.15.18 - esbuild-windows-arm64: 0.15.18 - dev: true - - /escalade/3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - /escape-html/1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: true - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - /escape-string-regexp/2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - /escape-string-regexp/4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - /escodegen/2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - - /eslint-config-prettier/8.5.0_eslint@8.18.0: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.18.0 - - /eslint-import-resolver-node/0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - dependencies: - debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.10 - dev: true - - /eslint-module-utils/2.12.0_eslint@8.18.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} - engines: {node: '>=4'} - peerDependencies: - eslint: '*' - peerDependenciesMeta: - eslint: - optional: true - dependencies: - debug: 3.2.7 - eslint: 8.18.0 - dev: true - - /eslint-plugin-import/2.31.0_eslint@8.18.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.18.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0_eslint@8.18.0 - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - dev: true - - /eslint-plugin-jsx-a11y/6.10.2_eslint@8.18.0: - resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - dependencies: - aria-query: 5.3.2 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.3 - ast-types-flow: 0.0.8 - axe-core: 4.10.3 - axobject-query: 4.1.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 8.18.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.1.0 - string.prototype.includes: 2.0.1 - dev: true - - /eslint-plugin-prettier/4.2.1_ohknqdiadpdc4n44qqsbqlxxwa: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - dependencies: - eslint: 8.18.0 - eslint-config-prettier: 8.5.0_eslint@8.18.0 - prettier-linter-helpers: 1.0.0 - dev: true - - /eslint-plugin-promise/6.0.0_eslint@8.18.0: - resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - eslint: 8.18.0 - dev: false - - /eslint-plugin-react-hooks/4.6.0_eslint@8.18.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.18.0 - dev: false - - /eslint-plugin-react/7.30.1_eslint@8.18.0: - resolution: {integrity: sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.3 - doctrine: 2.1.0 - eslint: 8.18.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.hasown: 1.1.4 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - - /eslint-scope/5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - /eslint-scope/7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - /eslint-utils/3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-utils/3.0.0_eslint@8.18.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.18.0 - eslint-visitor-keys: 2.1.0 - - /eslint-visitor-keys/2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - - /eslint-visitor-keys/3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /eslint/8.18.0: - resolution: {integrity: sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - dependencies: - '@eslint/eslintrc': 1.4.1 - '@humanwhocodes/config-array': 0.9.5 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-utils: 3.0.0_eslint@8.18.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 6.0.2 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - regexpp: 3.2.0 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - v8-compile-cache: 2.4.0 - transitivePeerDependencies: - - supports-color - - /esniff/2.0.1: - resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} - engines: {node: '>=0.10'} - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - event-emitter: 0.3.5 - type: 2.7.3 - dev: false - - /espree/9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2_acorn@8.14.1 - eslint-visitor-keys: 3.4.3 - - /esprima/4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - /esquery/1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - - /esrecurse/4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - - /estraverse/4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - /estree-walker/2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - /esutils/2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - /etag/1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - dev: true - - /euclidean-distance/1.0.0: - resolution: {integrity: sha512-3+1fOi9GKT2PhSX+uKZ/cX4F98wLY2gTibZPPZeToEPvHZNLnnoymcJgQzWeeIMvqciQRIhn9KEKY7QVplC7hQ==} - dev: false - - /event-emitter/0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - dev: false - - /eventemitter3/4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /exit/0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - dev: true - - /expand-brackets/2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} - dependencies: - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - posix-character-classes: 0.1.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - dev: false - - /expand-tilde/2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} - dependencies: - homedir-polyfill: 1.0.3 - dev: false - - /expect/29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - - /express/4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} - engines: {node: '>= 0.10.0'} - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.3 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.1 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.1 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.13.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - dev: true - - /ext/1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - dependencies: - type: 2.7.3 - dev: false - - /extend-shallow/1.1.4: - resolution: {integrity: sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 1.1.0 - dev: false - - /extend-shallow/2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - dependencies: - is-extendable: 0.1.1 - dev: false - - /extend-shallow/3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} - dependencies: - assign-symbols: 1.0.0 - is-extendable: 1.0.1 - dev: false - - /extend/3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false - - /extglob/2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} - dependencies: - array-unique: 0.3.2 - define-property: 1.0.0 - expand-brackets: 2.1.4 - extend-shallow: 2.0.1 - fragment-cache: 0.2.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - dev: false - - /fancy-log/1.3.3: - resolution: {integrity: sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==} - engines: {node: '>= 0.10'} - dependencies: - ansi-gray: 0.1.1 - color-support: 1.1.3 - parse-node-version: 1.0.1 - time-stamp: 1.1.0 - dev: false - - /fast-deep-equal/3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - /fast-diff/1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - dev: true - - /fast-glob/3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - /fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - /fast-levenshtein/1.1.4: - resolution: {integrity: sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==} - dev: false - - /fast-levenshtein/2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - /fast-uri/3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - dev: true - - /fastq/1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - dependencies: - reusify: 1.1.0 - - /fb-watchman/2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - dependencies: - bser: 2.1.1 - - /file-entry-cache/6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.2.0 - - /file-source/0.6.1: - resolution: {integrity: sha512-1R1KneL7eTXmXfKxC10V/9NeGOdbsAXJ+lQ//fvvcHUgtaZcZDWNJNblxAoVOyV1cj45pOtUrR3vZTBwqcW8XA==} - dependencies: - stream-source: 0.3.5 - - /file-uri-to-path/1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: false - optional: true - - /filelist/1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - dependencies: - minimatch: 5.1.6 - dev: true - - /fill-range/4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range: 2.1.1 - dev: false - - /fill-range/7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - - /finalhandler/1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - dev: true - - /find-up/1.1.2: - resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} - engines: {node: '>=0.10.0'} - dependencies: - path-exists: 2.1.0 - pinkie-promise: 2.0.1 - dev: false - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - /find-up/5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: true - - /findup-sync/2.0.0: - resolution: {integrity: sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==} - engines: {node: '>= 0.10'} - dependencies: - detect-file: 1.0.0 - is-glob: 3.1.0 - micromatch: 3.1.10 - resolve-dir: 1.0.1 - dev: false - - /findup-sync/3.0.0: - resolution: {integrity: sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==} - engines: {node: '>= 0.10'} - dependencies: - detect-file: 1.0.0 - is-glob: 4.0.3 - micromatch: 3.1.10 - resolve-dir: 1.0.1 - dev: false - - /fined/1.2.0: - resolution: {integrity: sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==} - engines: {node: '>= 0.10'} - dependencies: - expand-tilde: 2.0.2 - is-plain-object: 2.0.4 - object.defaults: 1.1.0 - object.pick: 1.3.0 - parse-filepath: 1.0.2 - dev: false - - /flagged-respawn/1.0.1: - resolution: {integrity: sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==} - engines: {node: '>= 0.10'} - dev: false - - /flat-cache/3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - rimraf: 3.0.2 - - /flat/5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: true - - /flatted/3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - - /flush-write-stream/1.1.1: - resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - dev: false - - /focus-lock/1.3.6: - resolution: {integrity: sha512-Ik/6OCk9RQQ0T5Xw+hKNLWrjSMtv51dD4GRmJjbD5a58TIEpI5a5iXagKVl3Z5UuyslMCA8Xwnu76jQob62Yhg==} - engines: {node: '>=10'} - dependencies: - tslib: 2.8.1 - - /follow-redirects/1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false - - /for-each/0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - - /for-in/1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - dev: false - - /for-own/1.0.0: - resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} - engines: {node: '>=0.10.0'} - dependencies: - for-in: 1.0.2 - dev: false - - /fork-stream/0.0.4: - resolution: {integrity: sha512-Pqq5NnT78ehvUnAk/We/Jr22vSvanRlFTpAmQ88xBY/M1TlHe+P0ILuEyXS595ysdGfaj22634LBkGMA2GTcpA==} - dev: false - - /form-data/4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - mime-types: 2.1.35 - - /forwarded/0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - dev: true - - /fraction.js/4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - dev: false - - /fragment-cache/0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} - dependencies: - map-cache: 0.2.2 - dev: false - - /fresh/0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - dev: true - - /fs-extra/10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - /fs-minipass/2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: true - - /fs-mkdirp-stream/1.0.0: - resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} - engines: {node: '>= 0.10'} - dependencies: - graceful-fs: 4.2.11 - through2: 2.0.5 - dev: false - - /fs.realpath/1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - /fsevents/1.2.13: - resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} - engines: {node: '>= 4.0'} - os: [darwin] - deprecated: Upgrade to fsevents v2 to mitigate potential security issues - requiresBuild: true - dependencies: - bindings: 1.5.0 - nan: 2.22.2 - dev: false - optional: true - - /fsevents/2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true - - /function-bind/1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - /function.prototype.name/1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - - /functions-have-names/1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - /gauge/3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: true - - /gensync/1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - /geobuf/3.0.2: - resolution: {integrity: sha512-ASgKwEAQQRnyNFHNvpd5uAwstbVYmiTW0Caw3fBb509tNTqXyAAPMyFs5NNihsLZhLxU1j/kjFhkhLWA9djuVg==} - hasBin: true - dependencies: - concat-stream: 2.0.0 - pbf: 3.3.0 - shapefile: 0.6.6 - - /geojson-dissolve/3.1.0: - resolution: {integrity: sha512-JXHfn+A3tU392HA703gJbjmuHaQOAE/C1KzbELCczFRFux+GdY6zt1nKb1VMBHp4LWeE7gUY2ql+g06vJqhiwQ==} - dependencies: - '@turf/meta': 3.14.0 - geojson-flatten: 0.2.4 - geojson-linestring-dissolve: 0.0.1 - topojson-client: 3.1.0 - topojson-server: 3.0.1 - - /geojson-flatten/0.2.4: - resolution: {integrity: sha512-LiX6Jmot8adiIdZ/fthbcKKPOfWjTQchX/ggHnwMZ2e4b0I243N1ANUos0LvnzepTEsj0+D4fIJ5bKhBrWnAHA==} - hasBin: true - dependencies: - get-stdin: 6.0.0 - minimist: 1.2.0 - - /geojson-linestring-dissolve/0.0.1: - resolution: {integrity: sha512-Y8I2/Ea28R/Xeki7msBcpMvJL2TaPfaPKP8xqueJfQ9/jEhps+iOJxOR2XCBGgVb12Z6XnDb1CMbaPfLepsLaw==} - - /get-caller-file/1.0.3: - resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} - dev: false - - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - /get-func-name/2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true - - /get-intrinsic/1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - /get-package-type/0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - /get-proto/1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - /get-stdin/6.0.0: - resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==} - engines: {node: '>=4'} - - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true - - /get-symbol-description/1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - - /get-value/2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} - dev: false - - /gifuct-js/2.1.2: - resolution: {integrity: sha512-rI2asw77u0mGgwhV3qA+OEgYqaDn5UNqgs+Bx0FGwSpuqfYn+Ir6RQY5ENNQ8SbIiG/m5gVa7CD5RriO4f4Lsg==} - dependencies: - js-binary-schema-parser: 2.0.3 - - /glob-parent/3.1.0: - resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} - dependencies: - is-glob: 3.1.0 - path-dirname: 1.0.2 - dev: false - - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - - /glob-parent/6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - - /glob-stream/6.1.0: - resolution: {integrity: sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==} - engines: {node: '>= 0.10'} - dependencies: - extend: 3.0.2 - glob: 7.2.3 - glob-parent: 3.1.0 - is-negated-glob: 1.0.0 - ordered-read-streams: 1.0.1 - pumpify: 1.5.1 - readable-stream: 2.3.8 - remove-trailing-separator: 1.1.0 - to-absolute-glob: 2.0.2 - unique-stream: 2.3.1 - dev: false - - /glob-watcher/5.0.5: - resolution: {integrity: sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==} - engines: {node: '>= 0.10'} - dependencies: - anymatch: 2.0.0 - async-done: 1.3.2 - chokidar: 2.1.8 - is-negated-glob: 1.0.0 - just-debounce: 1.1.0 - normalize-path: 3.0.0 - object.defaults: 1.1.0 - dev: false - - /glob/7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - deprecated: Glob versions prior to v9 are no longer supported - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /glob/7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - /glob/8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: false - - /global-modules/1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} - dependencies: - global-prefix: 1.0.2 - is-windows: 1.0.2 - resolve-dir: 1.0.1 - dev: false - - /global-prefix/1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - homedir-polyfill: 1.0.3 - ini: 1.3.8 - is-windows: 1.0.2 - which: 1.3.1 - dev: false - - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - /globals/13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - - /globalthis/1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - /globby/11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - - /glogg/1.0.2: - resolution: {integrity: sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==} - engines: {node: '>= 0.10'} - dependencies: - sparkles: 1.0.1 - dev: false - - /gopd/1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - /graceful-fs/4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - /growl/1.10.5: - resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} - engines: {node: '>=4.x'} - dev: true - - /gulp-clean/0.4.0: - resolution: {integrity: sha512-DARK8rNMo4lHOFLGTiHEJdf19GuoBDHqGUaypz+fOhrvOs3iFO7ntdYtdpNxv+AzSJBx/JfypF0yEj9ks1IStQ==} - engines: {node: '>=0.9'} - dependencies: - fancy-log: 1.3.3 - plugin-error: 0.1.2 - rimraf: 2.7.1 - through2: 2.0.5 - vinyl: 2.2.1 - dev: false - - /gulp-cli/2.3.0: - resolution: {integrity: sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==} - engines: {node: '>= 0.10'} - hasBin: true - dependencies: - ansi-colors: 1.1.0 - archy: 1.0.0 - array-sort: 1.0.0 - color-support: 1.1.3 - concat-stream: 1.6.2 - copy-props: 2.0.5 - fancy-log: 1.3.3 - gulplog: 1.0.0 - interpret: 1.4.0 - isobject: 3.0.1 - liftoff: 3.1.0 - matchdep: 2.0.0 - mute-stdout: 1.0.1 - pretty-hrtime: 1.0.3 - replace-homedir: 1.0.0 - semver-greatest-satisfied-range: 1.1.0 - v8flags: 3.2.0 - yargs: 7.1.2 - dev: false - - /gulp-if/3.0.0: - resolution: {integrity: sha512-fCUEngzNiEZEK2YuPm+sdMpO6ukb8+/qzbGfJBXyNOXz85bCG7yBI+pPSl+N90d7gnLvMsarthsAImx0qy7BAw==} - dependencies: - gulp-match: 1.1.0 - ternary-stream: 3.0.0 - through2: 3.0.2 - dev: false - - /gulp-match/1.1.0: - resolution: {integrity: sha512-DlyVxa1Gj24DitY2OjEsS+X6tDpretuxD6wTfhXE/Rw2hweqc1f6D/XtsJmoiCwLWfXgR87W9ozEityPCVzGtQ==} - dependencies: - minimatch: 3.1.2 - dev: false - - /gulp-replace/1.1.4: - resolution: {integrity: sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==} - engines: {node: '>=10'} - dependencies: - '@types/node': 22.15.1 - '@types/vinyl': 2.0.7 - istextorbinary: 3.3.0 - replacestream: 4.0.3 - yargs-parser: 21.1.1 - dev: false - - /gulp-sourcemaps/3.0.0: - resolution: {integrity: sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==} - engines: {node: '>= 6'} - dependencies: - '@gulp-sourcemaps/identity-map': 2.0.1 - '@gulp-sourcemaps/map-sources': 1.0.0 - acorn: 6.4.2 - convert-source-map: 1.9.0 - css: 3.0.0 - debug-fabulous: 1.1.0 - detect-newline: 2.1.0 - graceful-fs: 4.2.11 - source-map: 0.6.1 - strip-bom-string: 1.0.0 - through2: 2.0.5 - dev: false - - /gulp-typescript/6.0.0-alpha.1_typescript@4.9.5: - resolution: {integrity: sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q==} - engines: {node: '>= 8'} - peerDependencies: - typescript: '~2.7.1 || >=2.8.0-dev || >=2.9.0-dev || ~3.0.0 || >=3.0.0-dev || >=3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev ' - dependencies: - ansi-colors: 4.1.3 - plugin-error: 1.0.1 - source-map: 0.7.4 - through2: 3.0.2 - typescript: 4.9.5 - vinyl: 2.2.1 - vinyl-fs: 3.0.3 - dev: false - - /gulp/4.0.2: - resolution: {integrity: sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==} - engines: {node: '>= 0.10'} - hasBin: true - dependencies: - glob-watcher: 5.0.5 - gulp-cli: 2.3.0 - undertaker: 1.3.0 - vinyl-fs: 3.0.3 - dev: false - - /gulplog/1.0.0: - resolution: {integrity: sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==} - engines: {node: '>= 0.10'} - dependencies: - glogg: 1.0.2 - dev: false - - /has-bigints/1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - - /has-flag/3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: true - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - /has-property-descriptors/1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - dependencies: - es-define-property: 1.0.1 - - /has-proto/1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - dependencies: - dunder-proto: 1.0.1 - - /has-symbols/1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - /has-tostringtag/1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.1.0 - - /has-unicode/2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: true - - /has-value/0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 0.1.4 - isobject: 2.1.0 - dev: false - - /has-value/1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 1.0.0 - isobject: 3.0.1 - dev: false - - /has-values/0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} - engines: {node: '>=0.10.0'} - dev: false - - /has-values/1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - kind-of: 4.0.0 - dev: false - - /hasown/2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - - /he/1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true - - /highlight.js/11.11.1: - resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} - engines: {node: '>=12.0.0'} - dev: false - - /homedir-polyfill/1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - dependencies: - parse-passwd: 1.0.0 - dev: false - - /hosted-git-info/2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - /html-encoding-sniffer/3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} - dependencies: - whatwg-encoding: 2.0.0 - - /html-escaper/2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - - /htmlparser2/4.1.0: - resolution: {integrity: sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==} - dependencies: - domelementtype: 2.3.0 - domhandler: 3.3.0 - domutils: 2.8.0 - entities: 2.2.0 - dev: true - - /http-errors/2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - dev: true - - /http-proxy-agent/5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - - /https-proxy-agent/5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - - /iconv-lite/0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - - /ieee754/1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - /ignore/5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - /image-size/0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} - engines: {node: '>=0.10.0'} - hasBin: true - requiresBuild: true - optional: true - - /immutable/5.1.1: - resolution: {integrity: sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==} - dev: true - - /import-fresh/3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - /import-local/3.2.0: - resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} - engines: {node: '>=8'} - hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - dev: true - - /imurmurhash/0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - /inflight/1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - /ini/1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: false - - /internal-slot/1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - /interpret/1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - dev: false - - /invert-kv/1.0.0: - resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} - engines: {node: '>=0.10.0'} - dev: false - - /ipaddr.js/1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - dev: true - - /is-absolute/1.0.0: - resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} - engines: {node: '>=0.10.0'} - dependencies: - is-relative: 1.0.0 - is-windows: 1.0.2 - dev: false - - /is-accessor-descriptor/1.0.1: - resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} - engines: {node: '>= 0.10'} - dependencies: - hasown: 2.0.2 - dev: false - - /is-arguments/1.2.0: - resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - dev: true - - /is-array-buffer/3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - /is-arrayish/0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - /is-arrayish/0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - - /is-async-function/2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - /is-bigint/1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - dependencies: - has-bigints: 1.1.0 - - /is-binary-path/1.0.1: - resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} - engines: {node: '>=0.10.0'} - dependencies: - binary-extensions: 1.13.1 - dev: false - - /is-binary-path/2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.3.0 - dev: true - - /is-boolean-object/1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - /is-buffer/1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - dev: false - - /is-builtin-module/3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - dependencies: - builtin-modules: 3.3.0 - dev: false - - /is-callable/1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - /is-core-module/2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - dependencies: - hasown: 2.0.2 - - /is-data-descriptor/1.0.1: - resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} - engines: {node: '>= 0.4'} - dependencies: - hasown: 2.0.2 - dev: false - - /is-data-view/1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - /is-date-object/1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - /is-descriptor/0.1.7: - resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} - engines: {node: '>= 0.4'} - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - dev: false - - /is-descriptor/1.0.3: - resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} - engines: {node: '>= 0.4'} - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - dev: false - - /is-extendable/0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: false - - /is-extendable/1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} - dependencies: - is-plain-object: 2.0.4 - dev: false - - /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - /is-finalizationregistry/1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - - /is-fullwidth-code-point/1.0.0: - resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} - engines: {node: '>=0.10.0'} - dependencies: - number-is-nan: 1.0.1 - dev: false - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - /is-generator-fn/2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true - - /is-generator-function/1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - /is-glob/3.1.0: - resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: false - - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - - /is-map/2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - /is-module/1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - dev: false - - /is-negated-glob/1.0.0: - resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} - engines: {node: '>=0.10.0'} - dev: false - - /is-number-object/1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - /is-number/3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: false - - /is-number/4.0.0: - resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} - engines: {node: '>=0.10.0'} - dev: false - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - /is-plain-obj/2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: true - - /is-plain-object/2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: false - - /is-plain-object/5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - dev: false - - /is-potential-custom-element-name/1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - /is-promise/2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - dev: false - - /is-reference/1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - dependencies: - '@types/estree': 1.0.7 - dev: false - - /is-regex/1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - /is-relative/1.0.0: - resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} - engines: {node: '>=0.10.0'} - dependencies: - is-unc-path: 1.0.0 - dev: false - - /is-set/2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - /is-shared-array-buffer/1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true - - /is-string/1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - /is-symbol/1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - /is-typed-array/1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - dependencies: - which-typed-array: 1.1.19 - - /is-unc-path/1.0.0: - resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} - engines: {node: '>=0.10.0'} - dependencies: - unc-path-regex: 0.1.2 - dev: false - - /is-unicode-supported/0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - - /is-url/1.2.4: - resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} - dev: true - - /is-utf8/0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - dev: false - - /is-valid-glob/1.0.0: - resolution: {integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==} - engines: {node: '>=0.10.0'} - dev: false - - /is-weakmap/2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - /is-weakref/1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - - /is-weakset/2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - /is-what/3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} - - /is-windows/1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: false - - /isarray/0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - - /isarray/1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: false - - /isarray/2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - /isexe/2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - /isobject/2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} - engines: {node: '>=0.10.0'} - dependencies: - isarray: 1.0.0 - dev: false - - /isobject/3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - dev: false - - /istanbul-lib-coverage/3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - /istanbul-lib-instrument/5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.20.12 - '@babel/parser': 7.27.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /istanbul-lib-instrument/6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} - engines: {node: '>=10'} - dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-report/3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - dev: true - - /istanbul-lib-source-maps/4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4 - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-reports/3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - dev: true - - /istextorbinary/3.3.0: - resolution: {integrity: sha512-Tvq1W6NAcZeJ8op+Hq7tdZ434rqnMx4CCZ7H0ff83uEloDvVbqAwaMTZcafKGJT0VHkYzuXUiCY4hlXQg6WfoQ==} - engines: {node: '>=8'} - dependencies: - binaryextensions: 2.3.0 - textextensions: 3.3.0 - dev: false - - /jake/10.9.2: - resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - async: 3.2.6 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - dev: true - - /jest-changed-files/29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - execa: 5.1.1 - jest-util: 29.7.0 - p-limit: 3.1.0 - dev: true - - /jest-circus/29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.3 - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - dev: true - - /jest-cli/29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0 - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /jest-cli/29.7.0_@types+node@22.15.1: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0_@types+node@22.15.1 - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0_@types+node@22.15.1 - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /jest-cli/29.7.0_mb2oyrpzg3jg7gqunu3hmdvhw4: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0_ts-node@10.9.2 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0_mb2oyrpzg3jg7gqunu3hmdvhw4 - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0_mb2oyrpzg3jg7gqunu3hmdvhw4 - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /jest-config/29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.20.12 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0_@babel+core@7.20.12 - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - dev: true - - /jest-config/29.7.0_@types+node@22.15.1: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.20.12 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - babel-jest: 29.7.0_@babel+core@7.20.12 - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - dev: true - - /jest-config/29.7.0_mb2oyrpzg3jg7gqunu3hmdvhw4: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.20.12 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - babel-jest: 29.7.0_@babel+core@7.20.12 - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - ts-node: 10.9.2_h6k6hc6r4guqd4kfcmr723djsq - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - dev: true - - /jest-diff/29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - /jest-docblock/29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - detect-newline: 3.1.0 - dev: true - - /jest-each/29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - dev: true - - /jest-environment-jsdom/29.5.0: - resolution: {integrity: sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/jsdom': 20.0.1 - '@types/node': 22.15.1 - jest-mock: 29.7.0 - jest-util: 29.7.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - /jest-environment-jsdom/29.5.0_canvas@2.11.2: - resolution: {integrity: sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/jsdom': 20.0.1 - '@types/node': 22.15.1 - canvas: 2.11.2 - jest-mock: 29.7.0 - jest-util: 29.7.0 - jsdom: 20.0.3_canvas@2.11.2 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node/29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - jest-mock: 29.7.0 - jest-util: 29.7.0 - dev: true - - /jest-get-type/29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - /jest-haste-map/29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.1 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.8 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - /jest-leak-detector/29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - dev: true - - /jest-matcher-utils/29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - /jest-message-util/29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/code-frame': 7.26.2 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - - /jest-mock/29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - jest-util: 29.7.0 - - /jest-pnp-resolver/1.2.3_jest-resolve@29.7.0: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 29.7.0 - dev: true - - /jest-regex-util/29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - /jest-resolve-dependencies/29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-resolve/29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3_jest-resolve@29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.10 - resolve.exports: 2.0.3 - slash: 3.0.0 - dev: true - - /jest-runner/29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-runtime/29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - chalk: 4.1.2 - cjs-module-lexer: 1.4.3 - collect-v8-coverage: 1.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-snapshot/29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.20.12 - '@babel/generator': 7.21.1 - '@babel/plugin-syntax-jsx': 7.25.9_@babel+core@7.20.12 - '@babel/plugin-syntax-typescript': 7.25.9_@babel+core@7.20.12 - '@babel/types': 7.27.0 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0_@babel+core@7.20.12 - chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - /jest-util/29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - /jest-validate/29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - dev: true - - /jest-watcher/29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.15.1 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 - dev: true - - /jest-worker/29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@types/node': 22.15.1 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - /jest/29.5.0: - resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /jest/29.5.0_@types+node@22.15.1: - resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0_@types+node@22.15.1 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /jest/29.5.0_mb2oyrpzg3jg7gqunu3hmdvhw4: - resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0_ts-node@10.9.2 - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0_mb2oyrpzg3jg7gqunu3hmdvhw4 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /js-binary-schema-parser/2.0.3: - resolution: {integrity: sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==} - - /js-string-escape/1.0.1: - resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} - engines: {node: '>= 0.8'} - dev: true - - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - /js-yaml/4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - - /jsdom/20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.14.1 - acorn-globals: 7.0.1 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 - decimal.js: 10.5.0 - domexception: 4.0.0 - escodegen: 2.1.0 - form-data: 4.0.2 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 - parse5: 7.3.0 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.4 - w3c-xmlserializer: 4.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.18.1 - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - /jsdom/20.0.3_canvas@2.11.2: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.14.1 - acorn-globals: 7.0.1 - canvas: 2.11.2 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 - decimal.js: 10.5.0 - domexception: 4.0.0 - escodegen: 2.1.0 - form-data: 4.0.2 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 - parse5: 7.3.0 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.4 - w3c-xmlserializer: 4.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.18.1 - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /jsdom/22.1.0: - resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} - engines: {node: '>=16'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - cssstyle: 3.0.0 - data-urls: 4.0.0 - decimal.js: 10.5.0 - domexception: 4.0.0 - form-data: 4.0.2 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 - parse5: 7.3.0 - rrweb-cssom: 0.6.0 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.4 - w3c-xmlserializer: 4.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 12.0.1 - ws: 8.18.1 - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - /jsesc/3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - dev: false - - /jsesc/3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - /json-buffer/3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - /json-parse-better-errors/1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - - /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - /json-schema-traverse/1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - - /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - /json5/1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - - /json5/2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - /jsonfile/6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - /jsonrepair/3.8.1: - resolution: {integrity: sha512-5wnjaO53EJOhfLFY92nvBz2B9gqF9ql/D4HKUb1WOSBaqtVcAifFfmurblnhCJn/ySqKFA8U3n7nhGMAu/hEjQ==} - hasBin: true - dev: false - - /jstat/1.9.6: - resolution: {integrity: sha512-rPBkJbK2TnA8pzs93QcDDPlKcrtZWuuCo2dVR0TFLOJSxhqfWOVCSp8aV3/oSbn+4uY4yw1URtLpHQedtmXfug==} - dev: false - - /jsx-ast-utils/3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 - - /just-debounce/1.1.0: - resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==} - dev: false - - /keyv/4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - - /kind-of/1.1.0: - resolution: {integrity: sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==} - engines: {node: '>=0.10.0'} - dev: false - - /kind-of/3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: false - - /kind-of/4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: false - - /kind-of/5.1.0: - resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} - engines: {node: '>=0.10.0'} - dev: false - - /kind-of/6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: false - - /kleur/3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true - - /language-subtag-registry/0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - dev: true - - /language-tags/1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - dependencies: - language-subtag-registry: 0.3.23 - dev: true - - /last-run/1.1.1: - resolution: {integrity: sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==} - engines: {node: '>= 0.10'} - dependencies: - default-resolution: 2.0.0 - es6-weak-map: 2.0.3 - dev: false - - /lazystream/1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - dependencies: - readable-stream: 2.3.8 - dev: false - - /lcid/1.0.0: - resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==} - engines: {node: '>=0.10.0'} - dependencies: - invert-kv: 1.0.0 - dev: false - - /lead/1.0.0: - resolution: {integrity: sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==} - engines: {node: '>= 0.10'} - dependencies: - flush-write-stream: 1.1.1 - dev: false - - /less/4.1.3: - resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} - engines: {node: '>=6'} - hasBin: true - dependencies: - copy-anything: 2.0.6 - parse-node-version: 1.0.1 - tslib: 2.8.1 - optionalDependencies: - errno: 0.1.8 - graceful-fs: 4.2.11 - image-size: 0.5.5 - make-dir: 2.1.0 - mime: 1.6.0 - needle: 3.3.1 - source-map: 0.6.1 - - /leven/3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: true - - /levn/0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - /liftoff/3.1.0: - resolution: {integrity: sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==} - engines: {node: '>= 0.8'} - dependencies: - extend: 3.0.2 - findup-sync: 3.0.0 - fined: 1.2.0 - flagged-respawn: 1.0.1 - is-plain-object: 2.0.4 - object.map: 1.0.1 - rechoir: 0.6.2 - resolve: 1.22.10 - dev: false - - /lines-and-columns/1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /linkify-it/4.0.1: - resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} - dependencies: - uc.micro: 1.0.6 - dev: false - - /load-json-file/1.1.0: - resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} - engines: {node: '>=0.10.0'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 2.2.0 - pify: 2.3.0 - pinkie-promise: 2.0.1 - strip-bom: 2.0.0 - dev: false - - /load-json-file/4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - - /local-pkg/0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} - dev: true - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - - /locate-path/6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: true - - /lodash.debounce/4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: false - - /lodash.memoize/4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - dev: true - - /lodash.merge/4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - /log-symbols/4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - - /loose-envify/1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - - /lottie-web/5.12.2: - resolution: {integrity: sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==} - - /loupe/2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /lru-cache/5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - - /lru-queue/0.1.0: - resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} - dependencies: - es5-ext: 0.10.64 - dev: false - - /magic-string/0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - /magic-string/0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - dev: true - - /make-dir/2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - requiresBuild: true - dependencies: - pify: 4.0.1 - semver: 5.7.2 - optional: true - - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - - /make-dir/4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - dependencies: - semver: 7.7.1 - dev: true - - /make-error/1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - /make-iterator/1.0.1: - resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 6.0.3 - dev: false - - /makeerror/1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - dependencies: - tmpl: 1.0.5 - - /map-cache/0.2.2: - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} - engines: {node: '>=0.10.0'} - dev: false - - /map-visit/1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} - dependencies: - object-visit: 1.0.1 - dev: false - - /markdown-it/13.0.2: - resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==} - hasBin: true - dependencies: - argparse: 2.0.1 - entities: 3.0.1 - linkify-it: 4.0.1 - mdurl: 1.0.1 - uc.micro: 1.0.6 - dev: false - - /marked/0.3.19: - resolution: {integrity: sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==} - engines: {node: '>=0.10.0'} - hasBin: true - dev: true - - /matchdep/2.0.0: - resolution: {integrity: sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==} - engines: {node: '>= 0.10.0'} - dependencies: - findup-sync: 2.0.0 - micromatch: 3.1.10 - resolve: 1.22.10 - stack-trace: 0.0.10 - dev: false - - /math-intrinsics/1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - /md5-hex/3.0.1: - resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} - engines: {node: '>=8'} - dependencies: - blueimp-md5: 2.19.0 - dev: true - - /mdurl/1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} - dev: false - - /media-typer/0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - dev: true - - /memoizee/0.4.17: - resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} - engines: {node: '>=0.12'} - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-weak-map: 2.0.3 - event-emitter: 0.3.5 - is-promise: 2.2.2 - lru-queue: 0.1.0 - next-tick: 1.1.0 - timers-ext: 0.1.8 - dev: false - - /memorystream/0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} - dev: true - - /merge-descriptors/1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - dev: true - - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - /methods/1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - dev: true - - /micromatch/3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - braces: 2.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - extglob: 2.0.4 - fragment-cache: 0.2.1 - kind-of: 6.0.3 - nanomatch: 1.2.13 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - dev: false - - /micromatch/4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - /mime-db/1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - /mime-types/2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - - /mime/1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - /mime/3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - dev: false - - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - /mimic-response/2.1.0: - resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} - engines: {node: '>=8'} - dev: true - - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - - /minimatch/4.2.1: - resolution: {integrity: sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimatch/5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - - /minimatch/9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimist/1.2.0: - resolution: {integrity: sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw==} - - /minimist/1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - - /minimist/1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - - /minipass/3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 - dev: true - - /minipass/5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - dev: true - - /minizlib/2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - dev: true - - /mixin-deep/1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} - dependencies: - for-in: 1.0.2 - is-extendable: 1.0.1 - dev: false - - /mkdirp/1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: true - - /mlly/1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - dependencies: - acorn: 8.14.1 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.1 - dev: true - - /mocha/9.2.2: - resolution: {integrity: sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==} - engines: {node: '>= 12.0.0'} - hasBin: true - dependencies: - '@ungap/promise-all-settled': 1.1.2 - ansi-colors: 4.1.1 - browser-stdout: 1.3.1 - chokidar: 3.5.3 - debug: 4.3.3_supports-color@8.1.1 - diff: 5.0.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 7.2.0 - growl: 1.10.5 - he: 1.2.0 - js-yaml: 4.1.0 - log-symbols: 4.1.0 - minimatch: 4.2.1 - ms: 2.1.3 - nanoid: 3.3.1 - serialize-javascript: 6.0.0 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - which: 2.0.2 - workerpool: 6.2.0 - yargs: 16.2.0 - yargs-parser: 20.2.4 - yargs-unparser: 2.0.0 - dev: true - - /ms/2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /ms/2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - /mute-stdout/1.0.1: - resolution: {integrity: sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==} - engines: {node: '>= 0.10'} - dev: false - - /nan/2.22.2: - resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==} - - /nanoid/3.3.1: - resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - - /nanoid/3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - /nanomatch/1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - fragment-cache: 0.2.1 - is-windows: 1.0.2 - kind-of: 6.0.3 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - dev: false - - /natural-compare/1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - /needle/3.3.1: - resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} - engines: {node: '>= 4.4.x'} - hasBin: true - requiresBuild: true - dependencies: - iconv-lite: 0.6.3 - sax: 1.4.1 - optional: true - - /negotiator/0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - dev: true - - /next-tick/1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - dev: false - - /nice-try/1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - dev: true - - /node-addon-api/7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - dev: true - optional: true - - /node-fetch/2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - - /node-int64/0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - /node-releases/2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - - /node-sql-parser/4.17.0: - resolution: {integrity: sha512-3IhovpmUBpcETnoKK/KBdkz2mz53kVG5E1dnqz1QuYvtzdxYZW5xaGGEvW9u6Yyy2ivwR3eUZrn9inmEVef02w==} - engines: {node: '>=8'} - dependencies: - big-integer: 1.6.52 - dev: false - - /nopt/5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - dependencies: - abbrev: 1.1.1 - dev: true - - /normalize-package-data/2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.10 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - - /normalize-path/2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} - dependencies: - remove-trailing-separator: 1.1.0 - dev: false - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - /normalize-range/0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - dev: false - - /now-and-later/2.0.1: - resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} - engines: {node: '>= 0.10'} - dependencies: - once: 1.4.0 - dev: false - - /npm-run-all/4.1.5: - resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} - engines: {node: '>= 4'} - hasBin: true - dependencies: - ansi-styles: 3.2.1 - chalk: 2.4.2 - cross-spawn: 6.0.6 - memorystream: 0.3.1 - minimatch: 3.1.2 - pidtree: 0.3.1 - read-pkg: 3.0.0 - shell-quote: 1.8.2 - string.prototype.padend: 3.1.6 - dev: true - - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - - /npmlog/5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - deprecated: This package is no longer supported. - dependencies: - are-we-there-yet: 2.0.0 - console-control-strings: 1.1.0 - gauge: 3.0.2 - set-blocking: 2.0.0 - dev: true - - /number-is-nan/1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} - engines: {node: '>=0.10.0'} - dev: false - - /number-precision/1.6.0: - resolution: {integrity: sha512-05OLPgbgmnixJw+VvEh18yNPUo3iyp4BEWJcrLu4X9W05KmMifN7Mu5exYvQXqxxeNWhvIF+j3Rij+HmddM/hQ==} - - /nwsapi/2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} - - /object-assign/4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - /object-copy/0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} - dependencies: - copy-descriptor: 0.1.1 - define-property: 0.2.5 - kind-of: 3.2.2 - dev: false - - /object-inspect/1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - /object-keys/1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - /object-visit/1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: false - - /object.assign/4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - /object.defaults/1.1.0: - resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} - engines: {node: '>=0.10.0'} - dependencies: - array-each: 1.0.1 - array-slice: 1.1.0 - for-own: 1.0.0 - isobject: 3.0.1 - dev: false - - /object.entries/1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - /object.fromentries/2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - - /object.groupby/1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - dev: true - - /object.hasown/1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - - /object.map/1.0.1: - resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} - engines: {node: '>=0.10.0'} - dependencies: - for-own: 1.0.0 - make-iterator: 1.0.1 - dev: false - - /object.pick/1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: false - - /object.reduce/1.0.1: - resolution: {integrity: sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==} - engines: {node: '>=0.10.0'} - dependencies: - for-own: 1.0.0 - make-iterator: 1.0.1 - dev: false - - /object.values/1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - /on-finished/2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: true - - /once/1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - - /optionator/0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - /ordered-read-streams/1.0.1: - resolution: {integrity: sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==} - dependencies: - readable-stream: 2.3.8 - dev: false - - /os-locale/1.4.0: - resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==} - engines: {node: '>=0.10.0'} - dependencies: - lcid: 1.0.0 - dev: false - - /own-keys/1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - - /p-limit/3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: true - - /p-limit/4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - yocto-queue: 1.2.1 - dev: true - - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - - /p-locate/5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: true - - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - /parent-module/1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - - /parse-filepath/1.0.2: - resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} - engines: {node: '>=0.8'} - dependencies: - is-absolute: 1.0.0 - map-cache: 0.2.2 - path-root: 0.1.1 - dev: false - - /parse-json/2.2.0: - resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} - engines: {node: '>=0.10.0'} - dependencies: - error-ex: 1.3.2 - dev: false - - /parse-json/4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - dev: true - - /parse-json/5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true - - /parse-node-version/1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} - engines: {node: '>= 0.10'} - - /parse-passwd/1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - dev: false - - /parse-svg-path/0.1.2: - resolution: {integrity: sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==} - - /parse5/7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} - dependencies: - entities: 6.0.0 - - /parseurl/1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - dev: true - - /pascalcase/0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} - dev: false - - /path-browserify/1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - /path-data-parser/0.1.0: - resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} - - /path-dirname/1.0.2: - resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} - dev: false - - /path-equal/1.2.5: - resolution: {integrity: sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==} - dev: false - - /path-exists/2.1.0: - resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} - engines: {node: '>=0.10.0'} - dependencies: - pinkie-promise: 2.0.1 - dev: false - - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - /path-is-absolute/1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - /path-key/2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - dev: true - - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - /path-root-regex/0.1.2: - resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} - engines: {node: '>=0.10.0'} - dev: false - - /path-root/0.1.1: - resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} - engines: {node: '>=0.10.0'} - dependencies: - path-root-regex: 0.1.2 - dev: false - - /path-source/0.1.3: - resolution: {integrity: sha512-dWRHm5mIw5kw0cs3QZLNmpUWty48f5+5v9nWD2dw3Y0Hf+s01Ag8iJEWV0Sm0kocE8kK27DrIowha03e1YR+Qw==} - dependencies: - array-source: 0.0.4 - file-source: 0.6.1 - - /path-to-regexp/0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} - dev: true - - /path-type/1.1.0: - resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} - engines: {node: '>=0.10.0'} - dependencies: - graceful-fs: 4.2.11 - pify: 2.3.0 - pinkie-promise: 2.0.1 - dev: false - - /path-type/3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} - dependencies: - pify: 3.0.0 - dev: true - - /path-type/4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - /pathe/1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - dev: true - - /pathe/2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - dev: true - - /pathval/1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true - - /pbf/3.3.0: - resolution: {integrity: sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==} - hasBin: true - dependencies: - ieee754: 1.2.1 - resolve-protobuf-schema: 2.1.0 - - /picocolors/0.2.1: - resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} - dev: false - - /picocolors/1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - /picomatch/4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - /pidtree/0.3.1: - resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - - /pify/2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - dev: false - - /pify/3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true - - /pify/4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - optional: true - - /pinkie-promise/2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - dependencies: - pinkie: 2.0.4 - dev: false - - /pinkie/2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - dev: false - - /pirates/4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} - - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: true - - /pkg-types/1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - dependencies: - confbox: 0.1.8 - mlly: 1.7.4 - pathe: 2.0.3 - dev: true - - /plugin-error/0.1.2: - resolution: {integrity: sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-cyan: 0.1.1 - ansi-red: 0.1.1 - arr-diff: 1.1.0 - arr-union: 2.1.0 - extend-shallow: 1.1.4 - dev: false - - /plugin-error/1.0.1: - resolution: {integrity: sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==} - engines: {node: '>= 0.10'} - dependencies: - ansi-colors: 1.1.0 - arr-diff: 4.0.0 - arr-union: 3.1.0 - extend-shallow: 3.0.2 - dev: false - - /point-at-length/1.1.0: - resolution: {integrity: sha512-nNHDk9rNEh/91o2Y8kHLzBLNpLf80RYd2gCun9ss+V0ytRSf6XhryBTx071fesktjbachRmGuUbId+JQmzhRXw==} - dependencies: - abs-svg-path: 0.1.1 - isarray: 0.0.1 - parse-svg-path: 0.1.2 - - /points-on-curve/0.2.0: - resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} - - /points-on-path/0.2.1: - resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} - dependencies: - path-data-parser: 0.1.0 - points-on-curve: 0.2.0 - - /posix-character-classes/0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} - dev: false - - /possible-typed-array-names/1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - /postcss-value-parser/4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: false - - /postcss/7.0.39: - resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} - engines: {node: '>=6.0.0'} - dependencies: - picocolors: 0.2.1 - source-map: 0.6.1 - dev: false - - /postcss/8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - /prelude-ls/1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - /prettier-linter-helpers/1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - dependencies: - fast-diff: 1.3.0 - dev: true - - /pretty-format/27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 - dev: true - - /pretty-format/29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - - /pretty-hrtime/1.0.3: - resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} - engines: {node: '>= 0.8'} - dev: false - - /process-nextick-args/2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - /prompts/2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true - - /prop-types/15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - /protocol-buffers-schema/3.6.0: - resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} - - /proxy-addr/2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - dev: true - - /proxy-from-env/1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: false - - /prr/1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - optional: true - - /psl/1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - dependencies: - punycode: 2.3.1 - - /pump/2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: false - - /pumpify/1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} - dependencies: - duplexify: 3.7.1 - inherits: 2.0.4 - pump: 2.0.1 - dev: false - - /punycode/2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - /pure-rand/6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - dev: true - - /qs/6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.1.0 - dev: true - - /querystringify/2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - /randombytes/2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - dependencies: - safe-buffer: 5.2.1 - - /range-parser/1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - dev: true - - /raw-body/2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - dev: true - - /react-clientside-effect/1.2.7_react@18.3.1: - resolution: {integrity: sha512-gce9m0Pk/xYYMEojRI9bgvqQAkl6hm7ozQvqWPyQx+kULiatdHgkNM1QG4DQRx5N9BAzWSCJmt9mMV8/KsdgVg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - dependencies: - '@babel/runtime': 7.27.0 - react: 18.3.1 - - /react-dom/18.3.1_react@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - /react-focus-lock/2.13.6_po4keleilqsm4vrhgxl2cr46aq: - resolution: {integrity: sha512-ehylFFWyYtBKXjAO9+3v8d0i+cnc1trGS0vlTGhzFW1vbFXVUTmR8s2tt/ZQG8x5hElg6rhENlLG1H3EZK0Llg==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.27.0 - '@types/react': 18.3.20 - focus-lock: 1.3.6 - prop-types: 15.8.1 - react: 18.3.1 - react-clientside-effect: 1.2.7_react@18.3.1 - use-callback-ref: 1.3.3_po4keleilqsm4vrhgxl2cr46aq - use-sidecar: 1.1.3_po4keleilqsm4vrhgxl2cr46aq - - /react-is/16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true - - /react-is/18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - /react-refresh/0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} - engines: {node: '>=0.10.0'} - dev: true - - /react-router-dom/6.9.0_nnrd3gsncyragczmpvfhocinkq: - resolution: {integrity: sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@remix-run/router': 1.4.0 - react: 18.3.1 - react-dom: 18.3.1_react@18.3.1 - react-router: 6.9.0_react@18.3.1 - - /react-router/6.9.0_react@18.3.1: - resolution: {integrity: sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - dependencies: - '@remix-run/router': 1.4.0 - react: 18.3.1 - - /react-transition-group/4.4.5_nnrd3gsncyragczmpvfhocinkq: - resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} - peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' - dependencies: - '@babel/runtime': 7.27.0 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1_react@18.3.1 - - /react/18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - - /read-pkg-up/1.0.1: - resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} - engines: {node: '>=0.10.0'} - dependencies: - find-up: 1.1.2 - read-pkg: 1.1.0 - dev: false - - /read-pkg/1.1.0: - resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} - engines: {node: '>=0.10.0'} - dependencies: - load-json-file: 1.1.0 - normalize-package-data: 2.5.0 - path-type: 1.1.0 - dev: false - - /read-pkg/3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - dev: true - - /readable-stream/1.1.14: - resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 0.0.1 - string_decoder: 0.10.31 - - /readable-stream/2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: false - - /readable-stream/3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - /readdirp/2.2.1: - resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} - engines: {node: '>=0.10'} - dependencies: - graceful-fs: 4.2.11 - micromatch: 3.1.10 - readable-stream: 2.3.8 - dev: false - - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /readdirp/4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - dev: true - - /rechoir/0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - dependencies: - resolve: 1.22.10 - dev: false - - /reflect.getprototypeof/1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - /regenerate-unicode-properties/10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - dev: false - - /regenerate/1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: false - - /regenerator-runtime/0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - dev: true - - /regenerator-runtime/0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - /regenerator-transform/0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - dependencies: - '@babel/runtime': 7.27.0 - dev: false - - /regex-not/1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - safe-regex: 1.1.0 - dev: false - - /regexp.prototype.flags/1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - - /regexpp/3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - - /regexpu-core/6.2.0: - resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 - regjsgen: 0.8.0 - regjsparser: 0.12.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.0 - dev: false - - /regjsgen/0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - dev: false - - /regjsparser/0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} - hasBin: true - dependencies: - jsesc: 3.0.2 - dev: false - - /remove-bom-buffer/3.0.0: - resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - is-utf8: 0.2.1 - dev: false - - /remove-bom-stream/1.2.0: - resolution: {integrity: sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==} - engines: {node: '>= 0.10'} - dependencies: - remove-bom-buffer: 3.0.0 - safe-buffer: 5.2.1 - through2: 2.0.5 - dev: false - - /remove-trailing-separator/1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - dev: false - - /repeat-element/1.1.4: - resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} - engines: {node: '>=0.10.0'} - dev: false - - /repeat-string/1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: false - - /replace-ext/1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} - dev: false - - /replace-homedir/1.0.0: - resolution: {integrity: sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==} - engines: {node: '>= 0.10'} - dependencies: - homedir-polyfill: 1.0.3 - is-absolute: 1.0.0 - remove-trailing-separator: 1.1.0 - dev: false - - /replacestream/4.0.3: - resolution: {integrity: sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==} - dependencies: - escape-string-regexp: 1.0.5 - object-assign: 4.1.1 - readable-stream: 2.3.8 - dev: false - - /require-directory/2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - /require-from-string/2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true - - /require-main-filename/1.0.1: - resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} - dev: false - - /requires-port/1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - /resize-observer-polyfill/1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - - /resolve-cwd/3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - - /resolve-dir/1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - global-modules: 1.0.0 - dev: false - - /resolve-from/4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - /resolve-options/1.1.0: - resolution: {integrity: sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==} - engines: {node: '>= 0.10'} - dependencies: - value-or-function: 3.0.0 - dev: false - - /resolve-protobuf-schema/2.1.0: - resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} - dependencies: - protocol-buffers-schema: 3.6.0 - - /resolve-url/0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated - - /resolve.exports/2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} - engines: {node: '>=10'} - dev: true - - /resolve/1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - /resolve/2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - /restore-cursor/3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: false - - /ret/0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: false - - /reusify/1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - /rimraf/2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - dependencies: - glob: 7.2.3 - dev: false - - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - dependencies: - glob: 7.2.3 - - /rollup/2.79.2: - resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /rollup/3.20.5: - resolution: {integrity: sha512-Mx6NE3nLPIP6a9ReV4dTPOYYmDiyarJNtSbc37Jx0jvh8SHySoFPgyZAp9aDP3LnYvaJOrz+fclcwq3oZDzlnA==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.3 - dev: false - - /roughjs/4.5.2: - resolution: {integrity: sha512-2xSlLDKdsWyFxrveYWk9YQ/Y9UfK38EAMRNkYkMqYBJvPX8abCa9PN0x3w02H8Oa6/0bcZICJU+U95VumPqseg==} - dependencies: - path-data-parser: 0.1.0 - points-on-curve: 0.2.0 - points-on-path: 0.2.1 - - /rrweb-cssom/0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - dev: false - - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - - /rw/1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - - /safe-array-concat/1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: false - - /safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - /safe-push-apply/1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - /safe-regex-test/1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - - /safe-regex/1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - dependencies: - ret: 0.1.15 - dev: false - - /safe-stable-stringify/2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} - engines: {node: '>=10'} - dev: false - - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - /sass/1.87.0: - resolution: {integrity: sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - chokidar: 4.0.3 - immutable: 5.1.1 - source-map-js: 1.2.1 - optionalDependencies: - '@parcel/watcher': 2.5.1 - dev: true - - /sax/1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - optional: true - - /saxes/6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - dependencies: - xmlchars: 2.2.0 - - /scheduler/0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - dependencies: - loose-envify: 1.4.0 - - /scroll-into-view-if-needed/2.2.20: - resolution: {integrity: sha512-P9kYMrhi9f6dvWwTGpO5I3HgjSU/8Mts7xL3lkoH5xlewK7O9Obdc5WmMCzppln7bCVGNmf3qfoZXrpCeyNJXw==} - dependencies: - compute-scroll-into-view: 1.0.11 - - /semver-greatest-satisfied-range/1.1.0: - resolution: {integrity: sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==} - engines: {node: '>= 0.10'} - dependencies: - sver-compat: 1.5.0 - dev: false - - /semver/5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - /semver/6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - /semver/7.3.4: - resolution: {integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - - /semver/7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - - /send/0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.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 - dev: true - - /serialize-javascript/6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - dependencies: - randombytes: 2.1.0 - dev: true - - /serialize-javascript/6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - dependencies: - randombytes: 2.1.0 - dev: false - - /serve-static/1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.0 - dev: true - - /set-blocking/2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - /set-function-length/1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - /set-function-name/2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - /set-proto/1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - - /set-value/2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-extendable: 0.1.1 - is-plain-object: 2.0.4 - split-string: 3.1.0 - dev: false - - /setprototypeof/1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: true - - /shallowequal/1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - - /shapefile/0.6.6: - resolution: {integrity: sha512-rLGSWeK2ufzCVx05wYd+xrWnOOdSV7xNUW5/XFgx3Bc02hBkpMlrd2F1dDII7/jhWzv0MSyBFh5uJIy9hLdfuw==} - hasBin: true - dependencies: - array-source: 0.0.4 - commander: 2.20.3 - path-source: 0.1.3 - slice-source: 0.4.1 - stream-source: 0.3.5 - text-encoding: 0.6.4 - - /shebang-command/1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - dependencies: - shebang-regex: 1.0.0 - dev: true - - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - - /shebang-regex/1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - dev: true - - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - /shell-quote/1.8.2: - resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} - engines: {node: '>= 0.4'} - dev: true - - /side-channel-list/1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - /side-channel-map/1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - /side-channel-weakmap/1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - /side-channel/1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - - /siginfo/2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true - - /signal-exit/3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - /simple-concat/1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - dev: true - - /simple-get/3.1.1: - resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} - dependencies: - decompress-response: 4.2.1 - once: 1.4.0 - simple-concat: 1.0.1 - dev: true - - /simple-statistics/7.8.8: - resolution: {integrity: sha512-CUtP0+uZbcbsFpqEyvNDYjJCl+612fNgjT8GaVuvMG7tBuJg8gXGpsP5M7X658zy0IcepWOZ6nPBu1Qb9ezA1w==} - - /simple-swizzle/0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - dependencies: - is-arrayish: 0.3.2 - - /simplify-geojson/1.0.5: - resolution: {integrity: sha512-02l1W4UipP5ivNVq6kX15mAzCRIV1oI3tz0FUEyOsNiv1ltuFDjbNhO+nbv/xhbDEtKqWLYuzpWhUsJrjR/ypA==} - hasBin: true - dependencies: - concat-stream: 1.4.11 - minimist: 1.2.6 - simplify-geometry: 0.0.2 - - /simplify-geometry/0.0.2: - resolution: {integrity: sha512-ZEyrplkqgCqDlL7V8GbbYgTLlcnNF+MWWUdy8s8ZeJru50bnI71rDew/I+HG36QS2mPOYAq1ZjwNXxHJ8XOVBw==} - - /sisteransi/1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true - - /slash/3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - /slash/4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - dev: false - - /slice-source/0.4.1: - resolution: {integrity: sha512-YiuPbxpCj4hD9Qs06hGAz/OZhQ0eDuALN0lRWJez0eD/RevzKqGdUx1IOMUnXgpr+sXZLq3g8ERwbAH0bCb8vg==} - - /smob/0.0.6: - resolution: {integrity: sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==} - dev: false - - /snapdragon-node/2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 1.0.0 - isobject: 3.0.1 - snapdragon-util: 3.0.1 - dev: false - - /snapdragon-util/3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: false - - /snapdragon/0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} - dependencies: - base: 0.11.2 - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - map-cache: 0.2.2 - source-map: 0.5.7 - source-map-resolve: 0.5.3 - use: 3.1.1 - dev: false - - /source-map-js/1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - /source-map-resolve/0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.2 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 - dev: false - - /source-map-resolve/0.6.0: - resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.2 - dev: false - - /source-map-support/0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - - /source-map-support/0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - /source-map-url/0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: false - - /source-map/0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: false - - /source-map/0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - /source-map/0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - dev: false - - /sparkles/1.0.1: - resolution: {integrity: sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==} - engines: {node: '>= 0.10'} - dev: false - - /spdx-correct/3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.21 - - /spdx-exceptions/2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - /spdx-expression-parse/3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 - - /spdx-license-ids/3.0.21: - resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} - - /split-string/3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - dev: false - - /sprintf-js/1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - /stack-trace/0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - dev: false - - /stack-utils/2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 2.0.0 - - /stackback/0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true - - /state-local/1.0.7: - resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} - dev: true - - /static-extend/0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 0.2.5 - object-copy: 0.1.0 - dev: false - - /statuses/2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - dev: true - - /std-env/3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - dev: true - - /stream-exhaust/1.0.2: - resolution: {integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==} - - /stream-shift/1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - dev: false - - /stream-source/0.3.5: - resolution: {integrity: sha512-ZuEDP9sgjiAwUVoDModftG0JtYiLUV8K4ljYD1VyUMRWtbVf92474o4kuuul43iZ8t/hRuiDAx1dIJSvirrK/g==} - - /string-length/4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - dev: true - - /string-similarity-js/2.1.4: - resolution: {integrity: sha512-uApODZNjCHGYROzDSAdCmAHf60L/pMDHnP/yk6TAbvGg7JSPZlSto/ceCI7hZEqzc53/juU2aOJFkM2yUVTMTA==} - dev: false - - /string-width/1.0.2: - resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} - engines: {node: '>=0.10.0'} - dependencies: - code-point-at: 1.1.0 - is-fullwidth-code-point: 1.0.0 - strip-ansi: 3.0.1 - dev: false - - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - /string.prototype.includes/2.0.1: - resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - dev: true - - /string.prototype.matchall/4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.4 - set-function-name: 2.0.2 - side-channel: 1.1.0 - - /string.prototype.padend/3.1.6: - resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - dev: true - - /string.prototype.trim/1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - /string.prototype.trimend/1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - /string.prototype.trimstart/1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - /string_decoder/0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} - - /string_decoder/1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: false - - /string_decoder/1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - - /strip-ansi/3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: 2.1.1 - dev: false - - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - - /strip-bom-string/1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - dev: false - - /strip-bom/2.0.0: - resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} - engines: {node: '>=0.10.0'} - dependencies: - is-utf8: 0.2.1 - dev: false - - /strip-bom/3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - - /strip-bom/4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true - - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - - /strip-json-comments/3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - /strip-literal/1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} - dependencies: - acorn: 8.14.1 - dev: true - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: true - - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - - /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - /sver-compat/1.5.0: - resolution: {integrity: sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==} - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.4 - dev: false - - /symbol-tree/3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - - /tar/6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - dev: true - - /ternary-stream/3.0.0: - resolution: {integrity: sha512-oIzdi+UL/JdktkT+7KU5tSIQjj8pbShj3OASuvDEhm0NT5lppsm7aXWAmAq4/QMaBIyfuEcNLbAQA+HpaISobQ==} - dependencies: - duplexify: 4.1.3 - fork-stream: 0.0.4 - merge-stream: 2.0.0 - through2: 3.0.2 - dev: false - - /terser/5.17.1: - resolution: {integrity: sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.14.1 - commander: 2.20.3 - source-map-support: 0.5.21 - - /test-exclude/6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - - /text-encoding/0.6.4: - resolution: {integrity: sha512-hJnc6Qg3dWoOMkqP53F0dzRIgtmsAge09kxUIqGrEUS4qr5rWLckGYaQAVr+opBrIMRErGgy6f5aPnyPpyGRfg==} - deprecated: no longer maintained - - /text-table/0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - /textextensions/3.3.0: - resolution: {integrity: sha512-mk82dS8eRABNbeVJrEiN5/UMSCliINAuz8mkUwH4SwslkNP//gbEzlWNS5au0z5Dpx40SQxzqZevZkn+WYJ9Dw==} - engines: {node: '>=8'} - dev: false - - /through2-filter/3.0.0: - resolution: {integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==} - dependencies: - through2: 2.0.5 - xtend: 4.0.2 - dev: false - - /through2/2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - dependencies: - readable-stream: 2.3.8 - xtend: 4.0.2 - dev: false - - /through2/3.0.2: - resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} - dependencies: - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: false - - /through2/4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - dependencies: - readable-stream: 3.6.2 - dev: false - - /time-stamp/1.1.0: - resolution: {integrity: sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==} - engines: {node: '>=0.10.0'} - dev: false - - /time-zone/1.0.0: - resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} - engines: {node: '>=4'} - dev: true - - /timers-ext/0.1.8: - resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} - engines: {node: '>=0.12'} - dependencies: - es5-ext: 0.10.64 - next-tick: 1.1.0 - dev: false - - /tinybench/2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - dev: true - - /tinypool/0.4.0: - resolution: {integrity: sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==} - engines: {node: '>=14.0.0'} - dev: true - - /tinyspy/2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} - dev: true - - /tmpl/1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - /to-absolute-glob/2.0.2: - resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==} - engines: {node: '>=0.10.0'} - dependencies: - is-absolute: 1.0.0 - is-negated-glob: 1.0.0 - dev: false - - /to-object-path/0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: false - - /to-regex-range/2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - repeat-string: 1.6.1 - dev: false - - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - - /to-regex/3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 2.0.2 - extend-shallow: 3.0.2 - regex-not: 1.0.2 - safe-regex: 1.1.0 - dev: false - - /to-through/2.0.0: - resolution: {integrity: sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==} - engines: {node: '>= 0.10'} - dependencies: - through2: 2.0.5 - dev: false - - /toidentifier/1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: true - - /topojson-client/3.1.0: - resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==} - hasBin: true - dependencies: - commander: 2.20.3 - - /topojson-server/3.0.1: - resolution: {integrity: sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==} - hasBin: true - dependencies: - commander: 2.20.3 - - /tough-cookie/4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} - dependencies: - psl: 1.15.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 - - /tr46/0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - /tr46/3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - dependencies: - punycode: 2.3.1 - - /tr46/4.1.1: - resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} - engines: {node: '>=14'} - dependencies: - punycode: 2.3.1 - dev: false - - /ts-jest/29.2.6_doipufordlnvh5g4adbwayvyvy: - resolution: {integrity: sha512-yTNZVZqc8lSixm+QGVFcPe6+yj7+TWZwIesuOWvfcn4B9bz5x4NDzVCQQjOs7Hfouu36aEqfEbo9Qpo+gq8dDg==} - engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/transform': ^29.0.0 - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/transform': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - bs-logger: 0.2.6 - ejs: 3.1.10 - fast-json-stable-stringify: 2.1.0 - jest: 29.5.0_mb2oyrpzg3jg7gqunu3hmdvhw4 - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.7.1 - typescript: 4.9.5 - yargs-parser: 21.1.1 - dev: true - - /ts-node/10.9.2_h6k6hc6r4guqd4kfcmr723djsq: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.1 - acorn: 8.14.1 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.9.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - - /ts-pattern/4.1.4: - resolution: {integrity: sha512-Mcw65oUd1w5ktKi5BRwrnz16Otwk9iv7P0dKgvbi+A1albCDgnixohSqNLuFwIp5dzxPmTPm0iDQ6p1ZJr9uGw==} - dev: false - - /tsconfig-paths/3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true - - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - /tslib/2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - /tsutils/3.21.0_typescript@4.9.5: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.9.5 - - /type-check/0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - - /type-detect/4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - /type-detect/4.1.0: - resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} - engines: {node: '>=4'} - dev: true - - /type-fest/0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - /type-fest/0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true - - /type-is/1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - dev: true - - /type/2.7.3: - resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} - dev: false - - /typed-array-buffer/1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - /typed-array-byte-length/1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - /typed-array-byte-offset/1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - /typed-array-length/1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - - /typedarray/0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - - /typedarray/0.0.7: - resolution: {integrity: sha512-ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ==} - - /typescript/4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true - - /uc.micro/1.0.6: - resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} - dev: false - - /ufo/1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} - dev: true - - /unbox-primitive/1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - - /unc-path-regex/0.1.2: - resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} - engines: {node: '>=0.10.0'} - dev: false - - /undertaker-registry/1.0.1: - resolution: {integrity: sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==} - engines: {node: '>= 0.10'} - dev: false - - /undertaker/1.3.0: - resolution: {integrity: sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==} - engines: {node: '>= 0.10'} - dependencies: - arr-flatten: 1.1.0 - arr-map: 2.0.2 - bach: 1.2.0 - collection-map: 1.0.0 - es6-weak-map: 2.0.3 - fast-levenshtein: 1.1.4 - last-run: 1.1.1 - object.defaults: 1.1.0 - object.reduce: 1.0.1 - undertaker-registry: 1.0.1 - dev: false - - /undici-types/5.28.4: - resolution: {integrity: sha512-3OeMF5Lyowe8VW0skf5qaIE7Or3yS9LS7fvMUI0gg4YxpIBVg0L8BxCmROw2CcYhSkpR68Epz7CGc8MPj94Uww==} - dev: true - - /undici-types/6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - /unicode-canonical-property-names-ecmascript/2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} - engines: {node: '>=4'} - dev: false - - /unicode-match-property-ecmascript/2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.1.0 - dev: false - - /unicode-match-property-value-ecmascript/2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} - engines: {node: '>=4'} - dev: false - - /unicode-property-aliases-ecmascript/2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - dev: false - - /union-value/1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - get-value: 2.0.6 - is-extendable: 0.1.1 - set-value: 2.0.1 - dev: false - - /unique-stream/2.3.1: - resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} - dependencies: - json-stable-stringify-without-jsonify: 1.0.1 - through2-filter: 3.0.0 - dev: false - - /universalify/0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - - /universalify/2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - /unpipe/1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - dev: true - - /unset-value/1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} - dependencies: - has-value: 0.3.1 - isobject: 3.0.1 - dev: false - - /upath/1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} - dev: false - - /update-browserslist-db/1.1.3_browserslist@4.24.4: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.24.4 - escalade: 3.2.0 - picocolors: 1.1.1 - - /uri-js/4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.1 - - /urix/0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated - dev: false - - /url-parse/1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - - /use-callback-ref/1.3.3_po4keleilqsm4vrhgxl2cr46aq: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.20 - react: 18.3.1 - tslib: 2.8.1 - - /use-sidecar/1.1.3_po4keleilqsm4vrhgxl2cr46aq: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.20 - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.8.1 - - /use/3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} - dev: false - - /util-deprecate/1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - /util/0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - dependencies: - inherits: 2.0.4 - is-arguments: 1.2.0 - is-generator-function: 1.1.0 - is-typed-array: 1.1.15 - which-typed-array: 1.1.19 - dev: true - - /utils-merge/1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - dev: true - - /v8-compile-cache-lib/3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - /v8-compile-cache/2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} - - /v8-to-istanbul/9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - dev: true - - /v8flags/3.2.0: - resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==} - engines: {node: '>= 0.10'} - dependencies: - homedir-polyfill: 1.0.3 - dev: false - - /validate-npm-package-license/3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - /value-or-function/3.0.0: - resolution: {integrity: sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==} - engines: {node: '>= 0.10'} - dev: false - - /vary/1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - dev: true - - /vinyl-fs/3.0.3: - resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==} - engines: {node: '>= 0.10'} - dependencies: - fs-mkdirp-stream: 1.0.0 - glob-stream: 6.1.0 - graceful-fs: 4.2.11 - is-valid-glob: 1.0.0 - lazystream: 1.0.1 - lead: 1.0.0 - object.assign: 4.1.7 - pumpify: 1.5.1 - readable-stream: 2.3.8 - remove-bom-buffer: 3.0.0 - remove-bom-stream: 1.2.0 - resolve-options: 1.1.0 - through2: 2.0.5 - to-through: 2.0.0 - value-or-function: 3.0.0 - vinyl: 2.2.1 - vinyl-sourcemap: 1.1.0 - dev: false - - /vinyl-sourcemap/1.1.0: - resolution: {integrity: sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==} - engines: {node: '>= 0.10'} - dependencies: - append-buffer: 1.0.2 - convert-source-map: 1.9.0 - graceful-fs: 4.2.11 - normalize-path: 2.1.1 - now-and-later: 2.0.1 - remove-bom-buffer: 3.0.0 - vinyl: 2.2.1 - dev: false - - /vinyl/2.2.1: - resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} - engines: {node: '>= 0.10'} - dependencies: - clone: 2.1.2 - clone-buffer: 1.0.0 - clone-stats: 1.0.0 - cloneable-readable: 1.1.3 - remove-trailing-separator: 1.1.0 - replace-ext: 1.0.1 - dev: false - - /vite-node/0.30.1_j25dxl6mgdxe7fwpg2bkfdl2f4: - resolution: {integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==} - engines: {node: '>=v14.18.0'} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - mlly: 1.7.4 - pathe: 1.1.2 - picocolors: 1.1.1 - vite: 3.2.6_j25dxl6mgdxe7fwpg2bkfdl2f4 - transitivePeerDependencies: - - '@types/node' - - less - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vite-plugin-css/1.0.4: - resolution: {integrity: sha512-5Tj8Lc7uwlLVd3Ns8ixDH9CjjAPS12OuIiheY4IOZuiaOwH9sAEzgB/svNMmW28ePimaNTPfyTrRX8ZONjqFqA==} - dev: true - - /vite-plugin-libcss/1.1.1_vite@3.2.6: - resolution: {integrity: sha512-WAk6U9iYWMbcu7cdw4wACpVebZiLHMyyE9KTcBzzkTt1cnXj3a7loIoIGNblx+xMb9quPpO3iRbNTOnIFDzgmg==} - peerDependencies: - vite: '*' - dependencies: - minimatch: 9.0.5 - vite: 3.2.6_74mdfjwjjuekt5dohrm44kqp7i - dev: true - - /vite/3.2.6: - resolution: {integrity: sha512-nTXTxYVvaQNLoW5BQ8PNNQ3lPia57gzsQU/Khv+JvzKPku8kNZL6NMUR/qwXhMG6E+g1idqEPanomJ+VZgixEg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.15.18 - postcss: 8.4.21 - resolve: 1.22.10 - rollup: 2.79.2 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vite/3.2.6_74mdfjwjjuekt5dohrm44kqp7i: - resolution: {integrity: sha512-nTXTxYVvaQNLoW5BQ8PNNQ3lPia57gzsQU/Khv+JvzKPku8kNZL6NMUR/qwXhMG6E+g1idqEPanomJ+VZgixEg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 22.15.1 - esbuild: 0.15.18 - less: 4.1.3 - postcss: 8.4.21 - resolve: 1.22.10 - rollup: 2.79.2 - sass: 1.87.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vite/3.2.6_j25dxl6mgdxe7fwpg2bkfdl2f4: - resolution: {integrity: sha512-nTXTxYVvaQNLoW5BQ8PNNQ3lPia57gzsQU/Khv+JvzKPku8kNZL6NMUR/qwXhMG6E+g1idqEPanomJ+VZgixEg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 22.15.1 - esbuild: 0.15.18 - less: 4.1.3 - postcss: 8.4.21 - resolve: 1.22.10 - rollup: 2.79.2 - terser: 5.17.1 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vitest/0.30.1_less@4.1.3+terser@5.17.1: - resolution: {integrity: sha512-y35WTrSTlTxfMLttgQk4rHcaDkbHQwDP++SNwPb+7H8yb13Q3cu2EixrtHzF27iZ8v0XCciSsLg00RkPAzB/aA==} - engines: {node: '>=v14.18.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - happy-dom: '*' - jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - dependencies: - '@types/chai': 4.3.20 - '@types/chai-subset': 1.3.6_@types+chai@4.3.20 - '@types/node': 22.15.1 - '@vitest/expect': 0.30.1 - '@vitest/runner': 0.30.1 - '@vitest/snapshot': 0.30.1 - '@vitest/spy': 0.30.1 - '@vitest/utils': 0.30.1 - acorn: 8.14.1 - acorn-walk: 8.3.4 - cac: 6.7.14 - chai: 4.5.0 - concordance: 5.0.4 - debug: 4.3.4 - local-pkg: 0.4.3 - magic-string: 0.30.17 - pathe: 1.1.2 - picocolors: 1.1.1 - source-map: 0.6.1 - std-env: 3.9.0 - strip-literal: 1.3.0 - tinybench: 2.9.0 - tinypool: 0.4.0 - vite: 3.2.6_j25dxl6mgdxe7fwpg2bkfdl2f4 - vite-node: 0.30.1_j25dxl6mgdxe7fwpg2bkfdl2f4 - why-is-node-running: 2.3.0 - transitivePeerDependencies: - - less - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /w3c-xmlserializer/4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} - dependencies: - xml-name-validator: 4.0.0 - - /walker/1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - dependencies: - makeerror: 1.0.12 - - /webidl-conversions/3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - /webidl-conversions/7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - - /well-known-symbols/2.0.0: - resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} - engines: {node: '>=6'} - dev: true - - /whatwg-encoding/2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - dependencies: - iconv-lite: 0.6.3 - - /whatwg-mimetype/3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - - /whatwg-url/11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - dependencies: - tr46: 3.0.0 - webidl-conversions: 7.0.0 - - /whatwg-url/12.0.1: - resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} - engines: {node: '>=14'} - dependencies: - tr46: 4.1.1 - webidl-conversions: 7.0.0 - dev: false - - /whatwg-url/5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - /which-boxed-primitive/1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - /which-builtin-type/1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.19 - - /which-collection/1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - /which-module/1.0.0: - resolution: {integrity: sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==} - dev: false - - /which-typed-array/1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - /which/1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - - /why-is-node-running/2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - dev: true - - /wide-align/1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - dependencies: - string-width: 4.2.3 - dev: true - - /word-wrap/1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - /workerpool/6.2.0: - resolution: {integrity: sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==} - dev: true - - /wrap-ansi/2.1.0: - resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} - engines: {node: '>=0.10.0'} - dependencies: - string-width: 1.0.2 - strip-ansi: 3.0.1 - dev: false - - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - /wrappy/1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - /write-file-atomic/4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - /ws/8.18.1: - resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} - 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 - - /xml-name-validator/4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - - /xmlchars/2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - - /y18n/3.2.2: - resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} - dev: false - - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - /yallist/3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - /yargs-parser/20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - - /yargs-parser/21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - /yargs-parser/5.0.1: - resolution: {integrity: sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==} - dependencies: - camelcase: 3.0.0 - object.assign: 4.1.7 - dev: false - - /yargs-unparser/2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - dependencies: - camelcase: 6.3.0 - decamelize: 4.0.0 - flat: 5.0.2 - is-plain-obj: 2.1.0 - dev: true - - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.4 - - /yargs/17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - /yargs/7.1.2: - resolution: {integrity: sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==} - dependencies: - camelcase: 3.0.0 - cliui: 3.2.0 - decamelize: 1.2.0 - get-caller-file: 1.0.3 - os-locale: 1.4.0 - read-pkg-up: 1.0.1 - require-directory: 2.1.1 - require-main-filename: 1.0.1 - set-blocking: 2.0.0 - string-width: 1.0.2 - which-module: 1.0.0 - y18n: 3.2.2 - yargs-parser: 5.0.1 - dev: false - - /yn/3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - - /yocto-queue/0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true - - /yocto-queue/1.2.1: - resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} - engines: {node: '>=12.20'} - dev: true diff --git a/common/config/rush/repo-state.json b/common/config/rush/repo-state.json deleted file mode 100644 index 0e7b1440..00000000 --- a/common/config/rush/repo-state.json +++ /dev/null @@ -1,4 +0,0 @@ -// DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush. -{ - "preferredVersionsHash": "bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f" -} diff --git a/common/config/rush/rush-plugins.json b/common/config/rush/rush-plugins.json deleted file mode 100644 index 752e3732..00000000 --- a/common/config/rush/rush-plugins.json +++ /dev/null @@ -1,29 +0,0 @@ -/** - * This configuration file manages Rush's plugin feature. - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugins.schema.json", - "plugins": [ - /** - * Each item configures a plugin to be loaded by Rush. - */ - // { - // /** - // * The name of the NPM package that provides the plugin. - // */ - // "packageName": "@scope/my-rush-plugin", - // /** - // * The name of the plugin. This can be found in the "pluginName" - // * field of the "rush-plugin-manifest.json" file in the NPM package folder. - // */ - // "pluginName": "my-plugin-name", - // /** - // * The name of a Rush autoinstaller that will be used for installation, which - // * can be created using "rush init-autoinstaller". Add the plugin's NPM package - // * to the package.json "dependencies" of your autoinstaller, then run - // * "rush update-autoinstaller". - // */ - // "autoinstallerName": "rush-plugins" - // } - ] -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json deleted file mode 100644 index eb5958a8..00000000 --- a/common/config/rush/version-policies.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "definitionName": "lockStepVersion", - "policyName": "vmindMin", - "version": "2.0.10", - "mainProject": "@visactor/vmind", - "nextBump": "patch" - } -] diff --git a/common/git-hooks/commit-msg b/common/git-hooks/commit-msg deleted file mode 100644 index d1d363bf..00000000 --- a/common/git-hooks/commit-msg +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -node common/scripts/install-run-rush.js commitlint || exit $? #++ \ No newline at end of file diff --git a/common/git-hooks/pre-commit b/common/git-hooks/pre-commit deleted file mode 100644 index d402b2b7..00000000 --- a/common/git-hooks/pre-commit +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh - -# log rush change to stdout -STAGE_FILES=$(git diff --cached --name-only) - -if [[ $STAGE_FILES != "" ]] ; then - changedFiles='' - # 红色文本的 ANSI 转义序列 - RED='\033[0;31m' - # 大字体的 ANSI 转义序列 - BIG_FONT='\033[1m' - - # 重置颜色的 ANSI 转义序列 - RESET='\033[0m' - - for fileName in $STAGE_FILES;do - if [[ $fileName =~ ^packages/.*\/src/.* ]]; then - changedFiles="${changedFiles} - ${RED}${fileName}${RESET}" - fi - done; - - if [[ $changedFiles != "" ]] ; then - - echo " - [Notice]: please check, do you need to run ${RED}${BIG_FONT}rush change-all${RESET} to generate changelog, - you has modified some src files, include: - ${changedFiles} - " - fi -fi - -# lint-staged -node common/scripts/install-run-rush.js lint-staged || exit $? #++ - -# local pre-commit -if [ -f "common/scripts/pre-commit" ]; then - common/scripts/pre-commit -fi diff --git a/common/git-hooks/pre-push b/common/git-hooks/pre-push deleted file mode 100644 index e2335f56..00000000 --- a/common/git-hooks/pre-push +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -while read local_ref local_sha remote_ref remote_sha -do - # 检查是否是hotfix发布分支 - if [[ $local_ref = refs/heads/hotfix/* && $local_ref =~ ^refs/heads/hotfix/[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo "Hotfix branch, skipping local test" - exit 0 - fi - - # 检查是否是release发布分支 - if [[ $local_ref = refs/heads/release/* && $local_ref =~ ^refs/heads/release/[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo "Release branch, skipping local test" - exit 0 - fi - - # 检查是否是同步代码发布分支 - if [[ $local_ref = refs/heads/sync/main-* && $local_ref =~ ^refs/heads/sync/main-[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo "Auto sync code branch, skipping local test" - exit 0 - fi - - # 检查是否是changelog分支 - if [[ $local_ref = refs/heads/sync/docs/generate-changelog-* && $local_ref =~ ^refs/heads/docs/generate-changelog-[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo "Auto changelog branch, skipping local test" - exit 0 - fi - - # 检查是否是删除操作 - if [ "$local_sha" = "0000000000000000000000000000000000000000" ]; then - echo "Ignoring push deletion. Skipping local test." - exit 0 - fi - - # 其他推送逻辑... - #node common/scripts/install-run-rush.js test --only tag:package -done - diff --git a/common/scripts/apply-prerelease-version.js b/common/scripts/apply-prerelease-version.js deleted file mode 100644 index b9fd22a4..00000000 --- a/common/scripts/apply-prerelease-version.js +++ /dev/null @@ -1,19 +0,0 @@ -const writePrereleaseVersion = require('./set-prerelease-version'); -const checkAndUpdateNextBump = require('./version-policies'); -const parseVersion = require('./parse-version'); - - -function run() { - const preReleaseName = process.argv.slice(2)[0]; - const nextVersionOrNextBump = process.argv.slice(2)[1]; - const buildName = process.argv.slice(2)[2]; - const nextBump = checkAndUpdateNextBump(nextVersionOrNextBump); - const parsedNextVersion = nextVersionOrNextBump ? parseVersion(nextVersionOrNextBump) : null; - const nextVersion = parsedNextVersion ? `${parsedNextVersion.major}.${parsedNextVersion.minor}.${parsedNextVersion.patch}`: null; - - console.log('[apply prerelease version]: ', preReleaseName, nextBump, nextVersion); - - writePrereleaseVersion(nextBump, preReleaseName, nextVersion, buildName); -} - -run() diff --git a/common/scripts/apply-release-version.js b/common/scripts/apply-release-version.js deleted file mode 100644 index b9fd22a4..00000000 --- a/common/scripts/apply-release-version.js +++ /dev/null @@ -1,19 +0,0 @@ -const writePrereleaseVersion = require('./set-prerelease-version'); -const checkAndUpdateNextBump = require('./version-policies'); -const parseVersion = require('./parse-version'); - - -function run() { - const preReleaseName = process.argv.slice(2)[0]; - const nextVersionOrNextBump = process.argv.slice(2)[1]; - const buildName = process.argv.slice(2)[2]; - const nextBump = checkAndUpdateNextBump(nextVersionOrNextBump); - const parsedNextVersion = nextVersionOrNextBump ? parseVersion(nextVersionOrNextBump) : null; - const nextVersion = parsedNextVersion ? `${parsedNextVersion.major}.${parsedNextVersion.minor}.${parsedNextVersion.patch}`: null; - - console.log('[apply prerelease version]: ', preReleaseName, nextBump, nextVersion); - - writePrereleaseVersion(nextBump, preReleaseName, nextVersion, buildName); -} - -run() diff --git a/common/scripts/get-package-json.js b/common/scripts/get-package-json.js deleted file mode 100644 index a3afad33..00000000 --- a/common/scripts/get-package-json.js +++ /dev/null @@ -1,8 +0,0 @@ -const fs = require('fs') - -function getPackageJson(pkgJsonPath) { - const pkgJson = fs.readFileSync(pkgJsonPath, { encoding: 'utf-8' }) - return JSON.parse(pkgJson); -} - -module.exports = getPackageJson; \ No newline at end of file diff --git a/common/scripts/hotfix-release.js b/common/scripts/hotfix-release.js deleted file mode 100644 index a4b840a6..00000000 --- a/common/scripts/hotfix-release.js +++ /dev/null @@ -1,99 +0,0 @@ -/** - * prelease - */ - -const { spawnSync } = require('child_process') -const fs = require('fs') -const path = require('path') -const checkAndUpdateNextBump = require('./version-policies'); -const getPackageJson = require('./get-package-json'); -const writePrereleaseVersion = require('./set-prerelease-version'); -const parseVersion = require('./parse-version'); - - -function run() { - let hotfixName = process.argv.slice(2)[0]; - let hotfixType = ''; - const cwd = process.cwd(); - const rushJson = getPackageJson(path.join(__dirname, '../../rush.json')); - const package = rushJson.projects.find((project) => project.packageName === '@visactor/vmind'); - - if (!package) { - return; - } - const pkgJsonPath = path.join(__dirname, '../../', package.projectFolder, 'package.json') - const pkgJson = getPackageJson(pkgJsonPath) - const currentVersion = pkgJson.version; - const preReleaseName = ''; - let regRes = null; - - if (typeof hotfixName === 'string' && hotfixName && (regRes = /^((hotfix)(?:\.(?:0|[1-9]))*)$/.exec(hotfixName))) { - hotfixType = regRes[2]; - regRes = parseVersion(currentVersion); - - } else if (!hotfixName) { - regRes = parseVersion(currentVersion) - - if (regRes.buildName) { - hotfixType = regRes.buildType; - - if (regRes.hotfixName !== hotfixType) { - hotfixName = `${hotfixType}.${parseInt(regRes.buildName, 10) + 1}`; - } else { - hotfixName = `${hotfixType}.0`; - } - - console.log(`\x1b[31m[warning]\x1b[0m no hotfix-name supply, auto calculate hotfix-name \x1b[31m${hotfixName}\x1b[0m`); - } else { - hotfixName = `hotfix.0`; - hotfixType = 'hotfix'; - - console.log('\x1b[31m[warning]\x1b[0m no hotfix-name supply, default to \x1b[31m alpha.0\x1b[0m') - } - } else { - console.log(`\x1b[31m[error]\x1b[0m hotfixName: \x1b[31m ${hotfixName} \x1b[0m 不符合规范,只允许 alpha.0 , beta.1, rc.3 类似的格式 `) - } - - if (hotfixName && hotfixType) { - - // 1. apply version and update version of package.json - writePrereleaseVersion('', '', currentVersion, hotfixName) - - // 2. build all the packages - spawnSync('sh', ['-c', `rush build --only tag:package`], { - stdio: 'inherit', - shell: false, - }); - - // 3. publish to npm - spawnSync('sh', ['-c', `rush publish --publish --include-all --tag ${hotfixType}`], { - stdio: 'inherit', - shell: false, - }); - - // 4. update version of local packages to shrinkwrap - spawnSync('sh', ['-c', `rush update`], { - stdio: 'inherit', - shell: false, - }); - - if (package) { - const pkgJsonPath = path.join(__dirname, '../../', package.projectFolder, 'package.json') - const pkgJson = getPackageJson(pkgJsonPath) - - // 5. add the the changes - spawnSync('sh', ['-c', `git add --all`], { - stdio: 'inherit', - shell: false, - }); - - // 6. commit all the changes - spawnSync('sh', ['-c', `git commit -m "build: hotfix version ${pkgJson.version}"`], { - stdio: 'inherit', - shell: false, - }); - } - } -} - -run() diff --git a/common/scripts/install-run-rush-pnpm.js b/common/scripts/install-run-rush-pnpm.js deleted file mode 100644 index 5c149955..00000000 --- a/common/scripts/install-run-rush-pnpm.js +++ /dev/null @@ -1,28 +0,0 @@ -// THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED. -// -// This script is intended for usage in an automated build environment where the Rush command may not have -// been preinstalled, or may have an unpredictable version. This script will automatically install the version of Rush -// specified in the rush.json configuration file (if not already installed), and then pass a command-line to the -// rush-pnpm command. -// -// An example usage would be: -// -// node common/scripts/install-run-rush-pnpm.js pnpm-command -// -// For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ - -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -var __webpack_exports__ = {}; -/*!*****************************************************!*\ - !*** ./lib-esnext/scripts/install-run-rush-pnpm.js ***! - \*****************************************************/ - -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for license information. -require('./install-run-rush'); -//# sourceMappingURL=install-run-rush-pnpm.js.map -module.exports = __webpack_exports__; -/******/ })() -; -//# sourceMappingURL=install-run-rush-pnpm.js.map \ No newline at end of file diff --git a/common/scripts/install-run-rush.js b/common/scripts/install-run-rush.js deleted file mode 100644 index cada1ede..00000000 --- a/common/scripts/install-run-rush.js +++ /dev/null @@ -1,214 +0,0 @@ -// THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED. -// -// This script is intended for usage in an automated build environment where the Rush command may not have -// been preinstalled, or may have an unpredictable version. This script will automatically install the version of Rush -// specified in the rush.json configuration file (if not already installed), and then pass a command-line to it. -// An example usage would be: -// -// node common/scripts/install-run-rush.js install -// -// For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ - -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ 657147: -/*!*********************!*\ - !*** external "fs" ***! - \*********************/ -/***/ ((module) => { - -module.exports = require("fs"); - -/***/ }), - -/***/ 371017: -/*!***********************!*\ - !*** external "path" ***! - \***********************/ -/***/ ((module) => { - -module.exports = require("path"); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!************************************************!*\ - !*** ./lib-esnext/scripts/install-run-rush.js ***! - \************************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ 371017); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ 657147); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__); -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for license information. - - -const { installAndRun, findRushJsonFolder, RUSH_JSON_FILENAME, runWithErrorAndStatusCode } = require('./install-run'); -const PACKAGE_NAME = '@microsoft/rush'; -const RUSH_PREVIEW_VERSION = 'RUSH_PREVIEW_VERSION'; -const INSTALL_RUN_RUSH_LOCKFILE_PATH_VARIABLE = 'INSTALL_RUN_RUSH_LOCKFILE_PATH'; -function _getRushVersion(logger) { - const rushPreviewVersion = process.env[RUSH_PREVIEW_VERSION]; - if (rushPreviewVersion !== undefined) { - logger.info(`Using Rush version from environment variable ${RUSH_PREVIEW_VERSION}=${rushPreviewVersion}`); - return rushPreviewVersion; - } - const rushJsonFolder = findRushJsonFolder(); - const rushJsonPath = path__WEBPACK_IMPORTED_MODULE_0__.join(rushJsonFolder, RUSH_JSON_FILENAME); - try { - const rushJsonContents = fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(rushJsonPath, 'utf-8'); - // Use a regular expression to parse out the rushVersion value because rush.json supports comments, - // but JSON.parse does not and we don't want to pull in more dependencies than we need to in this script. - const rushJsonMatches = rushJsonContents.match(/\"rushVersion\"\s*\:\s*\"([0-9a-zA-Z.+\-]+)\"/); - return rushJsonMatches[1]; - } - catch (e) { - throw new Error(`Unable to determine the required version of Rush from rush.json (${rushJsonFolder}). ` + - "The 'rushVersion' field is either not assigned in rush.json or was specified " + - 'using an unexpected syntax.'); - } -} -function _getBin(scriptName) { - switch (scriptName.toLowerCase()) { - case 'install-run-rush-pnpm.js': - return 'rush-pnpm'; - case 'install-run-rushx.js': - return 'rushx'; - default: - return 'rush'; - } -} -function _run() { - const [nodePath /* Ex: /bin/node */, scriptPath /* /repo/common/scripts/install-run-rush.js */, ...packageBinArgs /* [build, --to, myproject] */] = process.argv; - // Detect if this script was directly invoked, or if the install-run-rushx script was invokved to select the - // appropriate binary inside the rush package to run - const scriptName = path__WEBPACK_IMPORTED_MODULE_0__.basename(scriptPath); - const bin = _getBin(scriptName); - if (!nodePath || !scriptPath) { - throw new Error('Unexpected exception: could not detect node path or script path'); - } - let commandFound = false; - let logger = { info: console.log, error: console.error }; - for (const arg of packageBinArgs) { - if (arg === '-q' || arg === '--quiet') { - // The -q/--quiet flag is supported by both `rush` and `rushx`, and will suppress - // any normal informational/diagnostic information printed during startup. - // - // To maintain the same user experience, the install-run* scripts pass along this - // flag but also use it to suppress any diagnostic information normally printed - // to stdout. - logger = { - info: () => { }, - error: console.error - }; - } - else if (!arg.startsWith('-') || arg === '-h' || arg === '--help') { - // We either found something that looks like a command (i.e. - doesn't start with a "-"), - // or we found the -h/--help flag, which can be run without a command - commandFound = true; - } - } - if (!commandFound) { - console.log(`Usage: ${scriptName} [args...]`); - if (scriptName === 'install-run-rush-pnpm.js') { - console.log(`Example: ${scriptName} pnpm-command`); - } - else if (scriptName === 'install-run-rush.js') { - console.log(`Example: ${scriptName} build --to myproject`); - } - else { - console.log(`Example: ${scriptName} custom-command`); - } - process.exit(1); - } - runWithErrorAndStatusCode(logger, () => { - const version = _getRushVersion(logger); - logger.info(`The rush.json configuration requests Rush version ${version}`); - const lockFilePath = process.env[INSTALL_RUN_RUSH_LOCKFILE_PATH_VARIABLE]; - if (lockFilePath) { - logger.info(`Found ${INSTALL_RUN_RUSH_LOCKFILE_PATH_VARIABLE}="${lockFilePath}", installing with lockfile.`); - } - return installAndRun(logger, PACKAGE_NAME, version, bin, packageBinArgs, lockFilePath); - }); -} -_run(); -//# sourceMappingURL=install-run-rush.js.map -})(); - -module.exports = __webpack_exports__; -/******/ })() -; -//# sourceMappingURL=install-run-rush.js.map \ No newline at end of file diff --git a/common/scripts/install-run-rushx.js b/common/scripts/install-run-rushx.js deleted file mode 100644 index b05df262..00000000 --- a/common/scripts/install-run-rushx.js +++ /dev/null @@ -1,28 +0,0 @@ -// THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED. -// -// This script is intended for usage in an automated build environment where the Rush command may not have -// been preinstalled, or may have an unpredictable version. This script will automatically install the version of Rush -// specified in the rush.json configuration file (if not already installed), and then pass a command-line to the -// rushx command. -// -// An example usage would be: -// -// node common/scripts/install-run-rushx.js custom-command -// -// For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ - -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -var __webpack_exports__ = {}; -/*!*************************************************!*\ - !*** ./lib-esnext/scripts/install-run-rushx.js ***! - \*************************************************/ - -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for license information. -require('./install-run-rush'); -//# sourceMappingURL=install-run-rushx.js.map -module.exports = __webpack_exports__; -/******/ })() -; -//# sourceMappingURL=install-run-rushx.js.map \ No newline at end of file diff --git a/common/scripts/install-run.js b/common/scripts/install-run.js deleted file mode 100644 index 68b1b56f..00000000 --- a/common/scripts/install-run.js +++ /dev/null @@ -1,645 +0,0 @@ -// THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED. -// -// This script is intended for usage in an automated build environment where a Node tool may not have -// been preinstalled, or may have an unpredictable version. This script will automatically install the specified -// version of the specified tool (if not already installed), and then pass a command-line to it. -// An example usage would be: -// -// node common/scripts/install-run.js qrcode@1.2.2 qrcode https://rushjs.io -// -// For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ - -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ 679877: -/*!************************************************!*\ - !*** ./lib-esnext/utilities/npmrcUtilities.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "syncNpmrc": () => (/* binding */ syncNpmrc) -/* harmony export */ }); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ 657147); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ 371017); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See LICENSE in the project root for license information. -// IMPORTANT - do not use any non-built-in libraries in this file - - -/** - * As a workaround, copyAndTrimNpmrcFile() copies the .npmrc file to the target folder, and also trims - * unusable lines from the .npmrc file. - * - * Why are we trimming the .npmrc lines? NPM allows environment variables to be specified in - * the .npmrc file to provide different authentication tokens for different registry. - * However, if the environment variable is undefined, it expands to an empty string, which - * produces a valid-looking mapping with an invalid URL that causes an error. Instead, - * we'd prefer to skip that line and continue looking in other places such as the user's - * home directory. - * - * @returns - * The text of the the .npmrc. - */ -function _copyAndTrimNpmrcFile(logger, sourceNpmrcPath, targetNpmrcPath) { - logger.info(`Transforming ${sourceNpmrcPath}`); // Verbose - logger.info(` --> "${targetNpmrcPath}"`); - let npmrcFileLines = fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync(sourceNpmrcPath).toString().split('\n'); - npmrcFileLines = npmrcFileLines.map((line) => (line || '').trim()); - const resultLines = []; - // This finds environment variable tokens that look like "${VAR_NAME}" - const expansionRegExp = /\$\{([^\}]+)\}/g; - // Comment lines start with "#" or ";" - const commentRegExp = /^\s*[#;]/; - // Trim out lines that reference environment variables that aren't defined - for (const line of npmrcFileLines) { - let lineShouldBeTrimmed = false; - // Ignore comment lines - if (!commentRegExp.test(line)) { - const environmentVariables = line.match(expansionRegExp); - if (environmentVariables) { - for (const token of environmentVariables) { - // Remove the leading "${" and the trailing "}" from the token - const environmentVariableName = token.substring(2, token.length - 1); - // Is the environment variable defined? - if (!process.env[environmentVariableName]) { - // No, so trim this line - lineShouldBeTrimmed = true; - break; - } - } - } - } - if (lineShouldBeTrimmed) { - // Example output: - // "; MISSING ENVIRONMENT VARIABLE: //my-registry.com/npm/:_authToken=${MY_AUTH_TOKEN}" - resultLines.push('; MISSING ENVIRONMENT VARIABLE: ' + line); - } - else { - resultLines.push(line); - } - } - const combinedNpmrc = resultLines.join('\n'); - fs__WEBPACK_IMPORTED_MODULE_0__.writeFileSync(targetNpmrcPath, combinedNpmrc); - return combinedNpmrc; -} -/** - * syncNpmrc() copies the .npmrc file to the target folder, and also trims unusable lines from the .npmrc file. - * If the source .npmrc file not exist, then syncNpmrc() will delete an .npmrc that is found in the target folder. - * - * IMPORTANT: THIS CODE SHOULD BE KEPT UP TO DATE WITH Utilities._syncNpmrc() - * - * @returns - * The text of the the synced .npmrc, if one exists. If one does not exist, then undefined is returned. - */ -function syncNpmrc(sourceNpmrcFolder, targetNpmrcFolder, useNpmrcPublish, logger = { - info: console.log, - error: console.error -}) { - const sourceNpmrcPath = path__WEBPACK_IMPORTED_MODULE_1__.join(sourceNpmrcFolder, !useNpmrcPublish ? '.npmrc' : '.npmrc-publish'); - const targetNpmrcPath = path__WEBPACK_IMPORTED_MODULE_1__.join(targetNpmrcFolder, '.npmrc'); - try { - if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath)) { - return _copyAndTrimNpmrcFile(logger, sourceNpmrcPath, targetNpmrcPath); - } - else if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(targetNpmrcPath)) { - // If the source .npmrc doesn't exist and there is one in the target, delete the one in the target - logger.info(`Deleting ${targetNpmrcPath}`); // Verbose - fs__WEBPACK_IMPORTED_MODULE_0__.unlinkSync(targetNpmrcPath); - } - } - catch (e) { - throw new Error(`Error syncing .npmrc file: ${e}`); - } -} -//# sourceMappingURL=npmrcUtilities.js.map - -/***/ }), - -/***/ 532081: -/*!********************************!*\ - !*** external "child_process" ***! - \********************************/ -/***/ ((module) => { - -module.exports = require("child_process"); - -/***/ }), - -/***/ 657147: -/*!*********************!*\ - !*** external "fs" ***! - \*********************/ -/***/ ((module) => { - -module.exports = require("fs"); - -/***/ }), - -/***/ 822037: -/*!*********************!*\ - !*** external "os" ***! - \*********************/ -/***/ ((module) => { - -module.exports = require("os"); - -/***/ }), - -/***/ 371017: -/*!***********************!*\ - !*** external "path" ***! - \***********************/ -/***/ ((module) => { - -module.exports = require("path"); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -/*!*******************************************!*\ - !*** ./lib-esnext/scripts/install-run.js ***! - \*******************************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "RUSH_JSON_FILENAME": () => (/* binding */ RUSH_JSON_FILENAME), -/* harmony export */ "findRushJsonFolder": () => (/* binding */ findRushJsonFolder), -/* harmony export */ "getNpmPath": () => (/* binding */ getNpmPath), -/* harmony export */ "installAndRun": () => (/* binding */ installAndRun), -/* harmony export */ "runWithErrorAndStatusCode": () => (/* binding */ runWithErrorAndStatusCode) -/* harmony export */ }); -/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! child_process */ 532081); -/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(child_process__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ 657147); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! os */ 822037); -/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! path */ 371017); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utilities/npmrcUtilities */ 679877); -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for license information. - - - - - -const RUSH_JSON_FILENAME = 'rush.json'; -const RUSH_TEMP_FOLDER_ENV_VARIABLE_NAME = 'RUSH_TEMP_FOLDER'; -const INSTALL_RUN_LOCKFILE_PATH_VARIABLE = 'INSTALL_RUN_LOCKFILE_PATH'; -const INSTALLED_FLAG_FILENAME = 'installed.flag'; -const NODE_MODULES_FOLDER_NAME = 'node_modules'; -const PACKAGE_JSON_FILENAME = 'package.json'; -/** - * Parse a package specifier (in the form of name\@version) into name and version parts. - */ -function _parsePackageSpecifier(rawPackageSpecifier) { - rawPackageSpecifier = (rawPackageSpecifier || '').trim(); - const separatorIndex = rawPackageSpecifier.lastIndexOf('@'); - let name; - let version = undefined; - if (separatorIndex === 0) { - // The specifier starts with a scope and doesn't have a version specified - name = rawPackageSpecifier; - } - else if (separatorIndex === -1) { - // The specifier doesn't have a version - name = rawPackageSpecifier; - } - else { - name = rawPackageSpecifier.substring(0, separatorIndex); - version = rawPackageSpecifier.substring(separatorIndex + 1); - } - if (!name) { - throw new Error(`Invalid package specifier: ${rawPackageSpecifier}`); - } - return { name, version }; -} -let _npmPath = undefined; -/** - * Get the absolute path to the npm executable - */ -function getNpmPath() { - if (!_npmPath) { - try { - if (os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32') { - // We're on Windows - const whereOutput = child_process__WEBPACK_IMPORTED_MODULE_0__.execSync('where npm', { stdio: [] }).toString(); - const lines = whereOutput.split(os__WEBPACK_IMPORTED_MODULE_2__.EOL).filter((line) => !!line); - // take the last result, we are looking for a .cmd command - // see https://github.com/microsoft/rushstack/issues/759 - _npmPath = lines[lines.length - 1]; - } - else { - // We aren't on Windows - assume we're on *NIX or Darwin - _npmPath = child_process__WEBPACK_IMPORTED_MODULE_0__.execSync('command -v npm', { stdio: [] }).toString(); - } - } - catch (e) { - throw new Error(`Unable to determine the path to the NPM tool: ${e}`); - } - _npmPath = _npmPath.trim(); - if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(_npmPath)) { - throw new Error('The NPM executable does not exist'); - } - } - return _npmPath; -} -function _ensureFolder(folderPath) { - if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(folderPath)) { - const parentDir = path__WEBPACK_IMPORTED_MODULE_3__.dirname(folderPath); - _ensureFolder(parentDir); - fs__WEBPACK_IMPORTED_MODULE_1__.mkdirSync(folderPath); - } -} -/** - * Create missing directories under the specified base directory, and return the resolved directory. - * - * Does not support "." or ".." path segments. - * Assumes the baseFolder exists. - */ -function _ensureAndJoinPath(baseFolder, ...pathSegments) { - let joinedPath = baseFolder; - try { - for (let pathSegment of pathSegments) { - pathSegment = pathSegment.replace(/[\\\/]/g, '+'); - joinedPath = path__WEBPACK_IMPORTED_MODULE_3__.join(joinedPath, pathSegment); - if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(joinedPath)) { - fs__WEBPACK_IMPORTED_MODULE_1__.mkdirSync(joinedPath); - } - } - } - catch (e) { - throw new Error(`Error building local installation folder (${path__WEBPACK_IMPORTED_MODULE_3__.join(baseFolder, ...pathSegments)}): ${e}`); - } - return joinedPath; -} -function _getRushTempFolder(rushCommonFolder) { - const rushTempFolder = process.env[RUSH_TEMP_FOLDER_ENV_VARIABLE_NAME]; - if (rushTempFolder !== undefined) { - _ensureFolder(rushTempFolder); - return rushTempFolder; - } - else { - return _ensureAndJoinPath(rushCommonFolder, 'temp'); - } -} -/** - * Resolve a package specifier to a static version - */ -function _resolvePackageVersion(logger, rushCommonFolder, { name, version }) { - if (!version) { - version = '*'; // If no version is specified, use the latest version - } - if (version.match(/^[a-zA-Z0-9\-\+\.]+$/)) { - // If the version contains only characters that we recognize to be used in static version specifiers, - // pass the version through - return version; - } - else { - // version resolves to - try { - const rushTempFolder = _getRushTempFolder(rushCommonFolder); - const sourceNpmrcFolder = path__WEBPACK_IMPORTED_MODULE_3__.join(rushCommonFolder, 'config', 'rush'); - (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)(sourceNpmrcFolder, rushTempFolder, undefined, logger); - const npmPath = getNpmPath(); - // This returns something that looks like: - // @microsoft/rush@3.0.0 '3.0.0' - // @microsoft/rush@3.0.1 '3.0.1' - // ... - // @microsoft/rush@3.0.20 '3.0.20' - // - const npmVersionSpawnResult = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(npmPath, ['view', `${name}@${version}`, 'version', '--no-update-notifier'], { - cwd: rushTempFolder, - stdio: [] - }); - if (npmVersionSpawnResult.status !== 0) { - throw new Error(`"npm view" returned error code ${npmVersionSpawnResult.status}`); - } - const npmViewVersionOutput = npmVersionSpawnResult.stdout.toString(); - const versionLines = npmViewVersionOutput.split('\n').filter((line) => !!line); - const latestVersion = versionLines[versionLines.length - 1]; - if (!latestVersion) { - throw new Error('No versions found for the specified version range.'); - } - const versionMatches = latestVersion.match(/^.+\s\'(.+)\'$/); - if (!versionMatches) { - throw new Error(`Invalid npm output ${latestVersion}`); - } - return versionMatches[1]; - } - catch (e) { - throw new Error(`Unable to resolve version ${version} of package ${name}: ${e}`); - } - } -} -let _rushJsonFolder; -/** - * Find the absolute path to the folder containing rush.json - */ -function findRushJsonFolder() { - if (!_rushJsonFolder) { - let basePath = __dirname; - let tempPath = __dirname; - do { - const testRushJsonPath = path__WEBPACK_IMPORTED_MODULE_3__.join(basePath, RUSH_JSON_FILENAME); - if (fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(testRushJsonPath)) { - _rushJsonFolder = basePath; - break; - } - else { - basePath = tempPath; - } - } while (basePath !== (tempPath = path__WEBPACK_IMPORTED_MODULE_3__.dirname(basePath))); // Exit the loop when we hit the disk root - if (!_rushJsonFolder) { - throw new Error('Unable to find rush.json.'); - } - } - return _rushJsonFolder; -} -/** - * Detects if the package in the specified directory is installed - */ -function _isPackageAlreadyInstalled(packageInstallFolder) { - try { - const flagFilePath = path__WEBPACK_IMPORTED_MODULE_3__.join(packageInstallFolder, INSTALLED_FLAG_FILENAME); - if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(flagFilePath)) { - return false; - } - const fileContents = fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(flagFilePath).toString(); - return fileContents.trim() === process.version; - } - catch (e) { - return false; - } -} -/** - * Delete a file. Fail silently if it does not exist. - */ -function _deleteFile(file) { - try { - fs__WEBPACK_IMPORTED_MODULE_1__.unlinkSync(file); - } - catch (err) { - if (err.code !== 'ENOENT' && err.code !== 'ENOTDIR') { - throw err; - } - } -} -/** - * Removes the following files and directories under the specified folder path: - * - installed.flag - * - - * - node_modules - */ -function _cleanInstallFolder(rushTempFolder, packageInstallFolder, lockFilePath) { - try { - const flagFile = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, INSTALLED_FLAG_FILENAME); - _deleteFile(flagFile); - const packageLockFile = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, 'package-lock.json'); - if (lockFilePath) { - fs__WEBPACK_IMPORTED_MODULE_1__.copyFileSync(lockFilePath, packageLockFile); - } - else { - // Not running `npm ci`, so need to cleanup - _deleteFile(packageLockFile); - const nodeModulesFolder = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME); - if (fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(nodeModulesFolder)) { - const rushRecyclerFolder = _ensureAndJoinPath(rushTempFolder, 'rush-recycler'); - fs__WEBPACK_IMPORTED_MODULE_1__.renameSync(nodeModulesFolder, path__WEBPACK_IMPORTED_MODULE_3__.join(rushRecyclerFolder, `install-run-${Date.now().toString()}`)); - } - } - } - catch (e) { - throw new Error(`Error cleaning the package install folder (${packageInstallFolder}): ${e}`); - } -} -function _createPackageJson(packageInstallFolder, name, version) { - try { - const packageJsonContents = { - name: 'ci-rush', - version: '0.0.0', - dependencies: { - [name]: version - }, - description: "DON'T WARN", - repository: "DON'T WARN", - license: 'MIT' - }; - const packageJsonPath = path__WEBPACK_IMPORTED_MODULE_3__.join(packageInstallFolder, PACKAGE_JSON_FILENAME); - fs__WEBPACK_IMPORTED_MODULE_1__.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContents, undefined, 2)); - } - catch (e) { - throw new Error(`Unable to create package.json: ${e}`); - } -} -/** - * Run "npm install" in the package install folder. - */ -function _installPackage(logger, packageInstallFolder, name, version, command) { - try { - logger.info(`Installing ${name}...`); - const npmPath = getNpmPath(); - const result = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(npmPath, [command], { - stdio: 'inherit', - cwd: packageInstallFolder, - env: process.env - }); - if (result.status !== 0) { - throw new Error(`"npm ${command}" encountered an error`); - } - logger.info(`Successfully installed ${name}@${version}`); - } - catch (e) { - throw new Error(`Unable to install package: ${e}`); - } -} -/** - * Get the ".bin" path for the package. - */ -function _getBinPath(packageInstallFolder, binName) { - const binFolderPath = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME, '.bin'); - const resolvedBinName = os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32' ? `${binName}.cmd` : binName; - return path__WEBPACK_IMPORTED_MODULE_3__.resolve(binFolderPath, resolvedBinName); -} -/** - * Write a flag file to the package's install directory, signifying that the install was successful. - */ -function _writeFlagFile(packageInstallFolder) { - try { - const flagFilePath = path__WEBPACK_IMPORTED_MODULE_3__.join(packageInstallFolder, INSTALLED_FLAG_FILENAME); - fs__WEBPACK_IMPORTED_MODULE_1__.writeFileSync(flagFilePath, process.version); - } - catch (e) { - throw new Error(`Unable to create installed.flag file in ${packageInstallFolder}`); - } -} -function installAndRun(logger, packageName, packageVersion, packageBinName, packageBinArgs, lockFilePath = process.env[INSTALL_RUN_LOCKFILE_PATH_VARIABLE]) { - const rushJsonFolder = findRushJsonFolder(); - const rushCommonFolder = path__WEBPACK_IMPORTED_MODULE_3__.join(rushJsonFolder, 'common'); - const rushTempFolder = _getRushTempFolder(rushCommonFolder); - const packageInstallFolder = _ensureAndJoinPath(rushTempFolder, 'install-run', `${packageName}@${packageVersion}`); - if (!_isPackageAlreadyInstalled(packageInstallFolder)) { - // The package isn't already installed - _cleanInstallFolder(rushTempFolder, packageInstallFolder, lockFilePath); - const sourceNpmrcFolder = path__WEBPACK_IMPORTED_MODULE_3__.join(rushCommonFolder, 'config', 'rush'); - (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)(sourceNpmrcFolder, packageInstallFolder, undefined, logger); - _createPackageJson(packageInstallFolder, packageName, packageVersion); - const command = lockFilePath ? 'ci' : 'install'; - _installPackage(logger, packageInstallFolder, packageName, packageVersion, command); - _writeFlagFile(packageInstallFolder); - } - const statusMessage = `Invoking "${packageBinName} ${packageBinArgs.join(' ')}"`; - const statusMessageLine = new Array(statusMessage.length + 1).join('-'); - logger.info('\n' + statusMessage + '\n' + statusMessageLine + '\n'); - const binPath = _getBinPath(packageInstallFolder, packageBinName); - const binFolderPath = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME, '.bin'); - // Windows environment variables are case-insensitive. Instead of using SpawnSyncOptions.env, we need to - // assign via the process.env proxy to ensure that we append to the right PATH key. - const originalEnvPath = process.env.PATH || ''; - let result; - try { - // Node.js on Windows can not spawn a file when the path has a space on it - // unless the path gets wrapped in a cmd friendly way and shell mode is used - const shouldUseShell = binPath.includes(' ') && os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32'; - const platformBinPath = shouldUseShell ? `"${binPath}"` : binPath; - process.env.PATH = [binFolderPath, originalEnvPath].join(path__WEBPACK_IMPORTED_MODULE_3__.delimiter); - result = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(platformBinPath, packageBinArgs, { - stdio: 'inherit', - windowsVerbatimArguments: false, - shell: shouldUseShell, - cwd: process.cwd(), - env: process.env - }); - } - finally { - process.env.PATH = originalEnvPath; - } - if (result.status !== null) { - return result.status; - } - else { - throw result.error || new Error('An unknown error occurred.'); - } -} -function runWithErrorAndStatusCode(logger, fn) { - process.exitCode = 1; - try { - const exitCode = fn(); - process.exitCode = exitCode; - } - catch (e) { - logger.error('\n\n' + e.toString() + '\n\n'); - } -} -function _run() { - const [nodePath /* Ex: /bin/node */, scriptPath /* /repo/common/scripts/install-run-rush.js */, rawPackageSpecifier /* qrcode@^1.2.0 */, packageBinName /* qrcode */, ...packageBinArgs /* [-f, myproject/lib] */] = process.argv; - if (!nodePath) { - throw new Error('Unexpected exception: could not detect node path'); - } - if (path__WEBPACK_IMPORTED_MODULE_3__.basename(scriptPath).toLowerCase() !== 'install-run.js') { - // If install-run.js wasn't directly invoked, don't execute the rest of this function. Return control - // to the script that (presumably) imported this file - return; - } - if (process.argv.length < 4) { - console.log('Usage: install-run.js @ [args...]'); - console.log('Example: install-run.js qrcode@1.2.2 qrcode https://rushjs.io'); - process.exit(1); - } - const logger = { info: console.log, error: console.error }; - runWithErrorAndStatusCode(logger, () => { - const rushJsonFolder = findRushJsonFolder(); - const rushCommonFolder = _ensureAndJoinPath(rushJsonFolder, 'common'); - const packageSpecifier = _parsePackageSpecifier(rawPackageSpecifier); - const name = packageSpecifier.name; - const version = _resolvePackageVersion(logger, rushCommonFolder, packageSpecifier); - if (packageSpecifier.version !== version) { - console.log(`Resolved to ${name}@${version}`); - } - return installAndRun(logger, name, version, packageBinName, packageBinArgs); - }); -} -_run(); -//# sourceMappingURL=install-run.js.map -})(); - -module.exports = __webpack_exports__; -/******/ })() -; -//# sourceMappingURL=install-run.js.map \ No newline at end of file diff --git a/common/scripts/parse-version.js b/common/scripts/parse-version.js deleted file mode 100644 index 2f0012e6..00000000 --- a/common/scripts/parse-version.js +++ /dev/null @@ -1,23 +0,0 @@ -// see more about the regex here: https://semver.org/lang/zh-CN/ -// reg test: https://regex101.com/r/vkijKf/1/ - -function parseVersion(version) { - const res = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/gm.exec(version); - - if (res) { - return { - major: +res[1], - minor: +res[2], - patch: +res[3], - preReleaseName: res[4], - preReleaseType: res[4] && res[4].includes('.') ? res[4].split('.')[0] : res[4], - buildName: res[5], - buildType: res[5] && res[5].includes('.') ? res[5].split('.')[0] : res[5], - - }; - } - - return null; -} - -module.exports = parseVersion \ No newline at end of file diff --git a/common/scripts/pre-release.js b/common/scripts/pre-release.js deleted file mode 100644 index dac9064f..00000000 --- a/common/scripts/pre-release.js +++ /dev/null @@ -1,95 +0,0 @@ -/** - * prelease - */ - -const { spawnSync } = require('child_process') -const fs = require('fs') -const path = require('path') -const checkAndUpdateNextBump = require('./version-policies'); -const getPackageJson = require('./get-package-json'); -const writePrereleaseVersion = require('./set-prerelease-version'); - -const semverRegex = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-(alpha|beta|rc|hotfix)(?:\.(?:(0|[1-9])))*)$/; - -const preReleaseNameReg = /^((alpha|beta|rc|hotfix)(?:\.(?:0|[1-9]))*)$/; - -function run() { - let preReleaseName = process.argv.slice(2)[0]; - let preReleaseType = ''; - const cwd = process.cwd(); - const rushJson = getPackageJson(path.join(__dirname, '../../rush.json')); - const package = rushJson.projects.find((project) => project.packageName === '@visactor/vmind'); - let regRes = null; - - if (typeof preReleaseName === 'string' && preReleaseName && (regRes = preReleaseNameReg.exec(preReleaseName))) { - preReleaseType = regRes[2]; - } else if (!preReleaseName) { - if (package) { - const pkgJsonPath = path.join(__dirname, '../../', package.projectFolder, 'package.json') - const pkgJson = getPackageJson(pkgJsonPath) - const currentVersion = pkgJson.version; - - if ((regRes = semverRegex.exec(currentVersion))) { - preReleaseType = regRes[4]; - - if (regRes[5]) { - preReleaseName = `${preReleaseType}.${parseInt(regRes[5], 10) + 1}`; - } else { - preReleaseName = `${preReleaseType}.0`; - } - - console.log(`\x1b[31m[warning]\x1b[0m no prerelease-name supply, auto calculate prerelease-name \x1b[31m${preReleaseName}\x1b[0m`); - } else { - preReleaseName = `alpha.0`; - preReleaseType = 'alpha'; - - console.log('\x1b[31m[warning]\x1b[0m no prerelease-name supply, default to \x1b[31m alpha.0\x1b[0m') - } - } - } else { - console.log(`\x1b[31m[error]\x1b[0m preReleaseName: \x1b[31m ${preReleaseName} \x1b[0m 不符合规范,只允许 alpha.0 , beta.1, rc.3, hotfix.0 类似的格式 `) - } - - if (preReleaseName && preReleaseType) { - - // 1. apply version and update version of package.json - writePrereleaseVersion(checkAndUpdateNextBump(process.argv.slice(2)[1]), preReleaseName) - - // 2. build all the packages - spawnSync('sh', ['-c', `rush build --only tag:package`], { - stdio: 'inherit', - shell: false, - }); - - // 3. publish to npm - spawnSync('sh', ['-c', `rush publish --publish --include-all --tag ${preReleaseType}`], { - stdio: 'inherit', - shell: false, - }); - - // 4. update version of local packages to shrinkwrap - spawnSync('sh', ['-c', `rush update`], { - stdio: 'inherit', - shell: false, - }); - - if (package) { - const pkgJsonPath = path.join(__dirname, '../../', package.projectFolder, 'package.json') - const pkgJson = getPackageJson(pkgJsonPath) - - // 5. add the the changes - spawnSync('sh', ['-c', `git add --all`], { - stdio: 'inherit', - shell: false, - }); - - // 6. commit all the changes - spawnSync('sh', ['-c', `git commit -m "build: prerelease version ${pkgJson.version}"`], { - stdio: 'inherit', - shell: false, - }); - } - } -} - -run() diff --git a/common/scripts/release.js b/common/scripts/release.js deleted file mode 100644 index ca28a779..00000000 --- a/common/scripts/release.js +++ /dev/null @@ -1,79 +0,0 @@ -/** - * release - */ - -const { spawnSync } = require('child_process'); -const fs = require('fs'); -const path = require('path'); -const checkAndUpdateNextBump = require('./version-policies'); - -function getPackageJson(pkgJsonPath) { - const pkgJson = fs.readFileSync(pkgJsonPath, { encoding: 'utf-8' }) - return JSON.parse(pkgJson) -} - -function run() { - let releaseVersion = process.argv.slice(2)[0]; - const cwd = process.cwd(); - - // 0. update `nextBump` - checkAndUpdateNextBump(releaseVersion); - - // 1. update version of package.json, this operation will remove the common/changes - spawnSync('sh', ['-c', `rush version --bump`], { - stdio: 'inherit', - shell: false, - }); - - // 2. build all the packages - spawnSync('sh', ['-c', `rush build --only tag:package`], { - stdio: 'inherit', - shell: false, - }); - - // 3. publish to npm - spawnSync('sh', ['-c', 'rush publish --publish --include-all'], { - stdio: 'inherit', - shell: false, - }); - - // 4. update version of local packages to shrinkwrap - spawnSync('sh', ['-c', `rush update`], { - stdio: 'inherit', - shell: false, - }); - - const rushJson = getPackageJson(path.join(__dirname, '../../rush.json')); - const package = rushJson.projects.find((project) => project.name === '@visactor/vmind'); - - if (package) { - const pkgJsonPath = path.join(__dirname, '../../', project.projectFolder, 'package.json') - const pkgJson = getPackageJson(pkgJsonPath) - - // 5. add tag - spawnSync('sh', ['-c', `git tag v${pkgJson.versopn}`], { - stdio: 'inherit', - shell: false, - }); - - // 6. add all the changes - spawnSync('sh', ['-c', `git add --all`], { - stdio: 'inherit', - shell: false, - }); - - // 7. commit all the changes - spawnSync('sh', ['-c', `git commit -m "build: publish version ${pkgJson.version}"`], { - stdio: 'inherit', - shell: false, - }); - - // 8. push tag to origin - spawnSync('sh', ['-c', `git push origin v${pkgJson.version}`], { - stdio: 'inherit', - shell: false, - }); - } -} - -run() diff --git a/common/scripts/set-json-file.js b/common/scripts/set-json-file.js deleted file mode 100644 index 40f0f018..00000000 --- a/common/scripts/set-json-file.js +++ /dev/null @@ -1,30 +0,0 @@ -function setJsonFileByKey(file, json, keys, newValue) { - const prevValue = keys.reduce((res, k) => { - return res[k]; - }, json); - - if (prevValue !== newValue) { - let startIndex = 0; - - keys.forEach(k => { - const keyStr = `"${k}"`; - const index = file.indexOf(keyStr, startIndex); - - if (index >= 0) { - startIndex = index + keyStr.length + 1; - } - }) - - const leftIndex = file.indexOf('"', startIndex); - const rightIndex = leftIndex >= 0 ? file.indexOf('"', leftIndex +1) : -1; - - if (leftIndex >= 0 && rightIndex >= 0) { - return `${file.slice(0, leftIndex)}"${newValue}"${file.slice(rightIndex + 1)}` - } - } - - return file; -} - -module.exports = setJsonFileByKey; - diff --git a/common/scripts/set-prerelease-version.js b/common/scripts/set-prerelease-version.js deleted file mode 100644 index 1646012c..00000000 --- a/common/scripts/set-prerelease-version.js +++ /dev/null @@ -1,92 +0,0 @@ -const fs = require('fs') -const path = require('path') -const getPackageJson = require('./get-package-json'); -const parseVersion = require('./parse-version'); -const setJsonFileByKey = require('./set-json-file'); - - -function writePrereleaseVersion(nextBump, preReleaseName, nextVersionStr, buildName) { - const rushJson = getPackageJson(path.join(__dirname, '../../rush.json')); - const projects = rushJson.projects; - const mainPackage = projects.find((project) => project.packageName === '@visactor/vmind'); - - if (!mainPackage) { - return; - } - - const mainPkgJsonPath = path.join(__dirname, '../../', mainPackage.projectFolder, 'package.json') - const mainPkgJson = getPackageJson(mainPkgJsonPath) - const mainVersion = mainPkgJson.version; - console.log(`The version of main project is ${mainVersion}`); - const curVersion = parseVersion(mainVersion); - console.log('parsed current version:', curVersion) - - if (!curVersion) { - return; - } - - if (!nextVersionStr && !curVersion.preReleaseName) { - if (nextBump === 'major') { - curVersion.major += 1; - curVersion.minor = 0; - curVersion.patch = 0; - } else if (nextBump === 'minor') { - curVersion.minor += 1; - curVersion.patch = 0; - } else { - curVersion.patch += 1; - } - } - - let nextVersion = nextVersionStr ? nextVersionStr : `${curVersion.major}.${curVersion.minor}.${curVersion.patch}`; - - if (preReleaseName && preReleaseName !== 'none') { - nextVersion = `${nextVersion}-${preReleaseName}`; - } - - if (buildName) { - nextVersion = `${nextVersion}+${buildName}`; - } - - const published = projects.filter(project => project.shouldPublish).map(project => project.packageName); - - console.log(`next version is ${nextVersion}`); - - projects.forEach(project => { - const pkgJsonPath = path.join(__dirname, '../../', project.projectFolder, 'package.json') - let jsonFile = fs.readFileSync(pkgJsonPath, { encoding: 'utf-8' }) - const pkgJson = JSON.parse(jsonFile); - - if (project.shouldPublish) { - console.log(`handle project: ${project.packageName}, from ${pkgJson.version} to ${nextVersion}`); - } else { - console.log(`handle project: ${project.packageName}, update "dependencies" and "devDependencies" `); - } - - if (project.shouldPublish) { - jsonFile = setJsonFileByKey(jsonFile, pkgJson, ['version'], nextVersion); - } - - if (pkgJson.dependencies) { - Object.keys(pkgJson.dependencies).forEach(dep => { - if (published.includes(dep)) { - jsonFile = setJsonFileByKey(jsonFile, pkgJson, ['dependencies', dep], `workspace:${nextVersion}`); - } - }); - } - - if (pkgJson.devDependencies) { - Object.keys(pkgJson.devDependencies).forEach(dep => { - if (published.includes(dep)) { - jsonFile = setJsonFileByKey(jsonFile, pkgJson, ['devDependencies', dep], `workspace:${nextVersion}`); - } - }); - } - - fs.writeFileSync(pkgJsonPath, jsonFile) - }); - - -} - -module.exports = writePrereleaseVersion; diff --git a/common/scripts/sort_deps.js b/common/scripts/sort_deps.js deleted file mode 100644 index 861e26ab..00000000 --- a/common/scripts/sort_deps.js +++ /dev/null @@ -1,116 +0,0 @@ -/** - * sort `dependencies` `devDependencies` `peerDependencies` field in package.json - * - * NOTE: you should install prettier global `npm i -g prettier` - * - * usage: `node common/scripts/sort_deps.js [project_relative_path]` - */ -const fs = require('fs') -const path = require('path') -const { spawnSync } = require('child_process') - -function getPackageJson(pkgJsonPath) { - const pkgJson = fs.readFileSync(pkgJsonPath, { encoding: 'utf-8' }) - return JSON.parse(pkgJson) -} - -function updatePackageJson(pkgJsonPath, data) { - fs.writeFileSync(path.resolve(pkgJsonPath, 'package.json'), data, { encoding: 'utf-8' }) -} - -function isPlainObject(value) { - if (Object.prototype.toString.call(value) !== '[object Object]') { - return false - } - - const prototype = Object.getPrototypeOf(value) - return prototype === null || prototype === Object.prototype -} - -function sortObjectByKeyNameList(object, sortWith) { - let keys - let sortFn - - if (typeof sortWith === 'function') { - sortFn = sortWith - } else { - keys = sortWith - } - - const objectKeys = Object.keys(object) - return (keys || []).concat(objectKeys.sort(sortFn)).reduce(function(total, key) { - if (objectKeys.indexOf(key) !== -1) { - total[key] = object[key] - } - return total - }, Object.create(null)) -} - -const onObject - = (fn) => - (x, ...args) => - isPlainObject(x) ? fn(x, ...args) : x - -const sortObjectBy = (comparator, deep) => { - const over = onObject((object) => { - object = sortObjectByKeyNameList(object, comparator) - if (deep) { - for (const [key, value] of Object.entries(object)) { - object[key] = over(value) - } - } - return object - }) - - return over -} - -const sortObject = sortObjectBy() - -function sortDeps(data) { - if (data.dependencies) { - data.dependencies = sortObject(data.dependencies) - } - if (data.devDependencies) { - data.devDependencies = sortObject(data.devDependencies) - } - - if (data.peerDependencies) { - data.peerDependencies = sortObject(data.peerDependencies) - } -} - -function run() { - const targetDir = process.argv.slice(2)[0] - const cwd = process.cwd(); - - if (typeof targetDir === 'string') { - const pkgJsonPath = path.resolve(targetDir, 'package.json') - const pkgJson = getPackageJson(pkgJsonPath) - sortDeps(pkgJson) - updatePackageJson(targetDir, JSON.stringify(pkgJson)) - - spawnSync('sh', ['-c', `prettier -w ${pkgJsonPath}`], { - stdio: 'inherit', - shell: false, - }) - } else { - const rushJson = getPackageJson(`${cwd}/rush.json`) - - rushJson.projects.forEach((project) => { - const pkgJsonPath = path.resolve(project.projectFolder, 'package.json') - const pkgJson = getPackageJson(pkgJsonPath) - - sortDeps(pkgJson) - updatePackageJson(project.projectFolder, JSON.stringify(pkgJson)) - - spawnSync('sh', ['-c', `prettier -w ${pkgJsonPath}`], { - stdio: 'inherit', - shell: false, - }) - }); - } -} - -run() - diff --git a/common/scripts/version-policies.js b/common/scripts/version-policies.js deleted file mode 100644 index ef4f9151..00000000 --- a/common/scripts/version-policies.js +++ /dev/null @@ -1,85 +0,0 @@ - -const fs = require('fs') -const path = require('path') -const parseVersion = require('./parse-version'); -const PRERELEASE = 'prerelease'; -const MINOR = 'minor'; -const MAJOR = 'major'; -const PATCH = 'patch'; -const NEXT_BUMPMS = [PRERELEASE, PATCH, MINOR, MAJOR]; -const setJsonFileByKey = require('./set-json-file'); - - -const parseNextBumpFromVersion = ( - versionString -) => { - const res = parseVersion(versionString); - - if (res) { - if (res.patch === 0) { - return res.minor == 0 ? MAJOR : MINOR; - } - - return PATCH - } - - console.error(`can parse nextBump from version: ${versionString}`) - process.exit(1); -} - -const writeNextBump = ( - nextBump, -) => { - const filePath = path.join(__dirname, '../config/rush/version-policies.json'); - let fileContent = fs.readFileSync(filePath).toString() - const json = JSON.parse(fileContent); - const curNextBump = json[0].nextBump - - if (nextBump !== curNextBump) { - fileContent = setJsonFileByKey(fileContent, json, ['0', 'nextBump'], nextBump); - - fs.writeFileSync(path.join(__dirname, '../config/rush/version-policies.json'), fileContent) - } -} - -const readNextBumpFromChanges = () => { - const changeRoot = path.join(__dirname, '../changes/@visactor/vmind'); - const filenames = fs.readdirSync(changeRoot); - - if (filenames && filenames.length) { - const changeType = []; - - filenames.forEach(fileName => { - const json = JSON.parse(fs.readFileSync(path.join(changeRoot, fileName)).toString()); - - if (json.changes && json.changes.length) { - json.changes.forEach(change => { - if (change.type && !changeType.includes(change.type)) { - changeType.push(change.type); - } - }) - } - }); - - return changeType.includes(MAJOR) ? MAJOR : changeType.includes(MINOR) ? MINOR : PATCH; - } else { - process.exit(1); - } -} - -const checkAndUpdateNextBump = (version) => { - let nextBump = PATCH; - - if (version && NEXT_BUMPMS.includes(version)) { - nextBump = version; - } else if (version) { - nextBump = parseNextBumpFromVersion(version); - } else { - nextBump = readNextBumpFromChanges(); - } - writeNextBump(nextBump); - - return nextBump; -} - -module.exports = checkAndUpdateNextBump; diff --git a/common/template/chart.d.ts b/common/template/chart.d.ts deleted file mode 100644 index 149134cd..00000000 --- a/common/template/chart.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/chart/index.d.ts'; diff --git a/common/template/chart.js b/common/template/chart.js deleted file mode 100644 index 6a034635..00000000 --- a/common/template/chart.js +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/chart/index.js'; diff --git a/common/template/component.d.ts b/common/template/component.d.ts deleted file mode 100644 index b8410a59..00000000 --- a/common/template/component.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/component/index.d.ts'; diff --git a/common/template/component.js b/common/template/component.js deleted file mode 100644 index b8ed5258..00000000 --- a/common/template/component.js +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/component/index.js'; diff --git a/common/template/core.d.ts b/common/template/core.d.ts deleted file mode 100644 index 1102f69d..00000000 --- a/common/template/core.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/core/index.d.ts'; diff --git a/common/template/core.js b/common/template/core.js deleted file mode 100644 index bcb0279f..00000000 --- a/common/template/core.js +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/core/index.js'; diff --git a/common/template/layout.d.ts b/common/template/layout.d.ts deleted file mode 100644 index 891323ba..00000000 --- a/common/template/layout.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/layout/index.d.ts'; diff --git a/common/template/layout.js b/common/template/layout.js deleted file mode 100644 index d01e034c..00000000 --- a/common/template/layout.js +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/layout/index.js'; diff --git a/common/template/mark.d.ts b/common/template/mark.d.ts deleted file mode 100644 index d76bc668..00000000 --- a/common/template/mark.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/mark/index.d.ts'; diff --git a/common/template/mark.js b/common/template/mark.js deleted file mode 100644 index 0c9e5272..00000000 --- a/common/template/mark.js +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/mark/index.js'; diff --git a/common/template/series.d.ts b/common/template/series.d.ts deleted file mode 100644 index c02441c2..00000000 --- a/common/template/series.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/series/index.d.ts'; diff --git a/common/template/series.js b/common/template/series.js deleted file mode 100644 index ba93fd16..00000000 --- a/common/template/series.js +++ /dev/null @@ -1 +0,0 @@ -export * from './esm/series/index.js'; diff --git a/docs/assets/api/en/VMind_Instance.md b/docs/assets/api/en/VMind_Instance.md deleted file mode 100644 index d4bdc80d..00000000 --- a/docs/assets/api/en/VMind_Instance.md +++ /dev/null @@ -1,113 +0,0 @@ -# VMind Instance - -## Interface Description - -The Create VMind Instance interface is used to create a VMind instance, which can be used for intelligent visualization operations. When creating a VMind instance, an options object needs to be passed in as a parameter. This object contains some key information, such as the url of the model, the type of model, and the headers of the LLM service request, etc. - - -## Interface Parameters - -### VMindOptions - -```ts -export interface VMindOptions { - /** URL of your LLM service. For gpt, default is openAI API. */ - url?: string; - /** llm request header, which has higher priority */ - headers?: HeadersInit; - /** post or get */ - method?: 'POST' | 'GET'; - /** LLM Model */ - model?: Model | string; - /** Max token in LLM Chart */ - maxTokens?: number; - /** Temperature of LLM */ - temperature?: number; - /** show llm thoughs or not */ - showThoughts?: boolean; - /** repetition penalty */ - frequencyPenalty?: number; - /** topP */ - topP?: number; - /** custom llm request func */ - customRequestFunc?: { - /** chart generation task */ - chartAdvisor?: RequestFunc; - /** data query task */ - dataQuery?: RequestFunc; - /** data extraction from text task */ - dataExtraction?: RequestFunc; - /** chart command auto generation task */ - chartCommand?: RequestFunc; - /** insight task */ - IntelligentInsight?: RequestFunc; - }; -} -``` - -### url - -The url parameter is used to specify the address of the LLM service api, the default value is https://api.openai.com/v1/chat/completions. During the use of VMind, all places that need to call LLM will send http requests to this url. - -### headers - -The headers parameter is used to specify the http headers when requesting the LLM service. The most common usage is to put your api key in the headers for authentication; of course, you can also put any fields you need in the headers. - -### method - -The method parameter is used to specify the method type when requesting LLM, usually POST. - -### model - -The model parameter is used to specify the type of model. This field will be put into the request body of the LLM service. You can import the Model type from VMind and use it as the value of the model field. Any model name other than VMind Model can also be specified. - -```ts -export enum Model { - GPT3_5 = 'gpt-3.5-turbo', - GPT3_5_1106 = 'gpt-3.5-turbo-1106', - GPT4 = 'gpt-4', - GPT_4_0613 = 'gpt-4-0613', - GPT_4o = 'gpt-4o-2024-08-06', - DOUBAO_LITE = 'doubao-lite-32K', - DOUBAO_PRO = 'doubao-pro-128k', - CHART_ADVISOR = 'chart-advisor', - DEEPSEEK_V3 = 'deepseek-chat', - DEEPSEEK_R1 = 'deepseek-reasoner' -} -``` - -### max_tokens and temperature - -These two parameters respectively determine the maximum token quantity and the randomness of each generated result of the model, see [OpenAI official documentation](https://platform.openai.com/docs/api-reference/chat/create). - -In VMind, the default values of these two parameters are 2048 and 0 respectively. - -### showThoughts - -The showThoughts parameter will affect the prompt that VMind sends to the large language model, determining whether to add the thinking process to the output results when completing tasks such as chart generation, data aggregation, etc. In VMind, showThoughts defaults to true. - -### TopP -Used to control the diversity of output tokens. The larger the TopP value, the more diverse the types of output tokens. The range is 0 to 1, and the default in VMind is 0. - -### frequencyPenalty -A number between -2.0 and 2.0. Positive values penalize new tokens based on their frequency in the text, reducing the likelihood of the model repeating the same line verbatim. The default in VMind is 0. - -### customRequestFunc - -The customRequestFunc parameter allows users to customize the method of calling LLM in each task. For example, you can request your own LLM service in the form of RPC. - -## Usage Example - -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - model: Model.GPT4o, // use gpt-4o model - headers: { // specify the header when calling the LLM service - Authorization: `Bearer ${OPENAI_API_KEY}` // Your OPENAI_API_KEY - } -}) -``` - -## Related Tutorials -[Create VMind Instance](../guide/Basic_Tutorial/Create_VMind_Instance) diff --git a/docs/assets/api/en/dataQuery.md b/docs/assets/api/en/dataQuery.md deleted file mode 100644 index 13c51637..00000000 --- a/docs/assets/api/en/dataQuery.md +++ /dev/null @@ -1,84 +0,0 @@ - -# dataQuery - -## Interface Description: -The dataQuery function is a powerful data aggregation tool. It takes three parameters: userPrompt, fieldInfo, and dataset. VMind will write SQL statements according to the user's display intent and execute the query on the dataset. The query results will be stored in the dataset property of the function return value. At the same time, the fields in the query results may change, and the updated field information will also be stored in the fieldInfo property of the return result. - -## Supported Models: -- GPT models -- Doubao models -- DeepSeek models -- Any other models - -## Interface Parameters: -```typescript -/** - * @param userPrompt(string) The user's display intent, such as "show the sales of each product". - * @param dataset(DataTable) The original dataset, which is an array of objects, each object represents a piece of data. - * @param fieldInfo(FieldInfo[]) Optional, information about the dataset fields, including field name, type, and role. If not provided, VMind will automatically parse a fieldInfo configuration based on the dataset. - * @returns new FieldInfo && new DataSet after user's query - */ -``` - -## Return Value Type: -```typescript -{ - // Updated field information. - fieldInfo: FieldInfo[]; - // Queried data table - dataTable: DataTable; -} -``` - -## Usage Example: - -```ts -import VMind from '@visactor/vmind' - -const sourceDataset = [ -{ -"Product name": "Coke", -"Sales": 2350 -}, -{ -"Product name": "Sprite", -"total_sales": 1056 -}, -{ -"Product name": "Fanta", -"total_sales": 4778 -}, -{ -"Product name": "Mirinda", -"total_sales": 3336 -} -// ...other data -] - -const sourceFieldInfo = [ -{ -"fieldName": "Product name", -"type": "string", -"role": "dimension" -}, -{ -"fieldName": "Sales", -"type": "int", -"role": "measure" -} -] - -const userPrompt=`Show the sales of each product` -const vmind = new VMind(options) - -// Call dataQuery with userPrompt, sourceFieldInfo, and sourceDataset to perform data aggregation -const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceDataset, sourceFieldInfo); -``` - -## Notes: - -- The dataQuery method will pass userPrompt and fieldInfo to the LLM to generate SQL, but the detailed data in the dataset will not be passed. -- During the execution of dataQuery, the currently supported SQL keywords are: SELECT, GROUP BY, WHERE, HAVING, ORDER BY, LIMIT. The currently supported aggregation functions are: MAX(), MIN(), SUM(), COUNT(), AVG(), but complex SQL operations such as subqueries, JOIN, conditional statements, etc. are not supported. - -## Related Tutorials -[Data Aggregation](../guide/Basic_Tutorial/Data_Aggregation) diff --git a/docs/assets/api/en/fillSpecWithData.md b/docs/assets/api/en/fillSpecWithData.md deleted file mode 100644 index 9ae9b63e..00000000 --- a/docs/assets/api/en/fillSpecWithData.md +++ /dev/null @@ -1,96 +0,0 @@ -# fillSpecWithData - -## Interface Description: -fillSpecWithData is used to fill data into a spec template to generate a complete spec. Different filling strategies will be adopted according to different chart types. - -## Interface Parameters: - -```typescript -fillSpecWithData( -spec: any, -dataset: Array>, -totalTime?: number -) -``` - -- spec (any): spec template, containing all properties except data. It can be generated by [generateChart](./generateChart) -- dataset (Array): The dataset used in the chart, which will be filled into the spec template. -- totalTime (number): Optional, chart animation duration (ms) - -## Return Value: -Returns the filled spec, which can be directly used for chart rendering - -## Usage Example: -In some cases, we may generate a chart only with data fields, without a specific dataset (for example, generate a chart based on the fields in the dataset before querying, and then complete the related queries based on the generated chart type and the fields in the chart). At this time, you can not pass the dataset when calling the generateChart method, generate the spec template, and then call the fillSpecWithData method to get the final spec for chart rendering: - -```typescript -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) - -const userPrompt = 'Show sales of goods in different regions'; -const fieldInfo = [ -{ -"fieldName": "Product Name", -"type": "string", -"role": "dimension", -"domain": [ -"Coca-Cola", -"Sprite", -"Fanta", -"clear up" -] -}, -{ -"fieldName": "region", -"type": "string", -"role": "dimension", -"domain": [ -"south", -"east", -"west", -"north" -] -}, -{ -"fieldName": "Sales", -"type": "int", -"role": "measure", -"domain": [ -28, -2350 -] -} -] -// Do not pass in dataset, generate spec template -const { spec } = await vmind.generateChart(userPrompt, fieldInfo); - -// Fill data into the template -const dataset = [ -{ -"Product Name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product Name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product Name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product Name": "Coke", -"region": "north", -"Sales": 1027 -}, -... -] - -const spec = vmind.fillSpecWithData(spec, dataset) -``` -## Related Tutorials -- [Intelligent Chart Generation](../guide/Basic_Tutorial/Chart_Generation) diff --git a/docs/assets/api/en/generateChart.md b/docs/assets/api/en/generateChart.md deleted file mode 100644 index 16e94aba..00000000 --- a/docs/assets/api/en/generateChart.md +++ /dev/null @@ -1,280 +0,0 @@ - -# generateChart - -## Interface Description: -The generateChart function is used to call LLM to complete intelligent generation of charts, and returns the generated chart spec, chart type, and field mapping, etc. -If the passed in dataset is undefined, a spec template will be generated, and fillSpecWithData can be called later to fill data into the spec. - -## Supported Models: -- GPT models -- Doubao models -- DeepSeek models -- [chart-advisor](../guide/Basic_Tutorial/Chart_Advisor) -- Any other models - -## Chart Type List -VMind supports 25 common chart types: -```typescript -export enum ChartType { - DynamicBarChart = 'Dynamic Bar Chart', - BarChart = 'Bar Chart', - LineChart = 'Line Chart', - AreaChart = 'Area Chart', - PieChart = 'Pie Chart', - ScatterPlot = 'Scatter Plot', - WordCloud = 'Word Cloud', - RoseChart = 'Rose Chart', - RadarChart = 'Radar Chart', - SankeyChart = 'Sankey Chart', - FunnelChart = 'Funnel Chart', - DualAxisChart = 'Dual Axis Chart', - WaterFallChart = 'Waterfall Chart', - BoxPlot = 'Box Plot', - LinearProgress = 'Linear Progress chart', - CircularProgress = 'Circular Progress chart', - LiquidChart = 'Liquid Chart', - BubbleCirclePacking = 'Bubble Circle Packing', - MapChart = 'Map Chart', - RangeColumnChart = 'Range Column Chart', - SunburstChart = 'Sunburst Chart', - TreemapChart = 'Treemap Chart', - Gauge = 'Gauge Chart', - BasicHeatMap = 'Basic Heat Map', - VennChart = 'Venn Chart' -} -``` -You can restrict the type of chart generated through the chartTypeList in the options parameter. - - -## Interface Parameters: - -```typescript -interface GenerateChartParams { - userPrompt: string; - fieldInfo: Array<{ - fieldName: string; - type: string; - role: string; - }>; - dataset?: Array>; - options?: { - chartTypeList?: ChartType[]; - colorPalette?: string[]; - animationDuration?: number; - enableDataQuery?: boolean; - theme?: ChartTheme | string; - } -} -``` - -- userPrompt (string): User's visualization intention (What information you want to show in the chart) -- fieldInfo (Array): Information about the fields in the dataset, including field name, type, etc -- dataset (Array): The raw dataset used in the chart, it can be undefined. If dataset is undefined, a spec template will be generated and fillSpecTemplateWithData can be called later to fill data into the spec template. -- options: Optional, option parameters, include the following: - - - chartTypeList (ChartType[], optional): Supported chart type list. If not undefined, a chart will be generated from the chart types specified in this list. - - enableDataQuery (boolean, optional): Determines whether to enable data aggregation during chart generation - - colorPalette (Array, optional): Used to set the color palette of the chart - - animationDuration (number, optional): Used to set the playback duration of the chart animation - - theme (ChartTheme | string, optional): Sets the theme style of the final spec. By default, VMind uses a theme style with gradient colors. You can set VChart's general light or dark theme ('light' | 'dark') or a theme style that suits your usage scenario. - -## Return Value Type: - -```typescript -interface GenerateChartResult { - /** Chart spec */ - spec: Record; - /** Chart type */ - chartType: ChartType; - /** Final visual channel mapping */ - cell: Cell; - /** Token consumption */ - usage: Usage; - /* Specific command to generate the current chart, consistent with user prompt in the case of user prompt */ - command: string; - /** Configuration time used for converting to gif/video */ - time: { - totalTime : number; - frameArr: number[]; - }; - /** Rule-based chart recommendation results, generated as a fallback when manually setting rules or when the large model generation is incorrect */ - chartAdvistorRes: { - /** Chart spec */ - spec: Record; - /** Chart type */ - chartType: ChartType; - /** Recommendation score */ - score: number - }[] -} -``` - -- spec (Object): The generated VChart chart spec. If the dataset is empty, it is a spec template that does not contain data -- chartType (ChartType): The type of the chart generated, see `Chart Type List` section -- cell (Record): The field mapping in the chart, describing how the fields in the dataset map to the various visual channels on the chart -- usage (any): Total LLM token consumption -- time (number): The duration of the chart animation, which can be used to export GIF and video -- chartAdvistorRes (Array): This result is the chart recommendation result derived based on the current data and field information through VMind's built-in rules, generated as a fallback when the model is set to `Model.CHART_ADVISOR` or the user's large model settings are incorrect and no result can be obtained. For details, see: [Rule-Based Chart Generation](../guide/Basic_Tutorial/Chart_Advisor)- - -## Usage Example: - -```typescript -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) -const dataset=[ -{ -"Product Name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product Name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product Name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product Name": "Coke", -"region": "north", -"Sales": 1027 -} -] -const userPrompt = 'Show product sales in different regions'; -const fieldInfo=vmind.getFieldInfo(dataset) - -const { spec } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -### Generate a chart with a custom color palette -```typescript -//Setting up a custom color palette -const colorPalette = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']; - -const { spec } = await vmind.generateChart(userPrompt, fieldInfo, dataset, {colorPalette}); -``` - -VMind also comes built-in with [Arco-design](https://www.visactor.io/vchart/theme/demo/arco), [Semi-design](https://www.visactor.io/vchart/theme/demo/semi), [VeO design](https://www.visactor.io/vchart/theme/demo/arco), and other multiple theme color palettes, which can be directly imported to use: -```typescript -import VMind, {ArcoTheme} from '@visactor/vmind'; - -// Use Arco-design color palette -const {spec} = await vmind.generateChart(describe, finalFieldInfo, finalDataset, { -colorPalette: ArcoTheme.colorScheme -}); -``` -Built-in color palette list: -- `SemiTheme`: Semi design theme color palette -- `ArcoTheme`: Arco design theme color palette -- `VeOTheme`: VeO design theme color palette -- `VeOThemeFinance`: VeO design for finance industry theme color palette -- `VeOThemeGovernment`: VeO design for government industry theme color palette -- `VeOThemeConsumer`: VeO design for consumer industry theme color palette -- `VeOThemeAutomobile`: VeO design for automobile industry theme color palette -- `VeOThemeCulturalTourism`: VeO design for cultural tourism industry theme color palette -- `VeOThemeMedical`: VeO design for medical industry theme color palette -- `VeOThemeNewEnergy`: VeO design for new energy industry theme color palette - -### Limit the type of charts generated -```typescript -import VMind, {ChartType} from '@visactor/vmind'; - -//Restrict the generation of the following types of charts: bar charts, line charts, scatter plots, pie charts, word clouds -const chartTypeList = [ -ChartType.BarChart, -ChartType.LineChart, -ChartType.ScatterPlot, -ChartType.PieChart, -ChartType.WordCloud -] - -const { spec } = await vmind.generateChart(userPrompt, fieldInfo, dataset, {chartTypeList}); -``` - -### Generate a spec template without a dataset -In some cases, we may generate a chart without a specific dataset, but only with data fields (for example, generate a chart based on the fields in the dataset before querying, and then complete the relevant query based on the type and fields of the chart generated), and then call the fillSpecWithData method to get the final spec for chart rendering: - -```typescript -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) - -const userPrompt = 'Show product sales in different regions'; -const fieldInfo=[ -{ -"fieldName": "Product Name", -"type": "string", -"role": "dimension", -"domain": [ -"Coke", -"Sprite", -"Fanta", -"Awake" -] -}, -{ -"fieldName": "region", -"type": "string", -"role": "dimension", -"domain": [ -"south", -"east", -"west", -"north" -] -}, -{ -"fieldName": "Sales", -"type": "int", -"role": "measure", -"domain": [ -28, -2350 -] -} -] -//Do not pass in the dataset, generate a spec template -const { spec } = await vmind.generateChart(userPrompt, fieldInfo); - -//Fill in data into the template -const dataset=[ -{ -"Product Name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product Name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product Name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product Name": "Coke", -"region": "north", -"Sales": 1027 -} -] - -const spec = vmind.fillSpecWithData(spec, dataset) -``` - -## Notes: - -- The generateChart method will pass the userPrompt and fieldInfo to the large language model for chart generation, but the detailed data in the dataset will not be passed. -- In the process of generating the chart, VMind will first use the large language model, according to the userPrompt and fieldInfo, to recommend a suitable chart type. Then, it will map the fields in the fieldInfo to the x-axis, y-axis, color, size and other visual channels of the chart. -- VMind will add an entrance animation to the generated chart by default, so it will also return the duration of the chart animation time. If you want to turn off the chart animation, you can set spec.animation to false. -- When the model type is set to chart-advisor, it will not call a large language model to generate charts. The results generated will include multiple types of charts. For details, please refer to [Rule-based Chart Generation](../guide/Basic_Tutorial/Chart_Advisor). - -## Related Tutorials -- [Intelligent Chart Generation](../guide/Basic_Tutorial/Chart_Generation) -- [Rule-based Chart Generation](../guide/Basic_Tutorial/Chart_Advisor) - diff --git a/docs/assets/api/en/getFieldInfo.md b/docs/assets/api/en/getFieldInfo.md deleted file mode 100644 index 8d6effbd..00000000 --- a/docs/assets/api/en/getFieldInfo.md +++ /dev/null @@ -1,90 +0,0 @@ - -# getFieldInfo - -## Interface Description - -The getFieldInfo interface is used to parse JSON-structured data to obtain field information (fieldInfo). FieldInfo includes field name, type, value range, and other information, and its structure is as follows: -```typescript -export interface FieldInfo = { - /** name of field */ - fieldName: string; - /** field type, eg: time / category / numerical */ - type: DataType; - /** field role */ - role: ROLE; - /** alias of field */ - alias?: string; - /** description of field */ - description?: string; -}; - -export enum DataType { - DATE = 'date', - TIME = 'time', - STRING = 'string', - REGION = 'region', - NUMERICAL = 'numerical', - RATIO = 'ratio', - COUNT = 'count', - FLOAT = 'float', - INT = 'int' -} - -export enum ROLE { - DIMENSION = 'dimension', - MEASURE = 'measure' -} -``` - -## Interface Parameters - -```typescript -getFieldInfo(dataset: Record[]): FieldInfo[] -``` - -- dataset: JSON-formatted data set, an array, each element of which is an object, with the key being the field name and the value being the corresponding data. - -## Return Value Type - -Returns an array of fieldInfo, representing the parsed field information. Each element is an object that contains the following attributes: -```bash -- fieldName: string type, representing the field name. -- description: string type, representing the field description, optional. -- type: DataType type, representing the field type, can be "string", "int", "float", "date". -- role: ROLE type, representing the field role, can be "dimension", "measure". -``` - -## Usage Example - -```typescript -import VMind from '@visactor/vmind' - -const dataset=[ -{ -"Product name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "north", -"Sales": 1027 -} -] - -const vmind = new VMind(options) -const fieldInfo = vmind.getFieldInfo(dataset); -``` - -## Related Tutorials -[Data Format and Data Processing](../guide/Basic_Tutorial/Chart_Generation) diff --git a/docs/assets/api/en/getInsights.md b/docs/assets/api/en/getInsights.md deleted file mode 100644 index a45163ff..00000000 --- a/docs/assets/api/en/getInsights.md +++ /dev/null @@ -1,153 +0,0 @@ -# getInsights - -## Interface Description - -The getInsights interface generates insights for the current chart based on the VChart Spec configuration and insight options. The final insights are sorted in descending order of confidence scores. - -## Interface Parameters - -```typescript -getInsights(spec: any, options?: DataInsightOptions): { insights: Insights[], usage: Usage }; - -export interface DataInsightOptions { - /** Maximum number of insights to generate */ - maxNum?: number; - /** Maximum number of insights for each specific insight type, which takes precedence over maxNum */ - detailMaxNum?: { - types: InsightType[]; - maxNum: number; - }[]; - /** Algorithms to use */ - algorithms?: AlgorithmType[]; - /** Hyperparameter settings for each algorithm */ - algorithmOptions?: AlgorithmOptions; - /** Whether to consider chart type for insight results, e.g., clustering algorithms are only used in scatter plots */ - isLimitedbyChartType?: boolean; - /** Whether to use a large model for text polishing */ - usePolish?: boolean; - /** answer language */ - language?: 'chinese' | 'english'; -} -``` - -### Insight Types -The specific insight types are as follows, comprising 12 types in total. -```ts -export enum InsightType { - /** Minimum value */ - Min = 'min', - /** Maximum value */ - Max = 'max', - /** Average value */ - Avg = 'avg', - /** Outlier */ - Outlier = 'outlier', - /** Extreme value */ - ExtremeValue = 'extreme_value', - /** Majority value with significant contribution */ - MajorityValue = 'majority_value', - /** Turning point */ - TurningPoint = 'turning_point', - /** Overall trend */ - OverallTrend = 'overall_trend', - /** Abnormal trend */ - AbnormalTrend = 'abnormal_trend', - /** Abnormal band */ - AbnormalBand = 'abnormal_band', - /** Correlation */ - Correlation = 'correlation', - /** Volatility */ - Volatility = 'volatility' -} -``` - -### Built-in Algorithms -All built-in algorithms in VMind are as follows: -```ts -export enum AlgorithmType { - /** Overall/abnormal trend, using Mann-Kendall Test for trend detection */ - OverallTrending = 'overallTrend', - AbnormalTrend = 'abnormalTrend', - /** Pearson Correlation Coefficient / Spearman Correlation for correlation detection */ - PearsonCorrelation = 'pearsonCorrelation', - SpearmanCorrelation = 'spearmanCorrelation', - /** Statistical extreme values and majority values */ - ExtremeValue = 'extremeValue', - MajorityValue = 'majorityValue', - /** zScore global outlier detection and IQR (Interquartile Range) global outlier detection algorithms as the main statistical methods */ - StatisticsAbnormal = 'statisticsAbnormal', - /** Basic indicators, including maximum, minimum, average values */ - StatisticsBase = 'statisticsBase', - /** DBSCAN-based outlier detection algorithm */ - DbscanOutlier = 'dbscanOutlier', - /** LOF (Local Outlier Factor) local outlier factor detection algorithm */ - LOFOutlier = 'lofOutlier', - /** Bayesian Inference turning point detection algorithm */ - TurningPoint = 'turningPoint', - /** Page-Hinkley Test for time series anomaly detection */ - PageHinkley = 'pageHinkley', - /** Coefficient of Variation for periodicity detection based on the coefficient of variation */ - Volatility = 'volatility' -} -``` - -### Default Values -By default, VMind enables `isLimitedbyChartType` and `usePolish`, and all algorithms are enabled by default. - -## Return Value Type -The return value `insight` is an array of insights, with a single insight type as follows: -```ts -export interface Insight { - /** Insight name */ - name: string; - /** Insight type */ - type: InsightType; - /** Specific data corresponding to the insight */ - data: { - /** Index number */ - index: number; - /** Specific data item */ - dataItem: DataItem; - }[]; - /** Data field ID corresponding to the outlier, e.g., sales, growth rate, etc. */ - fieldId?: string; - /** Specific series name, e.g., "Northeast" | "Apple" or other specific category data names */ - seriesName?: DataCell | DataCell[]; - /** Semantic data expression, including placeholders */ - textContent?: { - // Original text content - content: string; - // Plain text after parsing variable placeholders - plainText: string; - // Mapping of variables - variables?: Record; - }; - // Specific value of the insight - value?: number | string; - /** Confidence score of the insight, used for insight sorting, the higher the score, the more important the insight */ - significant: number; - info?: { [key: string]: any }; // Additional information about this insight -} - -export interface InsightTextContent { - /** Parsed value */ - value: DataCell; - /** Formatted value */ - formatValue?: string; // Formatted value - /** Field name */ - fieldName: string; - /** Current color */ - color?: string; - /** Type of value, e.g., ascending trend or descending trend */ - valueType?: 'ascendTrend' | 'descendTrend' | string; - /** Icon type, e.g., ratio, ascending trend, or descending trend */ - icon?: 'ratio' | 'ascendTrend' | 'descendTrend' | string; - /** Whether it is a measure value */ - isMeasure?: boolean; - /** Whether it is a dimension value */ - isDimValue?: boolean; -} -``` - -### Specific Examples and Related Tutorials -[Intelligent Insights](../guide/Basic_Tutorial/Chart_Insight) diff --git a/docs/assets/api/en/parseCSVData.md b/docs/assets/api/en/parseCSVData.md deleted file mode 100644 index 0997fec8..00000000 --- a/docs/assets/api/en/parseCSVData.md +++ /dev/null @@ -1,61 +0,0 @@ - -# parseCSVData - -## Interface Description - -The parseCSVData interface is used to convert CSV strings into the dataset and field information required by VMind. - -## Interface Parameters - -```typescript -parseCSVData(csv: string): { fieldInfo: FieldInfo[], dataset: any[] } -``` - -- csv: A string type, representing the CSV string to be parsed. - -## Return Value Type - -Returns an object containing two properties: - -- fieldInfo: Type of FieldInfo[], representing the parsed field information, each element is an object, containing the following properties: - -```bash -- fieldName: string type, representing the field name. -- description: string type, representing the field description, optional. -- type: DataType type, representing the field type, can be "string", "int", "float", "date". -- role: ROLE type, representing the field role, can be "dimension", "measure". -``` - - -- dataset: DataItem type, representing the parsed dataset, each element is an object, the key is the field name, and the value is the corresponding data: -```ts -type DataItem = Record; -``` - -## Usage Example - -```typescript -import VMind from '@visactor/vmind' -const csv=`Product name,region,Sales -Coke,south,2350 -Coke,east,1027 -Coke,west,1027 -Coke,north,1027 -Sprite,south,215 -Sprite,east,654 -Sprite,west,159 -Sprite,north,28 -Fanta,south,345 -Fanta,east,654 -Fanta,west,2100 -Fanta,north,1679 -Mirinda,south,1476 -Mirinda,east,830 -Mirinda,west,532 -Mirinda,north,498` -const vmind = new VMind(options) -const { fieldInfo, dataset } = vmind.parseCSVData(csv); -``` - -## Related Tutorials -[Data Format and Data Processing](../guide/Basic_Tutorial/Chart_Generation) diff --git a/docs/assets/api/en/text2Chart.md b/docs/assets/api/en/text2Chart.md deleted file mode 100644 index d7baff74..00000000 --- a/docs/assets/api/en/text2Chart.md +++ /dev/null @@ -1,119 +0,0 @@ -# text2Chart - -## Interface Description: -The text2Chart function is used to call the LLM to complete two tasks: data extraction and intelligent chart generation. It returns the generated chart spec, chart two-dimensional data table, chart type, and field mapping, etc. This function enables the intelligent process of generating charts from plain text in one step. - -## Supported Models: -- GPT models -- Doubao models -- DeepSeek models -- Any other models - -## Chart Type List -VMind supports 25 common chart types: -```typescript -export enum ChartType { - DynamicBarChart = 'Dynamic Bar Chart', - BarChart = 'Bar Chart', - LineChart = 'Line Chart', - AreaChart = 'Area Chart', - PieChart = 'Pie Chart', - ScatterPlot = 'Scatter Plot', - WordCloud = 'Word Cloud', - RoseChart = 'Rose Chart', - RadarChart = 'Radar Chart', - SankeyChart = 'Sankey Chart', - FunnelChart = 'Funnel Chart', - DualAxisChart = 'Dual Axis Chart', - WaterFallChart = 'Waterfall Chart', - BoxPlot = 'Box Plot', - LinearProgress = 'Linear Progress chart', - CircularProgress = 'Circular Progress chart', - LiquidChart = 'Liquid Chart', - BubbleCirclePacking = 'Bubble Circle Packing', - MapChart = 'Map Chart', - RangeColumnChart = 'Range Column Chart', - SunburstChart = 'Sunburst Chart', - TreemapChart = 'Treemap Chart', - Gauge = 'Gauge Chart', - BasicHeatMap = 'Basic Heat Map', - VennChart = 'Venn Chart' -} -``` -You can restrict the type of chart generated through the chartTypeList in the options parameter. - -## Interface Parameters: - -```typescript -interface GenerateChartParams { - text: string, - userPrompt: string; - dataset?: Array>; - options?: { - fieldInfo?: FieldInfo[]; - chartTypeList?: ChartType[]; - colorPalette?: string[]; - animationDuration?: number; - theme?: ChartTheme | string; - enableDataQuery?: boolean; - } -} -``` - -- text (string): Required, the original text content -- userPrompt (string): Optional, the user's visualization intent (what data you mainly want to extract from the text and how to display it with a chart) -- options: Optional, option parameters, including: - - - fieldInfo (Array): Field information contained in the text type, including field names, types, etc.; in scenarios where fieldInfo is provided, VMind will only extract content related to the passed fieldInfo - - chartTypeList (ChartType[], optional): Supported chart type list. If not undefined, a chart will be generated from the chart types specified in this list. - - enableDataQuery (boolean, optional): Decides whether to enable data aggregation during chart generation - - colorPalette (Array, optional): Used to set the color palette of the chart - - animationDuration (number, optional): Used to set the playback duration of the chart animation - - theme (ChartTheme | string, optional): Sets the theme style of the final spec. By default, VMind uses a theme style with gradient colors. You can set VChart's general light or dark theme ('light' | 'dark') or a theme style that suits your usage scenario - -## Return Value Type: - -```typescript -interface GenerateChartResult { - /** Chart spec */ - spec: Record; - /** Extracted data */ - dataTable: DataTable; - /** Field information */ - fieldInfo: FieldInfo[]; - /** Chart type */ - chartType: ChartType; - /** Final visual channel mapping */ - cell: Cell; - /** Token consumption */ - usage: Usage; - /* Specific command to generate the current chart, consistent with user prompt if provided */ - command: string; - /** Configuration time used for converting to gif/video */ - time: { - totalTime : number; - frameArr: number[]; - }; - /** Rule-based chart recommendation results, generated when manually setting rules or when the large model generation is incorrect */ - chartAdvistorRes: { - /** Chart spec */ - spec: Record; - /** Chart type */ - chartType: ChartType; - /** Recommendation score */ - score: number - }[] -} -``` - -- spec (Object): The generated VChart chart spec. If the dataset is empty, it is a spec template without data -- dataTable (Record[]): The two-dimensional table data extracted from the text -- fieldInfo (FieldInfo): Field information extracted from the text when the user has not provided fieldInfo, i.e., the header information of the two-dimensional table -- chartType (ChartType): The generated chart type, see the "Chart Type List" section -- cell (Record): Field mapping in the chart, describing how fields in the dataset are mapped to various visual channels of the chart -- usage (any): Total LLM token consumption -- time (number): Duration information of the chart animation, can be used for exporting GIFs and videos -- chartAdvistorRes(Array): This result is the chart recommendation result deduced based on the current data and field information through VMind's built-in rules, generated as a fallback when some wrong happens in LLM. See: [Rule-Based Chart Generation](../guide/Basic_Tutorial/Chart_Advisor) - -# Usage Example -[Data Extraction - Generate Chart from Text in One Step](../guide/Basic_Tutorial/Data_Extraction) diff --git a/docs/assets/api/menu.json b/docs/assets/api/menu.json deleted file mode 100644 index 1b6f0171..00000000 --- a/docs/assets/api/menu.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "menu": "scripts", - "children": [ - { - "path": "VMind_Instance", - "title": { - "zh": "VMind实例", - "en": "VMind Instance" - } - }, - { - "path": "parseCSVData", - "title": { - "zh": "parseCSVData", - "en": "parseCSVData" - } - }, - { - "path": "getFieldInfo", - "title": { - "zh": "getFieldInfo", - "en": "getFieldInfo" - } - }, - { - "path": "fillSpecWithData", - "title": { - "zh": "fillSpecWithData", - "en": "fillSpecWithData" - } - }, - { - "path": "dataQuery", - "title": { - "zh": "dataQuery", - "en": "dataQuery" - } - }, - { - "path": "generateChart", - "title": { - "zh": "generateChart", - "en": "generateChart" - } - }, - { - "path": "text2Chart", - "title": { - "zh": "text2Chart", - "en": "text2Chart" - } - }, - { - "path": "getInsights", - "title": { - "zh": "getInsights", - "en": "getInsights" - } - } - ] -} \ No newline at end of file diff --git a/docs/assets/api/zh/VMind_Instance.md b/docs/assets/api/zh/VMind_Instance.md deleted file mode 100644 index 2ccd708a..00000000 --- a/docs/assets/api/zh/VMind_Instance.md +++ /dev/null @@ -1,114 +0,0 @@ -# VMind实例 - -## 接口描述 - -创建VMind实例接口用于创建一个VMind实例,该实例可以用于进行智能可视化操作。在创建VMind实例时,需要传入一个options对象作为参数,该对象中包含了一些关键的信息,例如模型的url,模型类型,以及LLM服务请求的headers等。 - - -## 接口参数 - -### VMindOptions - -```ts -export interface VMindOptions { - /** URL of your LLM service. For gpt, default is openAI API. */ - url?: string; - /** llm request header, which has higher priority */ - headers?: HeadersInit; - /** post or get */ - method?: 'POST' | 'GET'; - /** LLM Model */ - model?: Model | string; - /** Max token in LLM Chart */ - maxTokens?: number; - /** Temperature of LLM */ - temperature?: number; - /** show llm thoughs or not */ - showThoughts?: boolean; - /** repetition penalty */ - frequencyPenalty?: number; - /** topP */ - topP?: number; - /** custom llm request func */ - customRequestFunc?: { - /** 图表生成任务 */ - chartAdvisor?: RequestFunc; - /** 数据查询任务 */ - dataQuery?: RequestFunc; - /** 文本中提取数据任务 */ - dataExtraction?: RequestFunc; - /** 图表生成中指令生成任务 */ - chartCommand?: RequestFunc; - /** 洞察生成任务 */ - IntelligentInsight?: RequestFunc; - }; -} -``` - -### url - -url参数用于指定LLM服务api的地址,默认值是https://api.openai.com/v1/chat/completions。在使用VMind的过程中,所有需要调用LLM的地方都会向这个url发送http请求。 - -### headers - -headers参数用于指定请求LLM服务时的http headers。最常见的用法是将你的api key放入headers中用作鉴权;当然,你也可以将任何你需要的字段放入headers中。 - -### method - -method参数用于指定请求LLM时的方法类型,通常为POST。 - -### model - -model参数用于指定模型种类。这个字段将被放入LLM服务的请求体中。你可以从VMind中引入Model类型并用作model字段的值。也可以指定除VMind Model之外其他任何Model名称 - -```ts -export enum Model { - GPT3_5 = 'gpt-3.5-turbo', - GPT3_5_1106 = 'gpt-3.5-turbo-1106', - GPT4 = 'gpt-4', - GPT_4_0613 = 'gpt-4-0613', - GPT_4o = 'gpt-4o-2024-08-06', - DOUBAO_LITE = 'doubao-lite-32K', - DOUBAO_PRO = 'doubao-pro-128k', - CHART_ADVISOR = 'chart-advisor', - DEEPSEEK_V3 = 'deepseek-chat', - DEEPSEEK_R1 = 'deepseek-reasoner' -} -``` - -### max_tokens和temperature - -这两个参数分别决定模型生成内容的最大token数量和每次生成结果的随机性,详见[OpenAI官方文档](https://platform.openai.com/docs/api-reference/chat/create)。 - -在VMind中,这两个参数的默认值分别是2048和0. - -### TopP -用于控制输出tokens的多样性,TopP值越大输出的tokens类型越丰富,取值范围0~1,VMind默认为0. - - -### frequencyPenalty --2.0到2.0之间的数字,正值会根据新token在文本中出现的频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。VMind默认为0. - -### showThoughts - -showThoughts参数将影响VMind传给大语言模型的prompt,决定其在完成图表生成、数据聚合等任务时,是否将思考过程添加到输出结果中。在VMind中,showThoughts默认为true。 - -### customRequestFunc - -customRequestFunc参数允许用户自定义在每种任务中调用LLM的方法。例如,你可以通过RPC的形式请求你自己的LLM服务。 - -## 使用示例 - -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - model: Model.GPT4o, //使用gpt-4o模型 - headers: { //指定调用LLM服务时的header - Authorization: `Bearer ${OPENAI_API_KEY}` //Your OPENAI_API_KEY - } -}) -``` - -## 相关教程 -[创建VMind实例](../guide/Basic_Tutorial/Create_VMind_Instance) diff --git a/docs/assets/api/zh/dataQuery.md b/docs/assets/api/zh/dataQuery.md deleted file mode 100644 index 51ec9b6c..00000000 --- a/docs/assets/api/zh/dataQuery.md +++ /dev/null @@ -1,84 +0,0 @@ -# dataQuery - -## 接口描述: -dataQuery函数是一个强大的数据聚合工具,它接收三个参数:用户展示意图userPrompt,数据集字段信息fieldInfo和原始数据集dataset。VMind会根据用户的展示意图,编写SQL语句并对dataset执行查询,查询结果会被储存在函数返回值的dataset属性中;同时,查询结果中的字段可能会发生变化,更新后的字段信息也会被储存在返回结果的fieldInfo属性中。 - -## 支持模型: -- GPT模型 -- 豆包模型 -- DeepSeek模型 -- 其他任意模型 - -## 接口参数: -``` typescript -/** - * - * @param userPrompt(string) 用户的展示意图,例如“展示各商品销售额”。 - * @param dataset(DataTable) 原始数据集,是一个对象数组,每个对象代表一条数据。 - * @param fieldInfo(FieldInfo[]) 可选,数据集字段信息,包含字段名称、类型和角色。在不传入的情况下,VMind会根据dataset自动解析一份fieldInfo配置 - * @returns new FieldInfo && new DataSet after user's query - */ -``` - -## 返回值类型: -```typescript -{ - // 更新后的字段信息。 - fieldInfo: FieldInfo[]; - // 查询后的数据表 - dataTable: DataTable; -} -``` - -## 使用示例: - -```ts -import VMind from '@visactor/vmind' - -const sourceDataset = [ - { - "Product name": "Coke", - "Sales": 2350 - }, - { - "Product name": "Sprite", - "total_sales": 1056 - }, - { - "Product name": "Fanta", - "total_sales": 4778 - }, - { - "Product name": "Mirinda", - "total_sales": 3336 - } -// ...其他数据 -] - -const sourceFieldInfo = [ - { - "fieldName": "Product name", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "Sales", - "type": "int", - "role": "measure" - } -] - -const userPrompt=`展示各商品销售额` -const vmind = new VMind(options) - -//调用dataQuery传入userPrompt,sourceFieldInfo和sourceDataset,执行数据聚合 -const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceDataset, sourceFieldInfo); -``` - -## 注意事项: - -- dataQuery方法会将userPrompt和fieldInfo传递给大模型用于生成SQL,dataset中的明细数据并不会被传递。 -- dataQuery执行过程中,目前支持的SQL关键词有:SELECT, GROUP BY, WHERE, HAVING, ORDER BY, LIMIT。目前支持的聚合函数有:MAX(), MIN(), SUM(), COUNT(), AVG(),但不支持子查询、JOIN、条件语句等复杂的SQL操作。 - -## 相关教程 -[数据聚合](../guide/Basic_Tutorial/Data_Aggregation) diff --git a/docs/assets/api/zh/fillSpecWithData.md b/docs/assets/api/zh/fillSpecWithData.md deleted file mode 100644 index a9dfdc15..00000000 --- a/docs/assets/api/zh/fillSpecWithData.md +++ /dev/null @@ -1,97 +0,0 @@ - -# fillSpecWithData - -## 接口描述: -fillSpecWithData用于向spec模板中填入数据,以生成一个完整的spec。根据图表类型的不同,将采取不同的填充策略。 - -## 接口参数: - -```typescript -fillSpecWithData( - spec: any, - dataset: Array>, - totalTime?: number - ) -``` - -- spec (any): spec模板,包含除data之外的所有属性。可通过[generateChart](./generateChart)生成 -- dataset (Array): 图表中使用的数据集,会被填充到spec模板中。 -- totalTime (number): 可选项,图表动画时长(ms) - -## 返回值: -返回填充后的spec,可直接用于图表渲染 - -## 使用示例: -某些情况下我们可能在仅有数据字段,没有具体的数据集的情况下生成图表(例如在查询前根据数据集中的字段生成一个图表,再根据生成的图表类型、图表中的字段完成相关查询),此时可在调用generateChart方法时不传入dataset,生成spec模板,随后再调用fillSpecWithData方法,获得最终的spec用于图表渲染: - -```typescript -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) - -const userPrompt = '展示不同地区商品销售额'; -const fieldInfo = [ - { - "fieldName": "商品名称", - "type": "string", - "role": "dimension", - "domain": [ - "可乐", - "雪碧", - "芬达", - "醒目" - ] - }, - { - "fieldName": "region", - "type": "string", - "role": "dimension", - "domain": [ - "south", - "east", - "west", - "north" - ] - }, - { - "fieldName": "销售额", - "type": "int", - "role": "measure", - "domain": [ - 28, - 2350 - ] - } -] -//不传入dataset,生成spec模板 -const { spec } = await vmind.generateChart(userPrompt, fieldInfo); - -//向模板中填入数据 -const dataset = [ - { - "商品名称": "Coke", - "region": "south", - "销售额": 2350 - }, - { - "商品名称": "Coke", - "region": "east", - "销售额": 1027 - }, - { - "商品名称": "Coke", - "region": "west", - "销售额": 1027 - }, - { - "商品名称": "Coke", - "region": "north", - "销售额": 1027 - } -] - -const spec = vmind.fillSpecWithData(spec, dataset) -``` - -## 相关教程 -- [图表智能生成](../guide/Basic_Tutorial/Chart_Generation) diff --git a/docs/assets/api/zh/generateChart.md b/docs/assets/api/zh/generateChart.md deleted file mode 100644 index bea62f59..00000000 --- a/docs/assets/api/zh/generateChart.md +++ /dev/null @@ -1,278 +0,0 @@ - -# generateChart - -## 接口描述: -generateChart函数用于调用LLM完成图表智能生成,返回生成的图表spec、图表类型和字段映射等。 -若传入的dataset为undefined,则会生成一个spec模板,后续可调用fillSpecWithData向spec中填入数据。 - -## 支持模型: -- GPT模型 -- 豆包模型 -- DeepSeek模型 -- [chart-advisor](../guide/Basic_Tutorial/Chart_Advisor) -- 其他任意模型 - -## 图表类型列表 -VMind支持25种常见的图表类型: -```typescript -export enum ChartType { - DynamicBarChart = 'Dynamic Bar Chart', - BarChart = 'Bar Chart', - LineChart = 'Line Chart', - AreaChart = 'Area Chart', - PieChart = 'Pie Chart', - ScatterPlot = 'Scatter Plot', - WordCloud = 'Word Cloud', - RoseChart = 'Rose Chart', - RadarChart = 'Radar Chart', - SankeyChart = 'Sankey Chart', - FunnelChart = 'Funnel Chart', - DualAxisChart = 'Dual Axis Chart', - WaterFallChart = 'Waterfall Chart', - BoxPlot = 'Box Plot', - LinearProgress = 'Linear Progress chart', - CircularProgress = 'Circular Progress chart', - LiquidChart = 'Liquid Chart', - BubbleCirclePacking = 'Bubble Circle Packing', - MapChart = 'Map Chart', - RangeColumnChart = 'Range Column Chart', - SunburstChart = 'Sunburst Chart', - TreemapChart = 'Treemap Chart', - Gauge = 'Gauge Chart', - BasicHeatMap = 'Basic Heat Map', - VennChart = 'Venn Chart' -} -``` -可通过options参数中的chartTypeList限制生成的图表类型。 - -## 接口参数: - -```typescript -interface GenerateChartParams { - userPrompt: string; - fieldInfo: Array<{ - fieldName: string; - type: string; - role: string; - }>; - dataset?: Array>; - options?: { - chartTypeList?: ChartType[]; - colorPalette?: string[]; - animationDuration?: number; - enableDataQuery?: boolean; - theme?: ChartTheme | string; - } -} -``` - -- userPrompt (string): 用户的可视化意图(你想用图表展示什么信息) -- fieldInfo (Array): 数据集中字段的信息,包括字段名称,类型等 -- dataset (Array): 图表中使用的原始数据集,可以是undefined。若dataset为undefined,则会生成一个spec模板,后续可以调用fillSpecTemplateWithData将数据填充到spec模板。 -- options: 可选,选项参数,包括以下内容: - - - chartTypeList (ChartType[],可选): 支持的图表类型列表。若不为undefined,则会从该列表指定的图表类型中选择生成。 - - enableDataQuery (boolean, 可选): 决定是否在图表生成过程中开启数据聚合 - - colorPalette (Array, 可选): 用于设置图表的调色板 - - animationDuration (number, 可选): 用于设置图表动画的播放持续时间 - - theme (ChartTheme | string, 可选): 设置最终sepc的主题样式,默认为空,VMind会默认使用带渐变颜色的主题样式,可以设置 VChart 通用深浅主题('light' | 'dark')或者符合你使用场景下的主题样式 -## 返回值类型: - -```typescript -interface GenerateChartResult { - /** 图表spec */ - spec: Record; - /** 图表类型*/ - chartType: ChartType; - /** 最终的视觉通道映射 */ - cell: Cell; - /** token 消耗量 */ - usage: Usage; - /* 生成当前图表的具体指令,在user prompt的情况下跟user prompt一致 */ - command: string; - /** 转唯gif/video时所用的配置时间 *// - time: { - totalTime : number; - frameArr: number[]; - }; - /** 基于规则的图表推荐结果,在手动设置规则或者大模型生成有误情况下产生 */ - chartAdvistorRes: { - /** 图表spec */ - spec: Record; - /** 图表类型*/ - chartType: ChartType; - /** 推荐得分 */ - score: number - }[] -} -``` - -- spec (Object): 生成的VChart图表spec。若dataset为空,则为不包含数据的spec模板 -- chartType (ChartType): 生成的图表类型,参见`图表类型列表`章节 -- cell (Record): 图表中的字段映射,描述数据集中的字段如何映射到图表的各个视觉通道上 -- usage (any): LLM token总消耗 -- time (number): 图表动画的时长信息,可用于导出GIF和视频 -- chartAdvistorRes(Array): 该结果是根据当前数据和字段信息,通过VMind的内置规则推导得到的图表推荐结果,在设置模型为`Model.CHART_ADVISOR`或者用户的大模型设置有误,无法获取结果时兜底产生。详见:[基于规则的图表生成](../guide/Basic_Tutorial/Chart_Advisor) -## 使用示例: - -```typescript -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) -const dataset=[ - { - "商品名称": "Coke", - "region": "south", - "销售额": 2350 - }, - { - "商品名称": "Coke", - "region": "east", - "销售额": 1027 - }, - { - "商品名称": "Coke", - "region": "west", - "销售额": 1027 - }, - { - "商品名称": "Coke", - "region": "north", - "销售额": 1027 - } -] -const userPrompt = '展示不同地区商品销售额'; -const fieldInfo=vmind.getFieldInfo(dataset) - -const { spec } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -### 使用自定义色板生成图表 -```typescript -//设置自定义色板 -const colorPalette = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']; - -const { spec } = await vmind.generateChart(userPrompt, fieldInfo, dataset, {colorPalette}); -``` - -VMind还内置了[Arco-design](https://www.visactor.io/vchart/theme/demo/arco),[Semi-design](https://www.visactor.io/vchart/theme/demo/semi),[源力设计](https://www.visactor.io/vchart/theme/demo/arco)等多套主题色板,可直接导入使用: -```typescript -import VMind, {ArcoTheme} from '@visactor/vmind'; - -//使用Arco-design色板 -const {spec} = await vmind.generateChart(describe, finalFieldInfo, finalDataset, { - colorPalette: ArcoTheme.colorScheme -}); -``` -内置色板列表: -- `SemiTheme`: Semi design主题色板 -- `ArcoTheme`: Arco design主题色板 -- `VeOTheme`: 源力设计主题色板 -- `VeOThemeFinance`: 源力设计金融行业主题色板 -- `VeOThemeGovernment`: 源力设计政务行业主题色板 -- `VeOThemeConsumer`: 源力设计消费行业主题色板 -- `VeOThemeAutomobile`: 源力设计汽车行业主题色板 -- `VeOThemeCulturalTourism`: 源力设计文旅行业主题色板 -- `VeOThemeMedical`: 源力设计医药行业主题色板 -- `VeOThemeNewEnergy`: 源力设计新能源行业主题色板 - - -### 限制生成的图表类型 -```typescript -import VMind, {ChartType} from '@visactor/vmind'; - -//限制生成以下几种图表类型:柱状图,折线图,散点图,饼图,词云 -const chartTypeList = [ - ChartType.BarChart, - ChartType.LineChart, - ChartType.ScatterPlot, - ChartType.PieChart, - ChartType.WordCloud - ] - -const { spec } = await vmind.generateChart(userPrompt, fieldInfo, dataset, {chartTypeList}); -``` - -### 生成不含dataset的spec模板 -某些情况下我们可能在仅有数据字段,没有具体的数据集的情况下生成图表(例如在查询前根据数据集中的字段生成一个图表,再根据生成的图表类型、图表中的字段完成相关查询),此时可在调用generateChart方法时不传入dataset,生成spec模板,随后再调用fillSpecWithData方法,获得最终的spec用于图表渲染: - -```typescript -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) - -const userPrompt = '展示不同地区商品销售额'; -const fieldInfo=[ - { - "fieldName": "商品名称", - "type": "string", - "role": "dimension", - "domain": [ - "可乐", - "雪碧", - "芬达", - "醒目" - ] - }, - { - "fieldName": "region", - "type": "string", - "role": "dimension", - "domain": [ - "south", - "east", - "west", - "north" - ] - }, - { - "fieldName": "销售额", - "type": "int", - "role": "measure", - "domain": [ - 28, - 2350 - ] - } -] -//不传入dataset,生成spec模板 -const { spec } = await vmind.generateChart(userPrompt, fieldInfo); - -//向模板中填入数据 -const dataset=[ - { - "商品名称": "Coke", - "region": "south", - "销售额": 2350 - }, - { - "商品名称": "Coke", - "region": "east", - "销售额": 1027 - }, - { - "商品名称": "Coke", - "region": "west", - "销售额": 1027 - }, - { - "商品名称": "Coke", - "region": "north", - "销售额": 1027 - } -] - -const spec = vmind.fillSpecWithData(spec, dataset) -``` - -## 注意事项: - -- generateChart方法会将userPrompt和fieldInfo传递给大语言模型用于生成图表,但是dataset中的详细数据并不会被传递。 -- 在生成图表的过程中,VMind首先会利用大语言模型,根据userPrompt和fieldInfo,推荐一个适合的图表类型。然后,它会将fieldInfo中的字段映射到图表的x轴、y轴、颜色、尺寸等视觉通道上。 -- VMind默认会为生成的图表添加入场动画,因此它还会返回图表动画的时长time。如果你想关闭图表动画,可以将spec.animation设为false。 -- 当设定模型类型为chart-advisor时,将不需调用大型语言模型生成图表,产生的结果将包括多种图表,详情可参见[基于规则的图表生成](../guide/Basic_Tutorial/Chart_Advisor)。 -- generateChart方法不传入数据集时,无法使用智能数据聚合。 - -## 相关教程 -- [图表智能生成](../guide/Basic_Tutorial/Chart_Generation) -- [基于规则的图表生成](../guide/Basic_Tutorial/Chart_Advisor) diff --git a/docs/assets/api/zh/getFieldInfo.md b/docs/assets/api/zh/getFieldInfo.md deleted file mode 100644 index 089c571e..00000000 --- a/docs/assets/api/zh/getFieldInfo.md +++ /dev/null @@ -1,89 +0,0 @@ -# getFieldInfo - -## 接口描述 - -getFieldInfo接口用于解析JSON结构的数据以获得其中的字段信息(fieldInfo)。fieldInfo包括字段名称、类型、值域等信息,其结构如下: -```typescript -export interface FieldInfo = { - /** name of field */ - fieldName: string; - /** field type, eg: time / category / numerical */ - type: DataType; - /** field role */ - role: ROLE; - /** alias of field */ - alias?: string; - /** description of field */ - description?: string; -}; - -export enum DataType { - DATE = 'date', - TIME = 'time', - STRING = 'string', - REGION = 'region', - NUMERICAL = 'numerical', - RATIO = 'ratio', - COUNT = 'count', - FLOAT = 'float', - INT = 'int' -} - -export enum ROLE { - DIMENSION = 'dimension', - MEASURE = 'measure' -} -``` - -## 接口参数 - -```typescript -getFieldInfo(dataset: Record[]): FieldInfo[] -``` - -- dataset: JSON格式的数据集,是一个数组,每个元素是一个对象,键为字段名称,值为对应的数据。 - -## 返回值类型 - -返回一个fieldInfo数组,表示解析后的字段信息。每个元素是一个对象,包含以下属性: -```bash -- fieldName: string类型,表示字段名称。 -- description: string类型,表示字段描述,可选。 -- type: DataType类型,表示字段类型,可为"string"、"int"、"float"、"date"。 -- role: ROLE类型,表示字段角色,可为"dimension"、"measure"。 -``` - -## 使用示例 - -```typescript -import VMind from '@visactor/vmind' - -const dataset=[ - { - "Product name": "Coke", - "region": "south", - "Sales": 2350 - }, - { - "Product name": "Coke", - "region": "east", - "Sales": 1027 - }, - { - "Product name": "Coke", - "region": "west", - "Sales": 1027 - }, - { - "Product name": "Coke", - "region": "north", - "Sales": 1027 - } -] - -const vmind = new VMind(options) -const fieldInfo = vmind.getFieldInfo(dataset); -``` - -## 相关教程 -[数据格式与数据处理](../guide/Basic_Tutorial/Chart_Generation) diff --git a/docs/assets/api/zh/getInsights.md b/docs/assets/api/zh/getInsights.md deleted file mode 100644 index 1790fead..00000000 --- a/docs/assets/api/zh/getInsights.md +++ /dev/null @@ -1,153 +0,0 @@ -# getInsights - -## 接口描述 - -getInsights接口会根据VChart Spec配置和洞察配置,产生当前图表的洞察结果,最终洞察结果会按照洞察置信度得分从高到低排序。 - -## 接口参数 - -```typescript -getInsights(spec: any, options?: DataInsightOptions): { insights: Insights[], usage: Usage}; - -export interface DataInsightOptions { - /** 最多产生的洞察数量 */ - maxNum?: number; - /** 具体每个洞察类型最多产生的洞察数量,优先级高于maxNum */ - detailMaxNum?: { - types: InsightType[]; - maxNum: number; - }[]; - /** 使用哪些算法 */ - algorithms?: AlgorithmType[]; - /** 每个算法的超参数设定 */ - algorithmOptions?: AlgorithmOptions; - /** 洞察结果是否考虑图表类型,例如聚类算法只在散点图中使用 */ - isLimitedbyChartType?: boolean; - /** 是否用大模型进行文本润色 */ - usePolish?: boolean; - /** 生成文本的语言 */ - language?: 'chinese' | 'english'; -} -``` - -### 洞察类型 -具体的洞察类型如下所示,共包含12种洞察类型。 -```ts -export enum InsightType { - /** 最小值 */ - Min = 'min', - /** 最大值 */ - Max = 'max', - /** 平均值 */ - Avg = 'avg', - /** 异常点 */ - Outlier = 'outlier', - /** 极值 */ - ExtremeValue = 'extreme_value', - /** 贡献占比巨大值 */ - MajorityValue = 'majority_value', - /** 转折点 */ - TurningPoint = 'turning_point', - /** 整体趋势 */ - OverallTrend = 'overall_trend', - /** 异常趋势 */ - AbnormalTrend = 'abnormal_trend', - /** 异常区间 */ - AbnormalBand = 'abnormal_band', - /** 相关性 */ - Correlation = 'correlation', - /** 周期性 */ - Volatility = 'volatility' -} -``` - -### 内置算法 -VMind所有内置算法如下: -```ts -export enum AlgorithmType { - /** 整体/异常趋势,使用Mann-Kendall Test 趋势检测算法 */ - OverallTrending = 'overallTrend', - AbnormalTrend = 'abnormalTrend', - /** Pearson Correlation Coefficient / SpearmanCorrelation 相关性检测 */ - PearsonCorrelation = 'pearsonCorrelation', - SpearmanCorrelation = 'spearmanCorrelation', - /** 统计极值和占比贡献巨大值 */ - ExtremeValue = 'extremeValue', - MajorityValue = 'majorityValue', - /** zScore 全局异常点检测和IQR (Interquartile Range) 四分位全局异常检测算法 为主的统计学方法 */ - StatisticsAbnormal = 'statisticsAbnormal', - /** 基础指标,包括最大,最小,平均值 */ - StatisticsBase = 'statisticsBase', - /** 以DBSCAN为主的离群点检测算法 */ - DbscanOutlier = 'dbscanOutlier', - /** LOF(Local Outlier Factor) 局部异常因子检测算法 */ - LOFOutlier = 'lofOutlier', - /** Bayesian Inference 转折点检测算法 */ - TurningPoint = 'turningPoint', - /** Page-Hinkley Test 时序数据异常检测算法 */ - PageHinkley = 'pageHinkley', - /** Coefficient of Variation 基于变异系数的周期性检测 */ - Volatility = 'volatility' -} -``` - -### 默认值 -默认VMind会开启`isLimitedbyChartType`以及`usePolish`,同时默认开启所有算法 - -## 返回值类型 -返回值`insight`为洞察数组,单个洞察类型如下所示: -```ts -export interface Insight { - /** 洞察名称 */ - name: string; - /** 洞察类型 */ - type: InsightType; - /** 洞察对应的具体数据 */ - data: { - /** index编号 */ - index: number; - /** 具体数据项 */ - dataItem: DataItem; - }[]; - /** 异常点对应的数据字段id,例如为销售额。增长率等 */ - fieldId?: string; - /** 具体的图元系列名称,例如可能是"东北" | "苹果"等具体的分类数据名称 */ - seriesName?: DataCell | DataCell[]; - /** 语义化数据表达,包含占位符 */ - textContent?: { - // 原始文本内容 - content: string; - // 将变量占位符解析为文本后的纯文本 - plainText: string; - // 变量的映射 - variables?: Record; - }; - // 洞察的具体值 - value?: number | string; - /** 洞察的置信度的粉,用于洞察排序,分数越高代表洞察越重要 */ - significant: number; - info?: { [key: string]: any }; // 关于此洞察的附加信息 -} - -export interface InsightTextContent { - /** 解析值 */ - value: DataCell; - /** 格式化后的值 */ - formatValue?: string; // 格式化后的值 - /** 字段名称 */ - fieldName: string; - /** 当前颜色 */ - color?: string; - /** 值的类型,例如上升趋势或下降趋势 */ - valueType?: 'ascendTrend' | 'descendTrend' | string; - /** 图标类型,例如比率、上升趋势或下降趋势 */ - icon?: 'ratio' | 'ascendTrend' | 'descendTrend' | string; - /** 是否为度量值 */ - isMeasure?: boolean; - /** 是否为维度值 */ - isDimValue?: boolean; -} -``` - -### 具体案例和相关教程 -[智能洞察](../guide/Basic_Tutorial/Chart_Insight) diff --git a/docs/assets/api/zh/parseCSVData.md b/docs/assets/api/zh/parseCSVData.md deleted file mode 100644 index 7b4585a0..00000000 --- a/docs/assets/api/zh/parseCSVData.md +++ /dev/null @@ -1,60 +0,0 @@ -# parseCSVData - -## 接口描述 - -parseCSVData接口用于将CSV字符串转换为VMind所需的数据集(dataset)和字段信息(fieldInfo)。 - -## 接口参数 - -```typescript -parseCSVData(csv: string): { fieldInfo: FieldInfo[], dataset: any[] } -``` - -- csv: string类型,表示需要解析的CSV字符串。 - -## 返回值类型 - -返回一个对象,包含两个属性: - -- fieldInfo: FieldInfo[]类型,表示解析后的字段信息,每个元素是一个对象,包含以下属性: - -```bash -- fieldName: string类型,表示字段名称。 -- description: string类型,表示字段描述,可选。 -- type: DataType类型,表示字段类型,可为"string"、"int"、"float"、"date"。 -- role: ROLE类型,表示字段角色,可为"dimension"、"measure"。 -``` - - -- dataset: DataItem类型,表示解析后的数据集,每个元素是一个对象,键为字段名称,值为对应的数据: -```ts -type DataItem = Record; -``` - -## 使用示例 - -```typescript -import VMind from '@visactor/vmind' -const csv=`Product name,region,Sales -Coke,south,2350 -Coke,east,1027 -Coke,west,1027 -Coke,north,1027 -Sprite,south,215 -Sprite,east,654 -Sprite,west,159 -Sprite,north,28 -Fanta,south,345 -Fanta,east,654 -Fanta,west,2100 -Fanta,north,1679 -Mirinda,south,1476 -Mirinda,east,830 -Mirinda,west,532 -Mirinda,north,498` -const vmind = new VMind(options) -const { fieldInfo, dataset } = vmind.parseCSVData(csv); -``` - -## 相关教程 -[数据格式与数据处理](../guide/Basic_Tutorial/Chart_Generation) diff --git a/docs/assets/api/zh/text2Chart.md b/docs/assets/api/zh/text2Chart.md deleted file mode 100644 index 756e1ff0..00000000 --- a/docs/assets/api/zh/text2Chart.md +++ /dev/null @@ -1,119 +0,0 @@ -# text2Chart - -## 接口描述: -text2Chart函数用于调用LLM完成数据提取,图表智能生成两个任务,返回生成的图表spec、图表二维数据表,图表类型和字段映射等。实现一步从普通文本生成图表的智能化过程。 - -## 支持模型: -- GPT模型 -- 豆包模型 -- DeepSeek模型 -- 其他任意模型 - -## 图表类型列表 -VMind支持25种常见的图表类型: -```typescript -export enum ChartType { - DynamicBarChart = 'Dynamic Bar Chart', - BarChart = 'Bar Chart', - LineChart = 'Line Chart', - AreaChart = 'Area Chart', - PieChart = 'Pie Chart', - ScatterPlot = 'Scatter Plot', - WordCloud = 'Word Cloud', - RoseChart = 'Rose Chart', - RadarChart = 'Radar Chart', - SankeyChart = 'Sankey Chart', - FunnelChart = 'Funnel Chart', - DualAxisChart = 'Dual Axis Chart', - WaterFallChart = 'Waterfall Chart', - BoxPlot = 'Box Plot', - LinearProgress = 'Linear Progress chart', - CircularProgress = 'Circular Progress chart', - LiquidChart = 'Liquid Chart', - BubbleCirclePacking = 'Bubble Circle Packing', - MapChart = 'Map Chart', - RangeColumnChart = 'Range Column Chart', - SunburstChart = 'Sunburst Chart', - TreemapChart = 'Treemap Chart', - Gauge = 'Gauge Chart', - BasicHeatMap = 'Basic Heat Map', - VennChart = 'Venn Chart' -} -``` -可通过options参数中的chartTypeList限制生成的图表类型。 - -## 接口参数: - -```typescript -interface GenerateChartParams { - text: string, - userPrompt: string; - dataset?: Array>; - options?: { - fieldInfo?: FieldInfo[]; - chartTypeList?: ChartType[]; - colorPalette?: string[]; - animationDuration?: number; - theme?: ChartTheme | string; - enableDataQuery?: boolean; - } -} -``` - -- text (string): 必选,原始文本内容 -- userPrompt (string): 可选,用户的可视化意图(你想从文本中主要提取哪些数据,如何用图表进行展示) -- options: 可选,选项参数,包括以下内容: - - - fieldInfo (Array): 文本类型中包含的字段信息,包括字段名称,类型等;传递了fieldInfo的场景,VMind会只提取跟传入fieldInfo相关联的内容 - - chartTypeList (ChartType[],可选): 支持的图表类型列表。若不为undefined,则会从该列表指定的图表类型中选择生成。 - - enableDataQuery (boolean, 可选): 决定是否在图表生成过程中开启数据聚合 - - colorPalette (Array, 可选): 用于设置图表的调色板 - - animationDuration (number, 可选): 用于设置图表动画的播放持续时间 - - theme (ChartTheme | string, 可选): 设置最终sepc的主题样式,默认为空,VMind会默认使用带渐变颜色的主题样式,可以设置 VChart 通用深浅主题('light' | 'dark')或者符合你使用场景下的主题样式 - -## 返回值类型: - -```typescript -interface GenerateChartResult { - /** 图表spec */ - spec: Record; - /** 提取出来的数据 */ - dataTable: DataTable; - /** 字段信息 */ - fieldInfo: FieldInfo[]; - /** 图表类型*/ - chartType: ChartType; - /** 最终的视觉通道映射 */ - cell: Cell; - /** token 消耗量 */ - usage: Usage; - /* 生成当前图表的具体指令,在user prompt的情况下跟user prompt一致 */ - command: string; - /** 转唯gif/video时所用的配置时间 *// - time: { - totalTime : number; - frameArr: number[]; - }; - /** 基于规则的图表推荐结果,在手动设置规则或者大模型生成有误情况下产生 */ - chartAdvistorRes: { - /** 图表spec */ - spec: Record; - /** 图表类型*/ - chartType: ChartType; - /** 推荐得分 */ - score: number - }[] -} -``` - -- spec (Object): 生成的VChart图表spec。若dataset为空,则为不包含数据的spec模板 -- dataTable (Record[]): 从文本中提取到的二维表数据 -- fieldInfo (FieldInfo): 在用户没有传入fieldInfo的情况下,从文本中提取到到字段信息,即二维表的表头信息 -- chartType (ChartType): 生成的图表类型,参见`图表类型列表`章节 -- cell (Record): 图表中的字段映射,描述数据集中的字段如何映射到图表的各个视觉通道上 -- usage (any): LLM token总消耗 -- time (number): 图表动画的时长信息,可用于导出GIF和视频 -- chartAdvistorRes(Array): 该结果是根据当前数据和字段信息,通过VMind的内置规则推导得到的图表推荐结果,在大模型生成图表过程有误时兜底产生。详见:[基于规则的图表生成](../guide/Basic_Tutorial/Chart_Advisor) - -# 使用实例 -[数据提取——从文本一步生成图表](../guide/Basic_Tutorial/Data_Extraction) \ No newline at end of file diff --git a/docs/assets/changelog/en/release.md b/docs/assets/changelog/en/release.md deleted file mode 100644 index 0e1541c8..00000000 --- a/docs/assets/changelog/en/release.md +++ /dev/null @@ -1,176 +0,0 @@ -# v2.0.8 - -2025-07-11 - - -**🐛 Bug fix** - -- **@visactor/vmind**: fix legend field of heatmap, and fix position of rankingBar - -**🔨 Refactor** - -- **@visactor/vmind**: update cell of radar and rose - - - -[more detail about v2.0.8](https://github.com/VisActor/VMind/releases/tag/v2.0.8) - -# v2.0.5 - -2025-04-07 - -🆕 New Features - -@visactor/vmind: add insights to annotation function -🔖 Fixes - -insights: fix some bug in dual-charts - - -[more detail about v2.0.5](https://github.com/VisActor/VMind/releases/tag/v2.0.5) - -# v2.0.3 - -2025-03-04 - -**🆕 New Features** - -- **atom**: VMind's internal atomization feature now supports function call capability - -**🔖 Fixes** - -- **chartGeneration**: Fixed issues where stacked/percentage bar charts were not working, and bar charts were not generating correctly -- **getInsights**: Fixed an issue where, if chart values were strings, the original data obtained by insights was converted to number type, potentially causing incorrect matches - -**🔖 Others** - -- **@visactor/vmind**: Optimized type definitions - -# v2.0.2 - -2025-02-23 - - -**🔖 Fix** - -- **@visactor/vmind**: fix fieldinfo may undefiend while chart-advistor - -[more detail about v2.0.2](https://github.com/VisActor/VMind/releases/tag/v2.0.2) - -# v2.0.1 - -2025-02-21 - - -**🆕 New feature** - -- **@visactor/vmind**: Support DeepSeek and other custom model with api-key -- **@visactor/vmind**: 12 new chart types added for chart generation -- **@visactor/vmind**: Add text2Chart API -- **@visactor/vmind**: Add getInsights API - -**🔖 other** - -- **@visactor/vmind**: Overall architecture upgrade - - -[more detail about v2.0.1](https://github.com/VisActor/VMind/releases/tag/v2.0.1) - -# v1.2.12 - -2024-06-17 - - -**🔖 New featureure** - -- **@visactor/vmind**: intelligent insight module -- **@visactor/vmind**: add custom model type support -- **@visactor/vmind**: take skylark model when no model type match - -[more detail about v1.2.12](https://github.com/VisActor/VMind/releases/tag/v1.2.12) - -# v1.2.11 - -2024-04-24 - - -**🐛 Fixes** - -Fix reference error in node. - -[more detail about v1.2.11](https://github.com/VisActor/VMind/releases/tag/v1.2.11) - -# v1.2.9 - -2024-04-19 - - -**🆕 New New featureures** - -- **@visactor/vmind**: Refactored the VMind basic framework: abstracted TaskNode, Application class, used Meta for flow arrangement, and improved code reusability and scalability. -- **@visactor/vmind**: Intelligent chart generation: supports generating spec templates without a data set; supports filling data into spec templates. -- **@visactor/vmind**: Intelligent chart generation: supports selecting chart types from a specified list of chart types. - -**🐛 Fixes** - -Intelligent data aggregation: replaced alasql keyword in SQL to further improve the success rate of SQL execution. - -[more detail about v1.2.9](https://github.com/VisActor/VMind/releases/tag/v1.2.9) - - -# v1.2.7 - -March 26, 2024 - -**🆕 New Features** - -- **@visactor/vmind**: support data aggregation with skylark -- **@visactor/vmind**: support rule-based chart generation -- **@visactor/vmind**: use fold to process the dataset when there are more than 1 y field - -**🐛 Bug Fixes** - -Fixed several badcases in data aggregation and chart generation. - -[For more details, please see v1.2.7](https://github.com/VisActor/VMind/releases/tag/v1.2.7) - -# v1.2.4 - -**Planned Features** - -- GIF, video export function supports node environment -- Further standardize API -- Remove unrelated dependencies -- Optimize data aggregation function, fix a large number of badcases -- Smart Chart Generation fixes badcases - -# v1.2.3 - -**Planned Features** - -- Data aggregation function, access to headless bi calculator module, vutils -- Intelligent data aggregation, generate SQL through LLM, aggregate, filter, and sort data - -# v1.2.0 - -**Planned Features** - -1. Data module restructuring, supports direct external transmission of the dataset, bypassing the interpretation of field types by LLM. -2. Intelligent chart generation accesses skylark pro, skylark2-pro-4k models -3. Optimize chart generation performance - -# v1.1.0 - -**Planned Features** - -1. Support new chart types: Dual Axis Chart, Funnel Chart, Waterfall Chart, Box Plot -2. Refactor the data module, dock with VizSchema -3. Add a fallback mechanism when the chart generation fails, recommend charts using the chart-advisor module. - -# v1.0.6-alpha.5 - -1. Support new chart types: Sankey Diagram, Radar Chart, Rose Chart. -2. Fixed dependency errors. -3. Support for node-side calls. -4. Support for entering url and request parameters during initialization, customize model request methods: you can customize parameters such as LLM service URL, request headers, request methods, model names, maximum tokens, and temperature, etc. -5. Removed the ffmpeg dependency, replaced with external input to reduce the package volume and difficulty of installing dependencies. diff --git a/docs/assets/changelog/zh/release.md b/docs/assets/changelog/zh/release.md deleted file mode 100644 index d71440c8..00000000 --- a/docs/assets/changelog/zh/release.md +++ /dev/null @@ -1,177 +0,0 @@ -# v2.0.8 - -2025-07-11 - - -**🐛 功能修复** - -- **@visactor/vmind**: fix legend field of heatmap, and fix position of rankingBar - -**🔨 功能重构** - -- **@visactor/vmind**: update cell of radar and rose - - - -[更多详情请查看 v2.0.8](https://github.com/VisActor/VMind/releases/tag/v2.0.8) - -# v2.0.5 - -2025-04-07 - -🆕 New Features - -@visactor/vmind: add insights to annotation function -🔖 Fixes - -insights: fix some bug in dual-charts - - -[更多详情请查看 v2.0.5](https://github.com/VisActor/VMind/releases/tag/v2.0.5) - -# v2.0.3 - -2025-03-04 - -**🆕 新增功能** - -- **atom**: VMind内部原子化功能支持function call能力 - -**🔖 Fix** - -- **chartGeneration**: 修复堆积类/百分比柱图不生效的问题,修复条形图无法正确生成的问题 -- **getInsights**: 修复当图表数值为string时,洞察得到的原始数据为转为number类型的数据项,导致匹配可能有误的问题 - -**🔖 其他** - -- **@visactor/vmind**: 类型定义优化 - - -# v2.0.2 - -2025-02-23 - - -**🔖 Fix** - -- **@visactor/vmind**: fix fieldinfo may undefiend while chart-advistor - -[更多详情请查看 v2.0.2](https://github.com/VisActor/VMind/releases/tag/v2.0.2) - -# v2.0.1 - -2025-02-21 - - -**🆕 新增功能** - -- **@visactor/vmind**: Support DeepSeek and other custom model with api-key -- **@visactor/vmind**: 12 new chart types added for chart generation -- **@visactor/vmind**: Add text2Chart API -- **@visactor/vmind**: Add getInsights API - -**🔖 其他** - -- **@visactor/vmind**: Overall architecture upgrade - - -[更多详情请查看 v2.0.1](https://github.com/VisActor/VMind/releases/tag/v2.0.1) - -# v1.2.12 - -2024-06-17 - - -**🔖 新增功能ure** - -- **@visactor/vmind**: intelligent insight module -- **@visactor/vmind**: add custom model type support -- **@visactor/vmind**: take skylark model when no model type match - -[更多详情请查看 v1.2.12](https://github.com/VisActor/VMind/releases/tag/v1.2.12) - -# v1.2.11 - -2024-04-24 - - -**🐛 Fixes** - -Fix reference error in node. - -[更多详情请查看 v1.2.11](https://github.com/VisActor/VMind/releases/tag/v1.2.11) - -# v1.2.9 - -2024-04-19 - - -**🆕 New 新增功能ures** - -- **@visactor/vmind**: Refactored the VMind basic framework: abstracted TaskNode, Application class, used Meta for flow arrangement, and improved code reusability and scalability. -- **@visactor/vmind**: Intelligent chart generation: supports generating spec templates without a data set; supports filling data into spec templates. -- **@visactor/vmind**: Intelligent chart generation: supports selecting chart types from a specified list of chart types. - -**🐛 Fixes** - -Intelligent data aggregation: replaced alasql keyword in SQL to further improve the success rate of SQL execution. - -[更多详情请查看 v1.2.9](https://github.com/VisActor/VMind/releases/tag/v1.2.9) - - -# v1.2.7 - -2024-03-26 - -**🆕 新增功能** - -- **@visactor/vmind**:支持 skylark 进行数据聚合 -- **@visactor/vmind**:支持规则型图表生成 -- **@visactor/vmind**:在存在多个y字段时使用fold来处理数据集 - -**🐛 功能修复** - -修复了在数据聚合和图表生成中的若干问题。 - -[更多详情请查看 v1.2.7](https://github.com/VisActor/VMind/releases/tag/v1.2.7) - -# v1.2.4 - -**规划功能:** - -- GIF、视频导出功能支持node环境 -- 进一步规范API -- 移除无关依赖 -- 数据聚合功能优化,修复大量badcase -- 图表智能生成 badcase修复 - -# v1.2.3 - -**规划功能:** - -- 数据聚合功能,接入headless bi calculator模块、vutils -- 智能数据聚合,通过大模型生成sql,对数据进行聚合、筛选、排序 - -# v1.2.0 - -**规划功能:** - -1. 数据模块改造,支持外部直接传dataset,不使用模型进行字段类型解析 -2. 图表智能生成接入skylark pro,skylark2-pro-4k模型 -3. 图表生成性能优化 - -# v1.1.0 - -**规划功能:** - -1. 新增图表类型支持:双轴图、漏斗图、瀑布图、箱型图 -2. 数据模块重构,对接VizSchema -3. 增加生成图表失败时的兜底机制,使用chart-advisor模块进行图表推荐 - -# v1.0.6-alpha.5 - -1. 新增图表类型支持:桑基图、雷达图、玫瑰图 -2. 修复依赖报错 -3. 支持node端调用 -4. 支持初始化时传入url和请求参数,自定义模型请求方式:可以自定义包括大模型服务URL、请求头、请求方法、模型名称、最大tokens和温度等参数 -5. 移除ffmpeg依赖,改为外部传入,减少了包体积和依赖安装难度 diff --git a/docs/assets/guide/en/Basic_Tutorial/Chart_Advisor.md b/docs/assets/guide/en/Basic_Tutorial/Chart_Advisor.md deleted file mode 100644 index 7f4226ad..00000000 --- a/docs/assets/guide/en/Basic_Tutorial/Chart_Advisor.md +++ /dev/null @@ -1,84 +0,0 @@ -# Rule-based Chart Generation -VMind can automatically generate charts based on the current dataset in combination with the built-in @visactor/chart-advisor. Chart-advisor is fully dependent on visualization rules and does not need to call large language models. When you use generateChart, and the LLM cannot successfully generate a chart, VMind will use chart-advisor as an alternative to create a chart. - -You can also actively choose to use chart-advisor to generate charts, just set the model type to chart-advisor when initializing the VMind object: -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ -model: Model.CHART_ADVISOR, -}) -const userPrompt = ''; -const advisorResult = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` -Since chart-advisor does not rely on large language models, userPrompt can be set to empty. -You can learn more about fieldInfo and dataset in the [Data Format and Data Processing](./Data_Process) section. - -Chart-advisor will generate several available charts based on a series of rules, at which time generateChart will return a list containing chart types, scores, and spec. - -## Example -Here is an example of a chart generated by chart-advisor using product sales data: - -```ts -const dataset = [ -{ -"Product name": "Coke", -"Sales": 2350 -}, -{ -"Product name": "Sprite", -"total_sales": 1056 -}, -{ -"Product name": "Fanta", -"total_sales": 4778 -}, -{ -"Product name": "Mirinda", -"total_sales": 3336 -} -// ...more data -] - -const fieldInfo = [ -{ -"fieldName": "Product name", -"type": "string", -"role": "dimension" -}, -{ -"fieldName": "Sales", -"type": "int", -"role": "measure" -} -] - -const advisorResult = await vmind.generateChart(userPrompt, fieldInfo, dataset); - -``` -The advisorResult result is as follows: -```json -[ -{ -"chartSource": "chartAdvisor", // Chart source -"spec": ..., // Generated chart spec -"chartType": "BAR CHART", // Chart type -"score": 1, // Current chart score -}, -{ -"chartSource": "chartAdvisor", -"spec": ..., // Generated chart spec -"chartType": "RADAR CHART", // Chart type -"score": 0.16666666666666666 // Current chart score -} -] -``` - -Here, score represents the degree of fit between the current chart type and the input data, the higher the score means that the chart type is more suitable for displaying the current data. - - -The generated chart is as follows: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_advisor.png) - -According to the characteristics of the input data and the field information in fieldInfo, chart-advisor will score each type of chart based on a full set of visualization rules and sort each type of chart based on the score. These rules ensure the accuracy and aesthetics of the visualization results and minimize visual confusion and visual errors in the chart. diff --git a/docs/assets/guide/en/Basic_Tutorial/Chart_Generation.md b/docs/assets/guide/en/Basic_Tutorial/Chart_Generation.md deleted file mode 100644 index 8148921e..00000000 --- a/docs/assets/guide/en/Basic_Tutorial/Chart_Generation.md +++ /dev/null @@ -1,538 +0,0 @@ -# Chart Generation -This tutorial will provide you with a detailed introduction to the intelligent chart generation feature in VMind and provide some examples. - -There are many ways to generate charts, such as using professional BI visualization tools like PowerBI, Tableau, etc., to create visual charts using the fields of datasets; or you can directly use chart libraries like VChart, ECharts, MatPlotlib, etc., to draw charts by writing code. In addition, chart libraries like VChart, Echarts also provide simple and easy-to-use chart editors, where users can upload data and create charts. - -However, traditional chart generation methods also have some problems: - -- For programming beginners, they may not know how to write code, so they cannot use chart libraries to generate charts. -- There are many types of charts, and the purpose of users' data display varies, which leads to different suitable chart types and corresponding field mappings. For non-professional users, they may not be able to accurately choose the chart type that best expresses their views. -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_chart_generation.png) -- Users have different requirements for chart styles and animations, which often require certain design capabilities to meet. Designing a stunning chart is not easy, it requires design skills and aesthetic sense, which many users lack. - -These problems increase the threshold of data visualization creation and hinder non-professional users from creating visual works that meet their intentions. - -VMind's solution is to use the natural language understanding ability and public domain knowledge of large language models, recommend suitable chart types according to the user's data and display intentions, and map the fields to the appropriate visual channels to achieve intelligent chart generation, thereby reducing the threshold for users to perform data visualization. - - -## generateChart - -The generateChart function of VMind is a powerful tool that helps you intelligently generate charts. This function requires the following parameters: -- userPrompt (string): The user's visualization intent (what information do you want to display with the chart) -- fieldInfo (Array): Information about the fields in the dataset, including field names, types, etc. -- dataset (Array): The original dataset used in the chart, which can be undefined. If the dataset is undefined, a spec template will be generated, and fillSpecTemplateWithData can be called later to fill the data into the spec template. -- options: Optional, option parameters, including: - - - chartTypeList (ChartType[], optional): The list of supported chart types. If not undefined, the chart type will be selected from the types specified in this list. - - enableDataQuery (boolean, optional): Decides whether to enable data aggregation during chart generation - - colorPalette (Array, optional): Used to set the color palette of the chart - - animationDuration (number, optional): Used to set the duration of the chart animation - - theme (ChartTheme | string, optional): Sets the theme style of the final spec. By default, VMind uses a theme style with gradient colors. You can set VChart's general light or dark theme ('light' | 'dark') or a theme style that suits your usage scenario. - - -This method will return a [VChart chart spec](https://www.visactor.io/vchart/guide/tutorial_docs/Basic/A_Basic_Spec). - -📢 **Please note: The generateChart method will pass userPrompt and fieldInfo to the large language model for chart generation, but the detailed data in the dataset will not be passed.** - -In the process of generating the chart, VMind will first use the large language model, recommend a suitable chart type based on userPrompt and fieldInfo. Then, it will map the fields in fieldInfo to the visual channels of the chart, such as the x-axis, y-axis, color, size, etc. - -VMind will add an entrance animation to the generated chart by default, so it will also return the duration of the chart animation time. If you don't want the chart animation, you can set spec.animation to false. - -You can learn more about chart animations in the [VChart animation tutorial](https://www.visactor.io/vchart/guide/tutorial_docs/Animation/Animation_Types). - -Here is an example of using generateChart to generate a chart: -```ts -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) -const userPrompt = 'show me the changes in sales rankings of various car brand'; -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` -You can learn how to create a VMind instance and the information of the parameters in options in [Creating a VMind Instance](./Create_VMind_Instance), and get more information about fieldInfo and dataset in the [Data Format and Data Processing](./Data_Process) section. - -You can reprocess the spec to change the color, style, animation, etc. of the chart, or you can directly render the VChart chart: - -```html - - -
- -``` -```ts -import VChart from '@visactor/vchart'; - -// Create vchart instance -const vchart = new VChart(spec, { dom: 'chart' }); -// Render Chart -vchart.renderSync(); -``` - -In userPrompt, you can describe what you want to show, which will be used as the basis for the large language model to recommend chart types; you can also pass in a color string array through options.colorPalette, which will be used as the color theme of the chart. - - -## Parameter Explanation -### userPrompt -The `userPrompt` parameter is used to describe the content you want to display with the dataset. This description will be passed to the large language model as a reference when generating the chart. - -For example, suppose we have a mobile phone brand sales dataset, as shown below: -```json -[ - { - "Brand Name": "Apple", - "Market Share": 0.5, - "Average Price": 7068, - "Net Profit": 314531 - }, - { - "Brand Name": "Samsung", - "Market Share": 0.2, - "Average Price": 6059, - "Net Profit": 362345 - }, - { - "Brand Name": "Vivo", - "Market Share": 0.05, - "Average Price": 3406, - "Net Profit": 234512 - }, - { - "Brand Name": "Nokia", - "Market Share": 0.01, - "Average Price": 1064, - "Net Profit": -1345 - }, - { - "Brand Name": "Xiaomi", - "Market Share": 0.1, - "Average Price": 4087, - "Net Profit": 131345 - } -] -``` -You can set `userPrompt` to `Show the market share of each brand`, and then call the `generateChart` method, which will generate a pie chart: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_pie.png) - - -You can also set `userPrompt` to `Show the net profit of each brand`, and the generated chart will show the net profit of each brand: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_column.png) - - -You can even specify the chart type, such as setting `userPrompt` to `Show the net profit of each brand, with a line chart`, and the generated chart will be a line chart: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_line.png) - - -You can even specify the mapping of the chart's visual channels, such as setting `userPrompt` to `Use the average price as the x-axis, net profit as the y-axis, brand name as the color, market share as the size of the point, and draw a scatter plot`: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_scatter.png) - - -The power of VMind is that you can generate the chart you want by simply describing your needs in a sentence, without worrying about the details of chart generation. This is thanks to the public knowledge mastered by the large language model. - -For example, for the following csv data: -```json -Time,Male-Breakfast,Female-Breakfast -Monday,15,22 -Tuesday,12,10 -Wednesday,15,20 -Thursday,10,12 -Friday,13,15 -Saturday,10,15 -Sunday,12,14 -``` - -If your display intention is `Show the difference in breakfast quantity between men and women`, then a dual-axis chart will be generated: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_dual_axis.png) - - -VMind also supports [dynamic bar charts (ranking bar)](https://www.visactor.io/vchart/demo/storytelling/ranking-bar), which is a narrative chart that shows the changes in the rankings of different types of data at different time points through constantly changing bar charts. To generate a dynamic bar chart, there must be a time field in the data. - -For example, we have the following dataset and field information: -```json -[ -{ -"country": "USA", -"continent": "North America", -"GDP": 239270, -"year": 1973 -}, -{ -"country": "India", -"continent": "Asia", -"GDP": 22960, -"year": 1973 -}, -{ -"country": "South Korea", -"continent": "Asia", -"GDP": 7870, -"year": 1973 -}, -{ -"country": "Indonesia", -"continent": "Asia", -"GDP": 10980, -"year": 1973 -}, -{ -"country": "Saudi Arabia", -"continent": "Asia", -"GDP": 23760, -"year": 1973 -}, -{ -"country": "Thailand", -"continent": "Asia", -"GDP": 4130, -"year": 1973 -}, -{ -"country": "Philippines", -"continent": "Asia", -"GDP": 5660, -"year": 1974 -}, -{ -"country": "Malaysia", -"continent": "Asia", -"GDP": 2780, -"year": 1974 -}, -{ -"country": "United Kingdom", -"continent": "Europe", -"GDP": 114750, -"year": 1974, -} -...... //For the complete dataset, please see the packages/vmind/__tests__/browser/src/constants/mockData.ts file in the VMind repository -] -``` -```json -[ - { - "fieldName": "country", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "continent", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "GDP", - "type": "float", - "role": "measure" - }, - { - "fieldName": "year", - "type": "date", - "role": "measure" - } -] -``` - -If `userPrompt` is `Show me the change of the GDP rankings of each country`, then a dynamic bar chart will be generated: -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_dynamic_bar.gif) - - -To make VMind generate a chart that meets your expectations, you need to describe your display intention and purpose as clearly as possible in `userPrompt`. In addition, you need to ensure that the field names in the dataset have certain semantics, or add field descriptions in the field information, please refer to the [Data Format and Data Processing](./Data_Process) chapter for details. - -### With Empty User Prompt -If I have a chart, can I get a good chart generation result without manual input of intent, that is, without the input of `userPrompt`? -**The answer is yes!** -Currently, VMind supports generating a chart that the user is most likely to want to present on this data based on public domain knowledge and the content of the fields, even without user intent. Similarly, as mentioned earlier, this requires the data information and field information in the data to be as detailed and complete as possible. Imagine if the name and description of each field in my data are like `'a' | 'b' | 'c'`, it is obviously impossible to produce a high-quality chart, and this data itself has no special meaning because we do not understand what the fields represent. - -Similarly, using the previous mobile phone brand sales dataset as a test, when we do not pass in `userPrompt`, the result is as follows: -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_en_text2Chart_default.jpeg) - -### options -#### enableDataQuery: Whether to enable intelligent data aggregation -In the [Data Aggregation](./Data_Aggregation) chapter, we have introduced that in order to meet the chart display requirements such as `showing the top 10 departments with the most sales` or `showing the sales of various products in the northern region`, we need to aggregate the data first, and then generate the chart. By default, the `generateChart` function will call `dataQuery` once during execution, using the same `userPrompt`, `fieldInfo` and `dataset` to aggregate the data, and then complete the subsequent chart generation steps with the aggregated data. - -However, if you are sure that your data can meet the user's chart display requirements without further aggregation, filtering and sorting, you can turn off this process by setting `enableDataQuery` to `false`: -```ts -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) -const userPrompt = 'show me the changes in sales rankings of various car brand'; -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset, {enableDataQuery: false}); // Set enableDataQuery to false to turn off data aggregation -``` -This can reduce the process of calling the LLM once, reduce token consumption, and improve chart generation speed. For more information about VMind data aggregation, please refer to the [Data Aggregation](./Data_Aggregation) chapter. - -#### chartTypeList: Limits the type of charts generated by VMind -VMind currently supports 25 common chart types in VChart: -- [Bar Chart](https://www.visactor.io/vchart/demo/bar-chart/basic-column) -- [Line Chart](https://www.visactor.io/vchart/demo/line-chart/basic-line) -- [Area Chart](https://www.visactor.io/vchart/demo/area-chart/basic-area) -- [Pie Chart](https://www.visactor.io/vchart/demo/pie-chart/basic-pie) -- [Scatter Chart](https://www.visactor.io/vchart/demo/scatter-chart/basic-scatter) -- [Dual Axis Chart](https://www.visactor.io/vchart/demo/combination/dual-axis) -- [Word Cloud](https://www.visactor.io/vchart/demo/word-cloud-chart/word-cloud-basic) -- [Rose Chart](https://www.visactor.io/vchart/demo/rose-chart/basic-rose) -- [Radar Chart](https://www.visactor.io/vchart/demo/radar-chart/basic-radar) -- [Box Plot](https://www.visactor.io/vchart/demo/box-plot/basic-box-plot) -- [Funnel Chart](https://www.visactor.io/vchart/demo/funnel-chart/basic-funnel) -- [Sankey Chart](https://www.visactor.io/vchart/demo/sankey-chart/basic-sankey) -- [Waterfall Chart](https://www.visactor.io/vchart/demo/waterfall/basic-waterfall) -- [Dynamic Bar Chart (ranking bar)](https://www.visactor.io/vchart/demo/storytelling/ranking-bar) -- [Range Bar Chart](https://www.visactor.io/vchart/demo/range-column-chart/range-bar) -- [Liquid Chart](https://www.visactor.io/vchart/demo/liquid-chart/liquid-chart) -- [Linear Progress Bar](https://www.visactor.io/vchart/demo/progress/linear-progress) -- [Circular Progress Bar](https://www.visactor.io/vchart/demo/progress/circular-progress) -- [Circle Packing Chart](https://www.visactor.io/vchart/demo/circle-packing-chart/basic-circle-packing) -- [Sunburst Chart](https://www.visactor.io/vchart/demo/sunburst-chart/basic-sunburst) -- [Gauge Chart](https://www.visactor.io/vchart/demo/gauge-chart/basic-gauge) -- [Treemap Chart](https://www.visactor.io/vchart/demo/treemap-chart/basic-treemap) -- [Heatmap Chart](https://www.visactor.io/vchart/demo/heatmap-chart/basic-heatmap) -- [Venn Chart](https://www.visactor.io/vchart/demo/venn-chart/venn-chart) -- [Map](https://www.visactor.io/vchart/demo/map-chart/basic-map) - -Depending on the `userPrompt` and `fieldInfo`, these chart types may all be recommended by the large language model. - -If you have new chart type requirements, feel free to propose them on our [Github page](https://github.com/VisActor/VMind/issues/new/choose). - -If you want to limit the types of charts VMind generates during intelligent chart generation, you can do so by setting the options.chartTypeList array: -```typescript -import VMind, {ChartType} from '@visactor/vmind'; - -// Limit to generating the following types of charts: bar charts, line charts, scatter plots, pie charts, word clouds -const chartTypeList = [ -ChartType.BarChart, -ChartType.LineChart, -ChartType.ScatterPlot, -ChartType.PieChart, -ChartType.WordCloud -] - -const { spec } = await vmind.generateChart(userPrompt, fieldInfo, dataset, {chartTypeList}); -``` -In the above example, VMind will choose the chart type from bar chart, line chart, scatter plot, pie chart, word cloud for generation. If the user forcibly specifies an unsupported chart type in userPrompt, an error will be thrown. - -#### colorPalette: set the chart palette -You can specify the palette used by the chart by setting options.colorPalette to an array of colors: -```typescript -// Set custom palette -const colorPalette = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']; - -const { spec } = await vmind.generateChart(userPrompt, fieldInfo, dataset, {colorPalette}); -``` -Meanwhile, VMind also has a choice of a variety of theme palettes built in such as [Arco-design](https://www.visactor.io/vchart/theme/demo/arco), [Semi-design](https://www.visactor.io/vchart/theme/demo/semi), [Original Design](https://www.visactor.io/vchart/theme/demo/arco): -```typescript -import VMind, {ArcoTheme} from '@visactor/vmind'; - -// Use Arco-design palette -const {spec} = await vmind.generateChart(describe, finalFieldInfo, finalDataset, { -colorPalette: ArcoTheme.colorScheme -}); -``` - -```typescript -import VMind, {VeOThemeFinance} from '@visactor/vmind'; - -// Use Original Design - Finance Industry Theme Palette -const {spec} = await vmind.generateChart(describe, finalFieldInfo, finalDataset, { -colorPalette: VeOThemeFinance.colorScheme -}); -``` -For more theme palettes, see [Intelligent Chart Generation API](../../api/generateChart) - - -## Explanation of return values -The type definition of the return value of the vmind.generateChart method is as follows: - -```typescript -interface GenerateChartResult { -spec: Record; -chartType: ChartType; -cell: Cell; -usage: Usage; -command: string; -time: { -totalTime : number; -frameArr: number[]; -}; -chartAdvistorRes: { -spec: Record; -chartType: ChartType; -score: number -}[] -} -``` - -### spec -Generated VChart chart spec. If the dataset is empty, it will be a spec template without data included. - -### chartType -The type of chart generated, refer to the `chartTypeList: limit the types of charts VMind generates` section of this tutorial - -### cell -Field mapping in the chart, describes how the fields in the dataset are mapped to the different visual channels of the chart. Visual channels is an important concept in data visualization, which describes how to map the attributes of data to visual elements for intuitive understanding by humans. Common visual channels include color, shape, size, orientation, position, etc. For example, through visual channels, we can map different categories in the dataset to different colored graphics, or map numerical values to the size of graphics, thereby quickly understanding the characteristics and distribution of data. - -The following shows an example of a chart being generated: -```typescript -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) - -const userPrompt = 'Show sales of goods in different regions'; -const fieldInfo=[ -{ -"fieldName": "Product Name", -"type": "string", -"role": "dimension", -"domain": [ -"Coca-Cola", -"Sprite", -"Fanta", -"clear up" -] -}, -{ -"fieldName": "region", -"type": "string", -"role": "dimension", -"domain": [ -"south", -"east", -"west", -"north" -] -}, -{ -"fieldName": "Sales", -"type": "int", -"role": "measure", -"domain": [ -28, -2350 -] -} -] - -const dataset=[ -{ -"Product Name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product Name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product Name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product Name": "Coke", -"region": "north", -"Sales": 1027 -}, -... -] -const { chartType, spec, cell } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -console.log(cell) -``` -In this example, a bar chart is generated: - -![Bar chart](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_barchart.png) - -Its cell is as follows: - -```json -{ -"x": "product name", -"y": "sales", -"color": "region" -} -``` - -This indicates that VMind maps the product name field to the x-axis of the chart, the sales field to the y-axis, and the region field to the color of the column. - -### chartAdvistorRes -This result is the chart recommendation result derived based on the current data and field information through VMind's built-in rules. It is generated as a fallback when the model is set to `Model.CHART_ADVISOR` or the user's large model settings are incorrect and cannot obtain results. See: [Rule-based Chart Generation](./Chart_Advisor) - -## Generate spec template -Even without a specific dataset and with only data fields, we may need to generate a chart. For example, we can generate a chart based on the fields in the dataset before querying, and then execute related queries based on the type of chart and the fields it contains. In this case, when calling the generateChart method, there is no need to pass in a specific dataset, but to first generate a spec template, and then obtain the final spec used for chart rendering through the fillSpecWithData method later. - -The following shows how to use the generateChart method to generate a spec template: - -```typescript -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) - -const userPrompt = 'Show sales of goods in different regions'; -const fieldInfo=[ -{ -"fieldName": "Product Name", -"type": "string", -"role": "dimension", -"domain": [ -"Coca-Cola", -"Sprite", -"Fanta", -"clear up" -] -}, -{ -"fieldName": "region", -"type": "string", -"role": "dimension", -"domain": [ -"south", -"east", -"west", -"north" -] -}, -{ -"fieldName": "Sales", -"type": "int", -"role": "measure", -"domain": [ -28, -2350 -] -} -] -// Do not input dataset, generate spec template -const { chartType, spec, cell } = await vmind.generateChart(userPrompt, fieldInfo); -``` -At this point we have obtained the chart spec, field mapping cell and chart type chartType generated by VMind. We then call the fillSpecWithData method to fill in the data in the spec template: - -```typescript -// Fill in data in the template -const dataset = [ -{ -"Product Name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product Name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product Name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product Name": "Coke", -"region": "north", -"Sales": 1027 -}, -... -] - -const spec = vmind.fillSpecWithData(spec, dataset) -``` -The final generated spec can be used for rendering VChart charts. diff --git a/docs/assets/guide/en/Basic_Tutorial/Chart_Insight.md b/docs/assets/guide/en/Basic_Tutorial/Chart_Insight.md deleted file mode 100644 index 368db1e6..00000000 --- a/docs/assets/guide/en/Basic_Tutorial/Chart_Insight.md +++ /dev/null @@ -1,183 +0,0 @@ -# Intelligent Insights - -In the era of data-driven decision-making, charts serve as a core tool for data visualization, providing an intuitive way to present complex data relationships. However, relying solely on human observation and analysis of charts often makes it difficult to quickly and comprehensively uncover the hidden insights behind the data. - -This tutorial will introduce you to the intelligent insights feature in VMind, demonstrating how to quickly obtain various types of insights from charts using the `getInsights` function, along with some examples. - -## getInsights - -The `getInsights` function in VMind is a powerful tool that helps you extract chart insights and generate semantic explanations. This function requires the following two parameters: -- spec: The specific spec configuration of the current VChart chart -- options (DataInsightOptions): Insight-related configurations that control the number of specific insights, the algorithms used, and the specific configurations of the corresponding algorithms - -During the process of generating intelligent insights, VMind primarily performs two tasks: -- First, it uses built-in statistical algorithms to extract data insights contained in the current chart; -- Then, these identified insights are passed to a large model, which polishes and semantically explains these insights. During the polishing process, VMind passes field information and insight types to the large model but **does not pass any data details to the large model**. - -The second step of polishing by the large model is not mandatory and can be disabled through `options.usePolish`, in which case you will receive data insights and templated semantic content. - -### Built-in Algorithms - -Currently, VMind's built-in algorithms are primarily related to statistics, as listed below: -- LOF (Local Outlier Factor) for local outlier detection -- zScore for global outlier detection -- IQR (Interquartile Range) for global outlier detection -- Page-Hinkley Test for time series anomaly detection -- Bayesian Inference for change point detection -- Mann-Kendall Test for trend detection -- Pearson Correlation Coefficient / Spearman Correlation for correlation detection -- DBSCAN (Density-Based Spatial Clustering of Applications with Noise) algorithm -- Coefficient of Variation for periodicity detection based on the coefficient of variation -- Basic statistical indicators, such as maximum/minimum/average value/proportion anomalies, etc. - -### Large Model Polishing - -In intelligent insights, the large model serves only as a text polishing function, enhancing the readability of the final results, and is an optional configuration. - -## Insight Types - -Based on the existing built-in algorithms, VMind can identify the following 9 types of insights: -- Outliers -- Time series outliers -- Change points -- Points with significant contribution to proportion -- Anomalous intervals -- Overall trends -- Anomalous trends -- Correlations -- Basic statistical indicators - -Depending on different insight results, users can choose different annotation/highlighting methods to present them in charts. - -## Usage Example - -Below is an example of using `getInsights`: -```ts -import VMind from '@visactor/vmind'; - -const specJson = { - type: 'line', - xField: ['Year'], - yField: ['College Admission Rate'], - data: [ - { - id: 'data', - values: [ - {"Year": 1977, "College Admission Rate": 0.05}, - {"Year": 1978, "College Admission Rate": 0.07}, - {"Year": 1979, "College Admission Rate": 0.06}, - {"Year": 1980, "College Admission Rate": 0.08}, - {"Year": 1981, "College Admission Rate": 0.11}, - {"Year": 1982, "College Admission Rate": 0.17}, - {"Year": 1983, "College Admission Rate": 0.23}, - {"Year": 1984, "College Admission Rate": 0.29}, - {"Year": 1985, "College Admission Rate": 0.96}, - {"Year": 1986, "College Admission Rate": 0.3}, - {"Year": 1987, "College Admission Rate": 0.27}, - {"Year": 1988, "College Admission Rate": 0.25}, - {"Year": 1989, "College Admission Rate": 0.23}, - {"Year": 1990, "College Admission Rate": 0.22}, - {"Year": 1991, "College Admission Rate": 0.21}, - {"Year": 1992, "College Admission Rate": 0.25}, - {"Year": 1993, "College Admission Rate": 0.34}, - {"Year": 1994, "College Admission Rate": 0.36}, - {"Year": 1995, "College Admission Rate": 0.37}, - {"Year": 1996, "College Admission Rate": 0.4}, - {"Year": 1997, "College Admission Rate": 0.36}, - {"Year": 1998, "College Admission Rate": 0.34}, - {"Year": 1999, "College Admission Rate": 0.56}, - {"Year": 2000, "College Admission Rate": 0.59}, - {"Year": 2001, "College Admission Rate": 0.59}, - {"Year": 2002, "College Admission Rate": 0.63}, - {"Year": 2003, "College Admission Rate": 0.62}, - {"Year": 2004, "College Admission Rate": 0.61}, - {"Year": 2005, "College Admission Rate": 0.57}, - {"Year": 2006, "College Admission Rate": 0.57}, - {"Year": 2007, "College Admission Rate": 0.56}, - {"Year": 2008, "College Admission Rate": 0.57}, - {"Year": 2009, "College Admission Rate": 0.62}, - {"Year": 2010, "College Admission Rate": 0.69}, - {"Year": 2011, "College Admission Rate": 0.72}, - {"Year": 2012, "College Admission Rate": 0.75}, - {"Year": 2013, "College Admission Rate": 0.75}, - {"Year": 2014, "College Admission Rate": 0.74}, - {"Year": 2015, "College Admission Rate": 0.74}, - {"Year": 2016, "College Admission Rate": 0.75}, - {"Year": 2017, "College Admission Rate": 0.74}, - {"Year": 2018, "College Admission Rate": 0.81}, - {"Year": 2019, "College Admission Rate": 0.8}, - {"Year": 2020, "College Admission Rate": 0.8}, - {"Year": 2021, "College Admission Rate": 0.93}, - {"Year": 2022, "College Admission Rate": 0.96} - ] - } - ] - }; -const vmind = new VMind(options) -const { insights } = await vmind.getInsights(specJson, { - /** Generate up to maxNum insights */ - maxNum: numLimits, -}); -``` - -The final result accurately identifies the overall trend and the significantly anomalous college admission rate in 1985. - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_insight_en_1.jpeg) -### Return Structure - -Taking the overall trend as an example, the structured content returned is as follows: -```ts -const outlierInsight = { - /** Type is outlier Insight */ - type: 'outlier', - /** Specific outlier data */ - data: [ - { - index: 8, - dataItem: { - Year: 1985, - College Admission Rate: 0.96, - } - } - ], - /** Numerical field */ - fieldId: 'College Admission Rate', - /** Current outlier value */ - value: 0.96, - /** Insight confidence score */ - significant: 1, - /** Current series name, since the current chart does not have a seriesField configuration, it only contains one series, so it is the default value of vmind */ - seriesName: 'vmind_default_series', - /** Detected by the pageHinkley algorithm */ - name: 'pageHinkley', - /** Specific textual meaning */ - textContent: { - /** Specific text template */ - content: '${b} period shows a significant anomaly, with a value of ${c}.', - /** Variable parsing in the template */ - variables: { - b: { - isDimValue: true, - value: 1985, - fieldName: 'Year' - }, - c: { - value: 0.96, - isMeasure: true, - fieldName: 'College Admission Rate' - } - }, - /** Result of directly replacing template variables with values */ - plainText: '1985 period shows a significant anomaly, with a value of 0.96.' - } -} -``` - -### Adding Insights - -After identifying chart insights, we can use VChart's powerful annotation capabilities to add these contents to the chart, as shown in the final effect below: -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_insight_en_2.jpeg) - -## Parameter Details - -For detailed parameter explanations, see: [getInsights](../../api/getInsights) \ No newline at end of file diff --git a/docs/assets/guide/en/Basic_Tutorial/Create_VMind_Instance.md b/docs/assets/guide/en/Basic_Tutorial/Create_VMind_Instance.md deleted file mode 100644 index 02083d45..00000000 --- a/docs/assets/guide/en/Basic_Tutorial/Create_VMind_Instance.md +++ /dev/null @@ -1,209 +0,0 @@ - -# Creating a VMind Instance -To start using the VMind intelligent visualization component, you first need to create a VMind instance. When creating a VMind instance, you need to pass in an options object as a parameter. This object contains some key information, such as the URL of the model, the model type, and the headers of the LLM service request, etc. -```ts -import VMind from '@visactor/vmind' - -const vmind = new VMind(options) -``` - -The complete type definition of options is as follows: - -```ts -export interface VMindOptions { - /** URL of your LLM service. For gpt, default is openAI API. */ - url?: string; - /** llm request header, which has higher priority */ - headers?: HeadersInit; - /** post or get */ - method?: 'POST' | 'GET'; - /** LLM Model */ - model?: Model | string; - /** Max token in LLM Chart */ - maxTokens?: number; - /** Temperature of LLM */ - temperature?: number; - /** show llm thoughts or not */ - showThoughts?: boolean; - /** repetition penalty */ - frequencyPenalty?: number; - /** topP */ - topP?: number; - /** custom llm request func */ - customRequestFunc?: { - /** 图表生成任务 */ - chartAdvisor?: RequestFunc; - /** 数据查询任务 */ - dataQuery?: RequestFunc; - /** 文本中提取数据任务 */ - dataExtraction?: RequestFunc; - /** 图表生成中指令生成任务 */ - chartCommand?: RequestFunc; - /** 洞察生成任务 */ - IntelligentInsight?: RequestFunc; - }; -} -``` -In VMindOptions, most parameters will be passed directly to the LLM service. - -## Example with GPT - -If you plan to use the LLM service provided by OpenAI official and authenticate through the OpenAI API key in headers, you can simply initialize VMind like this: - -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - model: Model.GPT4o, // use gpt-4o model - headers: { // specify the header when calling the LLM service - Authorization: `Bearer ${OPENAI_API_KEY}` // Your OPENAI_API_KEY - } -}) -``` - -## Example with DeepSeek - -If you plan to use DeepSeek as the LLM service, you can register your own API key on the [DeepSeek official website](https://platform.deepseek.com/api_keys). After registration, you can register and use VMind as follows. For more details, please refer to the [DeepSeek official API documentation](https://api-docs.deepseek.com/zh-cn/). - - -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - url: 'https://api.deepseek.com/chat/completions', // DeepSeek official URL - model: Model.DEEPSEEK_V3, // use DeepSeek-V3 model - headers: { - Authorization: `Bearer ${DEEPSEEK_KEY}` // Your DEEPSEEK_KEY - } -}) -``` - -## Custom Model - -If you want to use any other large model as the LLM service for VMind, similar to the previous examples, you only need to change the `url` and `model` to your model service address and add `headers` content for authentication verification. As follows: - -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - url: 'Your LLM URL', - model: 'Your Model Name', - headers: { - Authorization: `Bearer ${Your Key}` - } -}) -``` - -## url -The url parameter is used to specify the address of your LLM service api. The default value is https://api.openai.com/v1/chat/completions - -In your use of VMind, all places that need to call the LLM will send http requests to this url. - -## headers -You can specify the http headers when requesting the LLM service through the headers parameter. The most common usage is to put your api key in headers for authentication; of course, you can also put any fields you need into headers. - -## method -The method parameter is used to specify the method type when requesting the LLM, usually POST. - -## model -You can specify the model type through the model parameter. This field will be put into the request body of the LLM service. You can import the Model type from VMind and use it as the value of the model field. - -```ts -import { Model } from '@visactor/vmind' -``` - -The currently supported model types are: - -```ts -export enum Model { - GPT3_5 = 'gpt-3.5-turbo', - GPT3_5_1106 = 'gpt-3.5-turbo-1106', - GPT4 = 'gpt-4', - GPT_4_0613 = 'gpt-4-0613', - GPT_4o = 'gpt-4o-2024-08-06', - DOUBAO_LITE = 'doubao-lite-32K', - DOUBAO_PRO = 'doubao-pro-128k', - CHART_ADVISOR = 'chart-advisor', - DEEPSEEK_V3 = 'deepseek-chat', - DEEPSEEK_R1 = 'deepseek-reasoner' -} -``` - -Currently, VMind uses the same technology and prompts for all large models to complete various intelligent tasks. - -## max_tokens and temperature -These two parameters respectively determine the maximum token quantity and the randomness of each generated result of the model, see [OpenAI official documentation](https://platform.openai.com/docs/api-reference/chat/create). - -In VMind, the default values of these two parameters are 2048 and 0 respectively. - -## showThoughts -[Related research](https://arxiv.org/abs/2201.11903) shows that the Chain-of-Thought can enhance the thinking reasoning ability of large language models and make the output results more in line with expectations. The showThoughts parameter will affect the prompt that VMind sends to the large language model, determining whether to add the thinking process to the output results when completing tasks such as chart generation and data aggregation. `showThoughts = true` will make the model explicitly output its thinking process, improving the accuracy of the generated results. However, this will increase the length of the model-generated results, bringing more token consumption. When performing tasks such as chart generation, VMind must wait for the model output to end before proceeding to the next step, which will also slow down the execution speed of various VMind methods. - -Therefore, if you expect better execution results, you can set showThoughts to true. If you want VMind to complete tasks such as chart generation and data aggregation with fewer tokens and faster speed, you can set this parameter to false. - -In VMind, showThoughts defaults to true. - -## Customizing the method of calling the LLM service through customRequestFunc - -VMind calls the LLM service through the requestGPT method by HTTP request. However, you can customize the method of calling the LLM in each task through the customRequestFunc parameter. For example, you can request your own LLM service in the form of RPC. -This parameter has three RequestFunc type values, the complete type definition is as follows: -```ts -type customRequestFunc= { - chartAdvisor: RequestFunc; - dataQuery: RequestFunc; -}; - -type RequestFunc = (prompt: string, userMessage: string, options: ILLMOptions | undefined) => Promise; - -export type LLMResponse = { - usage?: Usage; - /** function call res */ - toolRes?: any; - /** content */ - choices?: { - index: number; - message: any; - finish_reason?: string; - }[]; - error?: string; - [key: string]: any; -}; -``` - -chartAdvisor and dataQuery correspond to the methods of calling the LLM during chart generation, data extraction, and data aggregation, respectively. Each method needs to receive the [messages](https://platform.openai.com/docs/api-reference/chat/create#chat-create-messages), [tools](https://platform.openai.com/docs/api-reference/chat/create#chat-create-tools), and VMind options as parameters, and ensure that the returned object is the same as the OpenAI completions API structure (see [The chat completion object](https://platform.openai.com/docs/api-reference/chat/object)). -Here is an example of using RPC for intelligent chart generation: -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - model: Model.GPT4o, - customRequestFunc: { - chartAdvisor: async (messages: LLMMessage[], tools: ToolMessage[] | undefined, _options: ILLMOptions | undefined) => { - const resp = await call_RPC_LLM_Service(messages, tools, _options) - - const { result } = resp - const content = result.content.content - const gptResponse = { - usage: {}, //token用量信息 - choices: [{ - index: 0, - message: { - role: 'assistant', - content //Put the model's generated results into content - } - }] - } - return gptResponse //return chat completion object, see https://platform.openai.com/docs/api-reference/chat/object - } - } -}) - -const { spec } = await vmind.generateChart(userInput, fieldInfo, dataset); //Call generateChart for chart generation - -``` - -# Conclusion -This tutorial details how to create a VMind instance and how to set various parameters to meet different needs. We learned how to specify the URL of the model service, how to set headers for authentication, how to choose the model type, and how to set the maximum token quantity and temperature of the model-generated content. We also learned how to control whether the model adds the thinking process to the output results through the showThoughts parameter, and how to customize the method of calling the LLM service through the customRequestFunc parameter. - -Through this tutorial, you can not only learn how to create and configure VMind instances, but also understand how to adjust and optimize the use of VMind according to your own needs and environment, so as to more effectively use VMind to complete various tasks, including chart generation, data processing, and data aggregation, etc. - diff --git a/docs/assets/guide/en/Basic_Tutorial/Data_Aggregation.md b/docs/assets/guide/en/Basic_Tutorial/Data_Aggregation.md deleted file mode 100644 index f64a03c7..00000000 --- a/docs/assets/guide/en/Basic_Tutorial/Data_Aggregation.md +++ /dev/null @@ -1,382 +0,0 @@ -# Data Aggregation - -## Overview of Data Aggregation -When we use chart libraries like VChart to draw bar charts, line charts, etc., if the dataset used has not been aggregated, it may have a negative impact on the visualization effect. -For example, suppose we have a product sales detail dataset: -```json -// Product sales dataset -[ - { - "Product name": "Coke", - "Sales": 2350 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Sprite", - "Sales": 215 - }, - { - "Product name": "Sprite", - "Sales": 654 - }, - { - "Product name": "Sprite", - "Sales": 159 - }, - { - "Product name": "Sprite", - "Sales": 28 - }, - { - "Product name": "Fanta", - "Sales": 345 - }, - { - "Product name": "Fanta", - "Sales": 654 - }, - { - "Product name": "Fanta", - "Sales": 2100 - }, - { - "Product name": "Fanta", - "Sales": 1679 - }, - { - "Product name": "Mirinda", - "Sales": 1476 - }, - { - "Product name": "Mirinda", - "Sales": 830 - }, - { - "Product name": "Mirinda", - "Sales": 532 - }, - { - "Product name": "Mirinda", - "Sales": 498 - } -] -``` -In this dataset, there are two fields Product name and Sales. It can be seen that in this dataset, multiple data have the same Product name. If we want to use this data to draw a bar chart with Product name as the X-axis and Sales as the Y-axis to show the sales in different regions, there will be multiple bars corresponding to each dimension value on the X-axis. - -Different chart libraries handle this kind of dataset differently. VChart's approach is to stack these bars for display: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_stack.png) - -Drawing charts with this unaggregated dataset may have the following problems: - -- Data overload: If the dataset is very large, there may be a large number of graphic elements in the chart, which may make the chart very chaotic, difficult to read and understand, and cause performance problems. -- Hiding important information: If the data has not been properly aggregated, it may hide some important information. For example, if you have a dataset containing daily sales, drawing this dataset directly may make the chart very chaotic. However, if you aggregate the data by month, it may be easier to see the trend of sales. -- Unclear data distribution: Unaggregated data may make the distribution characteristics of the data unclear, such as the average, median, mode, etc. - -Therefore, we usually aggregate the data appropriately before drawing the chart to better display the characteristics and trends of the data. - -At the same time, because the original dataset does not filter and sort the fields, some chart display intentions cannot be met, such as: show me the 10 departments with the highest sales, show me the sales of various products in the northern region, etc. - -Starting from version 1.2.2, VMind supports the intelligent data aggregation function. This function takes the data input by the user as a data table, generates SQL query statements according to the user's instructions using the large language model, queries data from the data table, and uses GROUP BY and aggregate functions to group, aggregate, sort, and filter the data. - - -Next, we will detail the usage of the VMind data aggregation function. - - -## dataQuery -The dataQuery function of the VMind object is a powerful data aggregation tool. It takes three parameters: userPrompt for user display intent, fieldInfo for dataset field information, and the original dataset. Detailed information about fieldInfo and dataset can be found in [Data Format and Data Processing](./Data_Process). VMind will write SQL statements based on the user's display intent, execute queries on the dataset, and the query results will be stored in the dataset property of the function return value; at the same time, the fields in the query results may change, and the updated field information will also be stored in the fieldInfo property of the return result. - -Next, let's see how to use the dataQuery function through an example: -```ts -import VMind from '@visactor/vmind' -const sourceDataset = [ - { - "Product name": "Coke", - "Sales": 2350 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Sprite", - "Sales": 215 - }, - { - "Product name": "Sprite", - "Sales": 654 - }, - { - "Product name": "Sprite", - "Sales": 159 - }, - { - "Product name": "Sprite", - "Sales": 28 - }, - { - "Product name": "Fanta", - "Sales": 345 - }, - { - "Product name": "Fanta", - "Sales": 654 - }, - { - "Product name": "Fanta", - "Sales": 2100 - }, - { - "Product name": "Fanta", - "Sales": 1679 - }, - { - "Product name": "Mirinda", - "Sales": 1476 - }, - { - "Product name": "Mirinda", - "Sales": 830 - }, - { - "Product name": "Mirinda", - "Sales": 532 - }, - { - "Product name": "Mirinda", - "Sales": 498 - } -] - -const sourceFieldInfo = [ - { - "fieldName": "Product name", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "Sales", - "type": "int", - "role": "measure" - } -] - -const userPrompt=`Show the sales of each product` -const vmind = new VMind(options) - -// Call dataQuery with userPrompt, sourceFieldInfo, and sourceDataset to perform data aggregation -const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceFieldInfo, sourceDataset); -``` - -In this example, the dataset returned by the dataQuery function is as follows: -```json -[ - { - "Product name": "Coke", - "total_sales": 5431 - }, - { - "Product name": "Sprite", - "total_sales": 1056 - }, - { - "Product name": "Fanta", - "total_sales": 4778 - }, - { - "Product name": "Mirinda", - "total_sales": 3336 - } -] -``` - -The returned fieldInfo is as follows: -```json -[ - { - "fieldName": "Product name", - "description": "The name of the product.", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "total_sales", - "description": "An aggregated field representing the total sales of each product. It is generated by summing up the 'Sales' values for each product.", - "type": "int", - "role": "measure" - } -] - -``` - -With this information, we can directly use fieldInfo and dataset to generate charts. You can find the specific operation steps in the [Intelligent Chart Generation](./Chart_Generation) section. - -📢 **Attention: The dataQuery method will pass the userPrompt and fieldInfo to the LLM to generate SQL, and the detailed data in the dataset will not be passed.** - -Finally, we will get the following bar chart: - - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_aggregated_bar.png) - -In this example, the SQL statement generated by VMind is: -```SQL -SELECT `Product name`, SUM(`Sales`) AS total_sales FROM dataSource GROUP BY `Product name` -``` - -This SQL statement selects the Produce name and Sales fields from the sourceDataset, groups by Produce name, and sums the Sales field to generate a new field total_sales. VMind will execute this SQL statement to get the aggregated dataset. - -It should be noted that the SQL keywords currently supported in the dataQuery execution process are: SELECT, GROUP BY, WHERE, HAVING, ORDER BY, LIMIT. The currently supported aggregation functions are: MAX(), MIN(), SUM(), COUNT(), AVG(), but complex SQL operations such as subqueries, JOIN, conditional statements, etc. are not supported. - -### Data Filtering and Sorting -In this section, we will learn how to use natural language to perform operations such as filtering and sorting on the dataset. - -First, let's take a look at the following dataset and field information: - -```ts -import VMind from '@visactor/vmind' - -const sourceDataset = [ -{ - "Product name": "Coke", - "region": "south", - "Sales": 2350 - }, - { - "Product name": "Coke", - "region": "east", - "Sales": 1027 - }, - { - "Product name": "Coke", - "region": "west", - "Sales": 1027 - }, - { - "Product name": "Coke", - "region": "north", - "Sales": 1027 - }, - { - "Product name": "Sprite", - "region": "south", - "Sales": 215 - }, - { - "Product name": "Sprite", - "region": "east", - "Sales": 654 - }, - { - "Product name": "Sprite", - "region": "west", - "Sales": 159 - }, - { - "Product name": "Sprite", - "region": "north", - "Sales": 28 - }, - { - "Product name": "Fanta", - "region": "south", - "Sales": 345 - }, - { - "Product name": "Fanta", - "region": "east", - "Sales": 654 - }, - { - "Product name": "Fanta", - "region": "west", - "Sales": 2100 - }, - { - "Product name": "Fanta", - "region": "north", - "Sales": 1679 - }, - { - "Product name": "Mirinda", - "region": "south", - "Sales": 1476 - }, - { - "Product name": "Mirinda", - "region": "east", - "Sales": 830 - }, - { - "Product name": "Mirinda", - "region": "west", - "Sales": 532 - }, - { - "Product name": "Mirinda", - "region": "north", - "Sales": 498 - } -] - -const sourceFieldInfo = [ - { - "fieldName": "Product name", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "region", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "Sales", - "type": "int", - "role": "measure" - } -] - -``` - -Suppose we want to show the top three products in terms of sales in the north region, we can do this: - -```ts -const userPrompt = `Show me the top three products in terms of sales in the north` -const vmind = new VMind(options) - -// Call the dataQuery method, pass in userPrompt, sourceFieldInfo, and sourceDataset to perform data aggregation -const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceFieldInfo, sourceDataset); -``` - -During the execution of the dataQuery method, the following SQL statement will be generated: - -```SQL -SELECT `Product name`, SUM(`Sales`) AS total_sales FROM dataSource WHERE region = 'north' GROUP BY `Product name` ORDER BY total_sales DESC LIMIT 3 -``` - -This SQL statement will filter out data where the region is 'north', then group by "Product name", and calculate the total sales of each product, finally sort by sales from high to low, and only take the top three products with the highest sales. - - -Finally, perform the chart generation operation, and we can get the following chart: - - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_order.png) diff --git a/docs/assets/guide/en/Basic_Tutorial/Data_Extraction.md b/docs/assets/guide/en/Basic_Tutorial/Data_Extraction.md deleted file mode 100644 index eded026e..00000000 --- a/docs/assets/guide/en/Basic_Tutorial/Data_Extraction.md +++ /dev/null @@ -1,61 +0,0 @@ -# Data Extraction - Generate Chart from Text in One Step - -In the previous section [Chart Generation](./Chart_Generation), we learned how to intelligently generate charts from existing structured data. However, in some scenarios, we may not have a dataset available and might only have more raw data, such as text data. In this tutorial, we will introduce how to use VMind to directly generate charts from a piece of text. - -## text2Chart -The `text2Chart` function in VMind is similar to `generateChart`, with the main difference being that the input changes from a data table and field information to plain text content, as follows: -- text (string): Required, the original text content -- userPrompt (string): Optional, the user's visualization intent (what data you mainly want to extract from the text and how to display it with a chart) -- options: Optional, option parameters, including: - - fieldInfo (Array): Field information contained in the text type, including field names, types, etc. - - chartTypeList (ChartType[], optional): Supported chart type list. If not undefined, a chart will be generated from the chart types specified in this list. - - enableDataQuery (boolean, optional): Decides whether to enable data aggregation during chart generation - - colorPalette (Array, optional): Used to set the color palette of the chart - - animationDuration (number, optional): Used to set the playback duration of the chart animation - - theme (ChartTheme | string, optional): Sets the theme style of the final spec. By default, VMind uses a theme style with gradient colors. You can set VChart's general light or dark theme ('light' | 'dark') or a theme style that suits your usage scenario - -This method will return a [VChart chart spec](https://www.visactor.io/vchart/guide/tutorial_docs/Basic/A_Basic_Spec) and a two-dimensional data table. For more details, see [Data Format and Data Processing](./Data_Process). - -Throughout the process, VMind first uses a large model to extract structured table data from the original text and automatically cleans the table data. Then, similar to intelligent chart generation, it uses the large model to obtain the recommended chart type and specific mapping method. Finally, VMind assembles the results to generate the final VChart spec. - -VMind will add an entrance animation to the generated chart by default, so it will also return the duration of the chart animation time. If you don't want the chart animation, you can set spec.animation to false. - -You can learn more about chart animations in the [VChart Animation Tutorial](https://www.visactor.io/vchart/guide/tutorial_docs/Animation/Animation_Types). - -## Usage Example -Below is an example of using text2Chart to generate a chart: - -```ts -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options); -const text = 'Among the national population[2], the number of people with a college (including junior college and above) education level is 218,360,767; the number of people with a high school (including technical secondary school) education level is 213,005,258; the number of people with a junior high school education level is 487,163,489; the number of people with a primary school education level is 349,658,828 (the above-mentioned education levels include graduates, students who have completed some courses, and students currently enrolled in various schools).'; -const userPrompt = 'Compare the proportion of the population with different education levels in this census'; -const { spec, time, dataTable } = await vmind.generateChart(text, userPrompt); - -console.log(dataTable); -// The data table result is as follows -dataTable = [ - { - "education_level": "college", - "number_of_people": 218360767 - }, - { - "education_level": "high school", - "number_of_people": 213005258 - }, - { - "education_level": "junior high school", - "number_of_people": 487163489 - }, - { - "education_level": "primary school", - "number_of_people": 349658828 - } -] -``` -The result of the chart spec is shown below: -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_text2Chart_en_1.jpeg) - -## Parameter Details -The parameters of this function are almost the same as `generateChart`. For more details, see the parameter details section in [Chart Generation](./Chart_Generation). diff --git a/docs/assets/guide/en/Basic_Tutorial/Data_Process.md b/docs/assets/guide/en/Basic_Tutorial/Data_Process.md deleted file mode 100644 index 3da445fe..00000000 --- a/docs/assets/guide/en/Basic_Tutorial/Data_Process.md +++ /dev/null @@ -1,247 +0,0 @@ - -# Data Format and Data Processing -In this tutorial, we will introduce in detail the data formats supported by VMind, and how to use the data processing functions in VMind to obtain these data. - -# VMind Data Format -## Dataset -In VMind, most functions require inputting a dataset. - -In VMind's definition, a dataset is a type of tabular data, its structure is the same as the [flattened data](https://www.visactor.io/vchart/guide/tutorial_docs/Chart_Concepts/Data/Data_Types_and_Interface) in VChart, which is an array composed of multiple data. -Take the product sales dataset as an example, the following shows an example of a dataset: -```json -// Product sales dataset -[ -{ -"Product name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "north", -"Sales": 1027 -}, -{ -"Product name": "Sprite", -"region": "south", -"Sales": 215 -}, -{ -"Product name": "Sprite", -"region": "east", -"Sales": 654 -}, -{ -"Product name": "Sprite", -"region": "west", -"Sales": 159 -}, -{ -"Product name": "Sprite", -"region": "north", -"Sales": 28 -}, -{ -"Product name": "Fanta", -"region": "south", -"Sales": 345 -}, -{ -"Product name": "Fanta", -"region": "east", -"Sales": 654 -}, -{ -"Product name": "Fanta", -"region": "west", -"Sales": 2100 -}, -{ -"Product name": "Fanta", -"region": "north", -"Sales": 1679 -}, -{ -"Product name": "Mirinda", -"region": "south", -"Sales": 1476 -}, -{ -"Product name": "Mirinda", -"region": "east", -"Sales": 830 -}, -{ -"Product name": "Mirinda", -"region": "west", -"Sales": 532 -}, -{ -"Product name": "Mirinda", -"region": "north", -"Sales": 498 -} -] -``` - - -⚠️Note: **In order for the tasks such as chart generation and data aggregation in VMind to be better executed, we recommend that you use a semantically meaningful name for each field in the data (such as Product name, region, Sales, etc.). We do not recommend using field names without any semantics (column1, column2 or random strings, etc.). The large language model will depend on the semantic information contained in the field name to select fields during chart generation and data aggregation** -## Field Information fieldInfo -In VMind, you need to use the fieldInfo object to describe the field information in the dataset. FieldInfo describes the name, type, field description, etc. of each field in the data. This information will be passed to the large language model for tasks such as chart generation and data aggregation. - -The following is the type definition of the fieldInfo object: -```ts -/** field information Of Data Table */ -export interface FieldInfo { - /** name of field */ - fieldName: string; - /** field type, eg: time / category / numerical */ - type: DataType; - /** field role */ - role: ROLE; - /** alias of field */ - alias?: string; - /** additional description of the field. This will help the model have a more comprehensive understanding of this field, improving the quality of chart generation. */ - description?: string; -} -``` -For the dataset shown in the previous section, the corresponding fieldInfo is as follows: -```json -[ -{ -"fieldName": "Product name", -"description": "Represents the name of the product, which is a string.", -"type": "string", -"role": "dimension" -}, -{ -"fieldName": "region", -"description": "Represents the region where the product is sold, which is a string.", -"type": "string", -"role": "dimension" -}, -{ -"fieldName": "Sales", -"description": "Represents the sales amount of the product, which is an integer.", -"type": "int", -"role": "measure" -} -] -``` - - -⚠️Note: **The large language model will rely on the field names and description in fieldInfo for chart generation and data aggregation. The description is not a mandatory item. FieldInfo can be generated by calling getFieldInfo or parseCSVData.** - -# Data Processing Functions -CSV data is a universal and relatively simple file format that stores tabular data in plain text. JSON is a lightweight data exchange format that can be parsed and generated by various programming languages and is widely used in web applications. In this chapter, we will introduce how to use VMind's built-in data processing functions to convert CSV data into a JSON format dataset, and obtain fieldInfo, or directly obtain fieldInfo from JSON formatted data. - -## parseCSVData -The parseCSVData function in VMind can convert a csv string into a dataset structure and generate fieldInfo by extracting field information through rules. During the execution of the function, the large language model will not be requested. -Taking the product sales dataset as an example, the following is an example of using the parseCSVData function: -```ts -import VMind from '@visactor/vmind' -const csv=`Product name,region,Sales -Coke,south,2350 -Coke,east,1027 -Coke,west,1027 -Coke,north,1027 -Sprite,south,215 -Sprite,east,654 -Sprite,west,159 -Sprite,north,28 -Fanta,south,345 -Fanta,east,654 -Fanta,west,2100 -Fanta,north,1679 -Mirinda,south,1476 -Mirinda,east,830 -Mirinda,west,532 -Mirinda,north,498` -const vmind = new VMind(options) -const { fieldInfo, dataset } = vmind.parseCSVData(csv); - -``` - -For the creation of the VMind instance and the detailed configuration in options, please refer to [Creating VMind Instance](./Create_VMind_Instance) - - -In this example, the returned dataset is the same as the product sales dataset in the previous chapter, and the returned fieldInfo is as follows: -```json -[ -{ -"fieldName": "Product name", -"type": "string", -"role": "dimension" -}, -{ -"fieldName": "region", -"type": "string", -"role": "dimension" -}, -{ -"fieldName": "Sales", -"type": "int", -"role": "measure" -} -] -``` - - -For the creation of the VMind instance and the detailed configuration in options, please refer to [Creating VMind Instance](./Create_VMind_Instance) - - -The dataset and fieldInfo can be directly used for chart generation and data aggregation in VMind. - -Since this function does not pass the data to the large language model, it cannot obtain the field description in fieldInfo. You can also supplement it to get better chart generation results. - -For more information on parseCSVData, refer to [parseCSVData API](../../api/parseCSVData). - - -## getFieldInfo -The getFieldInfo function in VMind is used to parse JSON structured data to obtain its field information (fieldInfo). The function obtains fieldInfo based on rules parsing, and does not request the large language model during its execution. -Here is an example of usage: -```ts -const dataset=[ -{ -"Product name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "north", -"Sales": 1027 -}, -... -] - -const vmind = new VMind(options) -const fieldInfo = vmind.getFieldInfo(dataset); -``` - -For details on creating VMind instances and configurations in options, you can refer to [Create VMind Instance](./Create_VMind_Instance) - - -In this example, the returned fieldInfo is the same as the product sales dataset in the previous chapter. - -For more information on getFieldInfo, refer to [getFieldInfo API](../../api/getFieldInfo) diff --git a/docs/assets/guide/en/Basic_Tutorial/How_to_Get_VMind.md b/docs/assets/guide/en/Basic_Tutorial/How_to_Get_VMind.md deleted file mode 100644 index 971250db..00000000 --- a/docs/assets/guide/en/Basic_Tutorial/How_to_Get_VMind.md +++ /dev/null @@ -1,41 +0,0 @@ -# How to Get VMind - -There are several ways to get VMind: - -- Get from npm -- Get from cdn -- Get from GitHub repository - -## Get from npm - -First, you need to install VMind in the root directory of the project using the following command - -```bash -# Install with npm -npm install @visactor/vmind - -# Install with yarn -yarn add @visactor/vmind -``` - -VMind needs to be used in conjunction with VChart. In order to draw charts, you also need to introduce VChart into the project. For specific tutorials, please refer to [VChart Quick Start](https://www.visactor.io/vchart/guide/tutorial_docs/Getting_Started) - - -## Get from cdn - -You can get VMind from the following free CDN: - -```html - - - - - -``` - -## Get from GitHub - -On GitHub, you can directly get the source code of VMind: - -- You can directly clone the source code from GitHub. -- You can also choose the corresponding version from the [release](https://github.com/VisActor/VMind/releases) page of VMind, click on Source code in Assets at the bottom of the page, download it to the local and unzip it for use. diff --git a/docs/assets/guide/en/Basic_Tutorial/How_to_Import_VMind.md b/docs/assets/guide/en/Basic_Tutorial/How_to_Import_VMind.md deleted file mode 100644 index ced86bb1..00000000 --- a/docs/assets/guide/en/Basic_Tutorial/How_to_Import_VMind.md +++ /dev/null @@ -1,51 +0,0 @@ -# How to Reference VMind in Your Project - -In the [How to Get VMind](./How_to_Get_VMind) section, we introduced how to get VMind. This section will introduce how to reference VMind under these acquisition methods one by one. - -## Using cdn - -After we get the VMind file from [cdn](./How_to_Get_VMind#cdn-获取), we can add it to the ` - - -``` - -## Using npm - -After we install `@visactor/vmind` into the project through [npm](./How_to_Get_VMind#npm-获取), we can use it in the following way: - -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ -url, //default is https://api.openai.com/v1/chat/completions -model: Model.GPT3_5, -headers: { -'api-key': apiKey //Your LLM API Key -} -}) -``` diff --git a/docs/assets/guide/en/Contribution_Guide.md b/docs/assets/guide/en/Contribution_Guide.md deleted file mode 100644 index b03437fb..00000000 --- a/docs/assets/guide/en/Contribution_Guide.md +++ /dev/null @@ -1,182 +0,0 @@ -# VMind Open Source Code Contribution Guide - -Firstly, thumbs up👍🏻 for choosing to join the rank of open source contribution. Additionally, we greatly appreciate you choosing to participate in the VisActor community and contributing to this open source project. - -## VMind Contribution Guide - -The VisActor team usually develops and maintains issues on Github. Please open the [Github website](https://github.com/), click the `Sign up` button in the upper right corner, register an account of your own, and start the first step of your open source journey. - -If for some reason you can't open the Github site, you can still work on the project through [Gitee](https://gitee.com/VisActor/VChart). - -In the [VMind repository](https://github.com/VisActor/VMind), we have a [guide](https://github.com/VisActor/VMind/blob/develop/CONTRIBUTING.zh-CN.md) for all open source contributors that introduces version management, branch management, etc. **Please take a few minutes to read and understand it**. - -## Your First PullRequest - -### Step0: Install Git - -Git is a version control system used to track and manage changes in code in software development projects. It helps developers record and manage the history of code, making it easy for team collaboration, code version control, merging code, and more. With Git, you can track each version of each file and easily switch between and compare different versions. Git also provides branch management, so you can perform multiple parallel development tasks at the same time. - -- Visit the official Git website: -- Download the latest version of Git installer. -- Run the downloaded installer and follow the installation wizard's instructions to install. -- After installation, you can use the `git version` command on the command line to confirm successful installation. - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/git_version.png) - -When using Git, you need to set your username and email address, as these will be used in every Git commit. Open the command line and input the following commands to set your Git username: - -```bash -git config --global user.name "your_username" -git config --global user.email "your_email@example.com" -``` - -Please replace "your_username" and "your_email@example.com" with the username and email you want to use in Git. - -### Step1: Fork the Project - -- First, you need to fork this project. Go to the [VMind project page](https://github.com/VisActor/VMind), click the Fork button in the upper right corner. - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/fork_vmind.png) - -- Your github account should now have a project named xxxx(your github username)/vmind. -- Use the following command on your local computer: you should get a VMind folder. - -``` -// ssh -git clone git@github.com:xxxx(your github username)/VMind.git -// https -git clone https://github.com/xxxx(your github username)/VMind.git -``` - -### Step2: Get the Project Code - -- Enter the VMind folder and add the VMind remote address - -``` -git remote add upstream https://github.com/VisActor/VMind.git -``` - -- Get the VMind latest source code - -``` -git pull upstream develop -``` - -### Step3: Create a Branch - -- Now we can start contributing our code. VMind default branch is the develop branch. Whether it is feature development, bug fixes, or document writing, please create a new branch and merge it to the develop branch. Use the following code to create the branch: - -``` -// Create feature development branch -git checkout -b feat/xxxx - -// Create problem-fixing development branch -git checkout -b fix/xxxx - -// Create document/demo branch -git checkout -b docs/xxxx -``` - -- Now we can modify code on the branch -- Let's assume we have added some code and made a commit to the stage -- git commit -a -m "new commit" - -### Step4: Merge Changes - -- A common problem is that there is new update in the remote upstream(@visactor/vmind) which can cause conflicts when we push the Pull Request. So, before submission, we can merge the commits from other developers with our commits. Use the following code to switch to develop branch: - -``` -git checkout develop -``` - -- Use the following code to pull the latest code from remote: - -``` -git pull upstream develop -``` - -- Switch back to your own development branch: - -``` -git checkout docs/add-funnel-demo -``` - -- Merge the develop commit to branch1: - -``` -git rebase develop -``` - -- Push the update code to your own branch: - -``` -git push upstream docs/add-funnel-demo -``` - -### Step5: Submit Pull Request - -You can click the New pull request button on your github repo page. - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/create_pr.png) - -Follow the template to write down the content modified in this submission: - -- Check what type of modification this is - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/pr_template.png) - -- Fill in the related issue - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/related_issue.png) - -- If a complex change has been made, please provide background and solution - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/background_solution.png) - -After completing all related information, click Create pull request to submit - -## Mini Task Development Guides - -"**good first issue**" is a common label in the open source community, aimed to help new contributors find ideal starter issues. - -VMind's starter issues can be viewed on the [issue list](https://github.com/VisActor/VMind/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22), which currently includes two types: - -- Demo use case creation -- Simple function development - -If you currently **have time and are willing** to contribute to the community, look at the good first issue in the issue list, and pick one that interests you and suits your abilities. - -I believe you are a student who finishes what you start, so once you understand and decide to take on an issue, please leave a message under the issue to let everyone know. - -### Feature Task - -We have prepared some simple and easy-to-master feature development tasks. If you have a basic understanding of Javascript/Typescript, you can take on this type of task. - -You can learn more about VMind code architecture by implementing requirements. **You can leave a message under the issue and discuss your plan with everyone**. - -1. Based on the develop branch, pull a new `feat/***` branch for development -1. (If you've already installed it, skip this step) Install [@microsoft/rush](https://rushjs.io/pages/intro/get_started/) globally: `npm i --global @microsoft/rush` -1. Run `rush update` in the root directory -1. Run `rush start` to test VMind code locally - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_playground.png) - -Click "Set API-Key and LLM URL" at top left corner to set LLM service url and key - -5. Confirm all tests pass `rush test` -5. After completing development, run `rush change` to write changelog and submit changes -5. Commit all code, and create a Pull Request on Github, inviting others to review - -## Embrace the VisActor Community - -In addition to contributing code to VIsActor, we encourage you to participate in other activities that help the community thrive, such as: - -1. Offering suggestions for project development, feature planning, and more -2. Creating articles and videos, hosting lectures to promote VisActor -3. Writing promotional plans and executing them with the team - -VisActor is also working hard to help community builders grow together. We plan to (but are not limited to, and look forward to more suggestions from everyone) provide the following assistance: - -1. Data visualization development training based on VIsActor, to help participants quickly grow in programming skills, visualization theory, architecture design, and other aspects. -2. Regularly selecting the "Code Contribution Award" and "Community Promotion Award" -3. Organizing community members to participate in open-source activities diff --git a/docs/assets/guide/en/Getting_Started/Getting_Started.md b/docs/assets/guide/en/Getting_Started/Getting_Started.md deleted file mode 100644 index 40380a5b..00000000 --- a/docs/assets/guide/en/Getting_Started/Getting_Started.md +++ /dev/null @@ -1,251 +0,0 @@ -# Quick Start - -@VisActor/VChart provides a full-process solution from data to presentation, with "visualization narrative" and "intelligence" as its core competitiveness. The powerful generation ability of the large language model provides VChart with a natural language interaction interface, allowing us to directly call VChart's capabilities through natural language, and complete chart generation and editing simply, quickly, and with high quality. -@VisActor/VMind is a chart intelligence module based on VChart and the large language model, providing capabilities such as intelligent chart recommendation, intelligent color matching, and dialog-style chart editing, which can greatly reduce the threshold for using VChart and improve the efficiency of users in creating data visualization works. -In this tutorial, we will introduce how to use the VMind component to generate a simple chart. - -## Get VMind - -### Use NPM Package - -First, you need to install VMind in the project root directory using the following command - -```sh -# Install with npm -npm install @visactor/vmind - -# Install with yarn -yarn add @visactor/vmind -``` - -VMind needs to be used in conjunction with VChart. In order to draw charts, you also need to introduce VChart into the project. For specific tutorials, please see [Quick Start](http://www.visactor.io/vchart/guide/tutorial_docs/Getting_Started) - -## Introduce VMind - -### Import through NPM Package - -Use `import` at the top of the JavaScript file to introduce VMind - -```js -import VMind from '@visactor/vmind'; -``` - -## Initialize VMind Instance - -The complete type definition of options is as follows: -First, we need to initialize a VMind instance and use it to complete subsequent operations. VMind currently supports all mainstream models, including OpenAI GPT series, Byte Doubao series, and DeepSeek models. As long as the corresponding model API interface is provided, all models can be directly invoked. -Use the following code to initialize a VMind instance: - -```js -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - model: Model.GPT4o, // use gpt-4o model - headers: { // specify the header when calling the LLM service - Authorization: `Bearer ${OPENAI_API_KEY}` // Your OPENAI_API_KEY - } -}) -``` - -When initializing the VMind instance, you can specify the url of the LLM service, the type of model, custom model request methods and other parameters. For detailed tutorials, please go to the [Create VMind Instance](./Basic_Tutorial/Create_VMind_Instance) chapter - -## Chart Intelligent Generation Module - -In traditional chart generation steps, in order to make a complete chart, you need to complete the following steps: - -1. First prepare a set of data you want to display -2. Specify a chart type (chart recommendation) -3. Describe how the fields in the data are mapped to the visual channels of the chart (field mapping) -4. Modify the style of each element and set the chart palette (intelligent color matching) - -And to generate a chart with VMind, you only need to: - -1. Provide a set of data you want to display (csv or JSON format) -2. Describe your requirements for the chart, such as what information you want to display in the chart, what style of color matching to use, etc. - -For example, we want to use the following product sales data to show the sales of various products in different regions: - -| Product Name | region | Sales | -| ------------ | ------ | ----- | -| Cola | south | 2350 | -| Cola | east | 1027 | -| Cola | west | 1027 | -| Cola | north | 1027 | -| Sprite | south | 215 | -| Sprite | east | 654 | -| Sprite | west | 159 | -| Sprite | north | 28 | -| Fanta | south | 345 | -| Fanta | east | 654 | -| Fanta | west | 2100 | -| Fanta | north | 1679 | -| Red Bull | south | 1476 | -| Red Bull | east | 830 | -| Red Bull | west | 532 | -| Red Bull | north | 498 | - -To use data in CSV or JSON formats in subsequent processes, it's necessary to call data processing methods to convert CSV data to a JSON format dataset and obtain fieldInfo, or directly obtain fieldInfo from JSON formatted data. VMind provides rule-based methods to get this information. These methods will not transfer detailed data to a larger model. - -We can call parseCSVData to obtain a JSON format dataset and fieldInfo from CSV data for intelligent chart generation and data aggregation: - -```ts -const csvData = `Product Name,region,Sales -Cola,south,2350 -Cola,east,1027 -Cola,west,1027 -Cola,north,1027 -Sprite,south,215 -Sprite,east,654 -Sprite,west,159 -Sprite,north,28 -Fanta,south,345 -Fanta,east,654 -Fanta,west,2100 -Fanta,north,1679 -Red Bull,south,1476 -Red Bull,east,830 -Red Bull,west,532 -Red Bull,north,498`; -//Pass in the csv string to get fieldInfo and dataset for chart generation -const { fieldInfo, dataset } = vmind.parseCSVData(csvData); -``` - -If you already have JSON formatted data, we can also call the getFieldInfo method to obtain fieldInfo from the data: -```ts -const dataset=[ -{ -"Product name": "Coke", -"region": "south", -"Sales": 2350 -}, -{ -"Product name": "Coke", -"region": "east", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "west", -"Sales": 1027 -}, -{ -"Product name": "Coke", -"region": "north", -"Sales": 1027 -}, -... -] - -const vmind = new VMind(options) -const fieldInfo = vmind.getFieldInfo(dataset); -``` - -The content we want to show is "the changes in the sales rankings of various car brands". Call the generateChart method and pass the data and display content description directly to VMind: -```typescript -const userPrompt='show me the changes in sales rankings of various car brand' -//Call the chart generation interface to get spec and chart animation duration -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -Next, we can use VChart to draw the generated chart. -Before drawing, we need to prepare a DOM container with height and width for VChart. - -```html - - -
- -``` - -Next, we create a `VChart` instance, pass in the spec just generated and the ID of the DOM container: - -```ts -// Create vchart instance -const vchart = new VChart(spec, { dom: 'chart' }); -// Draw -vchart.renderSync(); -``` - -The generated chart is as follows: - -![Bar Chart](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/bar.gif) - -We can also make more requests for the chart, for example: - -```typescript -const userPrompt = 'Help me show the sales of various products in different regions, use line charts, and use region as the x-axis'; -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -The generated chart is as follows: - -![Line Chart](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/line.gif) - -## Export GIF and Video - -VMind supports exporting the generated chart as a GIF animation and video, which can be shared anytime and anywhere. -In order to implement the video export function, you need to additionally include VChart, FFMPEG, canvas related content in your project and pass them as objects to VMind. The following will show how to get the ObjectURL of the chart GIF and video: - -First, install VChart, FFMPEG, and canvas-related content: -```bash -# Install with npm -npm install @visactor/vchart -npm install @visactor/vrender-core -npm install @ffmpeg/ffmpeg^0.11.6 -npm install canvas^2.11.2 -``` -Ensure that the vrender-core version matches the vchart dependency version, for example: `"@visactor/vchart": "1.12.7"` should correspond to `"@visactor/vrender-core": "0.20.7"`. -Usage is as follows: -```typescript -import VChart from "@visactor/vchart"; -import { ManualTicker, defaultTimeline } from "@visactor/vrender-core"; -import { createFFmpeg, fetchFile } from '@ffmpeg/ffmpeg/dist/ffmpeg.min.js' -import { createCanvas } from "canvas"; -import VMind from "@visactor/vmind"; - -// Initialize vmind and ffmpeg -const vmind = new VMind({}); -const ffmpeg = createFFmpeg({ - log: true, -}); -const loadFFmpeg = async () => { - if (!ffmpeg.isLoaded()) { - await ffmpeg.load(); - } -}; -// Ensure ffmpeg is loaded before using the export feature -await loadFFmpeg(); -// Export video -// Pass in the chart spec, video duration, and necessary parameters for video creation, and return the ObjectURL -const videoSrc = await vmind.exportVideo(spec, time, { - VChart, - FFmpeg: ffmpeg, - fetchFile, - ManualTicker, - defaultTimeline, - createCanvas, - }); -// Export GIF image -const gifSrc = await vmind.exportGIF(spec, time, { - VChart, - FFmpeg: ffmpeg, - fetchFile, - ManualTicker, - defaultTimeline, - createCanvas - }); -``` - -Once you get the ObjectURL of the chart, we can save it as a file. Take saving the video file as an example: - -```typescript -//Create dom element to implement file download -const a = document.createElement('a'); -a.href = videoSrc; -a.download = `${filename}.mp4`; //Set the saved file name -a.dispatchEvent(new MouseEvent('click')); //Save file -``` - -## Summary - -This chapter introduces how to install and use VMind for chart generation, and demonstrates how to save the generated chart as a GIF and video. VMind currently supports bar charts, pie charts, line charts, scatter plots, word clouds, dynamic bar charts, and more chart types are under development. VMind can recommend suitable chart types based on user data and display intentions, map fields to suitable visual channels, and automatically generate palettes that meet user needs, reducing the threshold for users to perform data visualization and helping you easily complete data narratives. diff --git a/docs/assets/guide/en/Getting_Started/Quickly_Get_Started_with_VisActor_Using_Trae_Context_Doc.md b/docs/assets/guide/en/Getting_Started/Quickly_Get_Started_with_VisActor_Using_Trae_Context_Doc.md deleted file mode 100644 index 50807003..00000000 --- a/docs/assets/guide/en/Getting_Started/Quickly_Get_Started_with_VisActor_Using_Trae_Context_Doc.md +++ /dev/null @@ -1,197 +0,0 @@ ---- -title: Using Cursor with DeepSeek to Quickly Get Started with Unfamiliar Components - -key words: VisActor, VChart, VTable, VStory, VMind, VGrammar, VRender, Visualization, Chart, Data, Table, Graph, Gis, LLM ---- -In today's software development field, developers face the challenge of continuously improving development efficiency and reducing the learning curve. The core purpose of this document is to help developers achieve this goal, especially by cleverly using **component official documentation** and combining tools like **Cursor** and **DeepSeek** to let AI automatically generate the required code, quickly lowering the entry barrier. Next, we will experiment with several projects in the relatively new open-source project, VisActor (https://www.visactor.com; https://www.visactor.io/), an open-source visualization solution, to see how effective it is. - -# Preparation - -## Create a Test Project - -For example, I have a simple project initialized with `npx create-react-app my-app --template typescript`, which looks like this after starting: - - - -## Obtain DeepSeek API Key - -Register with DeepSeek and create your API key on the [DeepSeek API](https://platform.deepseek.com/api_keys) official website. - - - -## Configure Cursor - -Official website: https://www.cursor.com/ - -Download and register, open your VChart project with Cursor, and configure Cursor. - -Using DeepSeek-V3 as an example, its API model name is `deepseek-chat`, and the API address is https://api.deepseek.com/v1. For more details, see the [API usage official website](https://api-docs.deepseek.com/zh-cn). - -Create a new model on the model page, set the corresponding API address and model name. - - - -Of course, you can also use any other AI model; here, we use DeepSeek. - -# Inject Official Tutorial into @Docs - -# Practical Verification - -## VTable Test - -VTable (https://www.visactor.io/vtable/; https://www.visactor.com/vtable/) is a powerful table component in the VisActor visualization library. It is designed to meet diverse data presentation needs, offering high flexibility and customizability. Whether it's simple data listing or complex data analysis display scenarios, VTable can provide excellent solutions. - -VTable has the following core features: - -- Supports various table types: basic tables, pivot tables, transposed tables, pivot charts, etc. - -- Powerful interaction features: sorting, filtering, row and column dragging, cell editing, etc. - -- Rich cell types: text, charts, progress bars, checkboxes, sparklines, etc. - -- High-performance rendering: supports smooth display of millions of data - -- Multi-platform adaptation: perfect support for mainstream frameworks like Vue, React - -### Invoke AI Interaction Panel in Cursor and Generate Code - -After setting up the project environment, use `cmd + i` to invoke the AI interaction panel. We directly let AI generate a basic table code snippet for inserting VTable. - - - -However, the initial generation result shows that AI does not recognize VTable's `ListTable`, possibly due to the inability to accurately recognize VTable's ListTable configuration. - - - -### Inject Official Tutorial into @Docs - -To solve the above problem, we inject the official tutorial into @Docs. - - - -Explicitly specify `VisActor VTable` in the `prompt` in @Docs. After this step, we are pleasantly surprised to find that AI can correctly write the implementation logic according to the `option` in VTable. - - - -### Code Application and Effect Display - -Copy the generated code into the corresponding file, run the project, and you can see the initial effect, with the table correctly generated. - - - -Then, we continue to let AI modify the table style. AI provided reasonable modification suggestions, - - - -After running the project again, we got a display effect that better meets the requirements: - - - -## VChart Test - -### Add a Bar Chart - -Invoke AI interaction with the `cmd+i` command, and let AI help us generate a simple bar chart code first. - - - -Directly apply this spec, and we check the result; a simple bar chart is rendered. It can be seen that DeepSeek has a certain understanding of VChart, and simple charts can be directly added. Let's try a more complex scenario. - - - -### Complex Scenario, Inject Docs - -We hope to add an average auxiliary line on the y-axis, check the result, but the result is incorrect. Upon closer inspection, it can be found that although the markLine is written as if it is correct, the spec does not conform to the specification, and the average line is calculated. We solve this problem by injecting docs. - - - - - -#### Set Docs - -Enter the Cursor settings page, select `Features`, add new docs, the docs address is https://visactor.com/vchart (https://visactor.io/vchart); you can also directly add through @Docs on the editing page. - - - -### Experimental Results - -By editing again with the newly added docs, the correct result can be obtained! - - - - - -## VStory Test - -VStory (GitHub: https://github.com/VisActor/VStory/; site: https://www.visactor.io/vstory/, https://www.visactor.com/vstory/) is a narrative-oriented visualization development framework that integrates the capabilities of all VisActor visualization components, making it more challenging to use. We conduct a simple test. - -Invoke AI interaction with the `cmd+i` command, and let AI help us generate a simple dashboard demo first. - - - -It can be found that it is completely incorrect because DeepSeek uses data from 2023, and VStory had not been released at that time, so it does not know how to use it. At this point, we need to let it read the documentation to learn. - -### Inject Docs - -We solve this problem by injecting docs. - -Enter the Cursor settings page, select `Features`, add new docs, the docs address is https://visactor.com/vstory/guide/tutorial_docs/VStory_Website_Guide; you can also directly add through @Docs on the editing page. - - - -### Experimental Results - -By editing again with the newly added docs, the correct result can be obtained! - - - - - -**Since VStory uses VChart, VTable, and VRender, to achieve better results, you should add the documentation of VChart, VTable, and VRender to the context simultaneously.** - -# Simple Summary - -1. Improve Development Efficiency - -- Quick Access: Directly access VisActor API documentation through Cursor - -- Intelligent Suggestions: Precise code completion based on VisActor documentation - -2. Enhance Development Experience - -- Seamless Integration: Directly obtain VTable usage guidance in the development environment - -- Real-time Feedback: Quickly verify code effects - -3. Reduce Learning Costs - -- Documentation Assistance: Access VisActor official examples at any time - -- Code Generation: Automatically generate code that complies with VisActor standards - -4. Improve Code Quality - -- Standard Check: Ensure code complies with VTable best practices - -- Performance Optimization: Automatically generate high-performance table configurations - -# Contact Us - -GitHub: [github.com/VisActor](https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2FVisActor) - -Leave a message on the VisActor WeChat subscription account (you can join the WeChat group through the subscription account menu): - - - -VisActor official website: [www.visactor.io/](https://link.juejin.cn/?target=https%3A%2F%2Fwww.visactor.io%2Fvtable); [www.visactor.](https://link.juejin.cn/?target=https%3A%2F%2Fwww.visactor.io%2Fvtable)com - -Feishu Group: - - - -Discord: https://discord.com/invite/3wPyxVyH6m - - ---- - -The doc is contributed by [玄魂](https://github.com/xuanhun) \ No newline at end of file diff --git a/docs/assets/guide/en/Intro_to_VMind.md b/docs/assets/guide/en/Intro_to_VMind.md deleted file mode 100644 index 4c349da7..00000000 --- a/docs/assets/guide/en/Intro_to_VMind.md +++ /dev/null @@ -1,73 +0,0 @@ - -# Introduction to VMind -## Preface -VisActor is a full-process visualization solution, which takes "visual storytelling" and "intelligence" as its core development direction. The components of VisActor that carry the ability of "visual storytelling" mainly include VChart, VTable, and VGrammar, all of which provide simple and easy-to-use interfaces. However, we hope that in some typical scenarios, users can generate charts and narrative works without writing code, thereby reducing the learning cost and complexity for users. The powerful generation ability of the large language model provides a natural language interaction interface for the VisActor visualization system, allowing us to directly call various functions of visualization components such as VChart and VTable through natural language, thereby completing visualization creation simply, quickly, and with high quality. - - -![VMind](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_intro_eng.png) - - -VMind is an intelligent visualization component built on the basic capabilities of visualization component libraries such as VChart and VTable. We hope that in some typical scenarios, users can generate charts and narrative works with just one sentence, thereby reducing the learning cost and complexity for users. - -## VMind Architecture Design -Intelligence is the future core direction of VisActor. Only on this basis can we truly reduce the access and development costs of developers and allow them to focus on things outside of visualization. VMind is an intelligent visualization component in the VisActor system. It provides intelligent interfaces in various ways such as rule algorithms, artificial intelligence, machine learning, and large language models to minimize the mental burden of developers using visualization components. - - -![VMind Architecture Diagram](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_structure_eng.png) - - -In the VMind component, the bottom layer is the chart rendering, animation, annotation capabilities, VChart documentation provided by the VChart chart library, and the natural language understanding and code generation capabilities provided by the LLM. Among them, the data processing and interaction layer is responsible for processing user input data and natural language, including data aggregation modules for field parsing, data conversion, aggregation, etc., and the interaction communication module is responsible for handling communication between users and VMind, VMind and the LLM, including user intent recognition, Prompt management, model communication, result parsing. - -## VMind Core Capabilities - - -![VMind Capability Diagram](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_abilities_eng.png) - - -The core capabilities of VMind include intelligent chart generation, intelligent chart editing, and intelligent color matching. -- Intelligent chart generation refers to the process of directly generating charts from the display intent + data described in natural language. -- Intelligent chart editing is the process of generating edited charts based on the original chart through the editing intent described in natural language. -- Intelligent color matching is the process of generating stylized charts from natural language. - -Advanced capabilities are further applications of core capabilities, including complete visual narrative generation, data interpretation, and insight reports. - -## VMind Chart Creation Process - - -![VMind Capability Diagram](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_progress_eng.png) - - -Based on VMind's intelligent chart generation, conversational editing, and intelligent color matching modules, we can summarize the full process of using VMind for chart creation: -First, the user provides a natural language description of the data display intent and chart data, or provides a natural language description of the chart editing intent and data news fragments, etc. These inputs are processed by the intent recognition module and routed to different modules. The intelligent chart generation module generates preliminary charts; the intelligent color matching module will generate corresponding theme color palettes according to user input, making the color matching of the chart more harmonious and beautiful; the conversational editing module will repeatedly apply a series of editing operations to fine-tune and optimize the chart until a chart that meets user needs is generated. - -The collaboration of these modules allows users to create visualization works without any threshold. This process not only greatly simplifies the complexity of chart creation but also greatly improves the efficiency and quality of chart creation. - -This process makes full use of the function call capability of the LLM. Chart generation, chart editing, and intelligent color matching are provided as functions for the model to call. LLM serves as the interface for interacting with users, selects the corresponding function according to user intent, and passes in parameters to execute the function of the corresponding module. In the future, VMind will also integrate insight extraction and data interpretation functions to interpret the generated charts, generate insight reports, or add annotations to the charts to display insight information in the data. At the same time, the model also has a powerful natural language dialogue capability, which can have multiple rounds of dialogue with users, and help users complete the entire process from chart creation to data analysis in a simple, natural, and friendly manner. Developers can easily integrate VMind into their systems as a data visualization assistant. - -## Practical Application of VMind -### Data Video -Data video is a type of video that presents and interprets data content through charts, animations, annotations, voiceovers, etc. This method can transform abstract data into intuitive graphics, present it in a more lively and interesting way, and make it easier for the audience to understand and accept. - -The steps to make a data video include: - -- Determine the data source and theme -- Collect and organize data -- Create, edit, and export charts -- Video editing -In the traditional data video production process, after collecting data, the creator needs to use professional visualization software to convert the data into charts; or use various chart libraries to draw charts through programming and export them as videos. In the era of short videos, everyone can become a video creator. However, non-professional video creators often do not have the skills to visualize data into charts and export them as videos, which greatly increases the threshold for making data videos. - -When using VMind to make data videos, users only need to describe the content they want to show in one sentence after collecting the data, and they can directly generate chart animations and support one-click export to videos and GIFs, which greatly reduces the difficulty of making data videos. - - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/cut.png) - - -### Intelligent Chart Assistant -With the intelligent chart assistant built with VMind, you can use the function call capability of the large language model to judge the user's intent and call the VMind interface to realize chart generation and data interpretation, thereby reducing the difficulty of data visualization. - - -__You can try the VMind Chart Assistant on [Cici](https://ciciai.com/bot/fUuxvgvv).__ - - -![VMind Intelligent Chart Assistant](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_assistant.png) - diff --git a/docs/assets/guide/en/VMind_OpenAPI.md b/docs/assets/guide/en/VMind_OpenAPI.md deleted file mode 100644 index fefafe3f..00000000 --- a/docs/assets/guide/en/VMind_OpenAPI.md +++ /dev/null @@ -1,90 +0,0 @@ -# VMind OpenAPI - -Built on the VMind chart generation tool, the VisActor team has launched VMind Agent, which improves the accuracy and efficiency of intelligent generation and adds multi‑turn editing capabilities. VMind Agent currently provides OpenAPI interfaces that you can call to achieve more advanced intelligent generation. The [VMind Agent Playground](/vmind/playground) offers a simple testing environment to experience VMind Agent’s capabilities. - -## VSeed - -VSeed is a domain‑specific language (DSL) for analytics. It encapsulates commonly used charting capabilities, greatly improving the efficiency of building analytic reporting platforms. In most cases, given a dataset and chart type, it can render directly; each chart type comes with extensive default conventions. - -VSeed is a subset of VChart and VTable. Its configuration is greatly simplified compared with VChart and VTable, making the options easier for large models to understand. It is a chart library specifically packaged for LLM‑driven generation. - -VSeed repository: [https://github.com/VisActor/VSeed](https://github.com/VisActor/VSeed) - -VSeed showcase: [https://visactor.github.io/VSeed/galley/chartType/line.html](https://visactor.github.io/VSeed/galley/chartType/line.html) - -VMind Agent prioritizes using VSeed for code generation for better results, while also supporting native code generation for VChart and VTable. - -## VMind Agent - -The overall technical approach of VMind Agent is as follows: - -When the user provides instructions and code blocks to VMind Agent, the agent uses the LLM to actively call tools and proceeds step by step through Generate/Edit → Check → Edit → Check … until the user’s requirements are met, outputting the corresponding code blocks and explanatory text. - -Compared with traditional chart generation tools, VMind Agent offers advantages in the following areas: -- 🤖 ReAct architecture: Reasoning–action loop implemented with LangGraph -- 🛠️ Diverse tools: Supports multiple chart generation and editing tools -- 📊 Chart types: Supports many chart and table types -- 🎨 Template system: Prebuilt chart templates -- 🔧 Chart editing: Supports modifying existing charts -- 💬 Natural language: Supports generating charts from pure natural‑language input - -### VMind Agent Architecture - -VMind Agent is composed of a Coordinator (scheduler) and a set of tools, and is implemented with the `@langchain/langgraph` library. The main modules are: - - - -#### Coordinator - -The scheduler’s main job is to determine, based on the current state, which tool to call next or whether to end the task. - -#### Generate Tool - -The generation tool is invoked when the user has not provided code or explicitly asks to regenerate code. If no chart type is specified, the tool recommends a suitable chart type based on the data. Each chart or table type provides a basic template; the LLM uses the user’s data and the template to generate the simplest code block for subsequent editing. - -#### Edit Tool - -The editing tool is the core of VMind Agent. Based on the current code and the user’s goal, the LLM breaks the task into multiple simple steps and completes them one by one. Before executing each edit step, the tool retrieves relevant materials from the knowledge base according to the step’s requirements to assist the LLM. - -#### Check Tool - -After each edit operation, the check tool verifies whether the change introduces serious errors or fails to achieve the step’s goal. If the check fails, the previous edit is rolled back. - -#### Short‑term Memory - -Each conversation records the current `sessionId`, allowing the same user to recall the state saved in previous turns and continue multi‑turn editing. - -### VMind Agent Knowledge Base - -To prevent hallucinations during editing, VMind Agent strictly limits the edit scope to the knowledge base fragments provided for each operation. The knowledge base consists of two parts: - -#### RAG - -Tutorial documents, demo examples, and Q&A content have strong independence and are well suited to a RAG approach. Relevant fragments are vectorized and stored in a vector database. For each edit operation, the system retrieves a set of related texts and code snippets for the model’s reference. When editing, if highly similar content is retrieved, the model can accurately perform the corresponding edits on the matched code snippets. - -#### Type Docs - -Configuration schemas for charts and tables are split by chart/table type and by module (e.g., axes, legends) into separate typed documentation fragments. Each fragment includes property names, types, and descriptions, and different fragments are indexed by different TopKeys. The LLM summarizes each fragment into Markdown and stores it in the database. For each TopKey, the LLM also produces a concise summary describing the scope covered by that TopKey. - -For each edit, the system first retrieves relevant TopKeys based on the instruction, then injects the associated Markdown fragments into the prompt. The LLM’s edits are strictly constrained to the range covered by the retrieved knowledge to avoid hallucination‑driven errors. - -## VMind Agent Applications - -### Playground - -VMind Agent Playground provides a simple testing environment to experience the agent’s capabilities. You can enter instructions and code blocks to see the generation and editing results. - -[VMind Agent Playground](/vmind/playground) - -### Douyin Mini Program - -Based on VMind Agent, we have developed a sample mini program. In Douyin mini programs, search for “数据智能洞察助手”. Users can input text for intelligent insights and experience the agent’s generation and editing results. - - - -## VMind OpenAPI Support - -Join our Feishu group to contact us and consult on VMind OpenAPI usage. - - - diff --git a/docs/assets/guide/en/VMind_Website_Guide.md b/docs/assets/guide/en/VMind_Website_Guide.md deleted file mode 100644 index 6a788e72..00000000 --- a/docs/assets/guide/en/VMind_Website_Guide.md +++ /dev/null @@ -1,54 +0,0 @@ - -# VMind Site Guide - -The purpose of this article is to help you use the VMind website more effectively and quickly find the information you need. - -## VMind OpenAPI - -VMind provides OpenAPI interfaces that allow you to achieve more advanced intelligent generation capabilities by calling these interfaces. You can learn more about OpenAPI in the [VMind OpenAPI](./VMind_OpenAPI) section. - -## Quick Start - -### Getting Started - -First, you need to read the [Getting Started](./Getting_Started) section of VMind. This section will teach you how to configure and use the environment required by VMind, as well as how to use VMind to build your first intelligent visualization application. - -### Learn More About VMind - -After you complete [Getting Started](./Getting_Started), you can learn about the functional positioning and related concepts of VMind in [Intro to VMind](./Intro_to_VMind). The [Create VMind Object](./Create_VMind_Object) chapter will teach you how to initialize a VMind object for subsequent operations. You can also learn about the data types supported by VMind in the [Data Input and Process](./Data_Input_and_Process) chapter. In the [Chart Generation](./Chart_Generation) chapter, you can learn more about how to use VMind for intelligent chart generation. The [Data Aggregation](./Data_Aggregation) chapter will teach you how to sort, filter, and aggregate data using VMind. - -## Documentation - -The VMind documentation provides detailed information on functions and APIs. Depending on your needs, you can view the following sections: - -- [Tutorials](./Basic_Tutorial/Create_VMind_Instance): Introduces the basic concepts of VMind and various usage methods. - -- [API](../api/VMind_Instance): Provides detailed descriptions of all available interfaces of VMind. - - - -## How to Use the Search Function - -This site provides a powerful search function that allows you to quickly find relevant usage information. Click on the search box at the top of the site, enter the keyword, and you will see the matching results in the drop-down list. Select the appropriate result to view the relevant content. - -## How to Ask Questions & Suggestions - -We are happy to help you! If you encounter any problems while using VMind, you can ask questions in the following ways: - -1. Submit an issue in the GitHub repository: Visit [VMind GitHub](https://github.com/VisActor/VMind/issues/new/choose), describe the problem you encountered in detail, and our team will respond and resolve it as soon as possible. - -2. Submit a discussion in the GitHub repository: Visit [VMind Discussion](https://github.com/VisActor/VMind/discussions), and we welcome you to share your ideas and suggestions here. Our team will respond and resolve it as soon as possible. - -## How to Report Errors - -If you find any problems in the document examples or think that some parts can be improved, please let us know. You can provide us with error correction information in the following ways: - -1. Submit a pull request in the GitHub repository: Correct the content and submit it, and a team member will review and merge it. - -2. Submit an issue: Point out the problems in the document, and a team member will verify and correct it as soon as possible. - -Thank you for your help! We will continue to improve the documentation and provide a better learning experience for all VMind users. diff --git a/docs/assets/guide/menu.json b/docs/assets/guide/menu.json deleted file mode 100644 index 4ee20fce..00000000 --- a/docs/assets/guide/menu.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "menu": "scripts", - "children": [ - { - "path": "VMind_Website_Guide", - "title": { - "zh": "VMind站点指引", - "en": "VMind Website Guide" - } - }, - { - "path": "VMind_OpenAPI", - "title": { - "zh": "VMind OpenAPI", - "en": "VMind OpenAPI" - } - }, - { - "path": "Intro_to_VMind", - "title": { - "zh": "VMind简介", - "en": "Introduction to VMind" - } - }, - { - "path": "Getting_Started", - "title": { - "zh": "快速上手", - "en": "Getting Started" - }, - "children": [ - { - "path": "Getting_Started", - "title": { - "zh": "VMind快速上手", - "en": "Getting Started with VMind" - } - }, - { - "path": "Quickly_Get_Started_with_VisActor_Using_Trae_Context_Doc", - "title": { - "zh": "使用Trace Context快速上手VisActor", - "en": "Quickly Get Started with VisActor Using Trace Context" - } - } - ] - }, - { - "path": "Contribution_Guide", - "title": { - "zh": "贡献指南", - "en": "Contribution Guide" - } - }, - { - "path": "Basic_Tutorial", - "title": { - "zh": "基础教程", - "en": "Basic Tutorial" - }, - "children": [ - { - "path": "How_to_Get_VMind", - "title": { - "zh": "如何获取VMind", - "en": "How to Get VMind" - } - }, - { - "path": "How_to_Import_VMind", - "title": { - "zh": "如何在项目中引用 VMind", - "en": "How to Import VMind" - } - }, - { - "path": "Create_VMind_Instance", - "title": { - "zh": "创建VMind实例", - "en": "Create VMind Instance" - } - }, - { - "path": "Data_Process", - "title": { - "zh": "数据格式与数据处理", - "en": "Data Format and Data Process" - } - }, - { - "path": "Data_Aggregation", - "title": { - "zh": "智能数据聚合", - "en": "Intelligent Data Aggregation" - } - }, - { - "path": "Chart_Generation", - "title": { - "zh": "图表智能生成", - "en": "Intelligent Chart Generation" - } - }, - { - "path": "Chart_Advisor", - "title": { - "zh": "基于规则的图表生成", - "en": "Rule-based Chart Generation" - } - }, - { - "path": "Data_Extraction", - "title": { - "zh": "数据提取——从文本一步生成图表", - "en": "Text to Chart" - } - }, - { - "path": "Chart_Insight", - "title": { - "zh": "智能洞察", - "en": "Auto Insight" - } - } - ] - } - ] -} \ No newline at end of file diff --git a/docs/assets/guide/zh/Basic_Tutorial/Chart_Advisor.md b/docs/assets/guide/zh/Basic_Tutorial/Chart_Advisor.md deleted file mode 100644 index 0da2e0ce..00000000 --- a/docs/assets/guide/zh/Basic_Tutorial/Chart_Advisor.md +++ /dev/null @@ -1,84 +0,0 @@ -# 基于规则的图表生成 -VMind可以结合内建的@visactor/chart-advisor,自动根据当前数据集生成图表。chart-advisor完整依赖于可视化规则,不需要调用大型语言模型。当你使用generateChart,而大模型无法成功生成图表时,VMind会使用chart-advisor作为备选方案来创建一个图表。 - -你同样可以主动选择使用chart-advisor来生成图表,只需在初始化VMind对象时,将模型类型设置为chart-advisor: -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ -model: Model.CHART_ADVISOR, -}) -const userPrompt = ''; -const advisorResult = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` -由于chart-advisor不依赖大型模型,userPrompt可以设为空。 -你可以在[数据格式与数据处理](./Data_Process)章节了解fieldInfo和dataset的更多相关信息。 - -chart-advisor会根据一系列规则生成几种可用的图表,此时generateChart将返回包含图表类型、得分以及spec的列表。 - -## 示例 -下面是一个使用商品销售额数据,通过chart-advisor生成图表的示例: - -```ts -const dataset = [ -{ -"Product name": "Coke", -"Sales": 2350 -}, -{ -"Product name": "Sprite", -"total_sales": 1056 -}, -{ -"Product name": "Fanta", -"total_sales": 4778 -}, -{ -"Product name": "Mirinda", -"total_sales": 3336 -} -// ...more data -] - -const fieldInfo = [ -{ -"fieldName": "Product name", -"type": "string", -"role": "dimension" -}, -{ -"fieldName": "Sales", -"type": "int", -"role": "measure" -} -] - -const advisorResult = await vmind.generateChart(userPrompt, fieldInfo, dataset); - -``` -advisorResult结果如下: -```json -[ -{ -"chartSource": "chartAdvisor", //图表来源 -"spec": ..., //生成的图表spec -"chartType": "BAR CHART", //图表类型 -"score": 1, //当前图表得分 -}, -{ -"chartSource": "chartAdvisor", -"spec": ..., //生成的图表spec -"chartType": "RADAR CHART", //图表类型 -"score": 0.16666666666666666 //当前图表得分 -} -] -``` - -其中,score表示当前图表类型与输入数据的匹配程度,分数越高表示该类型的图表越适用于展示当前数据。 - - -生成的图表如下: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_advisor.png) - -根据输入数据的特性以及fieldInfo中的字段信息,chart-advisor会基于一整套可视化规则,为每种图表类型打分,并依分数将各图表类型排序。这些规则确保了可视化结果的准确度和美观性,并尽可能地减少图表中的视觉混乱和视觉错误。 diff --git a/docs/assets/guide/zh/Basic_Tutorial/Chart_Generation.md b/docs/assets/guide/zh/Basic_Tutorial/Chart_Generation.md deleted file mode 100644 index 309fa323..00000000 --- a/docs/assets/guide/zh/Basic_Tutorial/Chart_Generation.md +++ /dev/null @@ -1,545 +0,0 @@ -# 图表生成 -本教程将向你详细介绍VMind中的图表智能生成功能,并提供一些示例。 - -生成图表的方式有很多,比如你可以在PowerBI、Tableau等专业的BI可视化工具中,利用数据集的字段来制作可视化图表;或者你也可以直接使用VChart、ECharts、MatPlotlib等图表库,通过编写代码来绘制图表。此外,VChart、Echarts等图表库还提供了简单易用的图表编辑器,用户可以上传数据并进行图表制作。 - -然而,传统的图表生成方式也存在一些问题: - -- 对于编程新手来说,他们可能不会编写代码,也就无法使用图表库来生成图表。 -- 图表类型繁多,用户展示数据的目的各不相同,这就导致了适合展示的图表类型和对应的字段映射也会有所不同。对于非专业用户来说,他们可能无法准确地选择出最能表达自己观点的图表类型。 -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_chart_generation.png) -- 用户对于图表样式、动画的需求各不相同,往往需要一定的设计能力才能满足。设计出令人眼前一亮的图表并不容易,它需要设计技能和审美意识,而这些是许多用户所缺乏的。 - -这些问题增加了数据可视化的创作门槛,阻碍了非专业用户创作符合自己意图的可视化作品。 - -VMind的解决方案是,利用大语言模型的自然语言理解能力和公域知识,根据用户的数据和展示意图,推荐合适的图表类型,并将字段映射到合适的视觉通道上,实现图表的智能生成,从而降低用户进行数据可视化的门槛。 - - -## generateChart -VMind的generateChart函数是一个强大的工具,它可以帮助你智能生成图表。这个函数需要以下几个参数: -- userPrompt (string): 用户的可视化意图(你想用图表展示什么信息) -- fieldInfo (Array): 数据集中字段的信息,包括字段名称,类型等 -- dataset (Array): 图表中使用的原始数据集,可以是undefined。若dataset为undefined,则会生成一个spec模板,后续可以调用fillSpecTemplateWithData将数据填充到spec模板。 -- options: 可选,选项参数,包括以下内容: - - - chartTypeList (ChartType[],可选): 支持的图表类型列表。若不为undefined,则会从该列表指定的图表类型中选择生成。 - - enableDataQuery (boolean, 可选): 决定是否在图表生成过程中开启数据聚合 - - colorPalette (Array, 可选): 用于设置图表的调色板 - - animationDuration (number, 可选): 用于设置图表动画的播放持续时间 - - theme (ChartTheme | string, 可选): 设置最终sepc的主题样式,默认为空,VMind会默认使用带渐变颜色的主题样式,可以设置 VChart 通用深浅主题('light' | 'dark')或者符合你使用场景下的主题样式 - -这个方法会返回一个[VChart图表spec](https://www.visactor.io/vchart/guide/tutorial_docs/Basic/A_Basic_Spec)。 - -📢 **请注意:generateChart方法会将userPrompt和fieldInfo传递给大语言模型用于生成图表,但是dataset中的详细数据并不会被传递。** - -在生成图表的过程中,VMind首先会利用大语言模型,根据userPrompt和fieldInfo,推荐一个适合的图表类型。然后,它会将fieldInfo中的字段映射到图表的x轴、y轴、颜色、尺寸等视觉通道上。 - -VMind默认会为生成的图表添加入场动画,因此它还会返回图表动画的时长time。如果你不想要图表动画,可以将spec.animation设为false。 - -你可以在[VChart动画教程](https://www.visactor.io/vchart/guide/tutorial_docs/Animation/Animation_Types)中了解更多关于图表动画的信息。 - -下面是一个使用generateChart生成图表的例子: -```ts -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) -const userPrompt = 'show me the changes in sales rankings of various car brand'; -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` -你可以在[创建VMind实例](./Create_VMind_Instance)中了解如何创建VMind实例和options中的参数信息,在[数据格式与数据处理](./Data_Process)章节中获取更多关于fieldInfo和dataset的相关信息。 - -你可以对spec进行二次加工,改变图表的颜色、样式、动画等配置,也可以直接渲染VChart图表: - -```html - - -
- -``` -```ts -import VChart from '@visactor/vchart'; - -// Create vchart instance -const vchart = new VChart(spec, { dom: 'chart' }); -// Render Chart -vchart.renderSync(); -``` - -在userPrompt中,你可以描述你想展示的内容,这将作为大语言模型推荐图表类型时的依据;你也可以通过options.colorPalette传入一个颜色字符串数组,它将被用作图表的颜色主题。 - - - -## 参数详解 -### userPrompt -`userPrompt`参数是你用来描述你想要用数据集展示的内容,这个描述会被传递给大语言模型,作为生成图表时的参考依据。 - -举个例子,假设我们有一个手机品牌销售数据集,如下所示: -```json -[ - { - "品牌名称": "Apple", - "市场份额": 0.5, - "平均价格": 7068, - "净利润": 314531 - }, - { - "品牌名称": "Samsung", - "市场份额": 0.2, - "平均价格": 6059, - "净利润": 362345 - }, - { - "品牌名称": "Vivo", - "市场份额": 0.05, - "平均价格": 3406, - "净利润": 234512 - }, - { - "品牌名称": "Nokia", - "市场份额": 0.01, - "平均价格": 1064, - "净利润": -1345 - }, - { - "品牌名称": "Xiaomi", - "市场份额": 0.1, - "平均价格": 4087, - "净利润": 131345 - } -] -``` -你可以将`userPrompt`设置为`展示各品牌市场占有率`,然后调用`generateChart`方法,这样就会生成一个饼图: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_pie.png) - - -你也可以设置`userPrompt`为`展示各品牌的净利润`,这样生成的图表就会展示各品牌的净利润情况: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_column.png) - - -你还可以指定图表类型,比如设置`userPrompt`为`展示各品牌的净利润,用折线图`,这样生成的图表就会是一个折线图: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_line.png) - - -你甚至可以指定图表视觉通道的映射,例如设置`userPrompt`为`使用平均价格做x轴,净利润做y轴,品牌名称用作颜色,市场份额做点的大小,绘制散点图`: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_scatter.png) - - -VMind的强大之处在于,你只需要用一句话描述你的需求,就可以生成你想要的图表,而无需关心图表生成的细节。这得益于大语言模型所掌握的公域知识。 - -例如,对于下面这份csv数据: -```json -时间,男-早餐,女-早餐 -周一,15,22 -周二,12,10 -周三,15,20 -周四,10,12 -周五,13,15 -周六,10,15 -周日,12,14 -``` - -如果你输入的展示意图为`展示男女早餐饭量不同`,那么就会生成一个双轴图: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_dual_axis.png) - - -VMind还支持[动态条形图(ranking bar)](https://www.visactor.io/vchart/demo/storytelling/ranking-bar),这是一种叙事图表,它通过不断变化的柱状图展示不同时间节点不同种类的数据在排名上的变化。为了生成一个动态条形图,数据中必须有一个时间字段。 - -例如,我们有下面的数据集和字段信息: -```json -[ - { - "country": "USA", - "continent": "North America", - "GDP": 239270, - "year": 1973 - }, - { - "country": "India", - "continent": "Asia", - "GDP": 22960, - "year": 1973 - }, - { - "country": "South Korea", - "continent": "Asia", - "GDP": 7870, - "year": 1973 - }, - { - "country": "Indonesia", - "continent": "Asia", - "GDP": 10980, - "year": 1973 - }, - { - "country": "Saudi Arabia", - "continent": "Asia", - "GDP": 23760, - "year": 1973 - }, - { - "country": "Thailand", - "continent": "Asia", - "GDP": 4130, - "year": 1973 - }, - { - "country": "Philippines", - "continent": "Asia", - "GDP": 5660, - "year": 1974 - }, - { - "country": "Malaysia", - "continent": "Asia", - "GDP": 2780, - "year": 1974 - }, - { - "country": "United Kingdom", - "continent": "Europe", - "GDP": 114750, - "year": 1974, - } - ...... //完整数据集请见VMind仓库中的packages/vmind/__tests__/browser/src/constants/mockData.ts文件 -] -``` -```json -[ - { - "fieldName": "country", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "continent", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "GDP", - "type": "float", - "role": "measure" - }, - { - "fieldName": "year", - "type": "date", - "role": "measure" - } -] -``` - -如果`userPrompt`为`Show me the change of the GDP rankings of each country`,那么就会生成一个动态条形图: -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_dynamic_bar.gif) - -为了让VMind生成符合预期的图表,你需要在`userPrompt`中尽可能清晰地描述你的展示意图和目的。此外,你还需要确保数据集的字段名称具有一定的语义,或者在字段信息中添加字段描述,具体请参见[数据格式与数据处理](./Data_Process)章节。 - -### User Prompt 为空 -如果我有一个图表,在不进行人工意图的输入下,即没有`userPrompt`的输入情况下,我可以得到一个较好的图表生成结果吗? -**答案是,yes!** -目前 VMind 支持在没有用户意图的情况下,根据公域知识以及字段的信息内容,去产生一个用户最可能想要在这个数据上进行呈现的图表内容。同样与前文,这需要数据中的数据信息和字段信息尽可能的详细和完整,设想如果我的数据每个字段的名称和描述都为`'a' | 'b' | 'c'`这样的内容,显然无法产生一个高质量的图表,这个数据本身也没有特别的意义,因为我们并不了解其中的字段到底代表了什么含义。 - -同样以前文的手机品牌销售额数据集作为测试,当我们不传入`userPrompt`时,结果如下所示 -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_1.jpeg) - -### options -#### enableDataQuery: 是否开启智能数据聚合 -在[数据聚合](./Data_Aggregation)章节中,我们已经介绍过,为了满足`展示销售额最多的10个部门`或`展示北方区域各商品的销售额`等图表展示需求,我们需要先对数据进行聚合,然后再生成图表。在默认情况下,`generateChart`函数会在执行过程中调用一次`dataQuery`,使用相同的`userPrompt`,`fieldInfo`和`dataset`对数据进行聚合,然后使用聚合后的数据完成后续的图表生成步骤。 - -然而,如果你确定你的数据无需进行进一步的聚合、筛选和排序就可以满足用户的图表展示需求,你可以通过将`enableDataQuery`设置为`false`来关闭这一流程: -```ts -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) -const userPrompt = 'show me the changes in sales rankings of various car brand'; -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset, {enableDataQuery: false}); //将enableDataQuery设置为false,关闭数据聚合 -``` -这样做可以减少一次调用大模型的过程,降低token消耗,提高图表生成速度。关于VMind数据聚合的更多信息,请参考[数据聚合](./Data_Aggregation)章节。 - -#### chartTypeList: 限制VMind生成的图表类型 -VMind目前支持VChart中常见的25种图表类型: -- [柱状图](https://www.visactor.io/vchart/demo/bar-chart/basic-column) -- [折线图](https://www.visactor.io/vchart/demo/line-chart/basic-line) -- [面积图](https://www.visactor.io/vchart/demo/area-chart/basic-area) -- [饼图](https://www.visactor.io/vchart/demo/pie-chart/basic-pie) -- [散点图](https://www.visactor.io/vchart/demo/scatter-chart/basic-scatter) -- [双轴图](https://www.visactor.io/vchart/demo/combination/dual-axis) -- [词云](https://www.visactor.io/vchart/demo/word-cloud-chart/word-cloud-basic) -- [玫瑰图](https://www.visactor.io/vchart/demo/rose-chart/basic-rose) -- [雷达图](https://www.visactor.io/vchart/demo/radar-chart/basic-radar) -- [箱型图](https://www.visactor.io/vchart/demo/box-plot/basic-box-plot) -- [漏斗图](https://www.visactor.io/vchart/demo/funnel-chart/basic-funnel) -- [桑基图](https://www.visactor.io/vchart/demo/sankey-chart/basic-sankey) -- [瀑布图](https://www.visactor.io/vchart/demo/waterfall/basic-waterfall) -- [动态条形图(ranking bar)](https://www.visactor.io/vchart/demo/storytelling/ranking-bar) -- [区间条形图](https://www.visactor.io/vchart/demo/range-column-chart/range-bar) -- [水波图](https://www.visactor.io/vchart/demo/liquid-chart/liquid-chart) -- [条形进度条](https://www.visactor.io/vchart/demo/progress/linear-progress) -- [环形进度条](https://www.visactor.io/vchart/demo/progress/circular-progress) -- [嵌套圆图](https://www.visactor.io/vchart/demo/circle-packing-chart/basic-circle-packing) -- [旭日图](https://www.visactor.io/vchart/demo/sunburst-chart/basic-sunburst) -- [仪表盘图](https://www.visactor.io/vchart/demo/gauge-chart/basic-gauge) -- [矩形树图](https://www.visactor.io/vchart/demo/treemap-chart/basic-treemap) -- [热力图](https://www.visactor.io/vchart/demo/heatmap-chart/basic-heatmap) -- [韦恩图](https://www.visactor.io/vchart/demo/venn-chart/venn-chart) -- [地图](https://www.visactor.io/vchart/demo/map-chart/basic-map) - -根据`userPrompt`和`fieldInfo`的不同,这些图表类型都有可能被大语言模型推荐。 -如果你有新的图表类型需求,欢迎在我们的[Github页面](https://github.com/VisActor/VMind/issues/new/choose)提出。 - -如果你想限制VMind在图表智能生成中生成的图表类型,可以通过设置options.chartTypeList数组: -```typescript -import VMind, { ChartType } from '@visactor/vmind'; - -//限制生成以下几种图表类型:柱状图,折线图,散点图,饼图,词云 -const chartTypeList = [ - ChartType.BarChart, - ChartType.LineChart, - ChartType.ScatterPlot, - ChartType.PieChart, - ChartType.WordCloud - ] - -const { spec } = await vmind.generateChart(userPrompt, fieldInfo, dataset, {chartTypeList}); -``` -在上面的例子中,VMind将会在柱状图,折线图,散点图,饼图,词云中选择图表类型进行生成。若用户在userPrompt强行指定了不支持的图表类型,将会抛出错误。 - -#### colorPalette: 设置图表色板 -可以通过将options.colorPalette设置为一个颜色数组来指定图表所使用的色板: -```typescript -//设置自定义色板 -const colorPalette = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']; - -const { spec } = await vmind.generateChart(userPrompt, fieldInfo, dataset, {colorPalette}); -``` -同时,VMind还内置了[Arco-design](https://www.visactor.io/vchart/theme/demo/arco),[Semi-design](https://www.visactor.io/vchart/theme/demo/semi),[源力设计](https://www.visactor.io/vchart/theme/demo/arco)等多套主题色板: -```typescript -import VMind, {ArcoTheme} from '@visactor/vmind'; - -//使用Arco-design色板 -const {spec} = await vmind.generateChart(describe, finalFieldInfo, finalDataset, { - colorPalette: ArcoTheme.colorScheme -}); -``` - -```typescript -import VMind, { VeOThemeFinance } from '@visactor/vmind'; - -//使用源力设计-金融行业主题色板 -const {spec} = await vmind.generateChart(describe, finalFieldInfo, finalDataset, { - colorPalette: VeOThemeFinance.colorScheme -}); -``` -更多主题色板参见[图表智能生成API](../../api/generateChart) - - -## 返回值详解 -vmind.generateChart方法返回值类型定义如下: - -```typescript -interface GenerateChartResult { - /** 图表spec */ - spec: Record; - /** 图表类型*/ - chartType: ChartType; - /** 最终的视觉通道映射 */ - cell: Cell; - /** token 消耗量 */ - usage: Usage; - /* 生成当前图表的具体指令,在user prompt的情况下跟user prompt一致 */ - command: string; - /** 转唯gif/video时所用的配置时间 *// - time: { - totalTime : number; - frameArr: number[]; - }; - /** 基于规则的图表推荐结果,在手动设置规则或者大模型生成有误情况下产生 */ - chartAdvistorRes: { - /** 图表spec */ - spec: Record; - /** 图表类型*/ - chartType: ChartType; - /** 推荐得分 */ - score: number - }[] -} -``` - -### spec -生成的VChart图表spec。若dataset为空,则为不包含数据的spec模板 - -### chartType -生成的图表类型,参见本教程的`chartTypeList: 限制VMind生成的图表类型`章节 - -### cell -图表中的字段映射,描述数据集中的字段如何映射到图表的各个视觉通道上。视觉通道(Visual Channel)是数据可视化中的一个重要概念,用于描述如何将数据的属性映射到视觉元素,以便人类直观理解。常见的视觉通道包括颜色、形状、大小、方位、位置等。例如,通过视觉通道,我们可以将数据集中的不同类别映射到不同颜色的图形,或者将数值大小映射到图形的大小,从而帮助我们快速理解数据的特性和分布。 - -下面展示一个图表生成的例子: -```typescript -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) - -const userPrompt = '展示不同地区商品销售额'; -const fieldInfo=[ - { - "fieldName": "商品名称", - "type": "string", - "role": "dimension", - "domain": [ - "可乐", - "雪碧", - "芬达", - "醒目" - ] - }, - { - "fieldName": "region", - "type": "string", - "role": "dimension", - "domain": [ - "south", - "east", - "west", - "north" - ] - }, - { - "fieldName": "销售额", - "type": "int", - "role": "measure", - "domain": [ - 28, - 2350 - ] - } -] - -const dataset=[ - { - "商品名称": "Coke", - "region": "south", - "销售额": 2350 - }, - { - "商品名称": "Coke", - "region": "east", - "销售额": 1027 - }, - { - "商品名称": "Coke", - "region": "west", - "销售额": 1027 - }, - { - "商品名称": "Coke", - "region": "north", - "销售额": 1027 - }, - ... -] -const { chartType, spec, cell } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -console.log(cell) -``` -在这个例子中,生成了一个柱状图: - -![柱状图](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_barchart.png) - -其cell如下: - -```json -{ - "x": "商品名称", - "y": "销售额", - "color": "region" -} -``` - -这表示VMind将商品名称字段映射到图表的x轴,销售额字段映射到y轴,region字段映射到柱子的颜色上。 - -### chartAdvistorRes -该结果是根据当前数据和字段信息,通过VMind的内置规则推导得到的图表推荐结果,在设置模型为`Model.CHART_ADVISOR`或者用户的大模型设置有误,无法获取结果时兜底产生。详见:[基于规则的图表生成](./Chart_Advisor) - -## 生成spec模板 -在没有具体数据集、仅有数据字段的情况下,我们也可能需要生成图表。比如,在进行查询之前,我们可以根据数据集中的字段先生成一个图表,之后依据图表的类型和含有的字段执行相关查询。在这种情况下,调用generateChart方法时无需传入具体的数据集,而是先产生一个spec模板,后续再通过fillSpecWithData方法获取最终用于图表渲染的spec。 - -下面展示如何使用generateChart方法生成一个spec模板: - -```typescript -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options) - -const userPrompt = '展示不同地区商品销售额'; -const fieldInfo=[ - { - "fieldName": "商品名称", - "type": "string", - "role": "dimension", - "domain": [ - "可乐", - "雪碧", - "芬达", - "醒目" - ] - }, - { - "fieldName": "region", - "type": "string", - "role": "dimension", - "domain": [ - "south", - "east", - "west", - "north" - ] - }, - { - "fieldName": "销售额", - "type": "int", - "role": "measure", - "domain": [ - 28, - 2350 - ] - } -] -//不传入dataset,生成spec模板 -const { chartType, spec, cell } = await vmind.generateChart(userPrompt, fieldInfo); -``` -此时我们已经得到了VMind生成的图表spec、字段映射cell和图表类型chartType。随后我们调用fillSpecWithData方法,向spec模板中填入数据: - -```typescript -//向模板中填入数据 -const dataset=[ - { - "商品名称": "Coke", - "region": "south", - "销售额": 2350 - }, - { - "商品名称": "Coke", - "region": "east", - "销售额": 1027 - }, - { - "商品名称": "Coke", - "region": "west", - "销售额": 1027 - }, - { - "商品名称": "Coke", - "region": "north", - "销售额": 1027 - }, - ... -] - -const spec = vmind.fillSpecWithData(spec, dataset) -``` -最终生成的spec可以用于渲染VChart图表。 diff --git a/docs/assets/guide/zh/Basic_Tutorial/Chart_Insight.md b/docs/assets/guide/zh/Basic_Tutorial/Chart_Insight.md deleted file mode 100644 index 06243243..00000000 --- a/docs/assets/guide/zh/Basic_Tutorial/Chart_Insight.md +++ /dev/null @@ -1,179 +0,0 @@ -# 智能洞察 - -在数据驱动决策的时代,图表作为数据可视化的核心工具,能够直观地呈现复杂的数据关系。然而,单纯依赖人眼观察和分析图表,往往难以快速、全面地挖掘出数据背后隐藏的洞察。 - -本教程将向你介绍VMind中智能洞察功能,如何通过`getInsights`快速从图表中获取各种类型的洞察,并提供一些示例。 - -## getInsights -VMind的`getInsights`函数是一个强大的工具,它可以帮你从图表中获取图表洞察,并产生语义化的解释。这个函数只需要如下两个参数: -- spec: 当前VChart图表的具体spec配置 -- options (DataInsightOptions): 洞察相关配置,控制了具体洞察的数量,使用的算法和对应算法的具体配置 - -在产生智能洞察的过程中,VMind主要做了两件事情, -- 先通过内置的统计学算法,获取当前图表中蕴含的数据洞察; -- 再这些识别出来的洞察传递给大模型;让大模型对这些洞察进行润色和语义化解释,在润色过程中,VMind会将字段信息和洞察类型传递给大模型,**并不会把任何数据细节传递给大模型**; - -其中第二部大模型润色并不是必须的,可以通过`options.usePolish`对其进行关闭,此时会得到数据洞察和模版化的语义内容。 - -### 内置算法 -目前VMind内置的算法主要为统计学相关算法,具体如下所示: -- LOF(Local Outlier Factor) 局部异常因子检测算法 -- zScore 全局异常点检测 -- IQR (Interquartile Range) 四分位全局异常检测算法 -- Page-Hinkley Test 时序数据异常检测算法 -- Bayesian Inference 转折点检测算法 -- Mann-Kendall Test 趋势检测算法 -- Pearson Correlation Coefficient / SpearmanCorrelation 相关性检测 -- DBSCAN (Density-Based Spatial Clustering of Applications with Noise) 算法 -- Coefficient of Variation 基于变异系数的周期性检测 -- 基础的统计指标,例如最大/最小/平均值/占比异常等等 - -### 大模型润色 -大模型在智能洞察中,只是起到了一个文本润色功能,使得最终的结果有着较强的可读性,是个可选配置。 - -## 洞察类型 -目前根据已有的内置算法,VMind可以识别出以下9类不同的洞察类型: - - 异常点 - - 时序异常点 - - 转折点 - - 占比贡献巨大点 - - 异常区间 - - 整体趋势 - - 异常趋势 - - 相关性 - - 基础统计指标 - -根据不同的洞察结果,用户可以选取不同的标注/高亮方式在图表中进行呈现。 - -## 使用案例 -下面是一个使用`getInsights`的例子: -```ts -import VMind from '@visactor/vmind'; - -const specJson = { - type: 'line', - xField: ['年份'], - yField: ['高考录取率'], - data: [ - { - id: 'data', - values: [ - {"年份": 1977, "高考录取率": 0.05}, - {"年份": 1978, "高考录取率": 0.07}, - {"年份": 1979, "高考录取率": 0.06}, - {"年份": 1980, "高考录取率": 0.08}, - {"年份": 1981, "高考录取率": 0.11}, - {"年份": 1982, "高考录取率": 0.17}, - {"年份": 1983, "高考录取率": 0.23}, - {"年份": 1984, "高考录取率": 0.29}, - {"年份": 1985, "高考录取率": 0.96}, - {"年份": 1986, "高考录取率": 0.3}, - {"年份": 1987, "高考录取率": 0.27}, - {"年份": 1988, "高考录取率": 0.25}, - {"年份": 1989, "高考录取率": 0.23}, - {"年份": 1990, "高考录取率": 0.22}, - {"年份": 1991, "高考录取率": 0.21}, - {"年份": 1992, "高考录取率": 0.25}, - {"年份": 1993, "高考录取率": 0.34}, - {"年份": 1994, "高考录取率": 0.36}, - {"年份": 1995, "高考录取率": 0.37}, - {"年份": 1996, "高考录取率": 0.4}, - {"年份": 1997, "高考录取率": 0.36}, - {"年份": 1998, "高考录取率": 0.34}, - {"年份": 1999, "高考录取率": 0.56}, - {"年份": 2000, "高考录取率": 0.59}, - {"年份": 2001, "高考录取率": 0.59}, - {"年份": 2002, "高考录取率": 0.63}, - {"年份": 2003, "高考录取率": 0.62}, - {"年份": 2004, "高考录取率": 0.61}, - {"年份": 2005, "高考录取率": 0.57}, - {"年份": 2006, "高考录取率": 0.57}, - {"年份": 2007, "高考录取率": 0.56}, - {"年份": 2008, "高考录取率": 0.57}, - {"年份": 2009, "高考录取率": 0.62}, - {"年份": 2010, "高考录取率": 0.69}, - {"年份": 2011, "高考录取率": 0.72}, - {"年份": 2012, "高考录取率": 0.75}, - {"年份": 2013, "高考录取率": 0.75}, - {"年份": 2014, "高考录取率": 0.74}, - {"年份": 2015, "高考录取率": 0.74}, - {"年份": 2016, "高考录取率": 0.75}, - {"年份": 2017, "高考录取率": 0.74}, - {"年份": 2018, "高考录取率": 0.81}, - {"年份": 2019, "高考录取率": 0.8}, - {"年份": 2020, "高考录取率": 0.8}, - {"年份": 2021, "高考录取率": 0.93}, - {"年份": 2022, "高考录取率": 0.96} - ] - } - ] - }; -const vmind = new VMind(options) -const { insights } = await vmind.getInsights(specJson, { - /** 最多产生 maxNum个洞察内容 */ - maxNum: numLimits, -}); -``` - -最终产生的结果如下: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_insight_1.jpeg) - -可以准确识别出整体的趋势以及1985年明显异常的高考录取率 - -### 返回结构 -以整体趋势为例,返回的结构化内容如下: -```ts -const outlierInsight = { - /** 类型为异常点Insight */ - type: 'outlier', - /** 具体的异常点数据 */ - data: [ - { - index: 8, - dataItem: { - 年份: 1985, - 高考录取率: 0.96, - } - } - ], - /** 数值字段 */ - fieldId: '高考录取率', - /** 当前异常点数值 */ - value: 0.96, - /** 洞察置信度得分 */ - significant: 1, - /** 当前系列名称,因为当前图表没有进行seriesField配置,只包含一个系列,因此为vmind的默认值 */ - seriesName: 'vmind_default_series', - /** 通过pageHinkley算法检测得到 */ - name: 'pageHinkley', - /** 具体的文本话含义 */ - textContent: { - /** 具体的文本模版 */ - content: '${b}期间出现显著异常,值为${c}。', - /** 模版中的变量解析 */ - variables: { - b: { - isDimValue: true, - value: 1985, - fieldName: '年份' - }, - c: { - value: 0.96, - isMeasure: true, - fieldName: '高考录取率' - } - }, - /** 直接将模版变量进行数值替换的结果 */ - plainText: '1985期间出现显著异常,值为0.96。' - } -} -``` - -### 洞察添加 - -识别出图表洞察后,我们可以借助VChart强大的标注能力,将这些内容添加到图表中,最终效果可以如下图所示: -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_insight_2.jpeg) - -## 参数详解 -具体参数详解可见:[getInsights](../../api/getInsights) \ No newline at end of file diff --git a/docs/assets/guide/zh/Basic_Tutorial/Create_VMind_Instance.md b/docs/assets/guide/zh/Basic_Tutorial/Create_VMind_Instance.md deleted file mode 100644 index c4699717..00000000 --- a/docs/assets/guide/zh/Basic_Tutorial/Create_VMind_Instance.md +++ /dev/null @@ -1,217 +0,0 @@ -# 创建VMind实例 -要开始使用VMind智能可视化组件,首先你需要创建一个VMind实例。在创建VMind实例时,你需要传入一个options对象作为参数,这个对象中包含了一些关键的信息,例如模型的url,模型类型,以及LLM服务请求的headers等。 -```ts -import VMind from '@visactor/vmind' - -const vmind = new VMind(options) -``` - -options的完整类型定义如下: - -```ts -export interface VMindOptions { - /** URL of your LLM service. For gpt, default is openAI API. */ - url?: string; - /** llm request header, which has higher priority */ - headers?: HeadersInit; - /** post or get */ - method?: 'POST' | 'GET'; - /** LLM Model */ - model?: Model | string; - /** Max token in LLM Chart */ - maxTokens?: number; - /** Temperature of LLM */ - temperature?: number; - /** show llm thoughs or not */ - showThoughts?: boolean; - /** repetition penalty */ - frequencyPenalty?: number; - /** topP */ - topP?: number; - /** custom llm request func */ - customRequestFunc?: { - /** 图表生成任务 */ - chartAdvisor?: RequestFunc; - /** 数据查询任务 */ - dataQuery?: RequestFunc; - /** 文本中提取数据任务 */ - dataExtraction?: RequestFunc; - /** 图表生成中指令生成任务 */ - chartCommand?: RequestFunc; - /** 洞察生成任务 */ - IntelligentInsight?: RequestFunc; - }; -} - -``` -在ILLMOptions中,大部分参数都会直接传递给LLM服务。 - -## GPT为例 -如果你打算使用openAI官方提供的LLM服务,并通过headers中的openAI api key进行鉴权,你可以这样简单地初始化VMind: -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - model: Model.GPT4o, //使用gpt-4o模型 - headers: { //指定调用LLM服务时的header - Authorization: `Bearer ${OPENAI_API_KEY}` //Your OPENAI_API_KEY - } -}) -``` - -## DeepSeek为例 -如果你打算使用deepSeek作为 LLM 服务,可以前往[DeepSeek官网](https://platform.deepseek.com/api_keys)注册属于你自己的 API key,注册完成后可以按照以下方式进行 VMind 的注册和使用,更详细内容可以参考[DeepSeek官方 API 文档](https://api-docs.deepseek.com/zh-cn/) -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - url: 'https://api.deepseek.com/chat/completions' // DeepSeek 官方 url - model: Model.DEEPSEEK_V3, // 使用DeepSeek-V3模型 - headers: { - Authorization: `Bearer ${DEEPSEEK_KEY}` //Your DEEPSEEK_KEY - } -}) -``` - -## 任意自定义模型 -如果你想要使用其他任何大模型作为VMind的 LLM 服务,与前面例子相同,只需要将`url`和`model`改为你的模型服务地址,同步添加`headers`内容作为鉴权校验。具体如下: -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - url: 'Your LLM URL', - model: 'Your Model Name', - headers: { - Authorization: `Bearer ${Your Key}` - } -}) -``` -在接下来的章节,我们将对ILLMOptions中的参数进行详细的解释。 - -## url -url参数用于指定你的LLM服务api的地址,默认值是https://api.openai.com/v1/chat/completions - -在你使用VMind的过程中,所有需要调用LLM的地方都会向这个url发送http请求。 - -## headers -你可以通过headers参数来指定请求LLM服务时的http headers。最常见的用法是将你的api key放入headers中用作鉴权;当然,你也可以将任何你需要的字段放入headers中。 - -## method -method参数用于指定请求LLM时的方法类型,通常为POST。 - -## model -你可以通过model参数来指定模型种类。这个字段将被放入LLM服务的请求体中。你可以从VMind中引入Model类型并用作model字段的值。 -```ts -import { Model } from '@visactor/vmind' -``` - -目前支持的模型种类有: -```ts -export enum Model { - GPT3_5 = 'gpt-3.5-turbo', - GPT3_5_1106 = 'gpt-3.5-turbo-1106', - GPT4 = 'gpt-4', - GPT_4_0613 = 'gpt-4-0613', - GPT_4o = 'gpt-4o-2024-08-06', - DOUBAO_LITE = 'doubao-lite-32K', - DOUBAO_PRO = 'doubao-pro-128k', - CHART_ADVISOR = 'chart-advisor', - DEEPSEEK_V3 = 'deepseek-chat', - DEEPSEEK_R1 = 'deepseek-reasoner' -} -``` - -目前,VMind 对于所有的大模型都会使用相同的技术和prompt来完成各种智能任务. - -## maxTokens和temperature -这两个参数分别决定模型生成内容的最大token数量和每次生成结果的随机性,详见[OpenAI官方文档](https://platform.openai.com/docs/api-reference/chat/create)。 - -在VMind中,这两个参数的默认值分别是2048和0。 - -## showThoughts -[相关研究](https://arxiv.org/abs/2201.11903)表明,思维链(Chain-of-Thought)可以增强大语言模型的思维推理能力,使输出的结果更加符合预期。showThoughts参数将影响VMind传给大语言模型的prompt,决定其在完成图表生成、数据聚合等任务时,是否将思考过程添加到输出结果中。`showThoughts = true`会使模型将其思考过程显式地输出,提高生成结果的准确性。然而,这会增加模型生成结果的长度,带来更多的token消耗。在执行图表生成等任务时,VMind必须等待模型输出结束后才能进行后续步骤,这也将减慢VMind各项方法的执行速度。 - -因此,如果你期望获得更好的执行效果,可以将showThoughts设置为true。如果你希望VMind能够以更少的token数量和更快的速度完成图表生成、数据聚合等任务,可以将这个参数设置为false。 - -在VMind中,showThoughts默认为true。 - -## 通过customRequestFunc自定义LLM服务调用方法 - -VMind默认通过LLM配置的地址,通过HTTP请求进行LLM服务的调用。然而,你可以通过customRequestFunc参数,自定义在每种任务中调用LLM的方法。例如,你可以通过RPC的形式请求你自己的LLM服务。 -该参数有三个requestFunc类型的值,完整的类型定义如下: -```ts -type customRequestFunc= { - chartAdvisor?: RequestFunc; - dataQuery?: RequestFunc; - dataExtraction?: RequestFunc; - chartCommand?: RequestFunc; - IntelligentInsight?: RequestFunc; -}; - -type RequestFunc = ( - messages: LLMMessage[], - tools: ToolMessage[] | undefined, - options: ILLMOptions | undefined -) => Promise; - -/** LLM Messages api */ -export interface LLMMessage { - /** prompt role, system or user query or tool result */ - role: 'system' | 'user' | 'assistant' | 'tool'; - content: string; - name?: string; - tool_calls?: ToolCall[]; - tool_call_id?: string; -} - -export interface LLMResponse { - usage?: Usage; - /** function call res */ - toolRes?: any; - /** content */ - choices?: { - index: number; - message: any; - finish_reason?: string; - }[]; - error?: string; - [key: string]: any; -} -``` - -chartAdvisor和dataQuery分别对应图表生成,数据处理和数据聚合时调用LLM的方法。每个方法需要接收传给大模型的Messages(详情见[messages](https://platform.openai.com/docs/api-reference/chat/create#chat-create-messages)), function call配置(详情见[tools](https://platform.openai.com/docs/api-reference/chat/create#chat-create-tools))以及VMind options作为参数,并确保返回的对象与OpenAI completions API结构相同(详情请见[The chat completion object](https://platform.openai.com/docs/api-reference/chat/object))。 -下面展示一个使用RPC进行图表智能生成的例子: -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - model: Model.GPT4o, - customRequestFunc: { - chartAdvisor: async (messages: LLMMessage[], tools: ToolMessage[] | undefined, _options: ILLMOptions | undefined) => { - const resp = await call_RPC_LLM_Service(messages, tools, _options) - - const { result } = resp - const content = result.content.content - const gptResponse = { - usage: {}, //token用量信息 - choices: [{ - index: 0, - message: { - role: 'assistant', - content //将模型的生成结果放入content中 - } - }] - } - return gptResponse //返回chat completion object,见https://platform.openai.com/docs/api-reference/chat/object - } - } -}) - -const { spec } = await vmind.generateChart(userInput, fieldInfo, dataset); //调用generateChart进行图表生成 - -``` - -# 总结 -本教程详细介绍了如何创建VMind实例,以及如何设置各种参数以满足不同的需求。我们学习了如何指定模型服务的url,如何设置headers以进行鉴权,如何选择模型类型,以及如何设置模型生成内容的最大token数量和temperature。我们还了解了如何通过showThoughts参数来控制模型是否将思考过程添加到输出结果中,以及如何通过customRequestFunc参数来自定义LLM服务的调用方法。 - -通过本教程,你不仅可以学会如何创建和配置VMind实例,更了解了如何根据自己的需求和环境来调整和优化VMind的使用,从而更有效地利用VMind来完成各种任务,包括图表生成、数据处理和数据聚合等。 diff --git a/docs/assets/guide/zh/Basic_Tutorial/Data_Aggregation.md b/docs/assets/guide/zh/Basic_Tutorial/Data_Aggregation.md deleted file mode 100644 index 2db18f09..00000000 --- a/docs/assets/guide/zh/Basic_Tutorial/Data_Aggregation.md +++ /dev/null @@ -1,386 +0,0 @@ -# 数据聚合 - -## 数据聚合概述 -当我们使用VChart等图表库来绘制柱状图、折线图等图表时,如果使用的数据集dataset并未经过聚合处理,可能会对可视化效果产生不良影响。 -举例来说,假设我们有一份商品销售额明细数据集: -```json -// 商品销售数据集 -[ - { - "Product name": "Coke", - "Sales": 2350 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Sprite", - "Sales": 215 - }, - { - "Product name": "Sprite", - "Sales": 654 - }, - { - "Product name": "Sprite", - "Sales": 159 - }, - { - "Product name": "Sprite", - "Sales": 28 - }, - { - "Product name": "Fanta", - "Sales": 345 - }, - { - "Product name": "Fanta", - "Sales": 654 - }, - { - "Product name": "Fanta", - "Sales": 2100 - }, - { - "Product name": "Fanta", - "Sales": 1679 - }, - { - "Product name": "Mirinda", - "Sales": 1476 - }, - { - "Product name": "Mirinda", - "Sales": 830 - }, - { - "Product name": "Mirinda", - "Sales": 532 - }, - { - "Product name": "Mirinda", - "Sales": 498 - } -] -``` -在这个数据集中,有两个字段Product name和Sales。可以看出在这个数据集中,有多条数据具有相同的Product name。如果我们想使用这份数据将Product name作为X轴,Sales作为Y轴来绘制柱状图,展示不同地区的销售额,则在X轴每个维值下面将有多条柱子与之对应。 - -对于这种数据集,不同图表库的处理方式不同。VChart的处理方式是将这些柱子堆叠起来进行展示: - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_stack.png) - -使用这种未聚合的数据集绘制图表可能会有以下几个问题: - -- 数据过载:如果数据集非常大,那么图表中可能会有大量的图元,这可能会使图表变得非常混乱,难以阅读和理解,还会导致性能问题。 -- 隐藏重要的信息:如果数据没有经过适当的聚合,那么可能会隐藏一些重要的信息。例如,如果你有一个包含每天销售额的数据集,那么直接绘制这个数据集可能会导致图表变得非常混乱。但是,如果你将数据按月聚合,那么可能会更容易看出销售额的趋势。 -- 数据分布不清:未聚合的数据可能会使得数据的分布特征不明显,例如平均值、中位数、众数等。 - -因此,通常在绘制图表之前,我们会先对数据进行适当的聚合,以便更好地展示数据的特征和趋势。 - -同时由于原始的数据集没有对字段进行筛选和排序,某些图表展示意图无法满足,例如:帮我展示销售额最多的10个部门,帮我展示北方区域各商品的销售额等。 - -VMind 1.2.2版本开始支持智能数据聚合功能。该功能会将用户传入的数据作为一张数据表,使用大语言模型根据用户的指令生成SQL查询语句,从数据表中查询数据,并通过GROUP BY和聚合函数对数据进行分组聚合、排序、筛选。 - - -接下来,我们将详细介绍VMind数据聚合功能的使用方法。 - - -## dataQuery -VMind对象的dataQuery函数是一个强大的数据聚合工具。它接收三个参数:用户展示意图userPrompt,数据集字段信息fieldInfo和原始数据集dataset。你可以在[数据格式与数据处理](./Data_Process)中找到关于fieldInfo和dataset的详细信息。VMind会根据用户的展示意图,编写SQL语句并对dataset执行查询,查询结果会被储存在函数返回值的dataset属性中;同时,查询结果中的字段可能会发生变化,更新后的字段信息也会被储存在返回结果的fieldInfo属性中。 - -下面,让我们通过一个示例来看看如何使用dataQuery函数: -```ts -import VMind from '@visactor/vmind' -const sourceDataset = [ - { - "Product name": "Coke", - "Sales": 2350 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Coke", - "Sales": 1027 - }, - { - "Product name": "Sprite", - "Sales": 215 - }, - { - "Product name": "Sprite", - "Sales": 654 - }, - { - "Product name": "Sprite", - "Sales": 159 - }, - { - "Product name": "Sprite", - "Sales": 28 - }, - { - "Product name": "Fanta", - "Sales": 345 - }, - { - "Product name": "Fanta", - "Sales": 654 - }, - { - "Product name": "Fanta", - "Sales": 2100 - }, - { - "Product name": "Fanta", - "Sales": 1679 - }, - { - "Product name": "Mirinda", - "Sales": 1476 - }, - { - "Product name": "Mirinda", - "Sales": 830 - }, - { - "Product name": "Mirinda", - "Sales": 532 - }, - { - "Product name": "Mirinda", - "Sales": 498 - } -] - -const sourceFieldInfo = [ - { - "fieldName": "Product name", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "Sales", - "type": "int", - "role": "measure" - } -] - -const userPrompt=`展示各商品销售额` -const vmind = new VMind(options) - -//调用dataQuery传入userPrompt,sourceFieldInfo和sourceDataset,执行数据聚合 -const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceFieldInfo, sourceDataset); -``` - -在这个例子中,dataQuery函数返回的dataset如下: -```json -[ - { - "Product name": "Coke", - "total_sales": 5431 - }, - { - "Product name": "Sprite", - "total_sales": 1056 - }, - { - "Product name": "Fanta", - "total_sales": 4778 - }, - { - "Product name": "Mirinda", - "total_sales": 3336 - } -] -``` - -返回的fieldInfo如下: -```json -[ - { - "fieldName": "Product name", - "description": "The name of the product.", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "total_sales", - "description": "An aggregated field representing the total sales of each product. It is generated by summing up the 'Sales' values for each product.", - "type": "int", - "role": "measure" - } -] -``` - -有了这些信息,我们就可以直接使用fieldInfo和dataset生成图表了。具体的操作步骤,你可以在[图表智能生成](./Chart_Generation)章节中找到。 - -📢 **注意:dataQuery方法会将userPrompt和fieldInfo传递给大模型用于生成SQL,dataset中的明细数据并不会被传递。** - -最后,我们将得到如下的柱状图: - - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_aggregated_bar.png) - -在这个例子中,VMind生成的SQL语句为: -```SQL -SELECT `Product name`, SUM(`Sales`) AS total_sales FROM dataSource GROUP BY `Product name` -``` - -这条SQL语句从sourceDataset中筛选出Produce name和Sales两个字段,按照Produce name进行分组,并对Sales字段进行了求和,生成了新的字段total_sales。VMind将执行这一sql语句,得到聚合后的数据集。 - -需要注意的是,dataQuery执行过程中,目前支持的SQL关键词有:SELECT, GROUP BY, WHERE, HAVING, ORDER BY, LIMIT。目前支持的聚合函数有:MAX(), MIN(), SUM(), COUNT(), AVG(),但不支持子查询、JOIN、条件语句等复杂的SQL操作。 - -### 数据筛选与排序 -在这个部分,我们将学习如何使用自然语言来对数据集进行筛选和排序等操作。 - -首先,让我们看一下下面的数据集(dataset)和字段信息(fieldInfo): - -```ts -import VMind from '@visactor/vmind' - -const sourceDataset = [ -{ - "商品名称": "可乐", - "region": "south", - "销售额": 2350 - }, - { - "商品名称": "可乐", - "region": "east", - "销售额": 1027 - }, - { - "商品名称": "可乐", - "region": "west", - "销售额": 1027 - }, - { - "商品名称": "可乐", - "region": "north", - "销售额": 1027 - }, - { - "商品名称": "雪碧", - "region": "south", - "销售额": 215 - }, - { - "商品名称": "雪碧", - "region": "east", - "销售额": 654 - }, - { - "商品名称": "雪碧", - "region": "west", - "销售额": 159 - }, - { - "商品名称": "雪碧", - "region": "north", - "销售额": 28 - }, - { - "商品名称": "芬达", - "region": "south", - "销售额": 345 - }, - { - "商品名称": "芬达", - "region": "east", - "销售额": 654 - }, - { - "商品名称": "芬达", - "region": "west", - "销售额": 2100 - }, - { - "商品名称": "芬达", - "region": "north", - "销售额": 1679 - }, - { - "商品名称": "醒目", - "region": "south", - "销售额": 1476 - }, - { - "商品名称": "醒目", - "region": "east", - "销售额": 830 - }, - { - "商品名称": "醒目", - "region": "west", - "销售额": 532 - }, - { - "商品名称": "醒目", - "region": "north", - "销售额": 498 - } -] - -const sourceFieldInfo = [ - { - "fieldName": "商品名称", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "region", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "销售额", - "type": "int", - "role": "measure" - } -] - -``` - -假设我们想要展示北方区域销售额排名前三的商品,我们可以这样做: - -```ts -const userPrompt = `帮我展示北方排名前三的商品销售额` -const vmind = new VMind(options) - -// 调用dataQuery方法,传入userPrompt,sourceFieldInfo和sourceDataset,执行数据聚合 -const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceFieldInfo, sourceDataset); -``` - -在dataQuery方法执行过程中,会生成如下的SQL语句: - -```SQL -SELECT `商品名称`, SUM(`销售额`) AS total_sales FROM dataSource WHERE region = 'north' GROUP BY `商品名称` ORDER BY total_sales DESC LIMIT 3 -``` - -这个SQL语句将筛选出区域(region)为'north'的数据,然后按照"商品名称"进行分组,并计算每个商品的总销售额,最后按照销售额从高到低排序,并只取销售额最高的前三个商品。 - - -最后,执行图表生成操作,我们就可以得到如下的图表: - - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_order.png) - - - - - diff --git a/docs/assets/guide/zh/Basic_Tutorial/Data_Extraction.md b/docs/assets/guide/zh/Basic_Tutorial/Data_Extraction.md deleted file mode 100644 index f1bfa018..00000000 --- a/docs/assets/guide/zh/Basic_Tutorial/Data_Extraction.md +++ /dev/null @@ -1,62 +0,0 @@ -# 数据提取——从文本一步生成图表 - -在前文[图表生成](./Chart_Generation)中,我们已经了解了如何从已有的结构化数据中智能生成图表。然而在部分场景中,我们并不一定已有数据集,可能有的事更为原始的数据,例如:文本数据。 -在本篇教程中,我们将介绍如果通过 VMind , 直接从一段文本中直接生成图表。 - -## text2Chart -VMind的`text2Chart`函数与`generateChart`类似,主要不同在于,此时的入参从数据表和字段信息变成了纯文本内容,具体如下: -- text (string): 必选,原始文本内容 -- userPrompt (string): 可选,用户的可视化意图(你想从文本中主要提取哪些数据,如何用图表进行展示) -- options: 可选,选项参数,包括以下内容: - - fieldInfo (Array): 文本类型中包含的字段信息,包括字段名称,类型等 - - chartTypeList (ChartType[],可选): 支持的图表类型列表。若不为undefined,则会从该列表指定的图表类型中选择生成。 - - enableDataQuery (boolean, 可选): 决定是否在图表生成过程中开启数据聚合 - - colorPalette (Array, 可选): 用于设置图表的调色板 - - animationDuration (number, 可选): 用于设置图表动画的播放持续时间 - - theme (ChartTheme | string, 可选): 设置最终sepc的主题样式,默认为空,VMind会默认使用带渐变颜色的主题样式,可以设置 VChart 通用深浅主题('light' | 'dark')或者符合你使用场景下的主题样式 - -这个方法会返回一个[VChart图表spec](https://www.visactor.io/vchart/guide/tutorial_docs/Basic/A_Basic_Spec)和一个二维数据表,详见[数据格式与数据处理](./Data_Process)。 - -在整个过程中,VMind首先会用大模型从原始文本中提取结构化的表格数据,并且自动对表格数据进行数据清理,之后就跟智能生成图表一样,再利用大模型得到推荐的图表类型和具体映射方式,最终VMind根据结果生成拼装产生最终的VChart spec. - -VMind默认会为生成的图表添加入场动画,因此它还会返回图表动画的时长time。如果你不想要图表动画,可以将spec.animation设为false。 - -你可以在[VChart动画教程](https://www.visactor.io/vchart/guide/tutorial_docs/Animation/Animation_Types)中了解更多关于图表动画的信息。 - -## 使用案例 -下面是一个使用text2Chart生成图表的例子: - -```ts -import VMind from '@visactor/vmind'; - -const vmind = new VMind(options); -const text = '全国人口[2]中,拥有大学(指大专及以上)文化程度的人口为218360767人;拥有高中(含中专)文化程度的人口为213005258人;拥有初中文化程度的人口为487163489人;拥有小学文化程度的人口为349658828人(以上各种受教育程度的人包括各类学校的毕业生、肄业生和在校生)。'; -const userPrompt = '对比本次人口普查各文化程度的人口比重'; -const { spec, time, dataTable } = await vmind.generateChart(text, userPrompt); - -console.log(dataTable); -// 数据表结果如下所示 -dataTable = [ - { - "文化程度": "大学", - "人口数量": 218360767 - }, - { - "文化程度": "高中", - "人口数量": 213005258 - }, - { - "文化程度": "初中", - "人口数量": 487163489 - }, - { - "文化程度": "小学", - "人口数量": 349658828 - } -] -``` -其中图表spec的结果如下图所示: -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_text_2_chart_1.jpeg) - -## 参数详解 -该函数的参数几乎与`generateChart`相同,详见:[图表生成](./Chart_Generation)参数详解部分 \ No newline at end of file diff --git a/docs/assets/guide/zh/Basic_Tutorial/Data_Process.md b/docs/assets/guide/zh/Basic_Tutorial/Data_Process.md deleted file mode 100644 index 795602d9..00000000 --- a/docs/assets/guide/zh/Basic_Tutorial/Data_Process.md +++ /dev/null @@ -1,242 +0,0 @@ -# 数据格式与数据处理 -在这篇教程中,我们将向你详细介绍VMind所支持的数据格式,并介绍如何使用VMind中的数据处理函数来获得这些数据。 - -# VMind数据格式 -## 数据集dataset -在VMind中,大部分函数都需要输入一个数据集dataset。 - -在VMind的定义中,数据集dataset是一种表格数据(Tabular Data),其结构与VChart中[展平的数据](https://www.visactor.io/vchart/guide/tutorial_docs/Chart_Concepts/Data/Data_Types_and_Interface)相同,是由多条数据组成的数组。 -以商品销售数据集为例,下面展示一个dataset的例子: -```json -// 商品销售数据集 -[ - { - "Product name": "Coke", - "region": "south", - "Sales": 2350 - }, - { - "Product name": "Coke", - "region": "east", - "Sales": 1027 - }, - { - "Product name": "Coke", - "region": "west", - "Sales": 1027 - }, - { - "Product name": "Coke", - "region": "north", - "Sales": 1027 - }, - { - "Product name": "Sprite", - "region": "south", - "Sales": 215 - }, - { - "Product name": "Sprite", - "region": "east", - "Sales": 654 - }, - { - "Product name": "Sprite", - "region": "west", - "Sales": 159 - }, - { - "Product name": "Sprite", - "region": "north", - "Sales": 28 - }, - { - "Product name": "Fanta", - "region": "south", - "Sales": 345 - }, - { - "Product name": "Fanta", - "region": "east", - "Sales": 654 - }, - { - "Product name": "Fanta", - "region": "west", - "Sales": 2100 - }, - { - "Product name": "Fanta", - "region": "north", - "Sales": 1679 - }, - { - "Product name": "Mirinda", - "region": "south", - "Sales": 1476 - }, - { - "Product name": "Mirinda", - "region": "east", - "Sales": 830 - }, - { - "Product name": "Mirinda", - "region": "west", - "Sales": 532 - }, - { - "Product name": "Mirinda", - "region": "north", - "Sales": 498 - } -] -``` - - -⚠️注意: **为了让VMind中的图表生成、数据聚合等任务能够更好地执行,我们建议你对数据中的每一个字段使用具有一定语义的名称(例如Product name,region,Sales等)。我们不建议使用没有任何语义的字段名称(column1,column2或随机字符串等)。大语言模型将依赖字段名称中蕴含的语义信息在图表生成、数据聚合时对字段进行选择** -## 字段信息fieldInfo -在VMind中,你需要使用fieldInfo对象来描述数据集中的字段信息。fieldInfo描述了数据中每个字段的名称、类型、字段描述等信息。这些信息将被传给LLM用于图表生成、数据聚合等任务中。 - -下面是fieldInfo对象的类型定义,其中必选信息为上述提到的`fieldName | type | role ` -```ts -/** field information Of Data Table */ -export interface FieldInfo { - /** name of field */ - fieldName: string; - /** field type, eg: time / category / numerical */ - type: DataType; - /** field role */ - role: ROLE; - /** alias of field */ - alias?: string; - /** description of field */ - description?: string; -} -``` -对于上一个章节中展示的数据集,其对应的fieldInfo如下: -```json -[ - { - "fieldName": "Product name", - "description": "Represents the name of the product, which is a string.", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "region", - "description": "Represents the region where the product is sold, which is a string.", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "Sales", - "description": "Represents the sales amount of the product, which is an integer.", - "type": "int", - "role": "measure" - } -] -``` - - -⚠️注意: **大语言模型将依赖fieldInfo中的字段名和description,在图表生成、数据聚合时对字段进行选择,description不是必选项。fieldInfo可通过调用getFieldInfo或parseCSVData生成。** - -# 数据处理函数 -CSV数据是一种通用的、相对简单的文件格式,它以纯文本形式存储表格数据。JSON是一种轻量级的数据交换格式,可以被多种编程语言解析和生成,被广泛应用于Web应用程序中。在本章,我们将介绍如何使用VMind内置的数据处理函数,将CSV数据转换为JSON格式的数据集dataset,并获取字段信息fieldInfo,或者直接从JSON格式的数据中获取fieldInfo。 - -## parseCSVData -VMind中的parseCSVData函数能够将csv字符串转换为dataset结构,并通过规则提取字段信息生成fieldInfo。在函数执行过程中,不会请求大语言模型。 -以商品销售数据集为例,下面是parseCSVData函数的使用示例: -```ts -import VMind from '@visactor/vmind' -const csv=`Product name,region,Sales -Coke,south,2350 -Coke,east,1027 -Coke,west,1027 -Coke,north,1027 -Sprite,south,215 -Sprite,east,654 -Sprite,west,159 -Sprite,north,28 -Fanta,south,345 -Fanta,east,654 -Fanta,west,2100 -Fanta,north,1679 -Mirinda,south,1476 -Mirinda,east,830 -Mirinda,west,532 -Mirinda,north,498` -const vmind = new VMind(options) -const { fieldInfo, dataset } = vmind.parseCSVData(csv); - -``` - -关于VMind实例的创建以及options中的详细配置,可以参见[创建VMind实例](./Create_VMind_Instance) - - -在这个例子中,该函数返回的dataset与上一章的商品销售数据集dataset相同,返回的fieldInfo如下: -```json -[ - { - "fieldName": "Product name", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "region", - "type": "string", - "role": "dimension" - }, - { - "fieldName": "Sales", - "type": "int", - "role": "measure" - } -] -``` -dataset和fieldInfo可直接用于VMind中的图表生成、数据聚合。 - -由于该函数未将数据传递给大语言模型,无法获得fieldInfo中的字段描述description。你也可以对其进行补充,以获得更好的图表生成效果。 - -parseCSVData更多信息参见[parseCSVData API](../../api/parseCSVData) - - -## getFieldInfo -VMind中的getFieldInfo函数用于解析JSON结构的数据以获得其中的字段信息(fieldInfo)。该函数基于规则解析获得fieldInfo,在函数执行过程中,不会请求大语言模型。 -使用示例如下: -```ts -const dataset=[ - { - "Product name": "Coke", - "region": "south", - "Sales": 2350 - }, - { - "Product name": "Coke", - "region": "east", - "Sales": 1027 - }, - { - "Product name": "Coke", - "region": "west", - "Sales": 1027 - }, - { - "Product name": "Coke", - "region": "north", - "Sales": 1027 - }, - ... -] - -const vmind = new VMind(options) -const fieldInfo = vmind.getFieldInfo(dataset); -``` - -关于VMind实例的创建以及options中的详细配置,可以参见[创建VMind实例](./Create_VMind_Instance) - - -在这个例子中,返回的fieldInfo与上一章的商品销售数据集相同。 - -getFieldInfo更多信息参见[getFieldInfo API](../../api/getFieldInfo) - diff --git a/docs/assets/guide/zh/Basic_Tutorial/How_to_Get_VMind.md b/docs/assets/guide/zh/Basic_Tutorial/How_to_Get_VMind.md deleted file mode 100644 index bab2ce19..00000000 --- a/docs/assets/guide/zh/Basic_Tutorial/How_to_Get_VMind.md +++ /dev/null @@ -1,41 +0,0 @@ -# 如何获取 VMind - -获取 VMind 的方式有以下几种: - -- 从 npm 获取 -- 从 cdn 获取 -- 从 GitHub 仓库获取 - -## npm 获取 - -首先,你需要在项目根目录下使用以下命令安装 VMind - -```bash -# 使用 npm 安装 -npm install @visactor/vmind - -# 使用 yarn 安装 -yarn add @visactor/vmind -``` - -VMind 需要配合 VChart 一起使用。为了进行图表绘制,你还需要在项目中引入 VChart,具体教程详见[VChart快速上手](https://www.visactor.io/vchart/guide/tutorial_docs/Getting_Started) - - -## cdn 获取 - -可以从以下免费的 CDN 中获取 VMind: - -```html - - - - - -``` - -## GitHub 获取 - -从 GitHub 上你可以直接获取 VMind 的源码: - -- 你可以直接从 GitHub clone 源码。 -- 你也可以从 VMind 的  [release](https://github.com/VisActor/VMind/releases)  页面选择对应的版本,点击页面下方 Assets 中的 Source code,将其下载至本地解压后使用。 diff --git a/docs/assets/guide/zh/Basic_Tutorial/How_to_Import_VMind.md b/docs/assets/guide/zh/Basic_Tutorial/How_to_Import_VMind.md deleted file mode 100644 index ce739861..00000000 --- a/docs/assets/guide/zh/Basic_Tutorial/How_to_Import_VMind.md +++ /dev/null @@ -1,51 +0,0 @@ -# 如何在项目中引用 VMind - -在[如何获取 VMind](./How_to_Get_VMind)章节中我们介绍了获取 VMind 的方式,本章节会一一介绍这些获取方式下如何引用 VMind - -## cdn 使用 - -我们从 [cdn](./How_to_Get_VMind#cdn-获取) 获取到 VMind 文件后,就可以将其添加到 HTML 文件的 ` - - -``` - -## npm 使用 - -我们通过 [npm](./How_to_Get_VMind#npm-获取) 的方式将 `@visactor/vmind` 安装到项目之后,就可以通过如下方式进行使用了: - -```ts -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - url, //default is https://api.openai.com/v1/chat/completions - model: Model.GPT3_5, - headers: { - 'api-key': apiKey //Your LLM API Key - } -}) -``` diff --git a/docs/assets/guide/zh/Contribution_Guide.md b/docs/assets/guide/zh/Contribution_Guide.md deleted file mode 100644 index 2c236ba3..00000000 --- a/docs/assets/guide/zh/Contribution_Guide.md +++ /dev/null @@ -1,210 +0,0 @@ -# VMind开源代码贡献指南 -首先为你选择加入开源贡献行列的行为点赞👍🏻。再者,十分感谢你选择参与到 VisActor 社区,为这个开源项目做出贡献。 - - - - -## VMind贡献指南 - -VisActor 团队通常在 github 上进行开发和 issue 维护,请打开 [Github 网站](https://github.com/),点击右上角 `Sign up` 按钮,注册一个自己的账号,开启你开源之旅的第一步。 - -如果因为特殊情况,你无法打开 Github 站点,也可以通过 [Gitee](https://gitee.com/VisActor/VChart) 进行项目开发。 - -在 [VMind 仓库](https://github.com/VisActor/VMind)中,我们有一份面向所有开源贡献者的[指南](https://github.com/VisActor/VMind/blob/develop/CONTRIBUTING.zh-CN.md),介绍了有关版本管理、分支管理等内容,**请花几分钟时间阅读了解一下**。 - - - - -## 你的第一个 PullRequest - -### Step0:安装 Git - -Git是一种版本控制系统,用于跟踪和管理软件开发项目中的代码变更。它帮助开发者记录和管理代码的历史记录,方便团队协作、代码版本控制、合并代码等操作。通过Git,您可以追踪每个文件的每个版本,并轻松地在不同版本之间进行切换和比较。Git还提供了分支管理功能,使得可以同时进行多个并行开发任务。 - -- 访问Git官方网站: -- 下载最新版本的Git安装程序。 -- 运行下载的安装程序,按照安装向导的提示进行安装。 -- 安装完成后,你可以通过命令行使用 `git version` 命令确认安装成功。 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/git_version.png) - - -使用Git时,需要设置你的用户名和电子邮件地址,因为每次Git提交都会使用这些信息。打开命令行,输入以下命令来设置你的Git用户名: - -```bash -git config --global user.name "your_username" -git config --global user.email "your_email@example.com" -``` - -请将 "your_username"和your_email@example.com替换为你想在Git中使用的用户名和邮箱。 - - - -### Step1:Fork 项目 - -- 首先需要 fork 这个项目,进入[VMind 项目页面](https://github.com/VisActor/VMind),点击右上角的 Fork 按钮 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/fork_vmind.png) - -- 你的 github 帐号中会出现 xxxx(你的github用户名)/vmind这个项目 -- 在本地电脑上使用以下命令: 得到一个 VMind 文件夹 - -``` -// ssh -git clone git@github.com:xxxx(你的github用户名)/VMind.git -// https -git clone https://github.com/xxxx(你的github用户名)/VMind.git -``` - - - - -### Step2:获取项目代码 - -- 进入 VMind 文件夹,添加 VMind 的远程地址 - -``` -git remote add upstream https://github.com/VisActor/VMind.git -``` - -- 获取 VMind 最新源码 - -``` -git pull upstream develop -``` - - - - -### Step3:创建分支 - -- 好了,现在可以开始贡献我们的代码了。VMind 默认分支为 develop 分支。无论是功能开发、bug 修复、文档编写,都请新建立一个分支,再合并到 develop 分支上。使用以下代码创建分支: - -``` -// 创建功能开发分支 -git checkout -b feat/xxxx - -// 创建问题修复开发分支 -git checkout -b fix/xxxx - -// 创建文档、demo分支 -git checkout -b docs/xxxx -``` - -- 现在我们可以在分支上更改代码了 -- 假设我们已经添加了一些代码,提交到代码库 -- git commit -a -m "new commit" - - - - -### Step4:合并修改 - -- 一个常见的问题是远程的 upstream (@visactor/vmind) 有了新的更新, 从而会导致我们提交的 Pull Request 时会导致冲突。 因此我们可以在提交前先把远程其他开发者的 commit 和我们的 commit 合并。使用以下代码切换到 develop 分支: - -``` -git checkout develop -``` - -- 使用以下代码拉出远程的最新代码: - -``` -git pull upstream develop -``` - -- 切换回自己的开发分支: - -``` -git checkout docs/add-funnel-demo -``` - -- 把 develop 的 commit 合并到 branch1: - -``` -git rebase develop -``` - -- 把更新代码提交到自己的分支中: - -``` -git push upstream docs/add-funnel-demo -``` - - - - -### Step5:提交Pull Request - -你可以在你的 github 代码仓库页面点击 New pull request 按钮。 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/create_pr.png) - -按照模板填写本次提交的修改内容: - -- 勾选这是什么类型的修改 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/pr_template.png) - -- 填写关联的 issue - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/related_issue.png) - - - -- 若有复杂变更,请说明背景和解决方案 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/background_solution.png) - -相关信息填写完成后,点击 Create pull request 提交 - - - - -## Mini Task 开发指南 - -"**good first issue**" 是一个在开源社区常见的标签,这个标签的目的是帮助新贡献者找到适合入门的问题。 - -VMind 的入门问题,你可以通过 [issue 列表](https://github.com/VisActor/VMind/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) 查看,目前包括两类: - -- Demo 案例制作 -- 简单功能开发 - -如果你当前**有时间和意愿**参与到社区贡献,可以在 issue 里看一看 **good first issue**,选择一个感兴趣、适合自己的认领。 - -相信你一定是一个有始有终的同学,所以,当你了解并决定认领一个 issue 后,请在 issue 下留言告知大家。 - - - - -### Feature Task - -我们准备了一些简单、易上手的特性开发任务,如果你有一定的 Javascript / Typescript 基础,可以认领这类任务。 - -你可以通过需求开发,更快地了解 VMind 代码架构。**你可以在 issue 下留言,和大家讨论自己的方案**。 - -1. 请基于 develop 分支,新拉一个 `feat/***`分支进行开发 -1. (如果你已经安装,请跳过此步骤)全局安装 [@microsoft/rush](https://rushjs.io/pages/intro/get_started/):`npm i --global @microsoft/rush` -1. 根目录下运行 `rush update` -1. `rush start` 在本地运行 VMind 代码的测试页面 - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind_playground.png) - -点击左上角“Set API-Key and LLM URL”设置LLM服务url和key - -5. 确认所有的测试都是通过的 `rush test` -5. 开发完成后,运行 `rush change` 命令,编写 changelog 并提交 -5. 提交所有代码,并在 Github 创建 Pull Request,邀请其他人进行 review - -## 拥抱VisActor社区 - -在你为VIsActor贡献代码之余,我们鼓励你参与其他让社区更加繁荣的事情,比如: - -1. 为项目的发展、功能规划 等提建议 -2. 创作文章、视频,开办讲座来宣传VisActor -3. 撰写推广计划,同团队一同执行 - -VisActor 也在努力帮助参与社区建设的同学一同成长,我们计划(但不限于,期待大家更多的建议)提供如下帮助: - -1. 以VIsActor 为基础的数据可视化研发培训,帮助参与的同学在编程技能、可视化理论、架构设计等多个方面快速成长。 -2. 定期评选“代码贡献奖”和“社区推广奖” -3. 组织社区成员参与开源活动 diff --git a/docs/assets/guide/zh/Getting_Started/Getting_Started.md b/docs/assets/guide/zh/Getting_Started/Getting_Started.md deleted file mode 100644 index 32e7fd23..00000000 --- a/docs/assets/guide/zh/Getting_Started/Getting_Started.md +++ /dev/null @@ -1,252 +0,0 @@ -# 快速上手 - -@VisActor/VChart 提供从数据到展现的全流程解决方案,以“可视化叙事”及“智能化”为核心竞争力。大语言模型强大的生成能力为 VChart 提供了一个自然语言的交互接口,允许我们通过自然语言直接调用 VChart 的各项能力,简单、快速、高质量地完成图表生成与编辑。 -@VisActor/VMind 是基于 VChart 和大语言模型的图表智能模块,提供图表智能推荐、智能配色、对话式图表编辑等能力,能够极大地降低 VChart 的使用门槛,提高用户创作数据可视化作品的效率。 -在本教程中,我们将介绍如何使用 VMind 组件 生成一个简单的图表。 - -## 获取 VMind - -### 使用 NPM 包 - -首先,你需要在项目根目录下使用以下命令安装 VMind - -```sh -# 使用 npm 安装 -npm install @visactor/vmind - -# 使用 yarn 安装 -yarn add @visactor/vmind -``` - -VMind 需要配合 VChart 一起使用。为了进行图表绘制,你还需要在项目中引入 VChart。具体教程详见 [快速上手](http://www.visactor.io/vchart/guide/tutorial_docs/Getting_Started) - -## 引入 VMind - -### 通过 NPM 包引入 - -在 JavaScript 文件顶部使用 `import` 引入 VMind - -```js -import VMind from '@visactor/vmind'; -``` - -## 初始化 VMind 实例 - -首先我们需要初始化一个 VMind 实例,并用它完成后续操作。VMind 目前支持所有主流模型,包括 OpenAI GPT系列,字节豆包系列以及 DeepSeek 等模型,只要提供对应的模型API接口,所有模型均可以直接调用。 -使用以下代码初始化一个 VMind 实例: - -```js -import VMind, { Model } from '@visactor/vmind' - -const vmind = new VMind({ - url, //指定你的大模型服务url。default is https://api.openai.com/v1/chat/completions - model: Model.GPT4o, //指定你指定的模型 - headers: { //指定调用大模型服务时的header - 'api-key': apiKey //Your LLM API Key - } -}) -``` - -在初始化VMind实例时,你可以指定大模型服务的url,模型种类,自定义模型请求方法等参数。详细教程请前往[创建VMind实例](./Basic_Tutorial/Create_VMind_Instance)章节 - -## 图表智能生成模块 - -在传统的图表生成步骤中,为了制作一个完整的图表,你需要完成以下步骤: - -1. 首先准备一份想要进行展示的数据 -2. 指定一个图表类型(图表推荐) -3. 描述数据中的字段如何映射到图表的视觉通道上(字段映射) -4. 对各个元素进行样式修改,并设置图表色板(智能配色) - -而使用 VMind 生成一张图表,你仅需要: - -1. 提供一份想要展示的数据(csv 或JSON格式) -2. 描述你对图表的要求,例如想在图表中展示哪些信息,使用何种风格的配色等等 - -例如,我们想使用下面的商品销售额数据,展示不同区域各商品销售额: - -| 商品名称 | region | 销售额 | -| -------- | ------ | ------ | -| 可乐 | south | 2350 | -| 可乐 | east | 1027 | -| 可乐 | west | 1027 | -| 可乐 | north | 1027 | -| 雪碧 | south | 215 | -| 雪碧 | east | 654 | -| 雪碧 | west | 159 | -| 雪碧 | north | 28 | -| 芬达 | south | 345 | -| 芬达 | east | 654 | -| 芬达 | west | 2100 | -| 芬达 | north | 1679 | -| 醒目 | south | 1476 | -| 醒目 | east | 830 | -| 醒目 | west | 532 | -| 醒目 | north | 498 | - -为了在后续流程中使用csv或JSON格式的数据,需要调用数据处理方法,将CSV数据转换为JSON格式的数据集dataset,并获取字段信息fieldInfo,或者直接从JSON格式的数据中获取fieldInfo。VMind提供了基于规则的方法来获取这些信息。这些方法都不会把明细数据传给大模型。 - -我们可以调用parseCSVData,从CSV数据获取JSON格式的dataset和fieldInfo,用于图表智能生成和数据聚合: - -```ts -const csvData = `商品名称,region,销售额 -可乐,south,2350 -可乐,east,1027 -可乐,west,1027 -可乐,north,1027 -雪碧,south,215 -雪碧,east,654 -雪碧,west,159 -雪碧,north,28 -芬达,south,345 -芬达,east,654 -芬达,west,2100 -芬达,north,1679 -醒目,south,1476 -醒目,east,830 -醒目,west,532 -醒目,north,498`; -//传入csv字符串,获得fieldInfo和dataset用于图表生成 -const { fieldInfo, dataset } = vmind.parseCSVData(csvData); -``` - -如果你已经有了一份JSON格式的数据,我们也可以调用getFieldInfo方法,从数据中获取fieldInfo: -```ts -const dataset=[ - { - "Product name": "Coke", - "region": "south", - "Sales": 2350 - }, - { - "Product name": "Coke", - "region": "east", - "Sales": 1027 - }, - { - "Product name": "Coke", - "region": "west", - "Sales": 1027 - }, - { - "Product name": "Coke", - "region": "north", - "Sales": 1027 - }, - ... -] - -const vmind = new VMind(options) -const fieldInfo = vmind.getFieldInfo(dataset); -``` - -我们想要展示的内容为“各品牌汽车销量排行的变化”。调用generateChart方法,将数据和展示内容描述直接传递给VMind: -```typescript -const userPrompt='show me the changes in sales rankings of various car brand' -//调用图表生成接口,获得spec和图表动画时长 - const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -接下来,我们就可以使用 VChart 绘制生成的图表。 -在绘图前我们需要为 VChart 准备一个具备高宽的 DOM 容器。 - -```html - - -
- -``` - -接下来,我们创建一个 `VChart` 实例,传入刚刚生成的 spec 和 DOM 容器的 ID: - -```ts -// 创建 vchart 实例 -const vchart = new VChart(spec, { dom: 'chart' }); -// 绘制 -vchart.renderSync(); -``` - -生成的图表如下: - -![柱状图](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/bar.gif) - -我们还可对图表提更多的要求,例如: - -```typescript -const userPrompt = '帮我展示不同区域各商品销售额,使用折线图,region做x轴'; -const { spec, time } = await vmind.generateChart(userPrompt, fieldInfo, dataset); -``` - -生成的图表如下: - -![折线图](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/line.gif) - -## 导出 GIF 和视频 - -VMind 支持将生成的图表导出为 GIF 格式的动画和视频,随时随地进行分享。 -为了实现视频导出功能,你需要在项目中额外引入`VChart, FFMPEG, canvas`相关内容,并将其作为对象传入VMind。下面将展示如何获得图表 GIF 和视频的 ObjectURL: - -首先安装VChart,FFMPEG以及canvas相关内容: -```bash -# 使用 npm 安装 -npm install @visactor/vchart -npm install @visactor/vrender-core -npm install @ffmpeg/ffmpeg^0.11.6 -npm install canvas^2.11.2 -``` -同时确保vrender-core版本与vchart依赖版本一致,如:`"@visactor/vchart": "1.12.7"`对应的版本应该为,`"@visactor/vrender-core": "0.20.7"` -具体使用如下: - -```typescript -import VChart from "@visactor/vchart"; -import { ManualTicker, defaultTimeline } from "@visactor/vrender-core"; -import { createFFmpeg, fetchFile } from '@ffmpeg/ffmpeg/dist/ffmpeg.min.js' -import { createCanvas } from "canvas"; -import VMind from "@visactor/vmind"; - -// 初始化vmind和ffmpeg -const vmind = new VMind({}); -const ffmpeg = createFFmpeg({ - log: true, -}); -const loadFFmpeg = async () => { - if (!ffmpeg.isLoaded()) { - await ffmpeg.load(); - } -}; -// 确保在使用导出功能前已经加载了ffmpeg -await loadFFmpeg(); -//导出视频 -//传入图表spec,视频时长和视频化必要参数,返回ObjectURL -const videoSrc = await vmind.exportVideo(spec, time, { - VChart, - FFmpeg: ffmpeg, - fetchFile, - ManualTicker, - defaultTimeline, - createCanvas, - }); -//导出GIF图片 -const gifSrc = await vmind.exportGIF(spec, time, { - VChart, - FFmpeg: ffmpeg, - fetchFile, - ManualTicker, - defaultTimeline, - createCanvas - }); -``` - -一旦获得图表的 ObjectURL,我们可以将其保存为文件。以保存视频文件为例: - -```typescript -//创建dom元素,实现文件下载 -const a = document.createElement('a'); -a.href = videoSrc; -a.download = `${filename}.mp4`; //设置保存的文件名 -a.dispatchEvent(new MouseEvent('click')); //保存文件 -``` - -## 总结 - -本章介绍了如何安装并使用 VMind 进行图表生成,并演示了如何将生成的图表保存为 GIF 和视频。VMind 目前支持柱状图、饼图、折线图、散点图、词云、动态条形图,更多图表类型正在开发中。VMind 能够根据用户数据和展示意图,推荐合适的图表类型,并将字段映射到合适的视觉通道上,自动生成符合用户需求的色板,降低用户进行数据可视化的门槛,帮助您轻松完成数据叙事。 diff --git a/docs/assets/guide/zh/Getting_Started/Quickly_Get_Started_with_VisActor_Using_Trae_Context_Doc.md b/docs/assets/guide/zh/Getting_Started/Quickly_Get_Started_with_VisActor_Using_Trae_Context_Doc.md deleted file mode 100644 index c028f7d8..00000000 --- a/docs/assets/guide/zh/Getting_Started/Quickly_Get_Started_with_VisActor_Using_Trae_Context_Doc.md +++ /dev/null @@ -1,194 +0,0 @@ ---- -title: 有了Trae 上下文doc功能 ,快速上手VisActor,再也不用提oncall了 - -key words: VisActor,VChart,VTable,VStrory,VMind,VGrammar,VRender,Visualization,Chart,Data,Table,Graph,Gis,LLM ---- -# 什么是Trae - -Trae(中国区: https://www.trae.com.cn/?utm_source=school&utm_medium=oncam&utm_campaign=visactor ,海外版:https://www.trae.ai/ ),致力于成为真正的 AI 工程师(The Real Al Engineer)。Trae 旗下的 AI IDE 产品,以智能生产力为核心,无缝融入你的开发流程,与你默契配合,更高质量、高效率完成每一个任务。 - - - -# 什么上下文Doc 功能 - -指定上下文可以让 AI 助手提供更精准的回答,但是大模型对一个组件的理解的实时程度是低于组件自己的官方文档的。如果我们在使用一个不熟悉的组件的时候,如果能将该组件的相关文档引入到上下文中,可以大大的提升智能化编程水平。 - - - -Trae 使用 “#” 来指定上下文。 - - - -输入“#Doc:”,可以索引文档集。 我们添加VisActor 的文档,进行测试。 目前Trae 还没有内置任何文档集,所以需要手动添加。 - -首先添加文档集: - - - - - -这里我们通过url的方式添加各组件的入口url: - -* VChart:https://www.visactor.io/vchart/ - -* VTable:https://www.visactor.io/vtable - -* VMind:https://www.visactor.io/vmind - -* .... - - - -整个过程略微缓慢,但是索引效果,明显好于 Cursor。 - - - - - -下面我们实地测试一下引用文档作为上下文是否会给编程带来实际的益处。 - -# 效果测试 - -## 创建测试项目 - -我们创建一个最简单web 项目 - -``` -npm create vite@latest my-ts-web -- --template typescript -cd my-ts-web - -``` - - -# 实践验证 - -## 新增一个线图 - -我们要求Trae 生成一段代码,在当前文件中添加一个VChart 线图。 - - - -生成的结果还是有错误的。 - - - -我们下面引入文档,看看是不是会有所改变。 - - - -重新生成的代码修复了之前的api 错误调用。 - - - -生成了一个正确的线图。 - - - -## 加大难度 - -首先我们来修改数据,显示三条线。 - - - -问题的分析和答案都比较靠谱: - - - - - -主要修改点: - -1. 重构了数据结构,使用type字段来区分不同系列 - -1. 使用seriesField来指定系列的分类字段 - -1. 每个数据点包含year(x轴)、value(y轴)和type(系列)三个字段 - - - -修改入场动画效果: - - - - - -主要修改: - -1. 添加了animation配置 - -1. appear设置入场动画为fadeIn(淡入淡出) - -1. duration设置动画持续时间为1000毫秒 - -结果如下: - - - - - -## 更多问答 - -因为有了官方文档,我们可以让Trae 回答更多类型的问题,不只是代码本身。 - -比如基本的图表概念: - - - -或者 具体用法: - - - -导航到更相关文档: - - - - - -# 简单总结 - -Trae 结合文档有如下好处: - -1. 提升开发效率 - -- 快速访问:通过Marscode直接查阅VisActor API文档 - -- 智能提示:基于VisActor文档的精准代码补全 - -2. 增强开发体验 - -- 无缝集成:在开发环境中直接获取VTable使用指导 - -- 实时反馈:快速验证代码效果 - -3. 降低学习成本 - -- 文档辅助:随时查阅VisActor官方示例 - -- 代码生成:自动生成符合VisActor规范的代码 - -4. 提高代码质量 - -- 规范检查:确保代码符合VisActor最佳实践 - -- 性能优化:自动生成高性能表格配置 - -# 联系我们 - -github :[github.com/VisActor](https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2FVisActor) - -VisActor 微信订阅号留言(可以通过订阅号菜单加入微信群): - - - -VisActor 官网:[www.visactor.io/](https://link.juejin.cn/?target=https%3A%2F%2Fwww.visactor.io%2Fvtable) ; [www.visactor.](https://link.juejin.cn/?target=https%3A%2F%2Fwww.visactor.io%2Fvtable)com - -飞书群: - - - -discord:https://discord.com/invite/3wPyxVyH6m - - ---- - -The doc is contributed by [玄魂](https://github.com/xuanhun) diff --git a/docs/assets/guide/zh/Intro_to_VMind.md b/docs/assets/guide/zh/Intro_to_VMind.md deleted file mode 100644 index 1ca6bbd4..00000000 --- a/docs/assets/guide/zh/Intro_to_VMind.md +++ /dev/null @@ -1,86 +0,0 @@ -# VMind简介 -## 前言 -VisActor是一款全流程可视化解决方案,它以“可视化叙事”和“智能化”为核心发展方向。VisActor承载“可视化叙事” 能力的组件主要有VChart、VTable 和 VGrammar,它们都提供了简单易用的接口。然而,我们希望在一些典型场景中,用户能够无需编写代码就能生成图表和叙事作品,以此降低用户的学习成本和使用复杂度。大语言模型的强大生成能力为VisActor可视化体系提供了一个自然语言的交互接口,使我们能够通过自然语言直接调用VChart、VTable等可视化组件的各项功能,从而简单、快速、高质量地完成可视化创作。 - - -![VMind](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_intro_ch.png) - - -VMind是在VChart、VTable等可视化组件库的基础能力之上,构建的一个智能可视化组件。我们希望在一些典型场景中,用户能够只需一句话就能生成图表和叙事作品,以此降低用户的学习成本和使用复杂度。 - -## VMind架构设计 -智能化是VisActor的未来核心方向,只有在此基础上,我们才能真正降低开发者的接入和研发成本,让他们能够将注意力集中在可视化之外。VMind是VisActor体系中的智能可视化组件,它基于规则算法、人工智能、机器学习、大语言模型等多种方式提供智能化接口,以最大限度降低开发者使用可视化组件的心智负担。 - - -![VMind架构图](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_structrure_ch.png) - - -在VMind组件中,最底层是由VChart图表库提供的图表渲染、动画、标注能力、VChart文档,以及大语言模型提供的自然语言理解、代码生成能力。其中,数据处理与交互层负责处理用户输入的数据和自然语言,包括数据聚合模块进行字段解析、数据转换、聚合等操作,交互通信模块负责处理用户与VMind、VMind与大语言模型之间的通信,包括用户意图识别、Prompt管理,模型通信,结果解析。 - - -## VMind核心能力 - - -![VMind能力图](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_abilities_ch.png) - - -VMind的核心能力包括图表智能生成、图表智能编辑和智能配色。 -- 图表智能生成,是指从自然语言描述的展示意图+数据直接生成图表的过程 -- 图表智能编辑是在原有图表的基础上,通过自然语言描述编辑意图,生成编辑后的图表 -- 智能配色是从自然语言生成风格化图表的过程。 - -进阶能力是对核心能力的进一步应用,包括完整的可视化叙事生成、数据解读与洞察报告。 - - -## VMind图表创作流程 - - -![VMind能力图](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_progress_ch.png) - - -基于VMind的图表智能生成、对话式编辑和智能配色模块,我们可以概括出使用VMind进行图表创作的全流程: -首先,用户提供自然语言描述的数据展示意图和图表数据,或者提供自然语言描述的图表编辑意图和数据新闻片段等。这些输入经过意图识别模块的处理,路由到不同模块。图表智能生成模块生成初步的图表;智能配色模块会根据用户的输入生成相应的主题色板,使得图表的颜色搭配更加和谐、美观;对话式编辑模块会反复应用一系列编辑操作,对图表进行微调和优化,直到生成一张满足用户需求的图表。 - -这些模块之间的协同作用,使得用户可以零门槛创作可视化作品。这种流程不仅大大简化了图表创作的复杂度,也极大地提升了图表创作的效率和质量。 - -这一流程充分利用了大模型的function call能力。图表生成、图表编辑与智能配色作为function供模型调用,LLM作为与用户交互的接口,根据用户意图选择对应的function并传入参数,执行对应模块的功能。在未来,VMind还将集成洞察提取、数据解读功能,对生成的图表进行解读,生成洞察报告,或者在图表中添加标注展示数据中的洞察信息。与此同时,模型还具有强大的自然语言对话能力,能够与用户进行多轮对话,简单、自然、友好地帮助用户完成从图表创作到数据分析的全过程。开发人员可以轻松地将VMind集成到他们的系统中,作为一个数据可视化助手。 - - - -## VMind使用场景 -### 数据视频 -数据视频是一种将数据内容通过图表、动画、标注、旁白等形式进行展示和解读的视频类型。这种方式能够将原本抽象的数据转化为直观的图形,以更加生动有趣的方式呈现,使观众更容易理解和接受。 - -制作数据视频的步骤包括: - -- 确定数据来源和主题 -- 收集和整理数据 -- 制作、编辑和导出图表 -- 视频编辑 -在传统的数据视频制作流程中,创作者需要在收集数据后,使用专业的可视化软件将数据转化为图表;或者使用各种图表库,通过编程绘制图表并导出为视频。在短视频时代,每个人都有可能成为视频的创作者。但是,非专业的视频创作者往往没有将数据可视化为图表并导出为视频的技能,这就大大提高了制作数据视频的门槛。 - -而使用 VMind 制作数据视频,用户只需要在收集好数据之后,用一句话描述想要展示的内容,就能直接生成图表动画,并支持一键导出为视频和 GIF,这极大地降低了制作数据视频的难度。 - - -![](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/cut.png) - - - -### 图表智能助手 -借助VMind打造的图表智能助手,你可以利用大语言模型的function call能力,判断用户的意图并调用VMind接口,实现图表的生成和数据的解读,从而降低数据可视化的难度。 - - -__你可以在[Cici](https://ciciai.com/bot/fUuxvgvv)体验VMind图表助手。__ - - -![VMind图表智能助手](https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/vmind/tutorials/VMind_assistant.png) - - - - - - - - - - diff --git a/docs/assets/guide/zh/VMind_OpenAPI.md b/docs/assets/guide/zh/VMind_OpenAPI.md deleted file mode 100644 index 18846485..00000000 --- a/docs/assets/guide/zh/VMind_OpenAPI.md +++ /dev/null @@ -1,90 +0,0 @@ -# VMind OpenAPI - -在VMind图表生成工具的基础上,VisActor团队全新推出了VMind Agent,提升了智能生成的准确性和效率,并新增了多轮编辑能力。目前VMind Agent提供了OpenAPI接口,你可以通过调用这些接口来实现更高级的智能生成能力。[VMind Agent Playground](/vmind/playground)提供了一个简单的测试环境,方便体验VMind Agent的能力。 - -## VSeed - -VSeed是一个面向分析领域的DSL, 封装了该领域常用的图表能力, 极大地提升分析式报表平台的搭建效率。一般情况下, 给定数据集和图表类型, 即可直接出图,每类图表类型存在大量的默认约定逻辑。 - -VSeed是VChart和VTable的子集,配置相比VChart和VTable大幅简化,配置项更适合大模型理解,是专为LLM生成封装的图表库。 - -VSeed 项目仓库:[https://github.com/VisActor/VSeed](https://github.com/VisActor/VSeed) - -VSeed 能力展示:[https://visactor.github.io/VSeed/galley/chartType/line.html](https://visactor.github.io/VSeed/galley/chartType/line.html) - -VMind Agent优先推荐使用VSeed进行代码生成,生成效果更加优秀,也同时支持VChart和VTable的原生代码生成。 - -## VMind Agent - -VMind Agent的整体技术方案如下: - -用户输入的指令和代码块,输入VMind Agent后,Agent会基于LLM主动调用工具,开始逐步进行 生成/编辑 -> 检查 -> 编辑 -> 检查 ...... 任务流,最终完成用户的要求,输出对应的代码块和文本解释说明。 - -相比传统的图表生成工具,VMind Agent在一下方面有优势: -- 🤖 ReAct 架构: 基于 LangGraph 实现的推理-行动循环 -- 🛠️ 多样化工具: 支持多种图表生成和编辑工具 -- 📊 图表类型: 支持多种图表类型和表格类型 -- 🎨 模板系统: 预置多种图表模板 -- 🔧 图表编辑: 支持对现有图表进行修改 -- 💬 自然语言: 支持纯自然语言输入生成图表 - -### VMind Agent 架构 - -VMind Agent 主要由Coordinator调度器和若干工具组成,基于`@langchain/langgraph库`完成Agent的实现。主要模块如下: - - - -#### Coordinator - -调度器主要工作是:基于当前状态,判断下一步应该调用哪一个工具,或结束任务。 - -#### Generate Tool - -生成工具在用户没有输入代码,或指令要求重新生成代码时调用。如果没有指定图表类型,工具会基于数据推荐适合的图表类型。每一种图表/表格类型都会提供基础的模版,LLM会基于用户的数据和模版生成最简单的代码块,供进一步编辑使用。 - -#### Edit Tool - -编辑工具是VMind Agent的核心部分,LLM会基于当前的代码和用户的目标,将任务拆分为多个简单的步骤并逐一完成。在执行每次编辑任务前,工具会基于本次步骤的任务要求,在知识库中召回对应的资料,辅助LLM进行编辑。 - -#### Check Tool - -检查工具在每一步编辑操作后执行,用来检查当次编辑操作是否会引起恶性错误,或是否没有达到当次步骤的目标。如果检查不通过,会回退上一次编辑操作。 - -#### 短期记忆 - -每一次对话会记录当前的sessionId,方便同一个用户进行多轮对话时,找回之前轮次的对话所记录的状态,方便用户进行多轮编辑操作。 - -### VMind Agent 知识库 - -为了避免LLM在编辑代码时出现幻觉,VMind Agent将编辑范围严格限制在每次编辑操作提供的知识库片段中。知识库主要分为两部分: - -#### RAG - -教程文档、示例Demo和Q&A问答内容,内容独立性强,适合使用RAG方案。相应片段进行向量化后,存入向量数据库。每次进行编辑操作时,会召回对应的若干文本及代码片段,供大模型参考。 -大模型进行编辑时,如果召回有非常接近的内容,会已经对应的代码片段准确进行相应的编辑。 - -#### Type Docs - -图表和表格的配置Schema,按照不同的图表/表格类型,以及不同的模块(例如坐标轴、图例等)进行拆分,组织成一个个类型说明片段。每个片段中有该部分对应的属性名称、属性类型和属性说明,不同的片段使用不同的TopKey进行索引。使用LLM将每个每个片段进行归纳总结,生成对应的说明Markdown片段,存储在数据库中。每一个TopKey也依据对应的Markdown片段,使用LLM总结一段简单的说明,介绍这个TopKey下的功能范围。 - -每次编辑时,首先依据编辑指令召回对应的若干TopKey,之后将TopKey对应的Markdown文本片段,作为知识库加入prompt中,大模型的编辑操作会被严格限制在本次召回的知识库的范围,避免幻觉影响编辑结果。 - -## VMind Agent 应用 - -### Playground - -VMind Agent Playground提供了一个简单的测试环境,方便体验VMind Agent的能力。你可以在Playground中输入指令和代码块,查看Agent的生成和编辑结果。 - -[VMind Agent Playground](/vmind/playground) - -### 抖音小程序 - -基于VMind Agent的,我们开发了一个示例小程序,抖音小程序搜索 数据智能洞察助手 对话小程序,用户可以在小程序中输入需要进行智能洞察的文本,体验Agent的生成和编辑结果。 - - - -## VMind OpenAPI 使用咨询 - -加入飞书群欢迎联系我们,咨询VMind OpenAPI的使用方案。 - - diff --git a/docs/assets/guide/zh/VMind_Website_Guide.md b/docs/assets/guide/zh/VMind_Website_Guide.md deleted file mode 100644 index c712c20f..00000000 --- a/docs/assets/guide/zh/VMind_Website_Guide.md +++ /dev/null @@ -1,55 +0,0 @@ - -# VMind站点指南 - -本篇文章的目的是为了帮助你更有效地使用 VMind 网站,让你能更快地找到你需要的信息。 - -## VMind OpenAPI - -VMind 提供了 OpenAPI 接口,你可以通过调用这些接口来实现更高级的智能生成能力。你可以在[VMind OpenAPI](./VMind_OpenAPI)章节了解更多关于 OpenAPI 的信息。 - -## 快速开始 - -### 快速上手 - -首先,你需要阅读 VMind 的[快速上手](./Getting_Started)章节。这个章节会教你如何配置和使用 VMind 所需的环境,以及如何使用 VMind 构建你的第一个智能可视化应用。 - -### 深入了解 VMind - -在你完成[快速上手](./Getting_Started)后,你可以在[VMind简介](./Intro_to_VMind)了解 VMind 的功能定位和相关概念。 -[创建VMind对象](./Create_VMind_Object)章节将教你如何初始化一个 VMind 对象以进行后续操作。你还可以通过阅读[数据处理与输入](./Data_Input_and_Process)章节来了解 VMind 支持的数据类型。在[图表生成](./Chart_Generation)章节,你可以深入了解如何使用 VMind 进行图表智能生成。[数据聚合](./Data_Aggregation)章节将教你如何使用 VMind 对数据进行排序、筛选、聚合等操作。 - -## 文档 - -VMind 的文档提供了详细的功能和 API 信息。根据你的需求,你可以查看以下几个部分: - -- [教程](./Basic_Tutorial/Create_VMind_Instance):介绍了 VMind 的基本概念和各种使用方法。 - -- [API](../api/VMind_Instance):提供了 VMind 的所有可用接口的详细说明。 - - - -## 如何使用搜索功能 - -本站点提供了一个强大的搜索功能,让你可以快速找到相关的使用信息。点击站点顶部的搜索框,输入关键词后,你将在下拉列表中看到匹配的结果。选择合适的结果即可查看相关内容。 - -## 如何提问&建议 - -我们很高兴为你提供帮助! 如果你在使用 VMind 过程中遇到问题,可以通过以下方式提问: - -1. 在 GitHub 仓库中提交一个 issue:访问 [VMind GitHub](https://github.com/VisActor/VMind/issues/new/choose),详细描述你遇到的问题,我们的团队将尽快回应并解决。 - -2. 在 GitHub 仓库提交一个 discussion:访问 [VMind Discussion](https://github.com/VisActor/VMind/discussions),非常欢迎你在这里提出你的想法和建议,我们的团队将尽快回应并解决。 - -## 如何纠错 - -如果你在文档示例中发现问题,或者认为某些部分可以改进,务必告诉我们。你可以通过以下方式为我们提纠错信息: - -1. 在 GitHub 仓库中提交一个 pull request:纠正的内容并提交,会有团队成员审核并合并。 - -2. 提交一个 issue:指出文档中存在的问题,团队成员会尽快核实并修正。 - -感谢你的帮助!我们将不断完善文档,为所有 VMind 用户提供更好的学习体验。 diff --git a/docs/assets/openManus/Amazon_Fashion_Sales_Analysis_Report.md b/docs/assets/openManus/Amazon_Fashion_Sales_Analysis_Report.md deleted file mode 100644 index fbfca095..00000000 --- a/docs/assets/openManus/Amazon_Fashion_Sales_Analysis_Report.md +++ /dev/null @@ -1,125 +0,0 @@ -# Amazon Fashion Sales Analysis and Growth Strategy -## January 2025 Performance Review and 10% Growth Plan - -## Executive Summary - -This comprehensive analysis examines the January 2025 sales data from your Amazon Fashion store to identify patterns, trends, and opportunities for growth. The analysis reveals several key insights, including day-of-week performance variations, the impact of discount strategies, and customer purchasing behaviors. Based on these findings, we've developed a multi-faceted strategy projected to increase sales by 14%, well above the requested 10% target. The strategy focuses on optimizing day-specific promotions, enhancing customer purchase behavior, refining pricing and promotion tactics, and improving inventory management. This report provides both detailed analysis and actionable recommendations with implementation timelines to achieve sustainable growth. - -## Data Analysis Methodology - -The analysis began with a thorough exploration of the January 2025 sales data, which included 31 days of daily metrics covering orders, customers, units sold, and various financial indicators. The data was preprocessed to create derived metrics such as average order value, units per order, profit margins, and day-of-week features. Comprehensive statistical analysis was performed to identify patterns, correlations, and anomalies in the data. Multiple visualizations were created to illustrate key trends and relationships, providing a foundation for data-driven strategy development. - -## Sales Performance Overview - -January 2025 showed overall healthy performance with a total of 1,213 orders, generating approximately $166,000 in gross sales and $57,000 in net profit. The average daily performance included 39 orders, 101 units sold, and $5,349 in gross sales, with an average order value of $136.11 and a profit margin of 34.11%. The data revealed significant day-to-day variations, with a notable peak on January 14th that substantially outperformed all other days. - -### Weekly Performance Trends - -The sales data demonstrated a clear pattern of growth and decline throughout the month. Week 3 (January 15-21) showed peak performance with 316 orders, $45,546 in gross sales, and $15,827 in net profit. This represented a 39.8% increase in orders and a 49.9% increase in gross sales compared to Week 1. However, Weeks 4 and 5 showed a progressive decline, with Week 5 recording only 148 orders and $20,751 in gross sales. This mid-month peak followed by end-of-month decline suggests a cyclical pattern that requires strategic intervention to maintain momentum throughout the entire month. - -Average order value also fluctuated weekly, peaking in Week 3 at $144.97, while Week 4 had the lowest AOV at $125.07. This 16% variation in AOV between weeks indicates significant potential for optimization through targeted promotional strategies. Profit margins showed similar fluctuations, ranging from 31.64% in Week 4 to 36.44% in Week 5, suggesting opportunities for margin improvement through strategic product mix and pricing adjustments. - -### Day-of-Week Analysis - -The analysis revealed substantial performance variations by day of week. Tuesdays consistently outperformed other days with an average of 52.25 orders and $7,152 in gross sales, while Thursdays showed the weakest performance with only 28.6 orders and $3,763 in gross sales. This 82.7% difference in order volume between the best and worst-performing days represents a significant opportunity for targeted interventions to boost underperforming days. - -Weekend days (Saturday and Sunday) averaged higher orders (43.88) compared to weekdays (37.48), but showed lower average order values ($129.74 vs. $138.33). This suggests different shopping behaviors between weekday and weekend customers, with weekend shoppers making more frequent but smaller purchases. Mondays showed the highest average order value at $146.42, indicating potential for premium product focus on this day. - -### Outlier Analysis: January 14th - -Tuesday, January 14th stood out as an exceptional outlier, with 79 orders (82.31% above the average Tuesday), $11,752 in gross sales (109.14% above average), and $4,010 in net profit (113.58% above average). This single day accounted for approximately 7% of the month's total sales. The exceptional performance extended across all metrics, including a higher average order value ($148.76 vs. $128.29) and more units per order (2.84 vs. 2.42) compared to other Tuesdays. - -The dramatic outperformance of January 14th suggests specific factors that drove success on this day, potentially including promotional activities, external events, or seasonal factors. Identifying and replicating these success factors represents a significant opportunity for boosting overall sales performance. - -## Customer Behavior Insights - -The analysis revealed several important patterns in customer purchasing behavior that provide opportunities for optimization. The near-perfect 100% conversion rate across all days suggests most visitors are returning customers or highly qualified leads, indicating a loyal customer base but also potential for expanding reach to new customers. - -Customers purchased an average of 2.57 units per order, with higher units per order on Tuesdays (2.84) and lower on weekends (2.35). This variation suggests different shopping motivations throughout the week and opportunities for increasing basket size through strategic cross-selling and bundling. The data also showed that orders and unique customers were nearly identical, indicating most customers place only one order per day, highlighting potential for encouraging multiple purchases. - -## Financial Performance Analysis - -Profit margins showed significant variation, ranging from 26.97% to 42.03%, with an average of 34.11%. Weekdays demonstrated higher profit margins (35.47%) compared to weekends (33.38%), suggesting different product mix preferences between weekday and weekend shoppers. The correlation analysis revealed a moderate positive relationship (0.41) between profit margin and average order value, indicating that higher-value orders tend to be more profitable. - -The cost structure analysis showed Amazon fees remained relatively consistent at 19-21% of gross sales, while product costs varied more significantly, ranging from 38.39% to 50.67% of gross sales. This variation in product costs suggests opportunities for optimizing the product mix to favor higher-margin items during strategic promotional periods. - -## Discount and Shipping Impact - -The analysis of discount strategies revealed that medium discounts ($1-2 per order) correlated with the highest orders (44.17), gross sales ($6,174.53), and net profit ($2,129.66). Higher discounts showed diminishing returns, with lower profit margins (32.09% for high discounts vs. 34.60% for low discounts) and no corresponding increase in order volume. Discounts showed negative correlations with average order value (-0.10) and profit margin (-0.32), suggesting the need for strategic application to maximize overall profitability. - -Shipping charge analysis showed that medium shipping charges ($5-6 per order) correlated with the highest profit margins (35.47%). Shipping charges showed minimal correlation with orders (-0.01) and sales (0.01), suggesting limited price sensitivity to shipping costs within the current range. The negative correlation (-0.39) between shipping and discount suggests these are used as alternative promotional tactics, providing an opportunity for more strategic coordination between these levers. - -## Data-Driven Growth Strategies - -Based on the comprehensive analysis of January 2025 sales data, we've developed a multi-faceted strategy to achieve a minimum 10% increase in sales for the upcoming month. The strategy focuses on four key areas: day-of-week optimization, customer behavior optimization, pricing and promotion refinement, and inventory management improvements. - -### Day-of-Week Optimization Strategies - -The significant performance variations by day of week present clear opportunities for targeted interventions. For Tuesdays, which already show strong performance, we recommend enhancing their success by analyzing what made January 14th exceptional and implementing similar tactics on all Tuesdays. This includes implementing 3-hour flash sales with medium-level discounts ($1-2 per order) that showed optimal performance in our analysis, and scheduling targeted email campaigns to be delivered Monday evening to drive Tuesday traffic. These Tuesday enhancements are projected to increase Tuesday sales by 15%, contributing 3% to overall monthly sales. - -For underperforming Thursdays, we recommend a rescue plan featuring Thursday-exclusive promotions, free shipping offers, and bundle deals to increase units per order from the current 2.57 average. These Thursday interventions are expected to increase Thursday sales by 20%, contributing 2% to overall monthly sales. - -Weekend strategies should focus on improving average order value, which currently lags behind weekday performance. This includes promoting higher-value items on weekends and implementing tiered shipping discounts that increase with order value to encourage larger weekend purchases. These weekend AOV improvements are projected to increase weekend AOV by 8%, contributing 1.5% to overall monthly sales. - -### Customer Behavior Optimization - -To increase units per order from the current 2.57 average, we recommend implementing AI-powered product recommendations based on cart contents, offering tiered discounts for purchasing multiple items, and featuring complementary products on product pages and during checkout. These strategies are expected to increase average units per order to 2.8 (+9%), contributing 2% to overall monthly sales. - -To encourage repeat purchases within the same month, we recommend sending follow-up emails with time-limited discount codes for next purchases and implementing a points-based loyalty program. These repeat purchase incentives are projected to generate 5% additional orders from repeat customers, contributing 1% to overall monthly sales. - -### Pricing and Promotion Optimization - -Based on the analysis of discount impact, we recommend refining the discount strategy to focus on the medium discount range ($1-2 per order) that showed highest orders, gross sales, and net profit. Discounts should be applied strategically to products with higher profit margins to maintain overall profitability. This optimized discount strategy is expected to improve conversion while maintaining profit margins, contributing 1.5% to overall monthly sales. - -For shipping strategy, we recommend implementing free shipping for orders above $150 to increase average order value (currently $136.11) and focusing on medium shipping charges ($5-6) that showed highest profit margins. These shipping optimizations are projected to increase AOV by 5%, contributing 1% to overall monthly sales. - -### Inventory and Product Mix Strategies - -To optimize the product mix, we recommend identifying and featuring products with above-average profit margins and expanding selection in categories showing highest units per order. This product mix optimization is expected to improve overall profit margin while increasing sales, contributing 1% to overall monthly sales. - -To address the observed decline in sales during Weeks 4-5, we recommend creating special promotions for the last week of the month and implementing a strategic discounting of slow-moving inventory during the final week. These end-of-month boost strategies are projected to reduce the Week 4-5 decline by 50%, contributing 1% to overall monthly sales. - -## Implementation Plan - -The implementation of these strategies should follow a phased approach over four weeks: - -Week 1 should focus on building the foundation by setting up technical infrastructure for all promotions, preparing email templates and marketing materials, and configuring discount rules and shipping tiers. - -Week 2 should launch the core strategies, including the Tuesday Power Day strategy, Units Per Order initiatives, and Discount Strategy Refinement. - -Week 3 should expand the implementation to include the Thursday Rescue Plan, Weekend AOV Improvement tactics, and Repeat Purchase Incentives. - -Week 4 should focus on optimization by deploying the End-of-Month Sales Boost, fine-tuning all strategies based on early results, and preparing for continuation in the following month. - -## Expected Results - -The combined impact of these strategies is projected to increase sales by 14%, exceeding the 10% target: -- Day-of-Week Optimization: +6.5% -- Customer Behavior Optimization: +3.0% -- Pricing and Promotion Optimization: +2.5% -- Inventory and Product Mix Strategies: +2.0% - -This comprehensive approach provides a buffer for any strategies that may underperform expectations while maintaining or improving profit margins. The strategies are designed to be sustainable and scalable, providing a foundation for continued growth beyond the immediate target period. - -## Conclusion - -The January 2025 sales data reveals a healthy business with significant opportunities for optimization and growth. By strategically addressing day-of-week performance variations, enhancing customer purchase behavior, refining pricing and promotion tactics, and improving inventory management, we project a 14% increase in sales for the upcoming month. The recommended strategies are data-driven, actionable, and designed to not only increase sales volume but also maintain or improve profit margins. Implementation should follow the phased approach outlined in this report, with ongoing monitoring and adjustment to maximize results. - -## Appendix: Key Visualizations - -The analysis includes several key visualizations that illustrate the patterns and insights discussed in this report: - -1. Daily Gross Sales Trend - January 2025 -2. Weekly Gross Sales - January 2025 -3. Average Daily Orders by Day of Week -4. Weekend vs Weekday Performance Comparison -5. January 14th vs Average Tuesday Comparison -6. Impact of Discount Levels on Sales Metrics -7. Profit Margin by Discount Range -8. Units per Order vs Average Order Value -9. Impact of Shipping Levels on Sales Metrics -10. Daily Profit Margin Trend - January 2025 -11. Daily Average Order Value Trend - January 2025 -12. Correlation Matrix of Sales Metrics - -These visualizations provide visual confirmation of the patterns identified in the analysis and support the strategic recommendations outlined in this report. diff --git a/docs/assets/openManus/Readme.md b/docs/assets/openManus/Readme.md deleted file mode 100644 index c5a8bb65..00000000 --- a/docs/assets/openManus/Readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# Case of Sales Analysis and Strategies for Amazon Store - -The current folder contains all execution artifacts of [the Sales Analysis and Strategies for Amazon Store case in manus](https://manus.im/share/c3onakN6Iajcm1Vt1xAVG7?replay=1) \ No newline at end of file diff --git a/docs/assets/openManus/amazon_sales_jan2025.csv b/docs/assets/openManus/amazon_sales_jan2025.csv deleted file mode 100644 index 177fcadd..00000000 --- a/docs/assets/openManus/amazon_sales_jan2025.csv +++ /dev/null @@ -1,32 +0,0 @@ -Date,Orders,Unique Customers,Units Sold,Gross Sales,Shipping Revenue,Coupon Discounts,Amazon Fees,Product Costs,Net Profit -2025-01-01,37,37,83,4813.44,275.91,706.65,734.33,2241.35,1407.02 -2025-01-02,43,43,111,6182.74,489.61,833.44,848.23,2936.95,2053.73 -2025-01-03,32,31,114,6914.35,427.26,888.52,1074.84,3491.21,1887.05 -2025-01-04,41,41,91,6138.23,471.18,643.65,747.82,3200.84,2017.1 -2025-01-05,46,46,102,7394.39,509.73,966.82,903.9,3815.65,2217.75 -2025-01-06,32,32,116,9157.3,676.22,1369.04,1550.84,4377.13,2536.5 -2025-01-07,35,35,86,4861.82,316.4,520.24,688.49,2652.06,1317.44 -2025-01-08,38,38,99,5039.76,339.21,634.59,643.19,2639.77,1461.42 -2025-01-09,41,40,114,3188.5,206.54,458.72,482.53,1611.58,842.2 -2025-01-10,35,34,101,7134.65,398.52,977.72,1185.78,3647.03,1722.64 -2025-01-11,38,37,92,7297.66,523.05,984.09,970.22,3590.15,2276.24 -2025-01-12,33,33,96,4047.84,236.49,546.96,637.02,1921.81,1178.54 -2025-01-13,41,41,96,6275.02,318.33,740.29,785.14,3047.13,2020.79 -2025-01-14,41,41,107,7174.17,497.63,822.73,883.15,3772.07,2193.85 -2025-01-15,79,78,93,11752.01,650.04,1650.78,1784.91,5305.32,3661.04 -2025-01-16,42,42,95,6619.66,517.75,930.1,1009.09,3055.68,2142.54 -2025-01-17,30,30,101,5610.81,441.11,804.33,887.89,2550.68,1809.03 -2025-01-18,34,33,94,3523.28,272.86,513.21,576.29,1599.82,1106.82 -2025-01-19,35,35,93,6922.58,423.0,869.25,1236.03,3707.36,1532.94 -2025-01-20,40,39,93,7336.22,370.21,917.58,1107.61,3817.52,1863.72 -2025-01-21,51,50,109,6450.31,502.15,902.49,899.03,3208.5,1942.45 -2025-01-22,41,40,108,3916.81,246.15,518.97,656.89,1800.89,1186.22 -2025-01-23,29,29,105,4221.79,333.52,570.36,575.22,2107.36,1302.38 -2025-01-24,24,24,102,3652.92,288.25,510.64,534.56,1816.77,1079.19 -2025-01-25,37,37,112,6503.53,491.6,939.76,811.04,3039.23,2205.1 -2025-01-26,46,46,91,7251.14,426.61,847.66,881.17,3577.61,2371.32 -2025-01-27,35,35,104,5985.29,368.41,710.93,1063.94,2931.9,1646.94 -2025-01-28,31,31,92,6759.36,510.56,707.7,1150.17,3457.99,1954.07 -2025-01-29,44,44,90,4047.1,240.83,521.73,654.65,2078.22,1033.33 -2025-01-30,43,42,98,5567.35,306.68,566.74,804.69,2530.53,1972.07 -2025-01-31,44,44,88,3293.75,219.71,406.05,429.5,1605.58,1072.33 diff --git a/docs/assets/openManus/aov_trend.png b/docs/assets/openManus/aov_trend.png deleted file mode 100644 index 31cafa78..00000000 Binary files a/docs/assets/openManus/aov_trend.png and /dev/null differ diff --git a/docs/assets/openManus/correlation_heatmap.png b/docs/assets/openManus/correlation_heatmap.png deleted file mode 100644 index c152b15d..00000000 Binary files a/docs/assets/openManus/correlation_heatmap.png and /dev/null differ diff --git a/docs/assets/openManus/daily_sales_trend.png b/docs/assets/openManus/daily_sales_trend.png deleted file mode 100644 index 935de153..00000000 Binary files a/docs/assets/openManus/daily_sales_trend.png and /dev/null differ diff --git a/docs/assets/openManus/home/ubuntu/analysis/data_exploration.txt b/docs/assets/openManus/home/ubuntu/analysis/data_exploration.txt deleted file mode 100644 index 1a1b9ad9..00000000 --- a/docs/assets/openManus/home/ubuntu/analysis/data_exploration.txt +++ /dev/null @@ -1,33 +0,0 @@ -Amazon Fashion Sales Data Exploration - January 2025 - -Dataset Overview: -- 31 rows (daily sales for January 2025) -- 10 columns including date, orders, customers, and financial metrics -- No missing values in the dataset - -Columns: -- Date: Date of sales (datetime64) -- Orders: Number of orders per day (int64) -- Unique Customers: Number of unique customers per day (int64) -- Units Sold: Total units sold per day (int64) -- Gross Sales: Total sales amount before deductions (float64) -- Shipping Revenue: Revenue from shipping (float64) -- Coupon Discounts: Discount amount from coupons (float64) -- Amazon Fees: Fees paid to Amazon (float64) -- Product Costs: Cost of products sold (float64) -- Net Profit: Final profit after all deductions (float64) - -Basic Statistics: -- Average daily orders: ~39 -- Average daily unique customers: ~39 -- Average daily units sold: ~101 -- Average daily gross sales: ~$5,348.56 -- Average daily net profit: ~$1,835.56 -- Highest daily orders: 79 -- Highest daily gross sales: $11,752.01 -- Highest daily net profit: $4,010.05 - -Initial Observations: -- Orders and unique customers are nearly identical, suggesting most customers place only one order -- There appears to be significant daily variation in sales metrics -- Further analysis needed to identify patterns by day of week and other factors diff --git a/docs/assets/openManus/home/ubuntu/analysis/preprocessing_results.txt b/docs/assets/openManus/home/ubuntu/analysis/preprocessing_results.txt deleted file mode 100644 index aee77fe1..00000000 --- a/docs/assets/openManus/home/ubuntu/analysis/preprocessing_results.txt +++ /dev/null @@ -1,43 +0,0 @@ -## Preprocessing Results - Amazon Fashion Sales January 2025 - -### Derived Metrics Summary -- **Average Order Value**: Mean = $136.11, Min = $108.01, Max = $172.30 -- **Units per Order**: Mean = 2.57, Min = 2.11, Max = 3.15 -- **Profit Margin**: Mean = 34.11%, Min = 26.97%, Max = 42.03% -- **Conversion Rate**: Mean = 100.13%, Min = 100.00%, Max = 102.56% -- **Shipping per Order**: Mean = $5.99, Min = $3.88, Max = $7.92 -- **Discount per Order**: Mean = $1.36, Min = $0.43, Max = $2.99 -- **Amazon Fee Rate**: Mean = 19.96%, Min = 19.02%, Max = 20.85% -- **Product Cost Rate**: Mean = 44.91%, Min = 38.39%, Max = 50.67% - -### Day of Week Distribution -- Monday: 4 days -- Tuesday: 4 days -- Wednesday: 5 days -- Thursday: 5 days -- Friday: 5 days -- Saturday: 4 days -- Sunday: 4 days - -### Weekend vs Weekday Performance -- **Weekday Orders**: 37.48 (average) -- **Weekend Orders**: 43.88 (average) -- **Weekday Gross Sales**: $5,217.34 (average) -- **Weekend Gross Sales**: $5,725.82 (average) -- **Weekday Net Profit**: $1,788.21 (average) -- **Weekend Net Profit**: $1,971.69 (average) -- **Weekday Average Order Value**: $138.33 -- **Weekend Average Order Value**: $129.74 - -### Identified Outliers (Z-score > 2.5) -- **January 14, 2025 (Tuesday)**: - - Orders: 79 (significantly higher than average) - - Gross Sales: $11,752.01 (significantly higher than average) - - Net Profit: $4,010.05 (significantly higher than average) - -### Initial Observations -1. Weekend sales are higher than weekday sales on average -2. January 14th shows exceptional performance across multiple metrics -3. Conversion rate is consistently near 100%, suggesting most visitors make purchases -4. Profit margins vary significantly (26.97% to 42.03%) -5. Average order value is higher on weekdays than weekends diff --git a/docs/assets/openManus/home/ubuntu/analysis/sales_analysis_results.txt b/docs/assets/openManus/home/ubuntu/analysis/sales_analysis_results.txt deleted file mode 100644 index 2fec0e66..00000000 --- a/docs/assets/openManus/home/ubuntu/analysis/sales_analysis_results.txt +++ /dev/null @@ -1,85 +0,0 @@ -# Amazon Fashion Sales Analysis - January 2025 - -## Weekly Sales Summary - Week Orders Gross Sales Net Profit Units Sold Average_Order_Value Profit_Margin - 1 226 30386.58 9871.64 595 135.442626 32.708879 - 2 275 37780.80 13559.80 697 136.042737 35.675951 - 3 316 45545.99 15827.16 851 144.970516 34.343915 - 4 248 31341.21 10050.28 607 125.066667 31.643778 - 5 148 20750.81 7593.51 387 139.948597 36.441550 - -## Day of Week Analysis -Day_of_Week Orders Gross Sales Net Profit Units Sold Average_Order_Value Profit_Margin Conversion_Rate - Monday 34.75 5232.0825 1872.7900 96.75 146.423938 35.822693 100.000000 - Tuesday 52.25 7152.3300 2410.6700 135.00 133.406436 33.274309 100.357143 - Wednesday 30.20 4313.9020 1537.0080 81.40 143.503032 35.605238 100.000000 - Thursday 28.60 3763.0660 1183.6480 73.20 131.742903 31.753670 100.000000 - Friday 44.00 6015.2760 2078.3560 113.60 137.213694 34.383283 100.000000 - Saturday 41.75 5397.4900 1805.6050 102.75 129.425496 33.383204 100.641026 - Sunday 46.00 6054.1400 2137.7675 114.50 130.048484 34.691468 100.000000 - -## Correlation Analysis - Orders Units Sold Gross Sales Net Profit Average_Order_Value Units_per_Order Profit_Margin Shipping_per_Order Discount_per_Order -Orders 1.00 0.98 0.97 0.93 0.09 0.13 0.04 -0.01 0.21 -Units Sold 0.98 1.00 0.99 0.95 0.26 0.33 0.05 0.02 0.17 -Gross Sales 0.97 0.99 1.00 0.98 0.32 0.32 0.14 0.01 0.17 -Net Profit 0.93 0.95 0.98 1.00 0.38 0.31 0.33 -0.02 0.12 -Average_Order_Value 0.09 0.26 0.32 0.38 1.00 0.89 0.41 0.07 -0.10 -Units_per_Order 0.13 0.33 0.32 0.31 0.89 1.00 0.08 0.12 -0.12 -Profit_Margin 0.04 0.05 0.14 0.33 0.41 0.08 1.00 -0.04 -0.32 -Shipping_per_Order -0.01 0.02 0.01 -0.02 0.07 0.12 -0.04 1.00 -0.39 -Discount_per_Order 0.21 0.17 0.17 0.12 -0.10 -0.12 -0.32 -0.39 1.00 - -## Outlier Analysis (January 14th) - 13 -Date 2025-01-14 00:00:00 -Day_of_Week Tuesday -Orders 79 -Units Sold 224 -Gross Sales 11752.01 -Net Profit 4010.05 -Average_Order_Value 148.75962 -Units_per_Order 2.835443 -Profit_Margin 34.122248 -Discount_per_Order 1.992278 - -## Comparing January 14th (Tuesday) with average Tuesday -Orders: Jan 14 = 79.00, Avg Tuesday = 43.33, Difference = 35.67 (82.31%) -Units Sold: Jan 14 = 224.00, Avg Tuesday = 105.33, Difference = 118.67 (112.66%) -Gross Sales: Jan 14 = 11752.01, Avg Tuesday = 5619.10, Difference = 6132.91 (109.14%) -Net Profit: Jan 14 = 4010.05, Avg Tuesday = 1877.54, Difference = 2132.51 (113.58%) -Average_Order_Value: Jan 14 = 148.76, Avg Tuesday = 128.29, Difference = 20.47 (15.96%) -Units_per_Order: Jan 14 = 2.84, Avg Tuesday = 2.42, Difference = 0.41 (17.04%) -Profit_Margin: Jan 14 = 34.12, Avg Tuesday = 32.99, Difference = 1.13 (3.43%) -Discount_per_Order: Jan 14 = 1.99, Avg Tuesday = 1.64, Difference = 0.35 (21.50%) - -## Discount Impact Analysis -Correlation between Discount_per_Order and other metrics: -Discount_per_Order 1.000000 -Orders 0.205425 -Units Sold 0.170070 -Average_Order_Value -0.097984 -Units_per_Order -0.120498 -Gross Sales 0.173755 -Net Profit 0.117784 - -Impact of discount levels: -Discount_Range Orders Units Sold Gross Sales Net Profit Average_Order_Value Units_per_Order Profit_Margin - Low (0-1) 31.111111 79.222222 4126.292222 1426.725556 132.357850 2.541760 34.598545 - Medium (1-2) 44.166667 116.444444 6174.531667 2129.664444 140.308968 2.637570 34.314201 - High (2-3) 34.500000 82.000000 4381.797500 1431.975000 125.683370 2.351389 32.088781 - -## Shipping Revenue Impact Analysis -Correlation between Shipping_per_Order and other metrics: -Shipping_per_Order 1.000000 -Orders -0.008446 -Units Sold 0.019099 -Average_Order_Value 0.066474 -Units_per_Order 0.119193 -Gross Sales 0.005687 -Net Profit -0.020329 - -Impact of shipping levels: -Shipping_Range Orders Units Sold Gross Sales Net Profit Average_Order_Value Units_per_Order Profit_Margin - Low (3-5) 36.200000 91.000000 4941.178000 1704.150000 135.848036 2.519047 33.325092 - Medium (5-6) 40.142857 102.714286 5400.252857 1911.112857 132.681980 2.509347 35.470619 \ No newline at end of file diff --git a/docs/assets/openManus/home/ubuntu/todo.md b/docs/assets/openManus/home/ubuntu/todo.md deleted file mode 100644 index 89e072b9..00000000 --- a/docs/assets/openManus/home/ubuntu/todo.md +++ /dev/null @@ -1,13 +0,0 @@ -# Amazon Fashion Sales Analysis Todo List - -## Data Preparation and Analysis -- [x] Load and explore the Amazon Fashion Sales data -- [x] Clean and preprocess data (create derived metrics) -- [x] Perform comprehensive sales analysis -- [x] Create data visualizations -- [x] Identify key insights and trends - -## Strategy Development and Reporting -- [x] Develop data-driven strategies to boost sales by 10% -- [x] Prepare comprehensive analysis report -- [x] Deliver final report with recommendations diff --git a/docs/assets/openManus/key_insights.md b/docs/assets/openManus/key_insights.md deleted file mode 100644 index 25354b86..00000000 --- a/docs/assets/openManus/key_insights.md +++ /dev/null @@ -1,60 +0,0 @@ -# Key Insights and Trends - Amazon Fashion Sales January 2025 - -## Sales Patterns and Trends - -### Weekly Trends -1. **Peak Performance in Week 3**: Week 3 (January 15-21) showed the highest performance with 316 orders, $45,545.99 in gross sales, and $15,827.16 in net profit. -2. **Consistent Growth and Decline**: Sales showed growth from Week 1 to Week 3, followed by a decline in Weeks 4 and 5, suggesting a mid-month peak pattern. -3. **Average Order Value Fluctuation**: AOV peaked in Week 3 at $144.97, while Week 4 had the lowest AOV at $125.07. - -### Day of Week Patterns -1. **Tuesday Performance**: Tuesdays show the highest average orders (52.25) and gross sales ($7,152.33). -2. **Weekend vs. Weekday**: Weekend days (Saturday and Sunday) average higher orders (43.88) compared to weekdays (37.48). -3. **AOV Variation by Day**: Mondays have the highest average order value ($146.42), while Saturdays have the lowest ($129.43). -4. **Thursday Underperformance**: Thursdays consistently show the lowest performance across orders, sales, and profit. - -### Outlier Analysis -1. **January 14th Anomaly**: Tuesday, January 14th showed exceptional performance: - - 79 orders (82.31% above average Tuesday) - - $11,752.01 gross sales (109.14% above average) - - $4,010.05 net profit (113.58% above average) - - This single day accounted for approximately 7% of the month's total sales. - -## Customer Behavior Insights - -### Order Patterns -1. **Conversion Rate Consistency**: Nearly perfect 100% conversion rate across all days, suggesting most visitors are returning customers or highly qualified leads. -2. **Units per Order**: Average of 2.57 units per order, with highest on Tuesdays (2.84) and lowest on weekends (2.35). -3. **One-time Purchasers**: Orders and unique customers are nearly identical, indicating most customers place only one order per day. - -## Financial Performance Insights - -### Profit Metrics -1. **Profit Margin Variation**: Profit margins range from 26.97% to 42.03%, with an average of 34.11%. -2. **Weekday vs. Weekend Profitability**: Weekdays show higher profit margins (35.47%) compared to weekends (33.38%). -3. **Correlation with AOV**: Profit margin has a moderate positive correlation (0.41) with average order value. - -### Cost Structure -1. **Amazon Fee Consistency**: Amazon fees remain relatively consistent at 19-21% of gross sales. -2. **Product Cost Variation**: Product costs range from 38.39% to 50.67% of gross sales, suggesting variable product mix. - -## Discount and Shipping Impact - -### Discount Analysis -1. **Medium Discount Sweet Spot**: Medium discounts (1-2$ per order) correlate with highest orders (44.17), gross sales ($6,174.53), and net profit ($2,129.66). -2. **Discount-Profit Relationship**: Higher discounts correlate with lower profit margins (32.09% for high discounts vs. 34.60% for low discounts). -3. **Negative Correlation**: Discounts show negative correlation with AOV (-0.10) and profit margin (-0.32). - -### Shipping Analysis -1. **Medium Shipping Sweet Spot**: Medium shipping charges ($5-6 per order) correlate with highest profit margins (35.47%). -2. **Minimal Impact**: Shipping charges show minimal correlation with orders (-0.01) and sales (0.01). -3. **Discount-Shipping Relationship**: Negative correlation (-0.39) between shipping and discount, suggesting they may be used as alternative promotional tactics. - -## Opportunities for Growth - -1. **Tuesday Optimization**: Leverage the success factors from January 14th to replicate performance on other Tuesdays. -2. **Weekend AOV Improvement**: Focus on increasing weekend AOV, which currently lags behind weekday performance. -3. **Thursday Enhancement**: Develop specific strategies to boost underperforming Thursday sales. -4. **Discount Strategy Refinement**: Optimize discount strategy around the 1-2$ per order range that shows best overall performance. -5. **Units per Order Increase**: Potential to increase units per order, particularly on weekends. -6. **Week 4-5 Performance**: Address the sales decline in the last two weeks of the month. diff --git a/docs/assets/openManus/orders_by_day.png b/docs/assets/openManus/orders_by_day.png deleted file mode 100644 index c5e6f03e..00000000 Binary files a/docs/assets/openManus/orders_by_day.png and /dev/null differ diff --git a/docs/assets/openManus/outlier_comparison.png b/docs/assets/openManus/outlier_comparison.png deleted file mode 100644 index d2dd6857..00000000 Binary files a/docs/assets/openManus/outlier_comparison.png and /dev/null differ diff --git a/docs/assets/openManus/profit_margin_by_discount.png b/docs/assets/openManus/profit_margin_by_discount.png deleted file mode 100644 index c94fa15a..00000000 Binary files a/docs/assets/openManus/profit_margin_by_discount.png and /dev/null differ diff --git a/docs/assets/openManus/sales_by_day.png b/docs/assets/openManus/sales_by_day.png deleted file mode 100644 index f7459790..00000000 Binary files a/docs/assets/openManus/sales_by_day.png and /dev/null differ diff --git a/docs/assets/openManus/sales_growth_strategies.md b/docs/assets/openManus/sales_growth_strategies.md deleted file mode 100644 index 7778e877..00000000 --- a/docs/assets/openManus/sales_growth_strategies.md +++ /dev/null @@ -1,90 +0,0 @@ -# Data-Driven Strategies to Boost Sales by 10% - -Based on the comprehensive analysis of January 2025 sales data, the following strategies are recommended to achieve a 10% increase in sales for the upcoming month: - -## 1. Day-of-Week Optimization Strategies - -### Tuesday Power Day Enhancement -- **Replicate January 14th Success**: Analyze what made January 14th exceptional (82% more orders than average Tuesday) and implement similar tactics on all Tuesdays. -- **Tuesday Flash Sales**: Implement 3-hour flash sales on Tuesdays with medium-level discounts ($1-2 per order) that showed optimal performance. -- **Tuesday Email Campaign**: Schedule targeted email campaigns to be delivered Monday evening to drive Tuesday traffic. -- **Expected Impact**: +15% increase in Tuesday sales, contributing +3% to overall monthly sales. - -### Thursday Rescue Plan -- **Thursday-Exclusive Promotions**: Create Thursday-only promotions to boost the lowest-performing day of the week. -- **Free Shipping Thursday**: Offer free shipping on Thursdays to overcome the lowest-performing day. -- **Bundle Deals**: Introduce product bundles on Thursdays to increase units per order from current 2.57 average. -- **Expected Impact**: +20% increase in Thursday sales, contributing +2% to overall monthly sales. - -### Weekend AOV Improvement -- **Premium Weekend Focus**: Promote higher-value items on weekends to increase the weekend AOV (currently $129.74 vs. weekday $138.33). -- **Tiered Shipping Discounts**: Implement shipping discounts that increase with order value to encourage larger weekend purchases. -- **Expected Impact**: +8% increase in weekend AOV, contributing +1.5% to overall monthly sales. - -## 2. Customer Behavior Optimization - -### Increase Units Per Order -- **Strategic Cross-Selling**: Implement AI-powered product recommendations based on cart contents. -- **Bundle Pricing**: Offer tiered discounts for purchasing multiple items (e.g., 5% off for 2 items, 10% off for 3+ items). -- **Complementary Product Highlights**: Feature complementary products on product pages and during checkout. -- **Expected Impact**: Increase average units per order from 2.57 to 2.8 (+9%), contributing +2% to overall monthly sales. - -### Repeat Purchase Incentives -- **Post-Purchase Discount Codes**: Send follow-up emails with time-limited discount codes for next purchase. -- **Loyalty Program Launch**: Implement a points-based loyalty program to encourage repeat purchases within the same month. -- **Expected Impact**: Generate 5% additional orders from repeat customers, contributing +1% to overall monthly sales. - -## 3. Pricing and Promotion Optimization - -### Discount Strategy Refinement -- **Optimize Discount Levels**: Focus on the medium discount range ($1-2 per order) that showed highest orders (44.17), gross sales ($6,174.53), and net profit ($2,129.66). -- **Targeted Discount Application**: Apply discounts strategically to products with higher profit margins to maintain overall profitability. -- **Expected Impact**: Optimize conversion while maintaining profit margins, contributing +1.5% to overall monthly sales. - -### Shipping Strategy Enhancement -- **Free Shipping Threshold**: Implement free shipping for orders above $150 to increase AOV (current average: $136.11). -- **Shipping Tier Optimization**: Focus on medium shipping charges ($5-6) that showed highest profit margins (35.47%). -- **Expected Impact**: Increase AOV by 5%, contributing +1% to overall monthly sales. - -## 4. Inventory and Product Mix Strategies - -### Product Mix Optimization -- **Promote High-Margin Products**: Identify and feature products with above-average profit margins. -- **Category Expansion**: Expand selection in categories showing highest units per order. -- **Expected Impact**: Improve overall profit margin while increasing sales, contributing +1% to overall monthly sales. - -### End-of-Month Sales Boost -- **Month-End Promotion**: Create special promotions for the last week of the month to address the observed decline in Weeks 4-5. -- **Inventory Clearance Strategy**: Strategic discounting of slow-moving inventory during the final week. -- **Expected Impact**: Reduce Week 4-5 decline by 50%, contributing +1% to overall monthly sales. - -## Implementation Timeline and Expected Results - -### Week 1: Foundation -- Set up technical infrastructure for all promotions -- Prepare email templates and marketing materials -- Configure discount rules and shipping tiers - -### Week 2: Launch -- Implement Tuesday Power Day strategy -- Launch Units Per Order initiatives -- Begin Discount Strategy Refinement - -### Week 3: Expansion -- Roll out Thursday Rescue Plan -- Implement Weekend AOV Improvement tactics -- Launch Repeat Purchase Incentives - -### Week 4: Optimization -- Deploy End-of-Month Sales Boost -- Fine-tune all strategies based on early results -- Prepare for next month continuation - -### Expected Overall Impact -- Day-of-Week Optimization: +6.5% -- Customer Behavior Optimization: +3.0% -- Pricing and Promotion Optimization: +2.5% -- Inventory and Product Mix Strategies: +2.0% -- **Total Expected Sales Increase: +14.0%** - -This comprehensive approach exceeds the 10% sales increase target while maintaining or improving profit margins, providing a buffer for any strategies that may underperform expectations. diff --git a/docs/assets/openManus/weekend_comparison.png b/docs/assets/openManus/weekend_comparison.png deleted file mode 100644 index b3d84d26..00000000 Binary files a/docs/assets/openManus/weekend_comparison.png and /dev/null differ diff --git a/docs/assets/openManus/weekly_sales.png b/docs/assets/openManus/weekly_sales.png deleted file mode 100644 index 3209e44c..00000000 Binary files a/docs/assets/openManus/weekly_sales.png and /dev/null differ diff --git a/docs/assets/scenario/en/Chart_Assistant.md b/docs/assets/scenario/en/Chart_Assistant.md deleted file mode 100644 index 1c829697..00000000 --- a/docs/assets/scenario/en/Chart_Assistant.md +++ /dev/null @@ -1,15 +0,0 @@ -# Chart Intelligence Assistant -VMind can serve as a visual agent for large language models, responsible for tasks such as chart generation and chart editing, thereby creating a "Chart Intelligence Assistant". This assistant can serve as an independent robot, or it can be integrated into other products in the form of a Copilot. - - - - - - -As a chart intelligence assistant, VMind can generate corresponding charts based on the natural language description entered by the user. It can also realize secondary filtering, aggregation, and sorting of data through the intelligent data aggregation module. - -Whether you need to display a time series line chart or a bar chart of different categories, VMind can quickly respond and help you select the chart type and generate the chart. With VMind, users can create both aesthetically pleasing and information-rich charts without in-depth chart design knowledge, greatly improving work efficiency. - -## Experience address: -- [Coze](https://www.coze.com/s/Zs8MNnSod/) -- [Discord](https://discord.gg/sajqrVSP): Join the Discord channel and @VMind Chart Master bot experience in chat. diff --git a/docs/assets/scenario/en/Data_Development.md b/docs/assets/scenario/en/Data_Development.md deleted file mode 100644 index 4c0820e6..00000000 --- a/docs/assets/scenario/en/Data_Development.md +++ /dev/null @@ -1,57 +0,0 @@ -# Data Development -In python Notebook scenarios such as data development, it is suitable to call VMind Open API to generate charts after SQL queries, and integrate intelligent visualization capabilities in Notebook with py-vchart rendering charts. - - - - - -## Sample Code -```python -''' -In the Notebook scene, VMind Open API can be called to generate charts after SQL queries, and combined with py-vchart for chart rendering -VMind supports chart generation based on large language models and rules -The chart generation process will not pass detailed data to the large language model, so you can eat it with confidence -''' - -import requests -import pandas as pd -from pyvchart import render_chart - -url = "" # VMind Open API url - -# Dataset queried: -print('SQL query result: ') -display(sales_data_df) - -sales_data_json =sales_data_df.to_json(orient="records", force_ascii=False) - -userPrompt = "Help me display sales of various products in different regions" # User's presentation intent - -print() -print('Display intent input: ') -print(userPrompt) -print() - -body = { -"data": sales_data_json, -"userPrompt": userPrompt, -"model": "doubao" # Use the doubao model -} - -# Call VMind Open API to generate chart -response = requests.post(url, headers=headers, json=body) - -chart = response.json().get('chart')[0] -spec = chart.get('spec') -chartType = chart.get('chartType') - -# print(spec) -print('Generated chart type: '+chartType) - -# Call py-vchart to render chart -render_chart(spec) -``` - -## Related Reading -- [VMind Open API](./Open_API) -- [py-vchart](https://visactor.io/vchart/guide/tutorial_docs/Cross-terminal_and_Developer_Ecology/python) diff --git a/docs/assets/scenario/en/Data_Video.md b/docs/assets/scenario/en/Data_Video.md deleted file mode 100644 index 949a455e..00000000 --- a/docs/assets/scenario/en/Data_Video.md +++ /dev/null @@ -1,14 +0,0 @@ -# Data Video Creation -Data video is a video format that displays and introduces data content through charts, animations, annotations, voiceovers, etc. It can make complex data more understandable and guide the audience to acquire useful information and insights. Data video is widely used in business presentations, news reports, educational training, and other fields. It is an efficient way of data presentation and is very popular among various short video platforms. - -The traditional data video production process requires the creator to draw the data into charts using professional visualization software after collecting the data, or use various chart libraries to code and draw charts and then export them as videos. In the era of short videos, everyone can be the creator of videos. However, non-professional video creators often lack the ability to visualize data into charts and then export them as videos, which greatly increases the threshold for data video production. - -Based on VMind and video editing tools, it is easy to create rich and colorful data videos. After generating animated charts using the VMind chart intelligent generation module, users can export them as videos or GIFs, import them into professional video editing software like imovie, premiere pro, and so on, to create a complete data video. - - - - - -By integrating VMind into video editing tools, the creation of data videos will also form a complete cycle. - - diff --git a/docs/assets/scenario/en/Document_Assistant.md b/docs/assets/scenario/en/Document_Assistant.md deleted file mode 100644 index 2632d786..00000000 --- a/docs/assets/scenario/en/Document_Assistant.md +++ /dev/null @@ -1,12 +0,0 @@ -# Document Assistant -When writing reports or documents, accurate and beautiful charts are indispensable. The Document Assistant built on VMind can help users quickly generate charts from selected data and insert them into documents. - - - - - - -In addition, VMind will also introduce an intelligent insight feature, which can intelligently identify insights in chart data and automatically add annotations to them. These annotations can directly display specific data values, provide additional explanations and contextual information, and help readers better understand the charts. - - - diff --git a/docs/assets/scenario/en/OpenManus_VMind.md b/docs/assets/scenario/en/OpenManus_VMind.md deleted file mode 100644 index fc8c75b9..00000000 --- a/docs/assets/scenario/en/OpenManus_VMind.md +++ /dev/null @@ -1,257 +0,0 @@ -# OpenManus X VMind: Quickly Build Your Data Analysis Assistant - -## Introduction to OpenManus - - -[OpenManus](https://github.com/FoundationAgents/OpenManus) is a concise and versatile Agent framework. Through the pluggable design of Tools and Prompts, it supports various tool invocation capabilities such as Computer Use, Browser Use, and Planning Use. - -In OpenManus, you can use the basic manus agent to try out various tasks and conduct interesting explorations. You can also use OpenManus as a platform to unleash your creativity. By writing unique tools and prompts, you can create a one - of - a - kind agent. - -**Raise your hand 🙋, so the question is, are there any examples?** - -**Hello, yes, examples are coming right up!** - -## DataAnalysis Agent - -### Data Analysis Tasks -Our lives are filled with a vast amount of data in various industries such as economy, tourism, the Internet, and retail. If you ask DeepSeek how much data we can generate in a day, DeepSeek will tell you: The International Data Corporation (IDC) predicts that the global annual data volume will reach **175ZB (zettabytes)** in 2025, which is equivalent to approximately **479EB (exabytes)** per day (1EB = 10^18 bytes). - -In such a large amount of data, data analysis, data presentation, and final data consumption have always been hot topics. How to use AI tools to assist in analysis or even let them do the analysis for you is the focus. The remarkable data analysis ability of Manus has left a deep impression on everyone. Turning to OpenManus, can OpenManus do what Manus can? - -**The answer is: No, but also yes.** - -Perhaps directly using OpenManus cannot achieve the same effect as Manus, because OpenManus is a very concise and versatile Agent framework, and its tool library does not have suitable data analysis tools yet. However, precisely because OpenManus is a very simple and versatile Agent framework, as long as you dare to add tools to the library, OpenManus will use them, ultimately achieving a 1 + 1 > 2 effect. - -So, we, [VisActor](https://www.visactor.com/) , in collaboration with the OpenManus team, integrated the open - source intelligent visualization solution VMind to add a DataAnalysis Agent to OpenManus. - -### Integration Method -Compared with the application ideas of general Agents in the data analysis scenario, we have made some minor changes, as follows: - - - - -General OpenManus uses general Python tools to generate various Python code tasks. In the data analysis scenario, this includes but is not limited to data processing, data reporting, and data visualization. - -Our change is to extract the data visualization part into a separate tool, making the application scenario of this tool more focused and in - depth. The functions of this tool include data visualization, data insight, and adding data insights to charts. For details, please refer to [ReadMe](https://github.com/FoundationAgents/OpenManus/blob/main/app/tool/chart_visualization/README.md): - - - -The original Python tool will then focus more on data processing/data reporting tasks. - -#### Python Tool Modification -Thanks to the existing manus architecture, adding a dedicated Python tool has become very smooth and simple. Observing the original Python tool, we can find that its structure is also very simple and clear, as follows: -- The name, description, and parameters directly correspond to the prompt parameters of the function call in the large language model. -- The execute function is the corresponding function executed when the current Python tool is called, and it will ultimately call the _run_code function to obtain the result. - -```python -class PythonExecute(BaseTool): - """A tool for executing Python code with timeout and safety restrictions.""" - - name: str = "python_execute" - description: str = "Executes Python code string. Note: Only print outputs are visible, function return values are not captured. Use print statements to see results." - parameters: dict = { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The Python code to execute.", - }, - }, - "required": ["code"], - } - - def _run_code(self, code: str, result_dict: dict, safe_globals: dict) -> None - - - async def execute( - self, - code: str, - timeout: int = 5, - ) -> Dict: - """ - Executes the provided Python code with a timeout. - - Args: - code (str): The Python code to execute. - timeout (int): Execution timeout in seconds. - - Returns: - Dict: Contains 'output' with execution output or error message and 'success' status. - """ -``` - -What we do is very simple. We only need to inherit this function and modify the existing prompt to make it a tool suitable for data analysis. The result is as follows. We mainly clarify the following points through the prompt: - -- In the prompt, clarify that the main tasks are data analysis, data reporting, and other ordinary code writing tasks. -- Hope the large language model can provide dataset overview, details of each column in the dataset, basic data statistics, generate derived indicators, time - series comparison, outliers, key insights, etc. -- Guide the large language model to conduct multiple analyses based on existing analyses to form in - depth and meaningful analysis data. - -```python -from app.config import config -from app.tool.python_execute import PythonExecute - -class NormalPythonExecute(PythonExecute): - """A tool for executing Python code with timeout and safety restrictions.""" - - name: str = "python_execute" - description: str = """Execute Python code for in-depth data analysis / data report(task conclusion) / other normal task without direct visualization.""" - parameters: dict = { - "type": "object", - "properties": { - "code_type": { - "description": "code type, data process / data report / others", - "type": "string", - "default": "process", - "enum": ["process", "report", "others"], - }, - "code": { - "type": "string", - "description": """Python code to execute. -# Note -1. The code should generate a comprehensive text-based report containing dataset overview, column details, basic statistics, derived metrics, timeseries comparisons, outliers, and key insights. -2. Use print() for all outputs so the analysis (including sections like 'Dataset Overview' or 'Preprocessing Results') is clearly visible and save it also -3. Save any report / processed files / each analysis result in worksapce directory: {directory} -4. Data reports need to be content-rich, including your overall analysis process and corresponding data visualization. -5. You can invode this tool step-by-step to do data analysis from summary to in-depth with data report saved also""".format( - directory=config.workspace_root - ), - }, - }, - "required": ["code"], - } - - async def execute(self, code: str, code_type: str | None = None, timeout=5): - return await super().execute(code, timeout) -``` - -Through the above operations, we can obtain a tool proficient in using Python code for data analysis/data reporting by simply modifying the prompt. Adding it to the manus tool library completes your customized creation. - -#### Data Analysis Agent -After having our dedicated tool, it becomes even simpler to form our data analysis agent! - -**Step 1: Inherit ToolCallAgent** - -ToolCallAgent is a general agent that calls various tools. By inheriting it, we already have the ability to call tools to solve problems. - -```python -""" Inherit ToolCallAgent """ -class DataAnalysis(ToolCallAgent): - """ - A data analysis agent that uses planning to solve various data analysis tasks. - - This agent extends ToolCallAgent with a comprehensive set of tools and capabilities, - including Data Analysis, Chart Visualization, Data Report. - """ -``` - -**Step 2: Rewrite the prompt** - -Modify the system_prompt and next_step_prompt to inject the soul of the agent. - -```python -class DataAnalysis(ToolCallAgent): - """ - A data analysis agent that uses planning to solve various data analysis tasks. - - This agent extends ToolCallAgent with a comprehensive set of tools and capabilities, - including Data Analysis, Chart Visualization, Data Report. - """ - - name: str = "DataAnalysis" - description: str = "An analytical agent that utilizes multiple tools to solve diverse data analysis tasks" - - # Modify your own prompt - system_prompt: str = SYSTEM_PROMPT.format(directory=config.workspace_root) - next_step_prompt: str = NEXT_STEP_PROMPT -``` - -**Step 3: Inject Tools** - -The last step is to inject usable tools, and then we're done. - -```python -class DataAnalysis(ToolCallAgent): - """ - A data analysis agent that uses planning to solve various data analysis tasks. - - This agent extends ToolCallAgent with a comprehensive set of tools and capabilities, - including Data Analysis, Chart Visualization, Data Report. - """ - - name: str = "DataAnalysis" - description: str = "An analytical agent that utilizes multiple tools to solve diverse data analysis tasks" - - system_prompt: str = SYSTEM_PROMPT.format(directory=config.workspace_root) - next_step_prompt: str = NEXT_STEP_PROMPT - - max_observe: int = 15000 - max_steps: int = 20 - - # Inject usable tools - available_tools: ToolCollection = Field( - default_factory=lambda: ToolCollection( - NormalPythonExecute(), - VisualizationPrepare(), - DataVisualization(), - Terminate(), - ) - ) -``` -### Final Results -#### Manus - -So, what's the final result? Can it reach the level of Manus? Let's find out. We tried a classic analysis case on Manus: -- [Original case replay address](https://manus.im/share/c3onakN6Iajcm1Vt1xAVG7?replay=1) -- [Address of all generated products in the case](https://github.com/VisActor/VMind/tree/develop/docs/assets/openManus) - - - - -This is a typical data analysis scenario. Given monthly sales data, Manus was expected to provide a plan for a 10% sales increase in the next month. Manus completed this task very well, generating a detailed report and many data analysis results and data visualization results. - -#### OpenManus Running Results - -After adding VMind to OpenManus, the data analysis and chart generation capabilities of OpenManus have significantly improved on the basis of the original general architecture. It can generate multiple high - quality Markdown data analysis reports and rich and accurate data visualization results. - -**Task Decomposition** - -The agent will decompose the overall task into sub - tasks such as data processing, data analysis, data visualization, pattern recognition, strategy generation, and final report generation for execution. - - - -**Final Report** - -After all tasks are completed, we generated the final data report and multiple intermediate analysis result reports. The data report also contains links to the generated visualization results. - - - -**Visualization Results** - -The following is a partial display of data visualization results. It can generate interactive chart pages (rendered by VChart) with data annotations. - - - -## In Conclusion -### Summary - -Thanks to the concise and versatile design of OpenManus, adding a new tool or agent on its basis is a very simple task 🚀 Developers only need to focus on the specific implementation and input - output of their own tools, without spending a lot of energy on the agent framework, interaction, and communication with large language models. They can easily create their own agents! The DataAnalysis Agent is such an example. We only need to design the corresponding data analysis tools to have super - strong data analysis capabilities. Perhaps this is the feeling of standing on the shoulders of giants! - -### Next Steps - -This is just a small attempt. There are still many problems at present. In the future, we will continue to improve the scheduling ability of data analysis tools and integrate a more powerful VMind mcp service. Our goal is to build a full - process tool integrating data analysis, chart recommendation, automatic beautification, automatic layout, and automatic report generation. The products include charts, reports, posters, dashboards, and presentations. - -### Welcome to Communicate and Contribute - -Finally, we welcome everyone to participate in the open - source construction of OpenManus and VisActor in various ways, such as submitting issues, writing code, adding comments, and giving stars. These are all forms of support for open - source projects. - -OpenManus: https://github.com/FoundationAgents/OpenManus - -VMind: https://github.com/VisActor/VMind - -VisActor Feishu communication group: - - - -VisActor WeChat official account: - - \ No newline at end of file diff --git a/docs/assets/scenario/en/Open_API.md b/docs/assets/scenario/en/Open_API.md deleted file mode 100644 index fc0db826..00000000 --- a/docs/assets/scenario/en/Open_API.md +++ /dev/null @@ -1,165 +0,0 @@ -# VMind Open API -For some scenarios that are not suitable for accessing the front-end SDK (such as Python Notebook or backend scenarios) or that are inconvenient to apply for LLM service, we also provide Open API service, users can use VMind through HTTP requests to meet diverse chart visualization needs. - -## Open API request example: -```curl -curl --location 'VMind Open API service address' \ ---header 'api-key: service secret key' \ ---form 'data="[ -{ -\"Product Name\": \"Cola\", -\"region\": \"south\", -\"sales\": 2350 -}, -{ -\"Product Name\": \"Cola\", -\"region\": \"east\", -\"sales\": 1027 -}, -{ -\"Product Name\": \"Cola\", -\"region\": \"west\", -\"sales\": 1027 -} -]"' \ ---form 'model="doubao"' \ ---form 'userPrompt="Show me the sales of products in the north"' \ -``` - -Return Value: -```json -{ -"chart": [ -{ -"chartType": "BAR CHART", // Chart type -"spec": { // Generated VChart Spec -"type": "bar", -"xField": [ -"region", -"Product Name" -], -"yField": "sales", -"seriesField": "Product Name", -//...Omit more spec content -}, -"usage": { // LLM token consumption details -"completion_tokens": 19, -"prompt_tokens": 1109, -"total_tokens": 1128 -}, -"time": { // Chart animation duration -"totalTime": 2000, -"frameArr": [] -} -} -] -} -``` - -The VMind Open API currently supports multiple models for intelligent data aggregation and chart generation, as well as chart-advisor for rule-based chart recommendations. The specific supported models are as follows: -- doubao: Default value, corresponding to the doubao-pro-32k-240828 model (Pro model released on 240828) -- doubao-1.5-pro-32k: Corresponding to the Doubao 1.5 Pro model released on 250115 -- doubao-1.5-lite-32k: Corresponding to the Doubao 1.5 Lite model released on 250115 -- Others: For example, GPT series models and DeepSeek series models - -## Interface Description -### /generateChart -- Generate vchart spec for chart rendering according to the data and user's input natural language. -- If userPrompt and model are empty, the LLM will not be called, and the chart recommendation will only be based on the data to generate a series of chart spec, sorted by recommendation degree. -- If data is empty, a spec template without data will be generated, and the fillSpecWithData interface can be filled with data later. -- VMind ensures that only data field information (field names, field types) are passed to the LLM, and detailed data will not be passed to the LLM. -#### Invocation Method -POST -#### Parameter Description -- data -Description: The dataset used in the chart, with a JSON array structure. It can be empty. If data is empty, a spec template will be generated, and the fillSpecWithData interface can be used to fill in the data later. - -- userPrompt -Description: Optional, user's input in natural language, string type. It can specify chart type and field allocation, and further perform data aggregation, filtering, sorting. -Examples: -``` -Show me the sales of each product in different regions -Show the sales data of each product using a line chart -Top three products in terms of sales in the north -Which product sold the most -Sales status of products in different regions -Show the sales data of each product, with region as the x-axis and product type as the color -``` - -- model -Optional values: doubao | doubao-1.5-pro-32k | doubao-1.5-lite-32k -Description: Optional. Specifies the model type, defaults to the doubao model. Also supports GPT series and DeepSeek series models, available upon request. - -- mode -Optional value: "accuracyFirst" , "performanceFirst" -Description: Optional, chart generation mode, whether to prioritize performance or accuracy. AccuracyFirst will improve the accuracy of data aggregation and chart generation, but the generation speed will be affected. PerformanceFirst will improve the speed of chart generation and data aggregation, but accuracy may be affected. The default is performanceFirst - -- enableDataQuery -Optional value: true or false -Description: Optional, whether to enable intelligent data aggregation. After opening, it will support data aggregation, filtering, sorting, grouping, etc. in userPrompt, such as: -``` -Show me the sales of products in the north -Show the top 3 products sold in the south -Generate a line chart, aggregated by date -Show the top 5 products in terms of sales -``` -The default is true, enabling it will increase the interface response time. - -- chartTypeList -String array -Description: Optional, chart type list, used to restrict the chart types generated by the chart generation service. Only chart types in this list will be generated. If this parameter is not passed, all chart types will be generated by default. - -Optional values: - -``` -"Bar Chart" -"Line Chart" -"Pie Chart" -"Scatter Plot" -"Word Cloud" -"Rose Chart" -"Radar Chart" -"Sankey Chart" -"Funnel Chart" -"Dual Axis Chart" -"Waterfall Chart" -"Box Plot" -"Dynamic Bar Chart" -``` - -Example: -```json -[ -"Bar Chart", -"Line Chart", -"Pie Chart", -"Scatter Plot" -]//Only generate bar chart, line chart, pie chart, scatter plot -``` - -#### Return Value -- chart - -Description: Chart generation result, json array structure - -```typescript -type chartGenerationResult = { -chart:{ -chartType : string; //Chart type -spec: Spec; //The vchart spec corresponding to this chart type, which can be used for front-end rendering -score: number; //Chart recommendation score, the higher the score, the more suitable the current data is for displaying with this type of chart -chartSource: string //Chart source, chartAdvisor represents rule-based chart recommendation, does not call the LLM; if the LLM is called to complete the chart generation, it will be the corresponding model name -}[] -} -``` - -## Contact Information -If you are interested in VMind Open API integration, please join the Lark group to create topics, or follow our WeChat public account to join the WeChat group and contact the relevant personnel. - -- Lark: - - - -- WeChat Public Account (you can join the WeChat group and Lark group through the public account menu): - -![](http://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/visactor-site/blog/a39d9483e530417ba9a780f4d079c201.gif) diff --git a/docs/assets/scenario/en/Wordcloud_Cube.md b/docs/assets/scenario/en/Wordcloud_Cube.md deleted file mode 100644 index abeac622..00000000 --- a/docs/assets/scenario/en/Wordcloud_Cube.md +++ /dev/null @@ -1,26 +0,0 @@ -# Visual Narration - Word Cloud Cube -VisActor has been consistently dedicated to exploring the application of data visualization in narrative scenarios. VMind will also be combined with VChart narrative template to launch the intelligent narrative function. - -We have combined VMind with the Coze platform to launch the Word Cloud Cube robot. Users only need to upload the title and core words of the word cloud, and VMind will intelligently generate personalized word clouds of various themes for users. - - - - - -
- - - -Although VMind itself has the ability to automatically infer chart types based on data and intelligently generate species, constraints need to be added to the results under the scenario of Word Cloud Cube. The VMind node service has encapsulated the VMind component, only allowing VMind to choose and generate from our specified word cloud template. - - - -In the future, we will add a variety of theme templates, such as holidays, zodiacs, etc., to provide more possibilities and inspirations for users' creations. At the same time, we will also support the generation of GIF animations, allowing the word cloud to show a unique dynamic effect, giving it stronger visual impact and expressiveness. - -Of course, we will also break through the limitations of word clouds and upgrade the Word Cloud Cube to a "Card Cube" which can create with a wider range and more stunning effects. In the meantime, we will also promote the overall upgrade of VMind to make it more intelligent, achieve qualitative improvement in all aspects such as code generation, chart configuration, automatic beautification, story arrangement, and serve more developers through open source services. - -## Experience Link: -- [Coze](https://www.coze.cn/s/iY7WbPQ2/) - -## Related Reading -- [Full Bloom in One Thought, Coze Combined with VisActor Text to Picture Combat Summary](https://juejin.cn/post/7340307383505436712) diff --git a/docs/assets/scenario/menu.json b/docs/assets/scenario/menu.json deleted file mode 100644 index d5b25661..00000000 --- a/docs/assets/scenario/menu.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "menu": "scripts", - "children": [ - { - "path": "OpenManus_VMind", - "title": { - "zh": "OpenManus X VMind : 快速打造你的数据分析助手", - "en": "OpenManus X VMind: Quickly Build Your Data Analysis Assistant" - } - }, - { - "path": "Chart_Assistant", - "title": { - "zh": "图表助手", - "en": "Chart Assistant" - } - }, - { - "path": "Wordcloud_Cube", - "title": { - "zh": "可视化叙事-词云魔方", - "en": "Visual Narration: Word Cloud Cube" - } - }, - { - "path": "Data_Video", - "title": { - "zh": "数据视频创作", - "en": "Data video creation" - } - }, - { - "path": "Document_Assistant", - "title": { - "zh": "文档助手", - "en": "Document Assistant" - } - }, - { - "path": "Data_Development", - "title": { - "zh": "数据开发", - "en": "Data Development" - } - } - ] -} \ No newline at end of file diff --git a/docs/assets/scenario/zh/Chart_Assistant.md b/docs/assets/scenario/zh/Chart_Assistant.md deleted file mode 100644 index 67f1b564..00000000 --- a/docs/assets/scenario/zh/Chart_Assistant.md +++ /dev/null @@ -1,15 +0,0 @@ -# 图表智能助手 -VMind可以成为大语言模型的可视化代理(agent),负责处理图表生成、图表编辑等相关任务,从而打造出“图表智能助手”。这个助手既可以作为一个独立的机器人提供服务,也可以以Copilot形式接入其他产品。 - - - - - - -作为图表智能助手,VMind可以根据用户输入的自然语言描述,自动生成相应的图表。还可通过智能数据聚合模块实现数据的二次筛选、聚合、排序。 - -无论你需要展示的是时间序列的折线图,还是不同类别的柱状图,VMind都能迅速响应并帮助你选择图表类型及生成图表。有了VMind,用户无需深厚的图表设计知识,就可以制作出既美观又信息丰富的图表,极大地提高了工作效率。 - -## 体验地址: -- [Coze](https://www.coze.com/s/Zs8MNnSod/) -- [Discord](https://discord.gg/sajqrVSP): 加入Discord频道,在聊天中 @VMind Chart Master 机器人即可体验 diff --git a/docs/assets/scenario/zh/Data_Development.md b/docs/assets/scenario/zh/Data_Development.md deleted file mode 100644 index 9bd9b650..00000000 --- a/docs/assets/scenario/zh/Data_Development.md +++ /dev/null @@ -1,57 +0,0 @@ -# 数据开发 -在数据开发等python Notebook场景中,适合在SQL查询结束后,调用VMind Open API进行图表生成,配合py-vchart渲染图表,在Notebook中集成智能可视化能力。 - - - - - -## 示例代码 -```python -''' -在Notebook场景下,可在SQL查询后调用VMind Open API进行图表生成,并结合py-vchart进行图表渲染 -VMind支持基于大模型的图表生成和基于规则的图表生成 -图表生成过程不会将明细数据传给大模型,尽可放心食用 -''' - -import requests -import pandas as pd -from pyvchart import render_chart - -url = "" #VMind OPen API url - -# 查询出的数据集: -print('sql查询结果:') -display(sales_data_df) - -sales_data_json =sales_data_df.to_json(orient="records", force_ascii=False) - -userPrompt = "帮我展示不同区域各商品销售额" # 用户的展示意图 - -print() -print('输入展示意图:') -print(userPrompt) -print() - -body = { - "data": sales_data_json, - "userPrompt": userPrompt, - "model": "doubao" # 使用豆包模型 -} - -# 调用VMind open api进行图表生成 -response = requests.post(url, headers=headers, json=body) - -chart = response.json().get('chart')[0] -spec = chart.get('spec') -chartType = chart.get('chartType') - -# print(spec) -print('生成的图表类型: '+chartType) - -# 调用py-vchart渲染图表 -render_chart(spec) -``` - -## 相关阅读 -- [VMind Open API](./Open_API) -- [py-vchart](https://visactor.io/vchart/guide/tutorial_docs/Cross-terminal_and_Developer_Ecology/python) diff --git a/docs/assets/scenario/zh/Data_Video.md b/docs/assets/scenario/zh/Data_Video.md deleted file mode 100644 index f7b7333b..00000000 --- a/docs/assets/scenario/zh/Data_Video.md +++ /dev/null @@ -1,14 +0,0 @@ -# 数据视频创作 -数据视频是一种通过图表、动画、标注、旁白等方式展示和介绍数据内容的视频形式。它能将复杂的数据变得更加易懂,并引导观众获取有用的信息和见解。数据视频广泛应用于商业展示、新闻报道、教育培训等方面,是一种高效的数据展现方式,受到了各大短视频平台的喜爱。 - -传统的数据视频制作流程需要创作者在收集数据后,使用专业的可视化软件将数据绘制为图表;或使用各种图表库,通过编码绘制图表并导出为视频。在短视频时代,每个人都可能是视频的创作者。然而,非专业的视频创作者往往不具备将数据可视化为图表并导出为视频的能力,这大大提高了数据视频的制作门槛。 - -基于VMind 结合视频编辑工具,可以很容易制作丰富多彩的数据视频。使用VMind图表智能生成模块生成带动画的图表后,用户可以将其导出为视频或者GIF,导入到剪映、pr等专业的视频剪辑软件中,制作一个完整的数据视频。 - - - - - -将VMind集成到视频剪辑工具中,数据视频的创作也将形成完整的闭环。 - - diff --git a/docs/assets/scenario/zh/Document_Assistant.md b/docs/assets/scenario/zh/Document_Assistant.md deleted file mode 100644 index 7d35dd43..00000000 --- a/docs/assets/scenario/zh/Document_Assistant.md +++ /dev/null @@ -1,12 +0,0 @@ -# 文档助手 -在撰写报告或文档时,准确而美观的图表是必不可少的。基于VMind打造文档助手,能够帮助用户快速从选定的数据中生成图表,并插入到文档中。 - - - - - - -此外,VMind还将推出智能洞察功能,这个功能能够智能地识别图表数据中的洞察,并自动为其添加标注。这些标注可以直接展示具体的数据数值,同时提供额外的解释和上下文信息,帮助读者更好地理解图表。 - - - diff --git a/docs/assets/scenario/zh/OpenManus_VMind.md b/docs/assets/scenario/zh/OpenManus_VMind.md deleted file mode 100644 index 67736be8..00000000 --- a/docs/assets/scenario/zh/OpenManus_VMind.md +++ /dev/null @@ -1,249 +0,0 @@ -# OpenManus X VMind : 快速打造你的数据分析助手 -## OpenManus 简介 - - -[OpenManus](https://github.com/FoundationAgents/OpenManus) 是一个简洁通用的 Agent 框架,通过可插拔的 Tools 和 Prompt 组合设计,支持 Computer Use、Browser Use 和 Planning Use 等多种工具调用能力 -在OpenManus中,你可以使用基础的manus agent来尝试完成你的各种任务和有趣的探索,也可以以OpenManus为载体,挥洒你自己的创意,通过编写独特的tools和prompt,实现独一无二的agent - -**举手🙋,那么问题来了,有比如吗?** - -**你好,有的,🌰马上就端上来了!** - -## 🌰:DataAnalysis Agent - -### 数据分析任务 - -我们生活中充斥着大量的数据,经济、旅游、互联网、零售等各行各业,如果你去询问DeepSeek一天我们可以产生多少数据,DeepSeek会告诉你:国际数据公司(IDC)预测,2025 年全球年数据量将达 **175ZB(泽字节)**,相当于 **每天约 479EB(艾字节)**(1EB=10^18 字节) - -在如此繁多海量的数据中,进行数据分析,数据展示和最终数据消费一直以来是一个热门的话题,而如何使用AI工具辅助分析,甚至帮你分析更是焦点。Manus令人赞叹的数据分析能力给所有人都留下了深刻的印象,转过头看向OpenManus,Manus可以,OpenManus可以吗? - -**答案是:不可以,但也可以。** - -或许直接使用OpenManus无法达到Manus的效果,因为OpenMaus是个非常简洁通用的Agent框架,其工具库里还没有趁手的数据分析利器;但正因为OpenManus是个非常简单通用的Agent框架,你只要敢往工具库里加,OpenManus就敢用,最后达到1 + 1 > 2的效果。 - -于是我们 [VisActor](https://www.visactor.com/) 联合OpenManus团队,集成开源智能可视化解决方案 VMind ,为OpenManus 添加一个 DataAnalysis Agent。 - -### 接入方式 - -相比于通用的Agent对于数据分析场景的应用思路,我们做了一些些微小的改动,具体如下: - - - - - -通用的OpenManus,会使用通用的python工具去实现各种各样,各种各类的pyhton代码生成任务,在数据分析场景,包括且不限于:数据处理、数据报告、数据可视化等; -而我们的改动在于,将数据可视化这一部分提取成了一个单独的tool,使得这个工具对应的使用场景更加聚焦和深入,这个tool的功能包括:数据可视化、数据洞察以及将数据洞察添加到图表中三个功能,详细可见[ReadMe](https://github.com/FoundationAgents/OpenManus/blob/main/app/tool/chart_visualization/README_zh.md): - - - -而原本的python tool将会更加专注在数据处理/数据报告的任务上。 -#### Python Tool改造 -得益于已有的manus架构,新增一个专属python tool变的十分的丝滑和简单,观察原有的python tool,可以发现其结构也十分简单清晰,具体如下: -- name/description/parameters直接对应了大模型中function call的prompt参数。 -- execute是当前python tool被调用时执行的对应函数,而执行中最终会调用_run_code函数得到结果 - -```python -class PythonExecute(BaseTool): - """A tool for executing Python code with timeout and safety restrictions.""" - - name: str = "python_execute" - description: str = "Executes Python code string. Note: Only print outputs are visible, function return values are not captured. Use print statements to see results." - parameters: dict = { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The Python code to execute.", - }, - }, - "required": ["code"], - } - - def _run_code(self, code: str, result_dict: dict, safe_globals: dict) -> None - - - async def execute( - self, - code: str, - timeout: int = 5, - ) -> Dict: - """ - Executes the provided Python code with a timeout. - - Args: - code (str): The Python code to execute. - timeout (int): Execution timeout in seconds. - - Returns: - Dict: Contains 'output' with execution output or error message and 'success' status. - """ -``` -而我们做事情非常简单,我们只需要继承这个函数,改一下已有的prompt,将其引导成适合做数据分析的工具就可以了!结果如下所示,主要通过prompt明确以下几个内容 -- 在prompt中明确任务主要为:数据分析,数据报告和其他普通的代码编写任务 -- 希望大模型可以提供:数据集总览,数据集各列详情,基础的数据统计信息,生成派生指标,时序对比,异常值,关键洞察等 -- 引导大模型可以根据已有的分析多次分析,形成深入有意义的分析数据 - -```python -from app.config import config -from app.tool.python_execute import PythonExecute - -class NormalPythonExecute(PythonExecute): - """A tool for executing Python code with timeout and safety restrictions.""" - - name: str = "python_execute" - description: str = """Execute Python code for in-depth data analysis / data report(task conclusion) / other normal task without direct visualization.""" - parameters: dict = { - "type": "object", - "properties": { - "code_type": { - "description": "code type, data process / data report / others", - "type": "string", - "default": "process", - "enum": ["process", "report", "others"], - }, - "code": { - "type": "string", - "description": """Python code to execute. -# Note -1. The code should generate a comprehensive text-based report containing dataset overview, column details, basic statistics, derived metrics, timeseries comparisons, outliers, and key insights. -2. Use print() for all outputs so the analysis (including sections like 'Dataset Overview' or 'Preprocessing Results') is clearly visible and save it also -3. Save any report / processed files / each analysis result in worksapce directory: {directory} -4. Data reports need to be content-rich, including your overall analysis process and corresponding data visualization. -5. You can invode this tool step-by-step to do data analysis from summary to in-depth with data report saved also""".format( - directory=config.workspace_root - ), - }, - }, - "required": ["code"], - } - - async def execute(self, code: str, code_type: str | None = None, timeout=5): - return await super().execute(code, timeout) -``` - -通过以上操作,我们通过简单的prompt修改,就可以得到一个精通python代码进行数据分析/数据报告的工具,将其加入到manus的使用工具库中,就完成了你的专属打造。 - -#### 数据分析Agent - -在有了我们的专属Tool之后,形成我们的数据分析Agent就更加简单了! - -**第一步:继承ToolCallAgent** - -ToolCallAgent是一个调用各种tool的通用agent,我们继承它就已经拥有了调用tool解决问题的能力 -```python -""" 继承ToolCallAgent """ -class DataAnalysis(ToolCallAgent): - """ - A data analysis agent that uses planning to solve various data analysis tasks. - - This agent extends ToolCallAgent with a comprehensive set of tools and capabilities, - including Data Analysis, Chart Visualization, Data Report. - """ -``` - -**第二步:改写prompt** - -修改system_prompt和next_step_prompt,注入agent的灵魂 -```python -class DataAnalysis(ToolCallAgent): - """ - A data analysis agent that uses planning to solve various data analysis tasks. - - This agent extends ToolCallAgent with a comprehensive set of tools and capabilities, - including Data Analysis, Chart Visualization, Data Report. - """ - - name: str = "DataAnalysis" - description: str = "An analytical agent that utilizes multiple tools to solve diverse data analysis tasks" - - # 修改你自己的prompt - system_prompt: str = SYSTEM_PROMPT.format(directory=config.workspace_root) - next_step_prompt: str = NEXT_STEP_PROMPT -``` - -**第三步:Tool注入** - -最后一步,注入可使用的Tool,就大功告成 -```python -class DataAnalysis(ToolCallAgent): - """ - A data analysis agent that uses planning to solve various data analysis tasks. - - This agent extends ToolCallAgent with a comprehensive set of tools and capabilities, - including Data Analysis, Chart Visualization, Data Report. - """ - - name: str = "DataAnalysis" - description: str = "An analytical agent that utilizes multiple tools to solve diverse data analysis tasks" - - system_prompt: str = SYSTEM_PROMPT.format(directory=config.workspace_root) - next_step_prompt: str = NEXT_STEP_PROMPT - - max_observe: int = 15000 - max_steps: int = 20 - - # 注入可使用的tools - available_tools: ToolCollection = Field( - default_factory=lambda: ToolCollection( - NormalPythonExecute(), - VisualizationPrepare(), - DataVisualization(), - Terminate(), - ) - ) -``` -### 最终效果 -#### Manus -那么最终效果如何呢,是否能够企及Manus的高度呢?让我们一试便知; -我们尝试Manus上的一个经典分析案例: -- [原始案例回放地址](https://manus.im/share/c3onakN6Iajcm1Vt1xAVG7?replay=1) -- [案例中所有生成产物地址](https://github.com/VisActor/VMind/tree/develop/docs/assets/openManus) - - - - -这是一个典型的数据分析场景,给Manus一个月度的销售数据,期望给出下个月10%销售增长的计划;Manus很好的完成了这个任务,生成了一个详细的报告,并且产生了很多数据分析的数据结果和数据可视化结果。 - -#### OpenManus 运行结果 -在OpenManus上加入VMind之后,OpenManus的数据分析能力和图表生成能力在原有的通用架构基础上有了显著的提升,可以生成多个高质量的markdown数据分析报告和丰富准确的数据可视化结果。 - -**任务拆解** - -Agent会将整体任务拆分成:数据处理、数据分析,数据可视化,模式识别,策略生成和最终报告生成这几个子任务进行执行 - - - -**最终报告** - -在所有任务完成之后,我们产生了最终的数据报告和多个中间分析结果的报告,数据报告中同样包含生成的可视化结果链接 - - - - -**可视化结果** - -以下是部分数据可视化结果展示,可以生成可交互式的图表页面(VChart渲染)并且带有数据标注 - - - -## 写在最后 -### 总结 -得益于OpenManus简洁通用的设计,在其基础上新增Tool或者Agent是一件相当简单的事情🚀 -开发者只要关注自己工具的具体实现和输入输出,而不用花大量精力在Agent的框架,交互以及与大模型的通信上,轻松打造属于自己的Agent! -DataAnalysis Agent就是这样的一个例子,我们只需设计对应的数据分析工具,就能拥有超强的数据分析能力,或许,这就是站在巨人肩膀上的感觉吧! -### 下一步 -这只是我们一个小小的尝试,目前还有很多问题,后续我们会继续完善 数据分析工具的调度能力,以及集成更强大的 VMind mcp 服务。我们的目标是打造一个集数据分析、图表推荐、自动美化、自动布局、自动报告生成的全流程工具。 产物包括图表、报告、海报、看板以及演示文稿。 -### 欢迎交流与共建 -最后,欢迎大家以各种方式参与 OpenManus 和 VisActor 的开源建设,提 issue,写代码,加评论,点 Star,都是对开源项目的支持。 - -OpenManus:https://github.com/FoundationAgents/OpenManus - -VMind:https://github.com/VisActor/VMind - - -VisActor 飞书交流群: - - -VisActor 微信公众号: - - diff --git a/docs/assets/scenario/zh/Open_API.md b/docs/assets/scenario/zh/Open_API.md deleted file mode 100644 index 143322b3..00000000 --- a/docs/assets/scenario/zh/Open_API.md +++ /dev/null @@ -1,165 +0,0 @@ -# VMind Open API -对于某些不适合接入前端SDK(例如Python Notebook或后端场景)或者不方便申请LLM服务的场景,我们还提供了Open API服务,用户可以通过HTTP请求的形式使用VMind,满足多样化的图表可视化需求。 - -## Open API请求示例: -```curl -curl --location 'VMind Open API服务地址' \ ---header 'api-key: 服务密钥' \ ---form 'data="[ - { - \"商品名称\": \"可乐\", - \"region\": \"south\", - \"销售额\": 2350 - }, - { - \"商品名称\": \"可乐\", - \"region\": \"east\", - \"销售额\": 1027 - }, - { - \"商品名称\": \"可乐\", - \"region\": \"west\", - \"销售额\": 1027 - } -]"' \ ---form 'model="doubao"' \ ---form 'userPrompt="帮我展示北方各商品销售额"' \ -``` - -返回值: -```json -{ - "chart": [ - { - "chartType": "BAR CHART", //图表类型 - "spec": { //生成的VChart Spec - "type": "bar", - "xField": [ - "region", - "商品名称" - ], - "yField": "销售额", - "seriesField": "商品名称", - //...省略更多spec内容 - }, - "usage": { //LLM token消耗明细 - "completion_tokens": 19, - "prompt_tokens": 1109, - "total_tokens": 1128 - }, - "time": { //图表动画时长 - "totalTime": 2000, - "frameArr": [] - } - } - ] -} -``` - -VMind Open API目前支持多种模型进行智能数据聚合和图表生成,以及chart-advisor完成基于规则的图表推荐,具体支持模型如下所示: -- doubao: 默认值,对应doubao-pro-32k-240828模型,即240828发布的pro模型 -- doubao-1.5-pro-32k: 对应250115发布的豆包1.5pro模型 -- doubao-1.5-lite-32k: 对应250115发布的豆包1.5lite模型 -- 其他:例如gpt系列模型和deepseek系列模型 - -## 接口说明 -### /generateChart -- 根据数据和用户输入的自然语言,生成vchart spec用于图表渲染。 -- 若userPrompt和model为空,则不调用大模型,仅根据数据完成图表推荐,生成一系列图表spec,根据推荐程度排序。 -- 若data为空,则生成不包含数据的spec模板,后期可调用fillSpecWithData接口填充数据。 -- VMind确保仅将数据字段信息(字段名称、字段类型)传递给大模型,明细数据不会传递给大模型。 -#### 调用方法 -POST -#### 参数说明 -- data -说明:图表中使用的数据集,json 数组结构。可以为空。data为空则生成spec模板,后期可调用fillSpecWithData接口填充数据。 - -- userPrompt -说明:可选,用户输入的自然语言,字符串类型。可指定图表类型和字段分配,可进一步进行数据聚合、筛选、排序。 -示例: -``` -帮我展示不同区域各商品销售额 -展示各商品销售数据,使用折线图 -北方销售额前三的商品 -哪种商品卖的最多 -不同地区商品销售状况 -展示各商品销售数据,地区做x轴,商品类型做颜色 -``` - -- model -可选值:doubao | doubao-1.5-pro-32k | doubao-1.5-lite-32k -说明:可选,模型类型,默认支持doubao模型;同时也支持gpt系列和deepseek系列,可以按需提供 - -- mode -可选值:"accuracyFirst" , "performanceFirst" -说明:可选,图表生成模式,性能优先还是准确性优先。accuracyFirst会导致数据聚合和图表生成准确性提高,但生成速度将会受影响。performanceFirst会提高图表生成和数据聚合的速度,但准确性可能会受影响。默认为performanceFirst - -- enableDataQuery -可选值:true或false -说明:可选,是否开启智能数据聚合。开启后将支持userPrompt中的数据聚合、筛选、排序、分组等指令,例如: -``` -帮我展示北方各商品销售额 -展示南方卖的最多的3种商品 -生成折线图,按照日期聚合 -展示销量前5名的商品 -``` -默认为true,开启后会增加接口响应时间。 - -- chartTypeList -字符串数组 -说明:可选,图表类型列表,用于限制图表生成服务生成的图表类型。仅会生成该列表中的图表类型。不传该参数则默认生成所有图表类型。 - -可选值: - -``` -"Bar Chart" -"Line Chart" -"Pie Chart" -"Scatter Plot" -"Word Cloud" -"Rose Chart" -"Radar Chart" -"Sankey Chart" -"Funnel Chart" -"Dual Axis Chart" -"Waterfall Chart" -"Box Plot" -"Dynamic Bar Chart" -``` - -示例: -```json -[ -"Bar Chart", -"Line Chart", -"Pie Chart", -"Scatter Plot" -]//仅生成柱状图、折线图、饼图、散点图 -``` - -#### 返回值 -- chart - -说明:图表生成结果,json数组结构 - -```typescript -type chartGenerationResult = { -chart:{ - chartType : string; //图表类型 - spec: Spec; //该图表类型对应的vchart spec,可用于前端渲染 - score: number; //图表推荐得分,分数越高代表当前数据越适合用这种图表展示 - chartSource: string //图表来源,chartAdvisor表示基于规则的图表推荐,不调用大模型;若调用大模型完成了图表生成,则为对应的模型名 - }[] -} -``` - -## 联系方式 -若有VMind Open API接入意向,欢迎加入飞书群创建话题,或关注微信公众号,加入微信群联系相关人员。 - -- 飞书: - - - -- 微信公众号(通过公众号菜单可以加入微信群和飞书群): - -![](http://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/visactor-site/blog/a39d9483e530417ba9a780f4d079c201.gif) diff --git a/docs/assets/scenario/zh/Wordcloud_Cube.md b/docs/assets/scenario/zh/Wordcloud_Cube.md deleted file mode 100644 index 412bae55..00000000 --- a/docs/assets/scenario/zh/Wordcloud_Cube.md +++ /dev/null @@ -1,26 +0,0 @@ -# 可视化叙事-词云魔方 -VisActor一直致力于探究数据可视化在叙事场景中的应用,VMind也将与VChart叙事模板相结合,推出智能叙事功能。 - -我们将VMind与Coze平台结合,推出了词云魔方机器人。用户只需要上传词云的标题和核心词,VMind便能智能地为用户生成各种主题的个性化词云。 - - - - - -
- - - -VMind 本身具备根据数据自动推断图表类型,并智能生成spec 的能力,但是在词云魔方场景下,需要对结果进行约束。VMind node 服务对VMind 组件进行了一层封装,只允许VMind 在我们规定的词云模版中进行选择生成。 - - - -未来我们将添加各种各样的主题模板,如节日、生肖等,给用户的创作提供更多可能和灵感。同时,我们还将支持生成GIF动图,让词云展现出独特的动态效果,使其具有更强的视觉冲击力和表达力。 - -当然,我们也会突破词云的限制,将词云魔方升级成为“卡片魔方”,可以生成使用范围更广,效果更惊艳的作品。同时也借此,整体推动VMind的升级,使其更加智能化,在代码生成,图表配置,自动美化,故事编排等各个方面都能有质的提升,并通过开源服务更多的开发者。 - -## 体验地址: -- [Coze](https://www.coze.cn/s/iY7WbPQ2/) - -## 相关阅读 -- [一念生花,Coze 结合VisActor 文生图实战总结](https://juejin.cn/post/7340307383505436712) diff --git a/docs/debugging.md b/docs/debugging.md new file mode 100644 index 00000000..705a6a4f --- /dev/null +++ b/docs/debugging.md @@ -0,0 +1,73 @@ +# Debug Skills + +## Recommended: Codex or Claude Code + +Use your existing coding agent for everyday development and debugging. It provides the model, tool execution and conversation management; this repository supplies the Skill. Codex and Claude Code are the documented host targets. Other compatible agents may work, but do not have dedicated setup instructions or compatibility guarantees here. + +Both hosts load complete Skill directories. Codex uses `.agents/skills/` in a project; Claude Code uses `.claude/skills/`. See the [official Codex instructions](https://learn.chatgpt.com/docs/build-skills) and [Claude Code instructions](https://code.claude.com/docs/en/skills). + +The following local setup uses a fresh directory so it does not overwrite an existing Skill installation. Start in this repository's root, with your chosen agent installed and authenticated: + +```bash +debug_workspace="$(mktemp -d)" +mkdir -p "$debug_workspace/inputs" "$debug_workspace/outputs" +cp evals/cases/vchart-skill/inputs/sales.csv "$debug_workspace/inputs/" +``` + +Choose one host. For **Codex**: + +```bash +mkdir -p "$debug_workspace/.agents/skills" +cp -R skills/vchart-skill skills/vtable-skill "$debug_workspace/.agents/skills/" +cd "$debug_workspace" +codex +``` + +For **Claude Code**, instead run this from the repository root after the shared setup: + +```bash +mkdir -p "$debug_workspace/.claude/skills" +cp -R skills/vchart-skill skills/vtable-skill "$debug_workspace/.claude/skills/" +cd "$debug_workspace" +claude +``` + +You can also open that workspace in the corresponding app. The scripts need Python 3.9+, and generated HTML needs a browser and public CDN access. The API harness, uv environment and its model configuration are not required for this path. + +In Codex CLI, send: + +```text +$vchart-skill Use every row in inputs/sales.csv to build a grouped bar chart comparing sales by region and quarter. Write editable source and runnable HTML under outputs/. +``` + +In Claude Code, send the same request with `/vchart-skill` instead of `$vchart-skill`. For a table, select `vtable-skill` and ask for a sortable detail table. Inspect the generated source and HTML, then continue the conversation with changes or errors to investigate. + +After editing this repository's Skill, refresh the installed copy before retesting (or create another fresh workspace with these steps). Record the host/model, prompt, inputs and observed result when reporting a problem. Logs and tool access in this route are managed by the host; they do not automatically appear in `evals/runs/`. + +Historical generation/browser runs in this migration used Codex. Claude Code's setup above follows its documented Skill interface; a real Claude Code generation run has not yet been recorded for this migration. + +## Alternative: a simple model API harness + +Use this when you have an API endpoint or want repeatable runs on selected cases. It loads one Skill and provides the bounded tools needed for these tasks. It does not provide an interactive coding-agent application. Only OpenAI-compatible Chat Completions with tool calling and token usage is supported; native protocols are outside the current scope. + +Follow [API setup](../evals/README.md#contributor-quickstart) to configure your endpoint, model and key environment variable. Run a built-in case with: + +```bash +uv run python evals/scripts/run.py --case vchart-grouped --browser +``` + +Or supply a task without editing the case catalogue: + +```bash +uv run python evals/scripts/run.py \ + --skill vchart-skill \ + --prompt-file evals/examples/chart-prompt.md \ + --input evals/cases/vchart-skill/inputs/sales.csv \ + --browser --html demo.html +``` + +Use `--skill vtable-skill` for tables. Replace the prompt/data paths with your own files. Relative paths are resolved from your shell's current directory. Each `--input` is copied into `inputs/`; repeat the flag for multiple files with distinct basenames. Inputs are optional for explanatory tasks. All generated artifacts go to the run workspace's `outputs/`. + +`--html` names an output HTML path relative to `outputs/`; the runner includes it in the task instructions and checks that it exists. With `--browser`, this path is required and rendering checks/screenshots run after generation. Omit both flags for text answers or tasks you will inspect yourself. Custom runs check process completion and a nonempty final answer, plus any explicitly requested HTML/browser checks; they do not invent case-specific semantic or data assertions. Success remains `needs-review`. + +Each invocation creates `evals/runs//custom/` with the same prompt, Skill snapshot, input hashes, API request/response/tool logs, usage, outputs and report format as fixed cases. The original prompt and input files are not edited. Runs are independent; for conversational debugging, use Codex or Claude Code. diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index a46c95e1..00000000 --- a/docs/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - Documents Site - - - - - - - -
- - - diff --git a/docs/index.js b/docs/index.js deleted file mode 100644 index afe19eaa..00000000 --- a/docs/index.js +++ /dev/null @@ -1,155 +0,0 @@ -/** - * Usage: - * example command: node ./download-documents.js path=./examples token=1e7a4c5b-893e-580f-96f2-29e62d5de99c routeId=186 - * arguments: - * path: target directory to store documents - * token: cms site token - * routeId: top route id for cms site - * - * target directory structure: - * entry: - * zh: xx.md / dir - * en: xx.md / dir - */ - -const fs = require('fs'); -const path = require('path'); -const fetch = require('node-fetch-commonjs'); - -// configs -const languages = ['zh', 'en']; -const ignores = ['README.md', 'readme.md']; - -// CMS Domain - -const CMSDomain = 'https://cms-cn.zijieapi.com'; -// arguments -const arguments = process.argv.slice(2); - -let targetDirectory = path.resolve(__dirname); -let token = ''; -let routeId = -1; -for (const argument of arguments) { - if (argument.startsWith('path=')) { - targetDirectory = argument.split('path=')[1]; - } else if (argument.startsWith('token=')) { - token = argument.split('token=')[1]; - } else if (argument.startsWith('routeId=')) { - routeId = argument.split('routeId=')[1]; - } -} -if (token === '') { - console.error('Invalid parameters! Please refer to the cms config in the scripts.'); -} -targetDirectory = path.resolve(targetDirectory); -const targetEntry = targetDirectory.split('/')[targetDirectory.split('/').length - 1]; - -async function fetchCMSData(token, url, plain) { - const response = await fetch(`${CMSDomain}${url}`, { - method: 'GET', - mode: 'cors', - cache: 'default', - headers: { - // 'Access-Control-Allow-Origin': '*', - 'Content-Type': 'application/json', - Authorization: token - } - }); - const json = await response.json(); - const data = plain ? json : json?.data; - return data; -} - -async function fetchRoutes(routeId, token) { - if (routeId === -1) { - const routeData = await fetchCMSData(token, `/api/open/site`, false); - return routeData.routes; - } - const routeData = await fetchCMSData(token, `/api/open/site/top/${routeId}`, false); - return routeData[0].children; -} - -async function generateRouteData(route, parentMenuItem, rootDirectory, directory, token) { - // not downloading any readme file - if (route.path.indexOf('README') >= 0) { - return; - } - if (route.children) { - for (const language of languages) { - const targetPath = path.join(rootDirectory, language, directory, route.path); - // create directory - if (!fs.existsSync(targetPath)) { - fs.mkdirSync(targetPath); - } - } - const menuItem = { - path: route.path, - title: { - zh: route.name['1'], - en: route.name['2'] - }, - children: [] - }; - parentMenuItem.children.push(menuItem); - for (const subRoute of route.children) { - await generateRouteData(subRoute, menuItem, rootDirectory, path.join(directory, route.path), token); - } - } else { - const menuItem = { - path: route.path, - title: {} - }; - parentMenuItem.children.push(menuItem); - for (const language of languages) { - const languageIndex = languages.indexOf(language) + 1; - const document = await fetchCMSData( - token, - `/api/open/document?fullPath=${route.fullPath}&language=${languageIndex}`, - false - ); - const content = document[0].content; - if (!content || content === '') { - console.log(`Empty document: ${route.fullPath}`); - return; - } - const meta = JSON.parse(document[0].meta); - menuItem.title[language] = meta.title; - const targetPath = path.resolve(rootDirectory, language, directory, `${route.path}.md`); - fs.writeFileSync(targetPath, content, { encoding: 'utf8' }); - } - console.log(`Generate document: ${route.fullPath}`); - } -} - -// token = tokenEnum.vtableGuide; -// // routeId = vchartExampleRouteId; -// targetDirectory = './tutorials'; - -async function run() { - const routes = await fetchRoutes(routeId, token); - - const menu = { - menu: targetEntry, - children: [] - }; - const targetFullPath = path.resolve(targetDirectory); - if (!fs.existsSync(targetFullPath)) { - fs.mkdirSync(targetFullPath); - } - for (const language of languages) { - const languageFullPath = path.join(targetDirectory, language); - if (!fs.existsSync(languageFullPath)) { - fs.mkdirSync(languageFullPath); - } - } - for (const route of routes) { - await generateRouteData(route, menu, targetFullPath, '', token); - } - const menuResult = JSON.stringify(menu, null, 2); - const menuPath = path.join(targetDirectory, 'menu.json'); - fs.writeFileSync(menuPath, menuResult, { encoding: 'utf8' }); - - console.log('Successfully download all documents!'); -} - -run(); diff --git a/docs/libs/template-parse/build.js b/docs/libs/template-parse/build.js deleted file mode 100644 index cac280f9..00000000 --- a/docs/libs/template-parse/build.js +++ /dev/null @@ -1,188 +0,0 @@ -/* Adapted from echarts-doc by Apache ECharts - * https://github.com/apache/echarts-doc - * Licensed under the Apache-2.0 license - - * url: https://github.com/apache/echarts-doc/blob/master/build.js - * License: https://github.com/apache/echarts-doc/blob/master/LICENSE - * @license - */ - -const md2json = require('./md2json'); -const { extractDesc } = require('./schemaHelper'); -const fs = require('fs'); -const fse = require('fs-extra'); -const chalk = require('chalk'); -const argv = require('yargs').argv; -const path = require('path'); -const assert = require('assert'); -const chokidar = require('chokidar'); -const { debounce } = require('lodash'); -const menu = require('../../menu.json'); - -function initEnv() { - let envType = argv.env; - let isDev = argv.dev != null || argv.debug != null || argv.env === 'dev'; - - if (isDev) { - console.warn('============================='); - console.warn('!!! THIS IS IN DEV MODE !!!'); - console.warn('============================='); - envType = 'dev'; - } - - if (!envType) { - throw new Error('--env MUST be specified'); - } - - let config = { - releaseDestDir: path.resolve(__dirname, '../../public/documents') - }; - - config.envType = envType; - - return config; -} - -const config = initEnv(); - -const languages = ['zh', 'en']; - -config.gl = config.gl || {}; -for (let key in config) { - if (key !== 'gl' && !config.gl.hasOwnProperty(key)) { - config.gl[key] = config[key]; - } -} - -async function md2jsonAsync(opt) { - var newOpt = Object.assign( - { - path: path.resolve(__dirname, opt.assetPath, opt.language, '**/*.md'), - tplEnv: Object.assign({}, config), - imageRoot: config.imagePath - }, - opt - ); - - function run(cb) { - md2json(newOpt) - .then(schema => { - writeSingleSchemaPartioned(schema, opt.language, opt.entry, false, opt.arrayKeys); - console.log(chalk.green('generated: ' + opt.language + '/' + opt.entry)); - cb && cb(); - }) - .catch(e => { - console.log(e); - }); - } - - var runDebounced = debounce(run, 500, { - leading: false, - trailing: true - }); - return await new Promise((resolve, reject) => { - run(resolve); - - if (argv.watch) { - chokidar - .watch(path.resolve(__dirname, opt.assetPath, opt.language), { - ignoreInitial: true - }) - .on('all', (event, path) => { - console.log(path, event); - runDebounced(); - }); - } - }); -} - -async function run() { - for (const menuItem of menu) { - if (menuItem.type !== 'markdown-template') { - continue; - } - for (const language of languages) { - await md2jsonAsync({ - sectionsAnyOf: menuItem.sections ?? [], - arrayKeys: menuItem.arrayKeys ?? [], - entry: menuItem.entry, - assetPath: `../../assets/${menuItem.menu}/`, - language - }); - } - } - - console.log('Build doc done.'); - - console.log('All done.'); -} - -function writeSingleSchemaPartioned(schema, language, docName, format, arrayItemKeys) { - const { outline, descriptions } = extractDesc(schema, docName, arrayItemKeys); - - const outlineBasename = `outline.json`; - const outlineDestPath = path.resolve(config.releaseDestDir, `${docName}/${language}/${outlineBasename}`); - fse.ensureDirSync(path.dirname(outlineDestPath)); - fse.outputFileSync(outlineDestPath, format ? JSON.stringify(outline, null, 2) : JSON.stringify(outline), 'utf-8'); - - function copyUIControlConfigs(source, target) { - for (let key in source) { - if (target[key]) { - if (source[key].uiControl && !target[key].uiControl) { - target[key].uiControl = source[key].uiControl; - } - if (source[key].exampleBaseOptions && !target[key].exampleBaseOptions) { - target[key].exampleBaseOptions = source[key].exampleBaseOptions; - } - } else { - // console.error(`Unmatched option path ${key}`); - } - } - } - - function readOptionDesc(language, partKey) { - const descBasename = `${partKey}.json`; - const descDestPath = path.resolve(config.releaseDestDir, `${docName}/${language}/${descBasename}`); - try { - const text = fs.readFileSync(descDestPath, 'utf-8'); - return JSON.parse(text); - } catch (e) { - return; - } - } - - function writeOptionDesc(language, partKey, json) { - const descBasename = `${partKey}.json`; - const descDestPath = path.resolve(config.releaseDestDir, `${docName}/${language}/${descBasename}`); - fse.ensureDirSync(path.dirname(descDestPath)); - fse.outputFileSync(descDestPath, format ? JSON.stringify(json, null, 2) : JSON.stringify(json), 'utf-8'); - } - - for (let partKey in descriptions) { - let partDescriptions = descriptions[partKey]; - - // Copy ui control config from zh to english. - if (language === 'zh') { - languages.forEach(function (otherLang) { - if (otherLang === 'zh') { - return; - } - const json = readOptionDesc(otherLang, partKey); - if (json) { - copyUIControlConfigs(partDescriptions, json); - writeOptionDesc(otherLang, partKey, json); - } - }); - } else { - const json = readOptionDesc('zh', partKey); - if (json) { - copyUIControlConfigs(json, partDescriptions); - } - } - - writeOptionDesc(language, partKey, partDescriptions); - // console.log(chalk.green('generated: ' + descDestPath)); - } -} - -run(); diff --git a/docs/libs/template-parse/etpl.js b/docs/libs/template-parse/etpl.js deleted file mode 100644 index 62baa8c9..00000000 --- a/docs/libs/template-parse/etpl.js +++ /dev/null @@ -1,1679 +0,0 @@ -/* Adapted from echarts-doc by Apache ECharts - * https://github.com/apache/echarts-doc - * Licensed under the Apache-2.0 license - - * url: https://github.com/apache/echarts-doc/blob/master/dep/etpl.js - * License: https://github.com/apache/echarts-doc/blob/master/LICENSE - * @license - */ - -/** - * ETPL (Enterprise Template) - * Copyright 2013 Baidu Inc. All rights reserved. - * - * @file 模板引擎 - * @author errorrik(errorrik@gmail.com) - * otakustay(otakustay@gmail.com) - */ - -// HACK: 可见的重复代码未抽取成function和var是为了gzip size,吐槽的一边去 -/* eslint-env node */ - -(function (root) { - /** - * 对象属性拷贝 - * - * @inner - * @param {Object} target 目标对象 - * @param {Object} source 源对象 - * @return {Object} 返回目标对象 - */ - function extend(target, source) { - for (var key in source) { - if (source.hasOwnProperty(key)) { - target[key] = source[key]; - } - } - - return target; - } - - /** - * 随手写了个栈 - * - * @inner - * @constructor - */ - function Stack() { - this.raw = []; - this.length = 0; - } - - Stack.prototype = { - /** - * 添加元素进栈 - * - * @param {*} elem 添加项 - */ - push: function (elem) { - this.raw[this.length++] = elem; - }, - - /** - * 弹出顶部元素 - * - * @return {*} 顶部元素 - */ - pop: function () { - if (this.length > 0) { - var elem = this.raw[--this.length]; - this.raw.length = this.length; - return elem; - } - }, - - /** - * 获取顶部元素 - * - * @return {*} 顶部元素 - */ - top: function () { - return this.raw[this.length - 1]; - }, - - /** - * 获取底部元素 - * - * @return {*} 底部元素 - */ - bottom: function () { - return this.raw[0]; - }, - - /** - * 根据查询条件获取元素 - * - * @param {Function} condition 查询函数 - * @return {*} 符合条件的元素 - */ - find: function (condition) { - var index = this.length; - while (index--) { - var item = this.raw[index]; - if (condition(item)) { - return item; - } - } - } - }; - - /** - * 唯一id的起始值 - * - * @inner - * @type {number} - */ - var guidIndex = 0x2b845; - - /** - * 获取唯一id,用于匿名target或编译代码的变量名生成 - * - * @inner - * @return {string} 唯一id - */ - function generateGUID() { - return '___' + guidIndex++; - } - - /** - * 构建类之间的继承关系 - * - * @inner - * @param {Function} subClass 子类函数 - * @param {Function} superClass 父类函数 - */ - function inherits(subClass, superClass) { - /* jshint -W054 */ - var subClassProto = subClass.prototype; - var F = new Function(); - F.prototype = superClass.prototype; - subClass.prototype = new F(); - subClass.prototype.constructor = subClass; - extend(subClass.prototype, subClassProto); - /* jshint +W054 */ - } - - /** - * HTML Filter替换的字符实体表 - * - * @const - * @inner - * @type {Object} - */ - var HTML_ENTITY = { - /* jshint ignore:start */ - '&': '&', - '<': '<', - '>': '>', - '"': '"', - /* eslint-disable quotes */ - "'": ''' - /* eslint-enable quotes */ - /* jshint ignore:end */ - }; - - /** - * HTML Filter的替换函数 - * - * @inner - * @param {string} c 替换字符 - * @return {string} 替换后的HTML字符实体 - */ - function htmlFilterReplacer(c) { - return HTML_ENTITY[c]; - } - - /** - * 默认filter - * - * @inner - * @const - * @type {Object} - */ - var DEFAULT_FILTERS = { - /** - * HTML转义filter - * - * @param {string} source 源串 - * @return {string} 替换结果串 - */ - html: function (source) { - return source.replace(/[&<>"']/g, htmlFilterReplacer); - }, - - /** - * URL编码filter - * - * @param {string} source 源串 - * @return {string} 替换结果串 - */ - url: encodeURIComponent, - - /** - * 源串filter,用于在默认开启HTML转义时获取源串,不进行转义 - * - * @param {string} source 源串 - * @return {string} 替换结果串 - */ - raw: function (source) { - return source; - } - }; - - /** - * 字符串字面化 - * - * @inner - * @param {string} source 需要字面化的字符串 - * @return {string} 字符串字面化结果 - */ - function stringLiteralize(source) { - return ( - '"' + - source - .replace(/\x5C/g, '\\\\') - .replace(/"/g, '\\"') - .replace(/\x0A/g, '\\n') - .replace(/\x09/g, '\\t') - .replace(/\x0D/g, '\\r') + - // .replace( /\x08/g, '\\b' ) - // .replace( /\x0C/g, '\\f' ) - '"' - ); - } - - /** - * 对字符串进行可用于new RegExp的字面化 - * - * @inner - * @param {string} source 需要字面化的字符串 - * @return {string} 字符串字面化结果 - */ - function regexpLiteral(source) { - return source.replace(/[\^\[\]\$\(\)\{\}\?\*\.\+]/g, function (c) { - return '\\' + c; - }); - } - - /** - * 字符串格式化 - * - * @inner - * @param {string} source 目标模版字符串 - * @param {...string} replacements 字符串替换项集合 - * @return {string} 格式化结果 - */ - function stringFormat(source) { - var args = arguments; - return source.replace(/\{([0-9]+)\}/g, function (match, index) { - return args[index - 0 + 1]; - }); - } - - /** - * 用于render的字符串变量声明语句 - * - * @inner - * @const - * @type {string} - */ - var RENDER_STRING_DECLATION = 'var r="";'; - - /** - * 用于render的字符串内容添加语句(起始) - * - * @inner - * @const - * @type {string} - */ - var RENDER_STRING_ADD_START = 'r+='; - - /** - * 用于render的字符串内容添加语句(结束) - * - * @inner - * @const - * @type {string} - */ - var RENDER_STRING_ADD_END = ';'; - - /** - * 用于render的字符串内容返回语句 - * - * @inner - * @const - * @type {string} - */ - var RENDER_STRING_RETURN = 'return r;'; - - // HACK: IE8-时,编译后的renderer使用join Array的策略进行字符串拼接 - var ieVersionMatch = typeof navigator !== 'undefined' && navigator.userAgent.match(/msie\s*([0-9]+)/i); - - if (ieVersionMatch && ieVersionMatch[1] - 0 < 8) { - RENDER_STRING_DECLATION = 'var r=[],ri=0;'; - RENDER_STRING_ADD_START = 'r[ri++]='; - RENDER_STRING_RETURN = 'return r.join("");'; - } - - /** - * 将访问变量名称转换成getVariable调用的编译语句 - * 用于if、var等命令生成编译代码 - * - * @inner - * @param {string} name 访问变量名 - * @return {string} getVariable调用的编译语句 - */ - function toGetVariableLiteral(name) { - name = name.replace(/^\s*\*/, ''); - return stringFormat( - 'gv({0},["{1}"])', - stringLiteralize(name), - name - .replace(/\[['"]?([^'"]+)['"]?\]/g, function (match, name) { - return '.' + name; - }) - .split('.') - .join('","') - ); - } - - /** - * 解析文本片段中以固定字符串开头和结尾的包含块 - * 用于 命令串: 和 变量替换串:${...} 的解析 - * - * @inner - * @param {string} source 要解析的文本 - * @param {string} open 包含块开头 - * @param {string} close 包含块结束 - * @param {boolean} greedy 是否贪婪匹配 - * @param {function({string})} onInBlock 包含块内文本的处理函数 - * @param {function({string})} onOutBlock 非包含块内文本的处理函数 - */ - function parseTextBlock(source, open, close, greedy, onInBlock, onOutBlock) { - var closeLen = close.length; - var texts = (source || '').split(open); - var level = 0; - var buf = []; - - for (var i = 0, len = texts.length; i < len; i++) { - var text = texts[i]; - - if (i) { - var openBegin = 1; - level++; - /* eslint-disable no-constant-condition */ - while (1) { - var closeIndex = text.indexOf(close); - if (closeIndex < 0) { - buf.push(level > 1 && openBegin ? open : '', text); - break; - } - - level = greedy ? level - 1 : 0; - buf.push(level > 0 && openBegin ? open : '', text.slice(0, closeIndex), level > 0 ? close : ''); - text = text.slice(closeIndex + closeLen); - openBegin = 0; - - if (level === 0) { - break; - } - } - /* eslint-enable no-constant-condition */ - - if (level === 0) { - onInBlock(buf.join('')); - onOutBlock(text); - buf = []; - } - } else { - text && onOutBlock(text); - } - } - - if (level > 0 && buf.length > 0) { - onOutBlock(open); - onOutBlock(buf.join('')); - } - } - - /** - * 编译变量访问和变量替换的代码 - * 用于普通文本或if、var、filter等命令生成编译代码 - * - * @inner - * @param {string} source 源代码 - * @param {Engine} engine 引擎实例 - * @param {boolean} forText 是否为输出文本的变量替换 - * @return {string} 编译代码 - */ - function compileVariable(source, engine, forText) { - var code = []; - var options = engine.options; - - var toStringHead = ''; - var toStringFoot = ''; - var wrapHead = ''; - var wrapFoot = ''; - - // 默认的filter,当forText模式时有效 - var defaultFilter; - - if (forText) { - toStringHead = 'ts('; - toStringFoot = ')'; - wrapHead = RENDER_STRING_ADD_START; - wrapFoot = RENDER_STRING_ADD_END; - defaultFilter = options.defaultFilter; - } - - parseTextBlock( - source, - options.variableOpen, - options.variableClose, - 1, - - function (text) { - // 加入默认filter - // 只有当处理forText时,需要加入默认filter - // 处理if/var/use等command时,不需要加入默认filter - if (forText && text.indexOf('|') < 0 && defaultFilter) { - text += '|' + defaultFilter; - } - - // variableCode是一个gv调用,然后通过循环,在外面包filter的调用 - // 形成filter["b"](filter["a"](gv(...))) - // - // 当forText模式,处理的是文本中的变量替换时 - // 传递给filter的需要是字符串形式,所以gv外需要包一层ts调用 - // 形成filter["b"](filter["a"](ts(gv(...)))) - // - // 当variableName以*起始时,忽略ts调用,直接传递原值给filter - var filterCharIndex = text.indexOf('|'); - var variableName = (filterCharIndex > 0 ? text.slice(0, filterCharIndex) : text) - .replace(/^\s+/, '') - .replace(/\s+$/, ''); - var filterSource = filterCharIndex > 0 ? text.slice(filterCharIndex + 1) : ''; - - var variableRawValue = variableName.indexOf('*') === 0; - var variableCode = [ - variableRawValue ? '' : toStringHead, - toGetVariableLiteral(variableName), - variableRawValue ? '' : toStringFoot - ]; - - if (filterSource) { - filterSource = compileVariable(filterSource, engine); - var filterSegs = filterSource.split('|'); - for (var i = 0, len = filterSegs.length; i < len; i++) { - var seg = filterSegs[i]; - var segMatch = seg.match(/^\s*([a-z0-9_-]+)(\((.*)\))?\s*$/i); - if (segMatch) { - variableCode.unshift('fs["' + segMatch[1] + '"]('); - - if (segMatch[3]) { - variableCode.push(',', segMatch[3]); - } - - variableCode.push(')'); - } - } - } - - code.push(wrapHead, variableCode.join(''), wrapFoot); - }, - - function (text) { - code.push(wrapHead, forText ? stringLiteralize(text) : text, wrapFoot); - } - ); - - return code.join(''); - } - - /** - * 文本节点类 - * - * @inner - * @constructor - * @param {string} value 文本节点的内容文本 - * @param {Engine} engine 引擎实例 - */ - function TextNode(value, engine) { - this.value = value; - this.engine = engine; - } - - TextNode.prototype = { - /** - * 获取renderer body的生成代码 - * - * @return {string} 生成代码 - */ - getRendererBody: function () { - var value = this.value; - var options = this.engine.options; - - if (!value || (options.strip && /^\s*$/.test(value))) { - return ''; - } - - return compileVariable(value, this.engine, 1); - }, - - /** - * 复制节点的方法 - * - * @return {TextNode} 节点复制对象 - */ - clone: function () { - return this; - } - }; - - /** - * 命令节点类 - * - * @inner - * @constructor - * @param {string} value 命令节点的value - * @param {Engine} engine 引擎实例 - */ - function Command(value, engine) { - this.value = value; - this.engine = engine; - this.children = []; - this.cloneProps = []; - } - - Command.prototype = { - /** - * 添加子节点 - * - * @param {TextNode|Command} node 子节点 - */ - addChild: function (node) { - this.children.push(node); - }, - - /** - * 节点open,解析开始 - * - * @param {Object} context 语法分析环境对象 - */ - open: function (context) { - var parent = context.stack.top(); - parent && parent.addChild(this); - context.stack.push(this); - }, - - /** - * 节点闭合,解析结束 - * - * @param {Object} context 语法分析环境对象 - */ - close: function (context) { - if (context.stack.top() === this) { - context.stack.pop(); - } - }, - - /** - * 获取renderer body的生成代码 - * - * @return {string} 生成代码 - */ - getRendererBody: function () { - var buf = []; - var children = this.children; - for (var i = 0; i < children.length; i++) { - buf.push(children[i].getRendererBody()); - } - - return buf.join(''); - }, - - /** - * 复制节点的方法 - * - * @return {Command} 节点复制对象 - */ - clone: function () { - var Clazz = this.constructor; - var node = new Clazz(this.value, this.engine); - - /* eslint-disable no-redeclare */ - for (var i = 0, l = this.children.length; i < l; i++) { - node.addChild(this.children[i].clone()); - } - - for (var i = 0, l = this.cloneProps.length; i < l; i++) { - var prop = this.cloneProps[i]; - node[prop] = this[prop]; - } - /* eslint-enable no-redeclare */ - - return node; - } - }; - - /** - * 命令自动闭合 - * - * @inner - * @param {Object} context 语法分析环境对象 - * @param {Function=} CommandType 自闭合的节点类型 - * @return {Command} 被闭合的节点 - */ - function autoCloseCommand(context, CommandType) { - var stack = context.stack; - var closeEnd = CommandType - ? stack.find(function (item) { - return item instanceof CommandType; - }) - : stack.bottom(); - - if (closeEnd) { - var node; - - while ((node = stack.top()) !== closeEnd) { - /* jshint ignore:start */ - // 如果节点对象不包含autoClose方法 - // 则认为该节点不支持自动闭合,需要抛出错误 - // for等节点不支持自动闭合 - if (!node.autoClose) { - throw new Error(node.type + ' must be closed manually: ' + node.value); - } - /* jshint ignore:end */ - - node.autoClose(context); - } - - closeEnd.close(context); - } - - return closeEnd; - } - - /** - * renderer body起始代码段 - * - * @inner - * @const - * @type {string} - */ - var RENDERER_BODY_START = - '' + - 'data=data||{};' + - 'var v={},fs=engine.filters,hg=typeof data.get=="function",' + - 'gv=function(n,ps){' + - 'var p=ps[0],d=v[p];' + - 'if(d==null){' + - 'if(hg){return data.get(n);}' + - 'd=data[p];' + - '}' + - 'for(var i=1,l=ps.length;i= TargetState.APPLIED) { - return 1; - } - - var blocks = this.blocks; - - function replaceBlock(node) { - var children = node.children; - - if (children instanceof Array) { - for (var i = 0, len = children.length; i < len; i++) { - var child = children[i]; - if (child instanceof BlockCommand && blocks[child.name]) { - child = children[i] = blocks[child.name]; - } - - replaceBlock(child); - } - } - } - - var master = this.engine.targets[masterName]; - if (master) { - if (master.applyMaster(master.master)) { - this.children = master.clone().children; - replaceBlock(this); - this.state = TargetState.APPLIED; - return 1; - } - } else if (this.engine.options.missTarget === 'error') { - throw new Error( - '[ETPL_MISS_TARGET]' + masterName + ', when extended by ' + (this.target ? this.target.name : this.name) - ); - } - }; - - /** - * 判断target是否ready - * 包括是否成功应用母版,以及import语句依赖的target是否ready - * - * @return {boolean} target是否ready - */ - TargetCommand.prototype.isReady = function () { - if (this.state >= TargetState.READY) { - return 1; - } - - var engine = this.engine; - var targetName = this.name; - var readyState = 1; - - /** - * 递归检查节点的ready状态 - * - * @inner - * @param {Command|TextNode} node 目标节点 - */ - function checkReadyState(node) { - for (var i = 0, len = node.children.length; i < len; i++) { - var child = node.children[i]; - - if (child instanceof ImportCommand) { - var target = engine.targets[child.name]; - if (!target && engine.options.missTarget === 'error') { - throw new Error('[ETPL_MISS_TARGET]' + child.name + ', when imported by ' + targetName); - } - - readyState = readyState && target && target.isReady(engine); - } else if (child instanceof Command) { - checkReadyState(child); - } - } - } - - if (this.applyMaster(this.master)) { - checkReadyState(this); - readyState && (this.state = TargetState.READY); - return readyState; - } - }; - - /** - * 获取target的renderer函数 - * - * @return {function(Object):string} renderer函数 - */ - TargetCommand.prototype.getRenderer = function () { - if (this.renderer) { - return this.renderer; - } - - if (this.isReady()) { - // console.log(this.name + ' ------------------'); - // console.log(RENDERER_BODY_START + RENDER_STRING_DECLATION - // + this.getRendererBody() - // + RENDER_STRING_RETURN); - - /* jshint -W054 */ - var realRenderer = new Function( - 'data', - 'engine', - [RENDERER_BODY_START, RENDER_STRING_DECLATION, this.getRendererBody(), RENDER_STRING_RETURN].join('\n') - ); - /* jshint +W054 */ - - var engine = this.engine; - this.renderer = function (data) { - return realRenderer(data, engine); - }; - - return this.renderer; - } - - return null; - }; - - /** - * 将target节点对象添加到语法分析环境中 - * - * @inner - * @param {TargetCommand} target target节点对象 - * @param {Object} context 语法分析环境对象 - */ - function addTargetToContext(target, context) { - context.target = target; - - var engine = context.engine; - var name = target.name; - - if (engine.targets[name]) { - switch (engine.options.namingConflict) { - /* jshint ignore:start */ - case 'override': - engine.targets[name] = target; - context.targets.push(name); - case 'ignore': - break; - /* jshint ignore:end */ - default: - throw new Error('[ETPL_TARGET_EXISTS]' + name); - } - } else { - engine.targets[name] = target; - context.targets.push(name); - } - } - - /** - * target节点open,解析开始 - * - * @param {Object} context 语法分析环境对象 - */ - TargetCommand.prototype.open = function (context) { - autoCloseCommand(context); - Command.prototype.open.call(this, context); - this.state = TargetState.READING; - addTargetToContext(this, context); - }; - - /** - * Var节点open,解析开始 - * - * @param {Object} context 语法分析环境对象 - */ - VarCommand.prototype.open = - /** - * Use节点open,解析开始 - * - * @param {Object} context 语法分析环境对象 - */ - UseCommand.prototype.open = function (context) { - context.stack.top().addChild(this); - }; - - /** - * Block节点open,解析开始 - * - * @param {Object} context 语法分析环境对象 - */ - BlockCommand.prototype.open = function (context) { - Command.prototype.open.call(this, context); - context.stack.find(function (node) { - return node.blocks; - }).blocks[this.name] = this; - }; - - /** - * elif节点open,解析开始 - * - * @param {Object} context 语法分析环境对象 - */ - ElifCommand.prototype.open = function (context) { - var elseCommand = new ElseCommand(); - elseCommand.open(context); - - var ifCommand = autoCloseCommand(context, IfCommand); - ifCommand.addChild(this); - context.stack.push(this); - }; - - /** - * else节点open,解析开始 - * - * @param {Object} context 语法分析环境对象 - */ - ElseCommand.prototype.open = function (context) { - var ifCommand = autoCloseCommand(context, IfCommand); - ifCommand.addChild(this); - context.stack.push(this); - }; - - /** - * import节点open,解析开始 - * - * @param {Object} context 语法分析环境对象 - */ - ImportCommand.prototype.open = function (context) { - this.parent = context.stack.top(); - this.target = context.target; - Command.prototype.open.call(this, context); - this.state = TargetState.READING; - }; - - /** - * 节点解析结束 - * 由于use节点无需闭合,处理时不会入栈,所以将close置为空函数 - * - * @param {Object} context 语法分析环境对象 - */ - UseCommand.prototype.close = - /** - * 节点解析结束 - * 由于var节点无需闭合,处理时不会入栈,所以将close置为空函数 - * - * @param {Object} context 语法分析环境对象 - */ - VarCommand.prototype.close = function () {}; - - /** - * 节点解析结束 - * - * @param {Object} context 语法分析环境对象 - */ - ImportCommand.prototype.close = function (context) { - Command.prototype.close.call(this, context); - this.state = TargetState.READED; - }; - - /** - * 节点闭合,解析结束 - * - * @param {Object} context 语法分析环境对象 - */ - TargetCommand.prototype.close = function (context) { - Command.prototype.close.call(this, context); - this.state = this.master ? TargetState.READED : TargetState.APPLIED; - context.target = null; - }; - - /** - * 节点自动闭合,解析结束 - * ImportCommand的自动结束逻辑为,在其开始位置后马上结束 - * 所以,其自动结束时children应赋予其所属的parent - * - * @param {Object} context 语法分析环境对象 - */ - ImportCommand.prototype.autoClose = function (context) { - // move children to parent - var parentChildren = this.parent.children; - parentChildren.push.apply(parentChildren, this.children); - this.children.length = 0; - - // move blocks to target - /* eslint-disable guard-for-in */ - for (var key in this.blocks) { - this.target.blocks[key] = this.blocks[key]; - } - /* eslint-enable guard-for-in */ - this.blocks = {}; - - // do close - this.close(context); - }; - - /** - * 节点open前的处理动作:节点不在target中时,自动创建匿名target - * - * @param {Object} context 语法分析环境对象 - */ - Command.prototype.beforeOpen = - /** - * 文本节点被添加到分析环境前的处理动作:节点不在target中时,自动创建匿名target - * - * @param {Object} context 语法分析环境对象 - */ - TextNode.prototype.beforeAdd = function (context) { - if (context.stack.bottom()) { - return; - } - - var target = new TargetCommand(generateGUID(), context.engine); - target.open(context); - }; - - /** - * 节点open前的处理动作:target 不需要自动创建target,所以清空方法 - * - * @param {Object} context 语法分析环境对象 - */ - TargetCommand.prototype.beforeOpen = function () {}; - - /** - * 获取renderer body的生成代码 - * - * @return {string} 生成代码 - */ - ImportCommand.prototype.getRendererBody = function () { - this.applyMaster(this.name); - return Command.prototype.getRendererBody.call(this); - }; - - /** - * 获取renderer body的生成代码 - * - * @return {string} 生成代码 - */ - UseCommand.prototype.getRendererBody = function () { - return stringFormat( - '{0}engine.render({2},{{3}}){1}', - RENDER_STRING_ADD_START, - RENDER_STRING_ADD_END, - stringLiteralize(this.name), - compileVariable(this.args, this.engine).replace(/(^|,)\s*([a-z0-9_]+)\s*=/gi, function (match, start, argName) { - return (start || '') + stringLiteralize(argName) + ':'; - }) - ); - }; - - /** - * 获取renderer body的生成代码 - * - * @return {string} 生成代码 - */ - VarCommand.prototype.getRendererBody = function () { - if (this.expr) { - return stringFormat('v[{0}]={1};', stringLiteralize(this.name), compileVariable(this.expr, this.engine)); - } - - return ''; - }; - - /** - * 获取renderer body的生成代码 - * - * @return {string} 生成代码 - */ - IfCommand.prototype.getRendererBody = function () { - return stringFormat( - 'if({0}){{1}}', - compileVariable(this.value, this.engine), - Command.prototype.getRendererBody.call(this) - ); - }; - - /** - * 获取renderer body的生成代码 - * - * @return {string} 生成代码 - */ - ElseCommand.prototype.getRendererBody = function () { - return stringFormat('}else{{0}', Command.prototype.getRendererBody.call(this)); - }; - - /** - * 获取renderer body的生成代码 - * - * @return {string} 生成代码 - */ - ForCommand.prototype.getRendererBody = function () { - return stringFormat( - /* jshint ignore:start */ - '' + - 'var {0}={1};' + - 'if({0} instanceof Array)' + - 'for (var {4}=0,{5}={0}.length;{4}<{5};{4}++){v[{2}]={4};v[{3}]={0}[{4}];{6}}' + - 'else if(typeof {0}==="object")' + - 'for(var {4} in {0}){v[{2}]={4};v[{3}]={0}[{4}];{6}}', - /* jshint ignore:end */ - generateGUID(), - compileVariable(this.list, this.engine), - stringLiteralize(this.index || generateGUID()), - stringLiteralize(this.item), - generateGUID(), - generateGUID(), - Command.prototype.getRendererBody.call(this) - ); - }; - - /** - * 获取renderer body的生成代码 - * - * @return {string} 生成代码 - */ - FilterCommand.prototype.getRendererBody = function () { - var args = this.args; - return stringFormat( - '{2}fs[{5}]((function(){{0}{4}{1}})(){6}){3}', - RENDER_STRING_DECLATION, - RENDER_STRING_RETURN, - RENDER_STRING_ADD_START, - RENDER_STRING_ADD_END, - Command.prototype.getRendererBody.call(this), - stringLiteralize(this.name), - args ? ',' + compileVariable(args, this.engine) : '' - ); - }; - - /** - * 添加命令类型 - * - * @inner - * @param {Engine} engine etpl引擎 - * @param {string} name 命令名称 - * @param {Function} Type 处理命令用到的类 - */ - function addCommandType(engine, name, Type) { - engine.commandTypes[name] = Type; - Type.prototype.type = name; - } - - /** - * etpl引擎类 - * - * @constructor - * @param {Object=} options 引擎参数 - * @param {string=} options.commandOpen 命令语法起始串 - * @param {string=} options.commandClose 命令语法结束串 - * @param {string=} options.variableOpen 变量语法起始串 - * @param {string=} options.variableClose 变量语法结束串 - * @param {string=} options.defaultFilter 默认变量替换的filter - * @param {boolean=} options.strip 是否清除命令标签前后的空白字符 - * @param {string=} options.namingConflict target名字冲突时的处理策略 - * @param {string=} options.missTarget target不存在时的处理策略 - */ - function Engine(options) { - this.options = { - commandOpen: '', - commandSyntax: /^\s*(\/)?([a-z]*)\s*(?::([\s\S]*))?$/, - variableOpen: '${', - variableClose: '}', - defaultFilter: 'html' - }; - - this.commandTypes = {}; - addCommandType(this, 'target', TargetCommand); - addCommandType(this, 'block', BlockCommand); - addCommandType(this, 'import', ImportCommand); - addCommandType(this, 'use', UseCommand); - addCommandType(this, 'var', VarCommand); - addCommandType(this, 'for', ForCommand); - addCommandType(this, 'if', IfCommand); - addCommandType(this, 'elif', ElifCommand); - addCommandType(this, 'else', ElseCommand); - addCommandType(this, 'filter', FilterCommand); - - this.config(options); - this.targets = {}; - this.filters = extend({}, DEFAULT_FILTERS); - } - - /** - * 配置引擎参数,设置的参数将被合并到现有参数中 - * - * @param {Object} options 参数对象 - * @param {string=} options.commandOpen 命令语法起始串 - * @param {string=} options.commandClose 命令语法结束串 - * @param {string=} options.variableOpen 变量语法起始串 - * @param {string=} options.variableClose 变量语法结束串 - * @param {string=} options.defaultFilter 默认变量替换的filter - * @param {boolean=} options.strip 是否清除命令标签前后的空白字符 - * @param {string=} options.namingConflict target名字冲突时的处理策略 - * @param {string=} options.missTarget target不存在时的处理策略 - */ - Engine.prototype.config = function (options) { - extend(this.options, options); - }; - - /** - * 解析模板并编译,返回第一个target编译后的renderer函数。 - * - * @param {string} source 模板源代码 - * @return {function(Object):string} renderer函数 - */ - Engine.prototype.compile = - /** - * 解析模板并编译,返回第一个target编译后的renderer函数。 - * 该方法的存在为了兼容老模板引擎 - * - * @param {string} source 模板源代码 - * @return {function(Object):string} renderer函数 - */ - Engine.prototype.parse = function (source) { - /* jshint -W054 */ - var renderer = new Function('return ""'); - /* jshint +W054 */ - - if (source) { - var parseInfo = parseSource(source, this); - var targetNames = parseInfo.targets; - - if (targetNames.length) { - renderer = this.targets[targetNames[0]].getRenderer(); - } - } - - return renderer; - }; - - /** - * 根据target名称获取编译后的renderer函数 - * - * @param {string} name target名称 - * @return {function(Object):string} renderer函数 - */ - Engine.prototype.getRenderer = function (name) { - var target = this.targets[name]; - if (!target) { - console.log(name); - } - if (target) { - return target.getRenderer(); - } - }; - - /** - * 执行模板渲染,返回渲染后的字符串。 - * - * @param {string} name target名称 - * @param {Object=} data 模板数据。 - * 可以是plain object, - * 也可以是带有 {string}get({string}name) 方法的对象 - * @return {string} 渲染结果 - */ - Engine.prototype.render = function (name, data) { - var renderer = this.getRenderer(name); - if (renderer) { - return renderer(data); - } - - return ''; - }; - - /** - * 增加命令 - * - * @param {string} name 命令名称 - * @param {Object|Function} command 命令对象或命令类 - */ - Engine.prototype.addCommand = function (name, command) { - var CommandType = command; - if ('function' !== typeof CommandType) { - CommandType = function (value, engine) { - Command.call(this, value, engine); - }; - - CommandType.prototype = command; - } - - inherits(CommandType, Command); - addCommandType(this, name, CommandType); - }; - - /** - * 增加过滤器 - * - * @param {string} name 过滤器名称 - * @param {Function} filter 过滤函数 - */ - Engine.prototype.addFilter = function (name, filter) { - if ('function' === typeof filter) { - this.filters[name] = filter; - } - }; - - /** - * 解析源代码 - * - * @inner - * @param {string} source 模板源代码 - * @param {Engine} engine 引擎实例 - * @return {Array} target名称列表 - */ - function parseSource(source, engine) { - var commandOpen = engine.options.commandOpen; - var commandClose = engine.options.commandClose; - var commandSyntax = engine.options.commandSyntax; - - var stack = new Stack(); - var analyseContext = { - engine: engine, - targets: [], - stack: stack, - target: null, - deps: {} - }; - - // text节点内容缓冲区,用于合并多text - var textBuf = []; - - /** - * 将缓冲区中的text节点内容写入 - * - * @inner - */ - function flushTextBuf() { - var text; - if (textBuf.length > 0 && (text = textBuf.join(''))) { - var textNode = new TextNode(text, engine); - textNode.beforeAdd(analyseContext); - - stack.top().addChild(textNode); - textBuf = []; - - if (engine.options.strip && analyseContext.current instanceof Command) { - textNode.value = text.replace(/^[\x20\t\r]*\n/, ''); - } - analyseContext.current = textNode; - } - } - - var NodeType; - - parseTextBlock( - source, - commandOpen, - commandClose, - 0, - - function (text) { - // 内文本的处理函数 - var match = commandSyntax.exec(text); - var nodeName; - - // 符合command规则,并且存在相应的Command类,说明是合法有含义的Command - // 否则,为不具有command含义的普通文本 - if ( - match && - (nodeName = match[2] || 'target') && - (NodeType = engine.commandTypes[nodeName.toLowerCase()]) && - typeof NodeType === 'function' - ) { - // 先将缓冲区中的text节点内容写入 - flushTextBuf(); - - var currentNode = analyseContext.current; - if (engine.options.strip && currentNode instanceof TextNode) { - currentNode.value = currentNode.value.replace(/\r?\n[\x20\t]*$/, '\n'); - } - - if (match[1]) { - currentNode = autoCloseCommand(analyseContext, NodeType); - } else { - currentNode = new NodeType(match[3], engine); - - if ('function' === typeof currentNode.init) { - currentNode.init(analyseContext); - } - - currentNode.beforeOpen(analyseContext); - currentNode.open(analyseContext); - } - - analyseContext.current = currentNode; - } else if (!/^\s*\/\//.test(text)) { - // 如果不是模板注释,则作为普通文本,写入缓冲区 - textBuf.push(commandOpen, text, commandClose); - } - - NodeType = null; - }, - - function (text) { - // 外,普通文本的处理函数 - // 普通文本直接写入缓冲区 - textBuf.push(text); - } - ); - - flushTextBuf(); // 将缓冲区中的text节点内容写入 - autoCloseCommand(analyseContext); - - var deps = []; - for (var key in analyseContext.deps) { - deps.push(key); - } - - return { - targets: analyseContext.targets, - deps: deps - }; - } - - // export object - var etpl = new Engine(); - etpl.Engine = Engine; - etpl.version = '3.2.0'; - etpl.Command = Command; - etpl.util = { - inherits: inherits, - stringFormat: stringFormat, - stringLiteralize: stringLiteralize, - compileVariable: compileVariable, - parseSource: parseSource - }; - etpl.TextNode = TextNode; - - if (typeof exports === 'object' && typeof module === 'object') { - // For CommonJS - exports = module.exports = etpl; - } else if (typeof define === 'function' && define.amd) { - // For AMD - define(etpl); - } else { - // For - diff --git a/packages/vmind/__tests__/browser/src/App.tsx b/packages/vmind/__tests__/browser/src/App.tsx deleted file mode 100644 index 5e1b168c..00000000 --- a/packages/vmind/__tests__/browser/src/App.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import * as React from 'react'; -import { Home } from './pages/Home'; -import { LayoutWrap } from './Layout'; -import './index.scss'; - -export default function App() { - return ( - - - - ); -} diff --git a/packages/vmind/__tests__/browser/src/Layout.tsx b/packages/vmind/__tests__/browser/src/Layout.tsx deleted file mode 100644 index 64dcd6cb..00000000 --- a/packages/vmind/__tests__/browser/src/Layout.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import * as React from 'react'; -import { PageHeader, Button, Layout } from '@arco-design/web-react'; - -export function LayoutWrap(props: any) { - return ( - - - {props.children} - - ); -} diff --git a/packages/vmind/__tests__/browser/src/constants/capcutData.ts b/packages/vmind/__tests__/browser/src/constants/capcutData.ts deleted file mode 100644 index d531e793..00000000 --- a/packages/vmind/__tests__/browser/src/constants/capcutData.ts +++ /dev/null @@ -1,672 +0,0 @@ -/* eslint-disable max-len */ -export const capcutMockData: any[] = [ - { - text: '地图带你看懂法国大选。 2024 年法国议会选举结果揭示了法国社会的撕裂,没有任何党派能获得 577 个议题中的绝对多数。左翼联盟、新人民战线执政党中间派联盟和极右翼国民联盟分别占据 182 席、 168 席、 143 席。除了这三家以外,其余党派席位最多的也只有右翼共和党的 48 席,因此左翼联盟、执政党和极右翼算是形成了三分天下的格局。今天我们便结合地图和数据,聊一聊法国大选。本期视频的所有分析均为个人观点,仅供参考。在开始之前,我先快速的放一下各党派在几个主要政治议题上的立场,有需要的朋友可以截图保存一下。', - fieldInfo: ['党派', '席位数'] - }, - { - text: '现在我们进入正题,首先需要说明法国的选区制度,全国共有 577 个选区,每个选区包括 10- 12 万的人口密集的地方选区就小,人口稀少的区域选区域就大。因此地图上各个政党所占的面积并不能与其票数划等号,而是要看具体的选区分布在人口密集的大城市,譬如巴黎、里昂、马赛,虽然看起来面积小,实际上选区数量很多,占的比重很大。', - fieldInfo: ['选区数量', '选区人口范围', '城市'] - }, - { - text: '尽管如此,马克龙强调市场自由化,支持创新和创业,对欧盟一体化和国际合作的开放还是得到了许多大城市选民的支持。大城市仍然是马克龙的重要支持来源。除了大城市外,我们刚才提到过法国东北地区工业的衰落,其实在法国的西北地区又是另一番景象。之前那张关于中小工业城市分布的途中,我们可以清晰的看到西北地区的工业对于当代法国的重要性,当然工业只是一个缩影。我们再来看失业率地图,黄色代表 2022 年失业率最低的 20 个省,橙色是 21- 40 低的省份,可以看出西北部地区的失业率明显低于东北部。再看移民分布地图,西北部地区因为大城市少,而且离地中海更远,接受的移民也比较少。综上,西北地区的经济较为稳定,而且不受移民带来的社会问题困扰,日子过得比较舒服,这些选民对于未来持乐观态度,也成为了马克龙的另一主要票仓。除了以上三大势力外,浅蓝色代表的右翼共和党也获得了 48 个席位。他们的支持者主要位于经济同样比较富足,但是政治观点更为保守的地区。这里我就不展开讲总结。本期视频我们从法国官方的报告与数据出发,从经济与人口地理的角度分析了法国的大选结果。左翼联盟新人民战线以大城市为根基拿下最多的 182 席,马克龙的执政党中间派联盟则凭借大城市和西北地区的支持者取得了 168 席。乐旁的极右翼国民联盟则主要扎根于东北与东南地区,以 143 起居于第三这样的三分割据局面使得法国议会缺乏绝对多数,并且三方势力相差不大。可以预见在未来法案的通过上会面临极大的阻碍。举例来说,左翼和极右翼甚至存在联手撤回延迟退休法案的理论可能。虽然实际操作起来也面临很多困难,双方都不太愿意和对方合作,但即便是理论,可能也已经能表明未来的不确定性。', - fieldInfo: ['政党', '席位数', '地区'] - }, - { - text: '住手,你们住手,不要再砸了,你们不要再砸了。万万没想到,瑞幸和库迪的九块九大战,快把星巴克给卷死了。前段时间,星巴克公布了第二季度财报,营业收入 85.6 亿美元,同比下降了2%,净利润大跌15%,股票市值一天内蒸发了 1, 150 亿人民币。另一方面,星巴克的咖啡也在悄悄降价。如果你手机上有星巴克的APP,几乎每天都会收到 5 张以上的优惠券,比如满60.10、满75.15、任意新冰乐 7 折等等,部分单品的团购价优惠下来低至 9 元。终于, 9.9 的风还是卷到了星巴克。在过去很长一段时间里,星巴克是小资生活的代表,一杯咖啡动辄几十块钱,也只有电视剧里那些白领们和云淡风轻的走进去,熟练地点一杯拿铁,找个位置坐下,悠闲地打开电脑喝咖啡。岁月静好人间,值得有人点一杯星巴克,朋友圈能发十几条动态,有人为了抢星巴克限量版的猫爪杯,能通宵排队,甚至大打出手。', - fieldInfo: ['营业收入', '营业收入同比', '净利润变化'] - }, - { - text: '星巴克在中国国内的定位一直都是高端咖啡品牌,但是很多人不知道的是,它在国外的定位其实是平民咖啡,在美国一杯星巴克大杯美式咖啡大概是 2.95 美元,而根据美国劳工部的统计,美国平均月工资是 6, 228 美元,最低时薪是 7.25 美元,这是啥意思呢? 1002.65 美元的星巴克还不到美国人平均月收入的 2, 000 份之一,也就是平常坐一趟地铁的价格吧。而在中国市场,星巴克的饮品价格普遍要超过 30 元一杯。如果按照美国的对应消费力,它的主力消费人群应该是月薪至少6万元的人。', - fieldInfo: ['咖啡价格', '平均工资', '最低时薪'] - }, - { - text: '2019 年2月,星巴克就发售了一款粉爪杯,那它长这样?售价 199 元,但是在网上最高炒到了 1, 800 元。有人寒冬腊月在星巴克门口通宵排队,就是为了买到这么一个杯子。还有人因为排队顺序大打出手,最后喜提免费食宿。靠着这些营销方法,在很长一段时间里,普通人对于星巴克是仰望的,觉得去星巴克消费是很有品的,再往前推十年,你甚至可以看到有人去星巴克点一杯咖啡就可以发十几条朋友圈的各种角度各种场景,还要配文低调有实力,天天喝都喝腻了好像呢?甚至有人专门发帖认真的提问,第一次去星巴克主要注意什么?怎么装的像老手呢?我一开始还以为是来搞笑和反讽的,没想到点开帖子此还真的是教大家怎么去星巴克抓老手的,包括但不限于怎么下载APP,问店员这周用的是啥肚子萃取时间是多少?张度和烘焙度怎么样?要不要加糖和加奶?这唬得我一愣一愣的,但是时过境迁,如今星巴克已经支棱不起来了,一边是疯狂降价买三送一搞促销,一边是继续下沉到四五线城市。', - fieldInfo: ['商品', '售价', '最高价'] - }, - { - text: '星巴克近期发布的 2025 中国战略愿景当中,中国总部直言不讳地表示,星巴克看中的不仅仅是全国 300 多个 d 级市场,也包括近 3, 000 个县域市场。星巴克的愿景也体现在它的选址变化上,它在中国的门店已经突破了 7, 000 家,但是这开店位置却让人越来越看不懂了。', - fieldInfo: ['市场级别', '市场数量'] - }, - { - text: '一家卖咖啡的店。星巴克没落的第二个原因是当代年轻人更偏向实用消费主义。坦白讲,大部分人喝咖啡其实就是为了遮住那点咖啡因,好让自己在一天的工作中保持清醒。你跟不懂咖啡的人聊什么豆子产地、风味,他只会回你一句,冰美式和中药有什么区别啊?如果你面前有三杯咖啡,第一杯是星巴克的 30 元美式,后面两杯是瑞幸库里的 9 块 9 咖啡也让你买单,大部分人都会选择后面两个,当然也有人会吹星巴克的豆子有多么多么的好,所以它买的这么贵也是值得的。', - fieldInfo: ['品牌', '价格'] - }, - { - text: '咱聊一下最新的重磅数据,反正挺复杂的,国内6月 M2 同比增长6.2%,预期6.8%。 M1 同比下滑5%,预期下滑5.4%。 M M 一剪刀差走扩至 11.2% 再创新高。6月人民币存款增加 2.46 万亿,其中居民存款增加 2.14 万亿,增量几乎全都是老百姓存的。与 M1 的下滑相对,上半年人民币存款总共增加了 11.46 万亿,其中居民存款增加 9.27 万亿。大头也是老百姓,但增速逐月放缓。', - fieldInfo: ['指标', '同比增长', '预期增长'] - }, - { - text: '7月 11 日晚上,由于美国公布的 CPI 数据超预期回落,让市场对美联储降息预期大幅升温。从这场所的美联储观察工具看,虽然7月 30 一日的美联储议息会议,市场预期不降息的概率仍然是达到93%,但9月 18 日的美联储议息会议,市场预期降息一次的概率是达到90%,这比起上个月概率是上升很多。不过我还是得强调一下,这个美联储观察工具将来只能反映市场当前的预期态度,不能拿来预测美联储货币政策,因为这个概率是会不断随着最新经济数据变化而变化。比如要是下个月美国 CPI 出现较大反弹,那9月降息的概率就会大幅下降。而这次市场预期美联储9月降息的概率大幅上升,主要有两个原因,一、美联储鲍威尔在7月 10 日的国会听证会上整体态度偏戈。鲍威尔称,劳动力市场降温意味着持续高通胀的潜在源头已经减弱。他还表示,就业市场的进一步疲软可能是不必要的,也是不受欢迎的。鲍威尔说,通胀方面的工作还没有完成,我们还有更多工作要做,但与此同时,我们需要注意劳动力市场现况,我们已经观察到劳动力市场出现相当明显的疲软,有着新美联储通讯社之称的知名记者尼奇默尔斯认为,鲍威尔本周其实已暗示美联储的利率政策即将开始改变方向。', - fieldInfo: ['时间', '预计降息概率'] - }, - { - text: '第二个原因是7月 11 日晚上 8 点半美国劳工部公布的通胀数据,6月 CPI 是同比上涨3%,市场预期值3.1%,前值3.3%。这次美联储 CPI 回落,更关键是 CPI 环比是负增长0.1%,这是美国 2020 年5月以来 CPI 环比首次出现下降,而且美国 2020 年5月还是因为疫情导致的 CPI 骤降,是比较特殊时期,所以美国 CPI 环比负增长确实不太常见。但仔细看美国 VI 月 CPI 的具体构成,感觉猫腻还是不少的。', - fieldInfo: ['经济指标', '同比', '环比', '市场预期值', '前值'] - }, - { - text: '美国 VI 月 CPI 下降的主要贡献是汽油价格下跌。美国 VI 月汽油价格下跌了3.8%,抑制了当月通胀,抵消了食品和住房价格 0.2% 的上涨。比较诡异的是,美国原油期货价格6月是明明出现大幅上涨,这是因为原油期货价格传导到汽油价格有一些迟滞效应,但那样的话,下个月公布的 CPI 数据,汽油价格可能就得反弹了。要是下个月公布的 CPI 数据,汽油价格还继续下降,那就实在说不过去了。美国刨除能源和食品价格的核心通胀率6月是3.3%,但整体降幅还是低于CPI。', - fieldInfo: ['价格类别', '价格变动比例'] - }, - { - text: '美国通胀目前最顽固的就是服务业通胀,美国 VI 月服务业通胀仍然是同比上涨5%。美国毕竟是服务业为主的国家,服务业通胀还高居5%,美国要说自己已经控制住通胀,完全就是忽悠人。不过虽然美国大选临近,美国现在经济数据基本是为选型服务,比如已经假的不能再假的美国非农就业数据,美国 VI 月非农就业人口增加20.6万人,高于市场预期的 19 万人。然而美国同时把5月数据从 27.2 万人大幅下修至 21.8 万人,4月从 16.5 万人修正至10.8万人,修正后两个月合计较修正前减少 11.1 万人。', - fieldInfo: ['月份', '修正前就业人口增加', '修正后就业人口增加'] - }, - { - text: '我注意到虽然这次市场大幅提高了美联储9月降息概率,但美股和日股反而不涨反跌,纳斯达克在7月 11 日是下跌了2%,日股在7月 12 日也跟随下跌了2.45%。这是市场反身性效应的某种预演,股市炒的是预期,之前美股和日股是基于美联储降息预期,已经提前涨了一年多了,那么当美联储真正降息之后,市场是可能出现反身性效应,也就是所谓利好落地势利空的说法。当然股市走势千变万化,这也只是其中一种可能性。历史的参考例子,比如 2004 年美联储降息, 2006 年停止加息, 2007 年开始降息,但股市是一直涨到 2007 年底,随后自带危机爆发,股市开始大跌。我之前也梳理过,从 1980 年以来,美联储每次加息超过 5% 的幅度,首次加息后的 2- 4 年内都会爆发金融危机,这次美联储是 2022 年开始加息,所以按照历史路径, 2024 年到 2026 年是有可能爆发世界金融危机,这个结合当前国际局势和地缘形势,还是有挺大的可能性。', - fieldInfo: ['股市', '时间', '涨跌幅度'] - }, - { - text: '以前的小学空荡荡的,老年人养起了鸡鸭鹅狗,彻底荒废了整个黑龙江省, 10 年时间荒废了近六成,小学加起来有 1, 900 余所,整个东北十年荒废了 6, 800 余所小学,少了一半。', - fieldInfo: ['地区', '荒废比例', '荒废数量'] - }, - { - text: '而小学缺孩子这个趋势早已经蔓延至全国各地了。东部的兹西县,有的小学一个班只有一个学生。华南的徐文县,去年某小学开学,一年级也只有一个学生。中部人口大省河南,据测算, 2023- 2027 年小学学龄人口预计下降 200 多万人,缩水超两成,出现了基数的坍塌。从全国来看,基于学龄人口的预测显示,全国超 1, 400 个县域中,近九成县域小学学龄人口预计下滑,小学鹤岗化以谁也没想到的方式在扩散,从东北开始到大江南北,下一步可能是上海最新的总和生育率只有 0.6 了,该来的总是要来,从民政局冷冷清清到妇产科缺孩子,再到幼儿园关停潮,现在轮到了小学关停潮,这个传播链条还在扩散。', - fieldInfo: ['地区', '时间', '小学学龄人口变化'] - }, - { - text: '实际上,如果鹤岗化只是局限于教育领域,那还好说,但不是实际情况复杂的多楼市,像鹤岗那样房子白菜价的城市越来越多了,据不完全统计,至少有 10 个省 24 个城市陷入几万元买房的讨论。不是每平方米单价几万,而是一套房总价几万。网传广东惠州6万,广西南宁5万,山东东营4万,江苏南京3万,黑龙江大靶1万,这个传播势头在这轮楼市调整的加持下,现在已经来到了北京的外围,在京津两市的交界处,抹楼盘从 160 万元降到了 39 万,而且打了骨折还卖不出去。', - fieldInfo: ['城市', '房价'] - }, - { - text: '地方财力,之前鹤岗是全国第一个财政重整的地级市,甚至传出来停招公务员,现在过紧日子的城市也越来越多了。秦岭深处某县人口只有3万,编制人员却有 2, 194 名,一年的行政管理支出 1, 800 万,排在支出的首位。乌蒙山区某县一般公共预算收入 7 个亿,但工资预算总支出 26.3 亿,其中在职人员 20 亿,离退休人员 1.7 亿,零聘人员 4.6 亿。注意一个细节,在职人员数量 1.5 万,临聘人员数量 2.8 万。', - fieldInfo: ['地区', '人员数量', '人员类别', '公共预算收入', '工资预算支出'] - }, - { - text: '中国房价一度被视为坚不可摧的资产堡垒,更一度有京沪永远涨的口号。然而,自 2021 年以来,包括一线城市在内,房价持续低迷,深圳全市二手房均价距离 2021 年初的最高点跌幅已接近40%,而且还没有停下来的意思。各热点城市二手房每成交一套就要多出好几套,新增的房源和房价表现几乎完全正相关的是飞天茅台的价格, 53 度。', - fieldInfo: ['城市', '年份', '房价变化'] - }, - { - text: '飞天茅台在 2021 年巅峰时期,一瓶售价超过 3, 500 元,如今已经快跌破 2, 000 元,是巧合吗?过去一线城市房价和飞天茅台价格可以说是最硬的人民币计价资产了,甚至比现金还要优质。一线房产和飞天茅台在相当长的一段时间内有两个相同属性,一他们可以长期增值。二他们易于套现。然而现在情况出现了前所未有的变化,房价和飞天茅台两者双双在 2012 一年见顶。', - fieldInfo: ['年份', '价格'] - }, - { - text: '这不是巧合,其他很多数据也都在 2021 年见顶,比如另一个在 2021 年见顶并开始走下神坛的保时捷。保时捷销量的恶化还在加速,过去一年多,中国市场上保时捷的落地价可以说是惨不忍睹。近期,保时捷只卖 44 万的话题也引发了热议,其华南区域一家终端门店称, Macan 正在进行优惠促销,最高优惠 16 万,该车优惠后最低售价为 44.8 万。另外,在山东、湖北、江西、福建、浙江、江苏等多省份,该车均出现了 50 万元以下的裸车价,而报价达到 103.8 万的泰肯,现在 70 多万就可以拿下。目前,保时捷几乎所有的车型都可以打 7- 8 折。', - fieldInfo: ['车型', '落地价', '优惠金额', '报价'] - }, - { - text: '不只是保时捷,包括奔驰、宝马、奥迪在内的豪华汽车品牌今年以来都在大幅降价,但仍然止不住销量断崖式下降。 2024 年一季度,保时捷中国卖出 16, 340 辆,同比大幅下降24%。保时捷在今年 5 月份仅卖出 4, 633 辆,同比去年5月下滑高达40.61%。这说明保时捷在中国的销量正在加速减少。', - fieldInfo: ['时间范围', '销量', '同比'] - }, - { - text: '从两年前开始,特斯拉的 3 和 y 中国售价就是世界最低的, 7.98 万可以买到原本指导价 13.18 万的油电混动的卡罗拉。做一个对比,美国的油电混动卡罗拉的起售价是 2.35 万美元,有时甚至还要加价。按照美元人民币汇率计算,这款车的中国售价居然只有美国的一半水平,尽管配置存在差异,但不影响价格差异巨大的这个结论。除了卡罗拉外,汉兰达和凯美瑞也都大幅降价,即使是两年前,我们也很难想象只要 14.98 万人民币就可以买到最新款的混动版凯美瑞。', - fieldInfo: ['车型', '售价', '指导价', '美元起售价'] - }, - { - text: '中国物价的下降不仅仅体现在商品上,服务价格也是类似的趋势。举个例子,十多年前我常驻北京,当时经常在晚上十一二点从首都机场打车到西直门这样一段单程大约需要 110- 120 元,而现在滴滴大概只要 60- 70 元。如果是现在的出租车,价格和十多年前还是一样的。', - fieldInfo: ['交通方式', '时间', '价格区间'] - }, - { - text: '以工行、农行、建行发布的数据来看,其 2023 年个人住房贷款不良率分别由 2022 年的0.39%、0.51%、 0.37% 增长至了0.44%、 0.55% 和0.42%,基本都实现了两位数的增幅。大家别觉得这些小数字没啥大不了的,要知道这三家银行每一家的个人住房贷款余额都超过了5万亿,而且按揭贷款往年基本上都是银行稳赚不赔的买卖。供建农三家银行之所以每年能够包揽中国最赚钱企业的前三名,按揭贷款所带来的收益贡献巨大。现在这个优质资产的不良率正在以每年两位数的增幅增加。', - fieldInfo: ['银行', '年份', '不良率'] - }, - { - text: '你是银行,你慌不慌?而另一项作为佐证的数据则是法拍房,大家知道现在法拍房的数据有多夸张吗?根据瀚海研究院发布的数据显示, 2022 年全国共挂牌法拍房 98 万套,去年这个数字变成了 141 万套,增长了43.9%。而今年光是一季度的挂牌数量就已飙升至 60.44 万套通,同比上涨192%。这种局势下,银行要是再不改变断供处置策略,那今年的法拍数量估计有望达到 200 万。', - fieldInfo: ['对应时间', '法拍房数量', '同比'] - }, - { - text: '事实上,对银行来说,现在的行情即使他收了房也难以处置。我们以北京为例, 2023 年北京挂牌法拍房 8, 153 套,最终成交仅 2, 771 套,处置率为33%,这还是房价波动相对较小的北京,换到其他已经跌穿首付的地区,处置率恐怕只会更低。而在法拍流程里,流拍和拍品二次上拍都会在此前的价格上更进一步降低,这也导致了银行回款难度的进一步提高。虽然按照现在的规则,这部分差价是由贷款人承担的,但对方既然已经到了选择断供的地步,可想而知最终也执行不了多少。', - fieldInfo: ['地区', '法拍房数量', '成交量', '处置率'] - }, - { - text: '另一项推动银行改变策略的原因,则是今年4月 30 号的一场会议,这场会议确定了房地产行业未来一年的发展方向,统筹消化存量房产和优化增量住房,用大家都熟悉的话来说就是去库存。根据国家统计局的官方数据显示,截至 2024 年5月,我国未出售商品房为 7.46 亿平米,远超 5.9 亿平米的正常库存水平。而整个上半年,根据 CRS 的统计,全国 222 个城市总计出台了 341 项宽松政策,但带来的效果均不理想,无论是销售面积还是投资金额,仍然在持续走低。', - fieldInfo: ['时间', '商品房面积', '面积类别'] - }, - { - text: '大家好,我拍拍一名做过财经记者,大学老师和滴滴司届 up 主。 2023 年,我国汽车出口量达到了 491 万辆,超越日本成为世界第一汽车出口国。要知道,日本在这个位置坐了 8 年之久,而中国仅在过去三年时间里接连赶超韩国、德国、日本。中国汽车出口, 2021 年 202 万辆, 2022 年 311 万辆, 2023 年 491 万辆。', - fieldInfo: ['年份', '国家', '出口量'] - }, - { - text: '中国汽车转眼间为何变得这么受欢迎呢?又到底是哪些国家在购买中国汽车?中国卖给老外汽车又是些什么品牌和价位车型?本期视频就为大家打开中国汽车出口全球第一背后的真实数据。首先,中国出口的 491 万辆汽车都是些什么车呢?根据乘联会统计,中国乘用车出口量前十车型分别为名爵ZS、特斯拉 model y、奇瑞瑞虎7、特斯拉 model 3、名爵 4 EV、奇瑞虎5X、欧盟达名爵5、缤越元plus。除了特斯拉的 model y 和 model 3,其他车型国内指导价基本都在 10 万元左右,比如排名第一的名爵ZS,指导价 8- 9万元,最便宜的名爵 5 和缤越低到6万元就能拿下,可见中国汽车出海主打的还是一个性价比。', - fieldInfo: ['车型', '指导价'] - }, - { - text: '如果按燃油车、新能源车的分类来看, 2013 年中国出口燃油车 371 万辆,出口新能源汽车 120 万辆,新能源车占到出口总量的25%,虽然这个占比目前只有 1/ 4,但去年新能源出口增速是77.6%,势头不可谓不猛。', - fieldInfo: ['车辆类型', '年份', '出口量', '出口占比', '出口增速'] - }, - { - text: '那中国汽车出口都卖到了哪些国家呢? 2013 年中国汽车出口量前十的国家分别是,俄罗斯90.9万辆,墨西哥 41.5 万辆,比利时 21.7 万辆,澳大利亚 21.4 万辆,英国 21.4 万辆,沙特阿拉伯 21.3 万辆,菲律宾 17.2 万辆,泰国 16.9 万辆,阿联酋 15.9 万辆,西班牙 13.9 万辆。按地区来看的话,欧洲市场占中国汽车对外出口的38%,远超其他任何单一大洲,可见中国汽车正在得到全世界更多人的认可。', - fieldInfo: ['出口国家', '出口量'] - }, - { - text: '当然了,中国汽车出口世界第一,又不得不提议俄罗斯和墨西哥这两个国家可以说去年是把中国车买爆了。 203 年,中国对俄罗斯的汽车出口量从上一年度的 16 万辆暴增到了90.9万辆,增加了468%。在俄罗斯的新车市场中,第一名是俄罗斯品牌拉达,第二至第七名则全都是中国品牌,比如第二名是奇瑞金车,市场占有率11.2%。第三名是哈弗,新车,市场占有率10.6%。俄罗斯卖最好的新能源车也是来自中国的极客。目前中国汽车已经占据俄罗斯新车市场的51%,可以说是拿下了半壁江山。而对于中国而言,仅俄罗斯一个国家 203 年就贡献了中国汽车出口增量的42%,甚至有俄罗斯本土汽车经销商预测, 2024 年中国汽车可能占据俄罗斯新车份额的80%。', - fieldInfo: ['年份', '出口量', '占有率'] - }, - { - text: '有人说俄罗斯满爆中国汽车是因为欧美的贸易封锁,这也步无道理。 2013 年在俄罗斯的新车市场中,欧洲的市场份额从 18% 降到了4%,韩国从 16% 降到了6%,日本从 12% 降到了5%,和欧日韩都是对俄罗斯实行了限制出口国家,其中就包括了部分汽车,可以说中国汽车吃下的正是欧日韩在俄罗斯丢掉市场。', - fieldInfo: ['国家', '新市场份额', '旧市场份额'] - }, - { - text: '当然了,除了俄罗斯之外,其他国家也在买中国汽车,比如墨西哥。 2013 年,墨西哥所有销售汽车中有 25% 来自中国,而在 6 年前这个数字为0。澳大利亚也在不断买中国汽车,最受澳大利亚欢迎的中国汽车品牌是名爵,去年卖了 5.8 万辆。在新能源车市场,比亚迪则占据了澳大利亚的新能源汽车 14% 份额,位于第二名。', - fieldInfo: ['国家', '年份', '中国汽车占比'] - }, - { - text: '当然,这里也不得不提一下第一名,那就是特斯拉市场份额高达53%,在东南亚市场,中国车企业销量在 2013 年同样实现小幅上升,最典型的就是泰国,在泰国的新能源车市场,中国品牌占据了 80% 的份额,比如比亚迪的原 plus 就是泰国的新能源车爆款,那到底是什么原因让中国汽车爆卖呢?基本还可以总结为三方面原因,首先是全球疫情爆发,由于中国汽车的供应链完善,疫情期间仍能维持稳定生产,而日韩这些过去的出口大户受疫情影响,芯片、钢材、橡胶等关键原材料短缺,不仅汽车产能下降,而且成本升高,这就让中国汽车更具性价比。而随着中国国内新能源汽车市场越来越卷出海,成为不少中国车企的选择,比如比亚迪 2023 年进入全球 58 个国家和地区,出口汽车 24 万辆,是上一年度的 3.34 倍。在泰国新能源车市场,比亚迪单独占到了 40% 的市场份额,是名副其实的泰国新能源汽车销冠。而且中国新能源汽车并非只是具备成本优势,汽车与 AI 互联网融合的智能化更是中国车企的拿手好戏。从豪华配置到智能大屏,从外观设计到内饰比拼,这让中国新能源汽车的溢价能力明显变高。2019 年中国新能源汽车平均出口价格每量只有 5, 000 美元, 2022 年涨到了 2.2 万美元。比如比亚迪汉在欧洲发布时价格接近 50 万人民币,是国内售价的两倍多。在泰国、以色列、新西兰等多个国家,比亚迪也已经是新能源汽车的销售冠军。不过,中国汽车征服海外虽然是一部励志爽门,但其实有不少挑战。', - fieldInfo: ['品牌', '市场份额'] - }, - { - text: '其实中国汽车出海不禁让人想起曾经的中国摩托车出海。 2000 年前后,中国摩托车进军越南,一度占据了 80% 的越南市场份额,但不到三四年时间,却被日本摩托车打得片甲不留。如今日本摩托车在越南占据 95% 的份额,而中国摩托车百分之一都不到。曾经也有大量中国摩托车车企在越南建厂,但却形成了恶性竞争的关系,疯狂打价格战,导致服务和质量越来越差,越南的中国摩托车车企仿佛是飘在越南的。', - fieldInfo: ['时间', '摩托车品牌', '市场份额'] - }, - { - text: '每个中国制造品牌的背后都有一批优秀的零部件供应商,像汇川技术、恒力液压、先导智能、顺域光学、军胜电子这样的零部件企业也是中国制造的骄傲,只不过知名度无法媲美消费者直接接触的终端品牌。按照官方的口径,中国规模以上也就是年销售收入 2, 000 万以上的制造企业有 44.5 万家。至于中国一共有多少家制造业企业存在各种口径,从 300 多万家到近千万家不等。万德资讯给我的数据是,中国大约有 622 万家存续的制造业企业。海之在线是一家总部在上海,聚焦中间品贸易的数字化平台,连接着 70 万家工厂,他们给我的数据是,中国规模以下的中小微工厂大致有 400 万家。这期节目标题中的 400 万家沉默工厂处处记载于此。海志在线的创始人、 CEO 佘莹对我说,从平台看, 40% 的工厂规模不到 50 人,近 90% 的工厂不到 500 人,大部分工厂的年产值在数百万元到数千万元。如果和大企业比,你可以说他们就是一个个的小做法。如果走进去可能会看到老旧的机器上油漆斑驳,可以看到生产计划就用记号笔写在车间墙上挂着的白板上,甚至会发现用破洞的木板随意围搭起来的厕所,待客的茶水里则混杂着浓浓的机油味。但他们就是中国制造业毛细血管层面的供应链小节点,勤勤恳恳的维护设备、搞生产,他们最在意的是生存,是接到订单以及在满足客户之后能够完整的收到货款。', - fieldInfo: ['企业类型', '企业规模', '企业数量'] - }, - { - text: '有报道称,一些地方政府面临收入短缺,要求企业缴纳可追溯到 1990 年代的税单。这种紧缩政策在房地产市场寻找几步的时刻,会损害上信心和经济。高盛认为,中国中央政府可以通过加大对西方政府的财政支持来切断机房政府无紧缩所出现的负面溢出效应,那如同美国监管机构在次贷危机期间通过成为最后贷款人来切断金融危机的传播一样。关于出口和机产之间的分化,可以同中国的金属生产中得到证实啊。铝和其他废且金属的产量相比疫情之前上升了 20% 以上,而钢铁的产量下降了 5% 到10%。在房产方面,开发商越来越依赖银行融资, 5 月份对开发商的银行贷款同比增长了19%。而随着房地产销售的下滑,房贷和存款跟预付款的比例同比下降了 30% 到40%。高盛银行股票团队预计从 2024 年到 2026 年,房地产贷款将增加 4.5 万亿人民币,以完全期待收缩的房地产债券和设防的影子银行贷款。', - fieldInfo: ['时间', '金属种类', '产量变化'] - }, - { - text: '中国经济分化并不止于出口和房地产基础设施的固定资产投资。细分项显示,建立燃气和水的生产投资已同疫情前水平翻倍,远远超过了整体的基建的投资增长。因为中国政府首先优先考虑农源供用安全和脱碳。在零售销售当中, 5 月份代线销售商品同比增长13%,而餐饮销售仅增长5%,线下商品的销售保持在去年同期的水平。', - fieldInfo: ['经济领域', '同比增长'] - }, - { - text: '7月中旬将举行两场重要的政策会议,前者将专注于评估当前的经济状况,并为今年剩余时间制定周期性的政策安排。后者将专注于至少未来五年解决经济结构当中的重大改革议程。鉴于一季度的实际, g GPT 同比增长5.3%,而且去年基数较低,那么 G2 季度增长可能高于5%,政府的全年增长目标仍然在轨道上。', - fieldInfo: ['季度', '同比'] - }, - { - text: '高盛认为,政策执行者不会在 7 月份的首场会议上释放任何重大的刺激措施,宏观政策的证件可能大于维持当前立场和执行现有的政策。另一方面,鉴于 5 月份宣布的最后一批措施不及预期,可能存在引入更多期产宽松政策的可能性。在货币政策方面,资本外流的担忧和银行利润率的下降限制了央行降息的能力。高盛预计三季度将降息 25 个基减,以适应大量政府债券发行,并预计季四季度9月首次降息后会再降息 10 个期减。在财政政策方面,高盛预计政府债券的发行将在下半年显著增加,以完成年初发行缓慢的全年配额。除非增长急剧放缓,否则基建的投资不会加速太多。对于政府 3 月份公布的预算计划,高盛虽然预测中国的增强型的弹盛赤字从去年的 gdp 11.2% 会适度扩大到今年的11.9%,但由于今年出口强计可能会存在财政扩张不及预期的风险。信贷政策方面,正如央行行长6月 19 号陆家嘴论坛上所说,由于金融套利的虚假贷款和监管机构随后对金融系统中这种资金空转的打击,信贷增长与 GDP 增长之间的联系已经减弱。预计摄容总量的增长将同去年的 9.5% 放缓到今年的9%。在住房政策方面,4月的政治局会议表明,决策者希望严防房地产市场的尾部风险。由于地产价格和活动的持续下行,以及机房国企通过央行的贷款计划购买空池公寓的速度缓慢,高盛预计进一步削减房贷利率以刺激需求,同时为去库存提供更多的资金和效率的支持。在外汇政策方面,鉴于美元持续强势和资本外流的压力,高盛认为央行将在短期内保持美元对人民币汇率的稳定,三个月的高盛预测是7.3,因为外汇市决策者可以迎来抵消关税对出口负面影响的工具。 2018- 19 年的经验表明,如果特朗普赢得美国大选,而且正如他最近几个月所宣称的,会对中国实施正大的关税,那美元兑人民币可能会显著贬值。', - fieldInfo: ['降息时间', '降息基点', '原因'] - }, - { - text: 'Because Japan is one of the most import dependent countries in the world, importing over 90% of its energy and over 60% of its food, a weak yen means inflation has returned to Japan for the first time in decades. ', - fieldInfo: ['import ratio', 'import type'] - }, - { - text: ' For context, in the post war years, Japan experienced many decades of rapid economic growth in a period dubbed the Japanese Miracle. From 1955 to 1990, Japanese growth averaged 6.8% per year, and GDP multiplied eight times, with growth falling below 3% only once during the 1974 oil shock.', - fieldInfo: ['year', 'gdp growth rate'] - }, - { - text: `Anyway, this anxiety subsided in the 90s when Japan experienced an enormous financial crisis after a rapid appreciation in Japanese stock and real estate prices during the 80s. In 1990, the bubble burst and continue to burst for a while. In the decade after 1990, residential house prices fell by more than 50%, commercial property prices fell by something like 85%. And Japan's main stock index, the Nike 2,2,5 fell by about 75%. Japan's economy never really recovered and growth and inflation both remained close to zero until very recently.`, - fieldInfo: ['rate value', 'rate type'] - }, - { - text: `From 2016 until late last year. The Bank of Japan even began what's called yield curve control, which essentially involved buying up enough debt to guarantee that government borrowing costs wouldn't go above a certain level. Japan's ultra loose monetary policy came under pressure in 2022 when inflation started rising across the world. Usually, central banks raise interest rates, but the bank of Japan decided not to, both because inflation was relatively low in Japan, but also because thanks to its enormous debt burden, even a slight raise in interest rates would translate to a massive increase in debt servicing costs, especially for the Japanese government. Unfortunately, things have become more difficult as other central banks have raised rates, making their currencies relatively more attractive and sparking a decline in the yen. In the last year, the yen has fallen from about 130 to the dollar to a 34 year low of 160 to the dollar on Monday. Now the speed and severity of this decline presents a difficult dilemma for the bank of Japan because thanks to Japan's reliance on imports, it sparked significant inflation in essential items like food and energy. But they still don't want to raise rates for the reasons we've just mentioned earlier. This is why on Monday evening, instead of raising rates, the bank of Japan used billions of dollars worth of Japan's foreign exchange reserves to buy up the yen on the international market, artificially inflating its value. While this seems to have worked in the short term, as of Tuesday morning, the yen is now trading at nearer 155 to the dollar. It's both expensive and fundamentally unsustainable. Even if the bank of Japan has some of the largest foreign exchange reserves in the world. All in all, assuming the bank of Japan won't engage in significant rate hikes, this means that the yen is very much dependent on what goes on in the rest of the world. If inflation comes down and other central banks start cutting rates, then this will reduce some of the pressure on the yen. But if inflation turns out to be stickier than we'd like, which seems to be the case, then the divergence between the bank of Japan and other central banks will persist, which means more downward pressure on the yen. If this happens, then the bank of Japan won't be able to stave off the yen's decline with exchange reserves forever. And eventually, they'll have to choose a horn of their uncomfortable dilemma, either to just accept the yen's decline and all the inflation related political turmoil that comes with it all, raise rates and just hope that the world's most debt burdened economy can somehow deal with it.`, - fieldInfo: ['date', 'yen to dollar'] - }, - { - text: `Blanket is all over the news. Linkage is now more valuable than Zomato. Linkage reported over 2,300 for rupees and revenue. And then now speak about Zomato, they speak about blinking bigger than tomato right now with the valuation of roughly $13 million and a market share of 46%, it has disrupted India's 23,000 crore quick commerce industry, a company that Zomato acquired in 2022 to enter into quick commerce, but now has become more valuable, the Zomato's own food delivery business. In fact, the company 3 x its revenue from 800 crores to 23 crores and is expected to break even in the first quarter of Fi 2025.`, - fieldInfo: ['company', 'marker share', 'valuation'] - }, - { - text: `By the way, this is going to be detailed, so feel free to pause the video wherever you feel confused. First of all, let's take a realistic average order value of 600 rupees, which is very close to what most people usually order on blink it. If you look at the revenue side, which is the money that bind it earns here for themselves from each order is divided into three sources. The first one is warehousing services and marketplace commissions. This is basically the amount that suppliers are paying to blanket for showing and selling their products. And see on every order of 600 rupees, 11 to 13% is coming from suppliers, which is roughly 72 rupees.`, - fieldInfo: ['revenue source', 'revenue value', 'revenue ratio'] - }, - { - text: `Now the second part of the income of this order is the ads that come companies show on blanket. This is the price that brands pay to show their products above other products as you scroll the app. For example, brew might pay to show its coffee first when someone searches for a keyword like coffee, it's roughly 2.3 to 3.5%. In our case, let's take 3.5% and it will come down to 21 rupees.`, - fieldInfo: ['keyword', 'ad rate', 'cost'] - }, - { - text: `The next is customer fees, which includes your delivery fees, handling fees for packaging and delivering the food to your doorstep, and even additional fees like fees they charge you for having a small cut. This percentage comes at around three portion of the average order value and is roughly 18 rupees in our case. By the way, there are also other levers like membership plans or free delivery plans that these plan platforms try to sell you often like Zepto does it with their offering of zeptopass. But if we don't over complicate and dive much deeper into this, we see that in a nutshell, on an average order of 600 rupees, blanket owns roughly 110 rupees. This 110 rupees is known as a take rate, the share that blanket keeps for itself from an order.`, - fieldInfo: ['take rate', 'customer fees ratio'] - }, - { - text: `Now let's come down to the cost side. Even here you have four elements. The first one is the biggest one, which is the last mile delivery cost, which is the last step when the riders deliver the orders to you and cost about roughly 7% to blanket. And in our case, it would come down to 42 rupees. The next one is dark store mid mile and warehousing cost. This entire combination of cost comes down to about 6.5%. And in our case, it would be 39 rupees. The other variable cost, which includes packaging, washes, support, communication and payment charges are roughly 2%, which comes down to 12 rupees. And now the fourth and the last one is customer acquisition cost, which is the discount, the incentives and the offers they try to give you to make tempting these for you. This comes at about 0.2 to 0.3% at about 1.8 rupees. So if you subtract these two amounts, blink it on roughly 15 rupees from entire transaction. This 15 rupees is not the net profit, by the way, but the contributing profit. Now what is that? See, contributing profit is the profit that the company is earning by serving each order. And company considers only the variable expenses in this case, which is the expense that we have already discussed. And it does not mean net profit because there are so many fixed expenses that are not considered like expensive salary of tech folks, rent, insurance, depreciation, and all similar big sums of money.`, - fieldInfo: ['cost element', 'cost ratio', 'cost value'] - }, - { - text: `The answer to this is the dark stores, the 2,500 to 4,000 square feet big stores that are located in 1.5 to 3 kilometer radius near your homes to ensure super quick delivery. And by the way, these stores are super big. For example, if your nearest kirana shop has about 1,500 SKUs, these stores can have 4 x a number of excuse. In fact, a highly efficient dark store can do a better gross merchandise value per square foot than a highly organized supermarket like Dmart. So while a dark store or blanket can do a GMV of 90,000 rupees per square fit, Mart can only do a GMV of 47,000 rupees per square fit. But how does this work? See, these stores are like supermarkets, but have no Hawkins, which means that only rider can go and collect stuff from there. These stores have a lot of inventory that comes from Mother Warehouse store, which is located in the outskirts. So to give you context, for every 40 dark stores located in the city, there is always a mother warehouse, which is located at the outskirts or city. And that is more than 10 times big as a dark store, which is about 20,000 to 1 lax, 75,000 square feet big. It is super huge. And companies don't set dark stores everywhere, by the way. They are smartly set based on multiple parameters like average household income of the area, peak time traffic of the area, infrastructure structure of the area, and also the population density. Also, there's usually about a staff of 25 to 30 people who are working in three shifts in these dark stores who would take care of the packaging. And as we've discussed earlier as well in the video, that the operating cost for a dark store comes at about rupees 22 for each order. And if you want to understand this calculation better, we have put it here. So you can pause the video and look at this table.`, - fieldInfo: ['store type', 'store size', 'SKU', 'GMV', 'staff count'] - }, - { - text: `Now blanket has done a really solid job here as they have, right now, the highest number of dark stores with 451 stores in 27 cities compared to 450 stores of Insta margin, 25 cities, 30 of Zepto intensities and 350 stores of Big Basket in 35 cities. By the way, this is not something they built in a day because it was the first grocery app in the country, which started in 2014 as growers. So their team and their execution is way more experienced if you compare them with other competitors, and now they're just building on this and increasing their penetration throughout the country. By the way, they're mostly penetrated in north and east India, and 90% of the GMV comes from top paid cities. But as they enter south and other cities, this can be a huge opportunity for them as they already have an experience DNA running in the organization.`, - fieldInfo: ['company', 'stores number', 'cities number'] - }, - { - text: `Now coming down to the second insight, which is cracking high average order value. But why are we talking about AOVs? Average order value plays a big role in quick commerce because bigger the average order value, bigger is the contribution margin for the company, which means that delivering just a set of bananas or apples is less profitable for blanket. Then delivering a set of bananas, apples, onions, tomatoes and a packet of bread together. And blanket has the highest average order value if you compare it with all the comparators. And just look at the stark difference by yourself. For big Basket, the AOV is about 400 to 500 rupees. For Zepto and Instamar, it is around 450+. And for blanket Au UV is about staggering 6,35 rupees. This is something that is definitely giving them an edge in pulling one of the most important levers in the ecosystem. In fact, in the last quarter, this number was 523 rupees at the start of Q1 fi 23. It just shows the speed at which they are growing really fast, and they have done this really well through their amazing SKU strategy.`, - fieldInfo: ['company', 'AOV'] - }, - { - text: `Not talking about the third insight, new customer acquisition. See, blinkits market share has not been the highest forever. It was 32%2082. And in the same period, Instama's market share has fallen from 52%, while Zeptos has increased from 15 to 28%. And we had to talk about the elephant in the room, the Zomato Effect. See, Zomato is the biggest food delivery app that has more than hundred million active users every month on its app and a market share of more than 56%. When it comes to food delivery, these users are more than three ties what blanket has at the moment. So even getting 5% of Zomato's monthly active users as new customers could bring more than 33% rise to their current Mau base.`, - fieldInfo: ['company', 'marker share'] - }, - { - text: `Want to show you something cute little condo in Toronto's Harbor Front neighborhood, bustling part of the city. It goes on the market in the summer of 2022. The sellers put it up for $480,000. It didn't sell early. 2023, it's back on the market for 460 k. No luck later that year, posted again at 4,50 k. Still nothing. And a few months ago, the sellers tried again. At $430,000, no takers. This condo was sitting on the market for more than 400 days without a sale. Right now in Canada's biggest cities, there's a ton of condos like this struggling to sell. A condo sales in Toronto, for example, haven't been this low since the financial crisis in 2009.`, - fieldInfo: ['year', 'price'] - }, - { - text: `Let's compare what a condo investment in Toronto looked like in 2016 to today. So according to the Toronto Real Estate Board, the average price of a one bedroom condo back then in 2016 was about three hundred thousand dollars and with 2016 interest rates about 2.7%, that worked out to a mortgage payment of about eleven hundred dollars a month. Rent for the average one bedroom apartment at that time was about sixteen hundred and sixty dollars. Not bad from an investor point of view, even with, you know, maintenance fees, property taxes, that condo is essentially paying for itself while you build equity.`, - fieldInfo: ['average price', 'inerset rate', 'mortgage_payment', 'rent'] - }, - { - text: `Now what if you were to buy a one bedroom condo today in Toronto? That could cost you about 550 grand. So prices have very clearly gone up, but so have interest rates. The carrying costs on a property are far higher than they ever used to be. Well, not ever, but in recent memory. At current rates, 6.8%, maybe now you're paying more than $3,000 a month for your mortgage payment alone. Then you've got, you know, property taxes, maintenance fees and the average rent per unit like that, about 24 hundred dollars a month you're now paying out of.`, - fieldInfo: ['price', 'inerset rate', 'mortgage_payment', 'average rent'] - }, - { - text: `Now the renewals come in and you're losing a lot of money, but you've actually come to realize in the last 12 months the price of that condo has probably dropped about $40,000. So you're starting to enter into a state of actual fear.`, - fieldInfo: ['time period', 'price change'] - }, - { - text: `According to stats Cam, the average size of a new condo in Toronto has shrunk significantly over time. From 1981 to 1990, new condos were on average about 1,000 square feet. From 2016 to 2020, they were around 650 square feet or about 40% smaller. And if you ask anyone who lives in the downtown core right now, 650 square feet actually feels pretty big.`, - fieldInfo: ['time period', 'average size'] - }, - { - text: `Right now, for example, in Toronto and Vancouver, three quarters of larger condos, the ones, you know, maybe more suitable for a family built decades ago, those are being lived in by the people who own them. But for those much smaller condos built after 2016 with investors in mind, only about half are being lived in by owners. Remember that cute little studio that we showed you at the start that took 400 some days to sell. It was 330 square feet. Here's a two bedroom, 700 square foot unit in that same building. It's sold earlier this month on the first try in just 13 days. If we.`, - fieldInfo: ['days to cell', 'unit size', ''] - }, - { - text: `Back then in 2020,2021, even into the beginning of 2022, we saw these historic low interest rates and people were taking out loans then and taking out bigger loans, right? They go and buy a house that they wouldn't have been able to afford. 3% or 4%, but they could afford at 1.25%. They called.`, - fieldInfo: ['year', 'interest rate'] - }, - { - text: `No. So let's say there's a young couple in Ontario that bought an average priced house in 2019,$631,990. They put pretty standard down payments, down 20 percents, which leaves you with a mortgage size of about $500,000. Amortize the loan over 25 years, they take a five year fixed rate of 2.9%, which was also kind of standard at the time. That means they've been paying about, and I'm rounding to the nearest dollar here, 2,367 bucks for the past few years. But now that mortgage is up for renewal. Welcome to 2024. And the couple signs on to another fixed rate mortgage, but they have to do it at the bank's current rate, which is around 6%. That means their new monthly payment is, again, I'm rounding here, $3,075 a month or an extra 700 bucks a month. Right.`, - fieldInfo: ['year', 'fixed rate', 'monthly payment'] - }, - { - text: `Think of it this way. This circle is your $2,200 a month mortgage payment at a relatively low interest rate pending on the overall size of your mortgage, that might mean $900 of that payment is just servicing interest with the other 13 actually paying your loan back as the interest rate rises. Maybe now instead of 900 dollars a month, it's 20. One hundred dollars a month in interest. But your contract says your total payments stay the same, so you're still paying 22 dollars a month, meaning only 100 of those 22 hundred dollars are actually paying down your loan at that point. I have news for you. You're very close to being underwater, stuck in a perpetual state of paying down a loan where you're only barely paying down that loan. Welcome to lifelong debt, the time it will take to pay off his mortgage nearly doubled from.`, - fieldInfo: ['monthly payment', 'interset payment', 'principal payment'] - }, - { - text: `Collectively, we're just starting to approach the edge of this cliff. RBC estimates about $186 billion worth of mortgages are up for renewal in 2024. Next year, it'll be 350,15 billion. That's a ton of mortgage debt that was taken on at historically low interest rates by people who may or may not have been able to afford getting into the housing market otherwise.`, - fieldInfo: ['year', 'mortgage_debt'] - }, - { - text: `What would you do if one day your neighbor, who you've known for years, you see him building a bomb shelter? Would you think that guy's crazy or would you wonder what does he know that I don't? Turns out banks right now are building a bombshelter. Just this quarter, Canada's big six banks have set $4.3 billion aside to cover bad loans. That's almost double what they set aside in the first quarter of last year and more than 11 times what they set aside in the first quarter before that.`, - fieldInfo: ['quater', 'year', 'amount_set_aside'] - }, - { - text: `This is important. About 65% of them, 70% of them have not noticed any radical increase in their payment because their mortgage company sold a product where the payment did not go up when prime went up. Their payment did not go up when prime went up. That's the important part to understand, because it means you might have people ultimately paying more without even realizing it.`, - fieldInfo: ['percentage'] - }, - { - text: `Now, luckily, most economists do expect rates to keep dropping. According to that same RBC report, it still might not be enough to, quote, save this cohort to get them down to a more manageable monthly increase like 20%. They argue the bank of Canada would have to lower its prime rate way down to around point two five % by July 2026, something they admit is an unreasonable expectation.`, - fieldInfo: ['date', 'rate change', 'monthly_increase'] - }, - { - text: `The old rule of thumb in my day was you spend about a third of your income on housing. Now you'll hear anecdotal evidence, particularly in places like Vancouver, Toronto, where you'll hear 70 to 75% of income is being spent on housing. So in those cases, then if they have to reset at a higher interest rate, it's the house that's gonna go down first. So.`, - fieldInfo: ['location', 'income_spent_on_housing'] - }, - { - text: `In order to get the most accurate reading on the US housing market inventory situation, we need to consider both supply and demand. Supply in this case is the level of inventory for sale and demand is the current case of sales volume. If we start with sales volume, we can see the existing home market has a sales pace of roughly 3.7 million homes per year, while the new home market has a sales pace of 619,000 homes per year. Right off the bat, we can see how the existing home market is almost six times larger than the new construction market in terms of sales volume. Both of these markets, existing and new, have seen a huge reduction in sales volume or buyer demand since interest rates have increased, as affordability is out of reach for most people. If we take this annual sales pace and divided by 12, we can get an idea of the average sales pace per month. Of course, there are seasonal patterns, but if we normalize for those effects, we can see that the current monthly sales pace in the existing home market is roughly 309,000, and the new construction market is selling about 51,000 homes per month. At the peak of the housing boom during the pandemic, the existing hallmark had a sales pace of 500,000 units per month and the new construction market was selling nearly 90,000 units per month. Now that we have an idea of the current level of demand, we have to look at supply or the level of inventory for sale in the existing home market. There are currently 1.1 million homes for sale, one of the lowest on record. If we just look at inventory alone. In the new construction market, there are 479,000 units for sale, one of the highest levels on record, only surpassed by the housing bubble of 2007.`, - fieldInfo: ['market type', 'sale pace annual', 'sale pace monthly', 'sales_pace_peak_monthly', 'inventory'] - }, - { - text: `You can clearly see how there is nuance to the situation of US housing inventory, the best measure of US housing inventory takes into account both supply and demand and is called the month supply. In other words, how many months of inventory are available for the current pace of sales value. If we take the current level of inventory for both the existing hall market and the new hall market, and we divide it by the current monthly pace of sales. We can see how many months it would take to sell all the inventory at the current pace of sales in the existing home market, that month's supply figure or the inventory level divided by the sales volume, 3.7. In the new construction market, it is 9.3.`, - fieldInfo: ['market_type', 'month supply'] - }, - { - text: `Generally speaking, the 5.5 to 6.0 level is considered a balanced market where there is no significant upward or downward pressure on prices. When the month's supply level is below 5.5, that means there is very little inventory available for today's market conditions and prices generally rise. On the flip side, a high level of month's supply means there's too much inventory and prices must fall. The existing home market has a month supply of 3.7, which is very low, but it's been increasing since the absolute historic level of one point six in January 2022. Never in the history of the US housing market has the month's supply of existing homes been that low. This created a very unhealthy situation in the existing home market. The inventory situation in the existing hall market is still very tight, but it's now at the highest level since before for the pandemic. The new construction market is a completely different ballgame with a month supply at 9.3, super high and way above the balanced 6.0 level. There is way more detail to the situation in the new construction market that we'll uncover in just a moment. If we look at the total US housing market situation, both existing and new construction, the aggregate month supply figure has increased to 4.5. So yes, the total inventory situation is still very tight on a national level, but the level is rising and at the highest point since 2,015. The monthly numbers are volatile, so let's look at a yearly average to make things more clear. This shows the month's supply for the total US housing market by year. 2024 is a partial year, and the current level as of May 2024 is also noted in the chart. As of May 2024, the total month supply situation is 4.5, which it hasn't been since 2015. You can also see the four years where the total month supply was below 4.0, which is extremely tight. And you can also see the 2021 situation at 2.6, which was crazy unhealthy. One major point is that this current 4.5 level is the national average. But as we know, real estate is very regional. So this means that there are some markets that are near a month supply of 6 and feeling downward price pressure, while some markets are still down at 3 and seeing prices rise with multiple offers. The new home market with a month supply of 9.3 is way above the balance level of six point zero, and there are price cuts and discounts in that market.`, - fieldInfo: ['date', 'markey type', 'month supply'] - }, - { - text: `In June, the National Association of homebuilders reported that 29% of builders cut home prices with an average price reduction of 6%. And 61% of builders use sales incentives like mortgage rate ByteDance to boost sales. But we need to talk about the new hall market and the 9.3 month supply level in a bit more detail, because there is more than what meets BI in the new construction market. Currently, there are 479,000 units for sale in the new construction market and a current pace of sales of about 50 thousand per month. In the new home market, a home could be listed for sale when it's completed, under construction or not yet started. If we look at the percentage of inventory that is completed, we can see that of those 479,000 new home units for sale, Only 20% are completed, which means 80% are either under construction or not yet started.`, - fieldInfo: [ - 'builders cut prices percentage', - 'average price reduction', - 'builders use incentives percentage', - 'units for sale', - 'completed inventory percentage' - ] - }, - { - text: `The level of completed new home inventory for sale fell below 10% during the most acute part of the US housing shortage. Normally, in between 20% and 30% of new construction inventory is completed. During really bad downturns like 2008, builders were sitting on almost 50% completed inventory, which is what led to dramatic price cuts and big layoffs of construction crews. The level of completed inventory is now back into the normal range at 20%, and it's rising, which means that if we move towards 30%, price cuts will get more intense and construction crews will be at high risk of job losses. If we take the current 50,000 new home sales pace and divide that by the amount of completed new home inventory for sale. We can see that there's currently about 1.9 months of completed inventory for sale, which is getting past the average level and into the range consistent with recessions and job losses for construction crews. If the home builders have a lot of completed new home inventory for sale, they aren't going to apply for new building permits and build even more homes. And that's exactly what we're starting to see.`, - fieldInfo: ['period', 'completed_inventory_ratio'] - }, - { - text: `Homelessness has been rare since the reemergence of homelessness in the mid 1980s. Usually it's been people in their 20s and 30s and 40s, but now we're approaching close to 30% of the adult homeless population are people 55 and over.`, - fieldInfo: ['age group', 'percentage'] - }, - { - text: `Exports from China are rising fast and US officials are nervous about this gap. We're not gonna let China flood our market. Sound familiar? There has to be a level playing field for American companies competing in China. In the early 2 Chinese factories like this one pumped out clothes and flags and cars. The sticker prices were cheap. But there was another price to be paid, American jobs. Every single employee of this plant, we'll be out of work by January. 15 years and almost 6 million jobs later, economists are debating what price another wave of imports could exact from American workers. But two key differences between then and now may have a new effect on the US economy. Look at this line. Before 2001, American manufacturing employed over 17 million people, making toys, furniture, paper goods and much more. Then word began to circulate that China was joining the World Trade Organization. And here's what it did. Joining the WTO meant China faced fewer tariffs and restrictions from its trading partners, and the result was dubbed the China.`, - fieldInfo: ['year', 'jobs number'] - }, - { - text: `2.5 million Americans lost their jobs from 2000 to 2007. They're represented by the blue on this map. Look at this dark blue area here. That's Silicon Valley, where companies like Apple, HP and Cisco used to manufacture goods. After 2001, they moved most of their production to China, causing a 50+ percent drop in manufacturing jobs in the county, this other dark blue county, Cedar Rapids, Iowa, lost 46% of their manufacturing jobs, primarily in furniture and machinery. But this lighter blue region here was largely spared. It's called Auto Alley. The main reason it succeeded where, say, Silicon Valley's manufacturing failed, is due to investment from competitors like Japan.`, - fieldInfo: ['region', 'job_loss_percentage'] - }, - { - isEnglish: true, - text: 'Snap’s latest AR glasses aren’t its first hardware product. The company has a history of experimenting with hardware and has launched smart glasses under the brand name Spectacles. However, the company has struggled to make money from selling hardware. It first debuted a pair of smart glasses in 2016; the $130 device made it easy for users to capture short, first-person videos that they could post on Snapchat. However, the product failed, and the company had to write down $40 million due to losses from unsold Spectacles. Snap once again tried to sell new Spectacles smart glasses in 2019—this time a more premium version for $380—but that too didn’t take off. In 2021, it unveiled new glasses with advanced AR capabilities, but instead of selling them to consumers, the company sold the device to developers, hinting that the glasses were more of a prototype than an actual consumer product. Beyond glasses, Snap also tried to sell a flying drone for $230, but that device was abruptly discontinued after just a few months', - dataTable: [ - { - year: 2016, - product: 'Spectacles', - price: 130 - }, - { - year: 2019, - product: 'Spectacles (premium version)', - price: 380 - }, - { - year: 2021, - product: 'new glasses with AR', - price: null - }, - { - year: null, - product: 'flying drone', - price: 230 - } - ], - fieldInfo: [ - { - fieldName: 'year', - description: 'The year when the product was launched', - type: 'date', - dateGranularity: 'year' - }, - { - fieldName: 'product', - description: 'the name of product', - type: 'string' - }, - { - fieldName: 'price', - description: 'The price of the product', - type: 'numerical' - } - ] - } -]; - -export const capcutMockV2Data: any[] = [ - { - text: `富士康为什么突然被查?这对全国120万的富士康员工 有何影响?最近, 富士康在广东、江苏等地被税务稽查。与此同时呢, 自然资源部门 对富士康在河南、湖北等省市的用地 进行现场勘查。别小看这短短的一句话啊, 释放了两个信息, 一、是税务部门调查有没有偷税漏税。二是自然资源部门 调查土地的使用情况。要知道, 当年全国各地为了吸引富士康 使出浑身解数, 不仅帮富士康招人, 还有各种减免税, 甚至有些地方啊, 还给富士康 不能多说了啊, 按理说, 咱们给了富士康这么多优惠政策, 富士康应该感激才是啊! -可谁能想到, 老郭这是吃尽红利 翻脸不认人呐!他居然说这是在给大陆赏饭吃!富士康为啥敢如此傲慢呢? -先来看一组数据, 富士康位居财富世界500强第20位, 在中国企业中 仅次于国家电网、中石油、中石化 以及中国建筑集团。 -就连咱们熟知的宇宙第一大行 工商银行啊, 都排在富士康后面。 -富士康不仅财大气粗, 还跟全国各地啊深度绑定。 -目前 富士康在全国的工厂达到40多个, 总员工数超过了100万。 -所以很多人说 不能碰富士康啊, 万一富士康跑了该咋办? -富士康真的是大到不能碰了吗? -并不是。过去40年 我们之所以给富士康各种政策优惠, 不是因为富士康有多强, 而是因为富士康背后的苹果公司呀, 太过强大。 -没有苹果的订单, 富士康啊 连一毛钱都不值。 -过去我们扶持富士康, 那是希望打入苹果供应 链,希望苹果的零部件啊, 可以在中国生产, 在中国组装, 最后出口到全世界, 构建起一条啊 完整的电子信息产业链。 -可谁能想到, 从2019年开始, 苹果供应链开始大规模的去中国化, 中国大陆的供应占比 从巅峰时期的26%下降到如今的2.5%。 -按照苹果的如意算盘, 要想完成去中国化, 第一步呀, 就是先在越南和印度 建设一两座富士康工厂。 -第二步呢, 就是把中国供应商一点点踢出去, 换成海外的供应商。 -第三步,逐渐增加越南、 印度这些海外供应商的订单。 -第四步,也是最后的一步, 就是把中国大陆的富士康啊, 全部迁出去, 彻底完成去中国化。 -如今的苹果已经走完第二步了, 马上就要进行第三步了。 -可让他万万没想到的是, 华为啊,居然在今年9月起死回生了。 -华为的崛起 彻底打乱了苹果去中国化的节奏。 -还记得今年国庆黄金周吗? -华为上市仅仅一个月啊, 就把苹果在中国的市场份额 干到只剩17.4%。 -吓得哭客呀, 赶紧来中国亲自下场带货! -顾客为啥荒凉? -如今的中国是苹果全球第一大市场, 也是苹果全球最大的食物来源。 -吃着中国人的饭, 砸着中国人的碗, 只想在中国赚钱, 不想为中国做贡献。 -不仅不做贡献啊, 还一门心思向外转移产链, 这样的企业以及背后的代工厂, 你说凭啥还要给他特殊优待呢? -现在你明白 国家为啥要坚定支持华为了吗? -支持华为,就是在支持中国产业链, 只有华为链才能对抗苹果链。 -华为链呀, 就是中国链。关注4G实务分析,收。 -` - }, - { - text: `俄罗斯这个国家 真的是个非常神奇的存在啊, 说到政治军事, 没有人敢小瞧他, 他拥有全世界最大的国土面积 和最多的核弹头。 -但是同时呢, 一提到经济啊, 那似乎就没有俄罗斯什么事了。 -你看这俄罗斯哈, 在短短的半个世纪里面 就经历了什么政治动荡啊、 恶性通胀、 寡头黑帮、 高速发展、 战争、政府违约、 经济危机、 激进的改革等等等等。 -所以今天呢, 小林就来给大家一起梳理一下啊 这个错综复杂而又独一无二的 俄罗斯的经济。 -它到底是怎么回事? -我先声明一下啊, 一个国家的经济 确实是太错综复杂了, 所以呢,我只能挑我觉得比较重要 又有意思的地方来跟大家分享一下, 但是我觉得 重点应该基本上也都是重点。 -大家如果有什么自己的观点 或者想法, 也欢迎在评论区留言讨论。 -但是哈,咱话说好了, 留言区我们好好说话, 别动不动就打起来。 -还有就是最后啊, 我会有一个对俄罗斯经济的 一个简要 橄榄, 你要是也不感兴趣,都发生了什么, 就想看那个最经典的橄榄, 你可以直接划到最后, 但是我还是非常建议哈, 把前面这些东西都看一看, 毕竟能像小林这种 把这些复杂的东西又讲的清楚直白 又很有意思的人, 在这个世界上也不多了啊! -你也可以点个赞表示一下。 -说到俄罗斯经济啊, 咱必须得从前苏联说起。 -所以这块呢, 我就一丢丢带到历史, 帮大家刷新一下记忆。 -沙俄爆发民主革命, 迫使沙皇退位。 -之后,以 列宁为首的社会民主工党 推翻了临时政府。 -经过了5年的内战, 1922年苏联诞生。 -两年之后, 1924年这个人上台, 成为了前苏联的最高领导人, 他就是约瑟夫维萨里亚的诺维奇 斯大林。从此啊, 苏联就真正的开始 全面推行计划经济。 -计划经济哈, 就是说所有的经济资源 从分配、生产 甚至到一部分的消费 都是按照计划走。 -就比如说哈, 这点物资急缺了, 上面只要一指命令,哗, 所有的物资就都调过来。 -再比如说哈, 我们现在要开始发展重工业, 需要大家一起来建工厂, 然后上面一指命令, 这工人全就都过去, 他也不需要时间 等市场经济进行自我调节。 -其实这种模式哈, 在你方向非常明确 或者 要进行整体的大规模改革的情况下 是非常高效的。 -而当时的苏联呢, 就处于工业化和现代化 都严重不足的情况, 他就非常适合计划经济。 -于是1928年之后, 斯大林的前三个五年计划, 那可谓是效果拔群, 前苏联就迅速摇身一变, 从一个落后的农业国家 变成了一个工业大国。 -你看啊, 这使前苏联的人均GDP从20年到40年 翻了三倍多。 -而你想啊, 那时候1929年的美国 正在经历着大萧条, 整个西方哈都跟着遭殃。 -所以说啊, 这20年真的是在斯大林的带领下, 把前苏联的经济带上了一个新高度。 -虽然说哈,也有各种什么政治迫害、 大清洗,但是呢, 光从经济的角度上来说, 还是效果罢群的。 -这边呢,尝到了计划经济的甜头。 -另一边呢, 二战啊,苏联的国际地位又 得到了极大的提升, 可谓形势是一片大好, 又经历了一段时期的高速增长。 -不过慢慢的啊, 从60年代开始, 这个前苏联的经济结构 也越来越复杂, 经济发展也逐渐稳定, 那计划就不是那么好计划的了。 -你说 要没有市场这个无形的手在那调控 他,再厉害的政府 也不可能说 哪哪的经济 都给你计划的那么井井有条, 更何况啊高度集权的这种计划经济。 -他还有一个问题, 就他一般情况下都是领导指哪打哪, 这就导致了前苏联政府的贪腐呀 也日益严重, 企业的创新就会严重受损。 -前苏联就陷入了停滞时期。 -` - }, - { - text: `除非是一场巨大的危机, 不然的话 你根本没有办法去解释 此刻的股神巴菲特, 他到底在等待些什么。 -美国银行, 这是一家在西方世界, 甚至说全球金融行业里 都非常有声望、 位高权重的超级巨头。 -巴菲特则是从2011年开始 对这家公司进行了大手笔的投资。 -13年时间过去, 他一路买入, 从不卖出, 甚至说一口气把自己1/10的仓位 都压在了美国银行的身上。 -几乎所有人都觉得 美国的标志性金融大佬 买入美国标志性的金融巨头 这笔买卖天作之合。 -但是94岁的巴菲特 却把所有人都打了一个措手不及, 此时此刻, 他在狂卖美银。 -根据美国SEC官方披露啊, 光是在9月的4号、5号 还有6号这三天, 他就卖出了1870 是4万股的美国银行。 -而如果要把时间拉得更长一些的话, 那么从今年的7月份开始, 巴菲特就已经从美银的身上 套现了将近70亿的美元。 -什么概念? -500亿的人民币。 -这笔钱对于巴菲特巴老爷子来说 也许不算太多, 但你要知道, 上个月 他不计成本的抛售苹果公司, 就已经把全球金融市场吓死 魂飞魄散。 -当时啊,他在毫无征兆 没有任何预告的情况下, 直接把苹果的仓位砍掉了50%。 -说真的,在我们金融行业当中啊, 甭管你干了多久, 也没有人见过这样的场。 -甚至就连美国的华尔街 现在也纷纷开始了议论, 说抛售苹果 还有美英这样的常见股票, 根本就不是巴菲特的风格。 -看到这你肯定会以为啊, 这是他年事已高退出江湖的 前兆。就像是曾经的地主一样, 每到过年就要颗粒归仓, 清算一波自己的家底。 -但你知道吗? -在过去的2023年, 巴菲特依靠投资定数了6900个亿, 而且还在年初正式的宣布了接班人, 规划之清晰, 战略之稳定, 看不见任何散场的。 -而同时呢, 全世界的金融机构、 各大投行的交易员 又眼睁睁的啊 看着他手里的现金累的跟山一样高。 -截止到目前 已经有差不多3000亿的。 -哪怕你再不关心经济, 也应该思考了, 巴菲特现在到底在等待什么? -上一次 他手里持有如此高比例的现金, 还得回忆到2005年。 -而在之后的没多久, 美国就爆发了次贷危机, 他顺势抄了一波大底。 -夕阳之所以耀眼, 是因为牺牲了整个白天 所有的光芒。 -而94岁的巴菲特, 此刻完全有可能啊, 正在屏息等待, 准备挥出他光荣山崖里最后一棒! -` - }, - { - text: `这个菲律宾怎么回事啊? -双倍差战,五渣, 回回碰瓷, 次次灰头土脸, 这有完没完啊, 这人啊,那么好了, 这货到底是个什么样的国家? -这么做图什么? -谁在背后给他撑腰? -今天我们从经济的角度 来给大家讲讲菲律宾, 三个词来概括一下菲律宾, 那就是美国舔狗、 寡头经济和菲佣帝国 对美国爱的深沉。 -一度甘当美国殖民地, 不想独立, 甚至想加入美国成为人家一个州, 奈何美上百个门阀家族轮流坐庄, 把持政权, 断经济, 把曾经的亚洲第二富国祸祸 成了亚洲最穷的国家之一。 -而另外支棱起菲律宾经济的 不是什么高科技、工业、 金融业, 而是遍布全球的雇佣和劳工。 -总之横看竖看就是有点挫呀, 人是怎么变成今天这个样子呢? -简单来说呢, 就是先天条件一般, 还总想走捷径 哈哈哈。这个国家,从地图上来看啊, 挺有意思的, 由7000多个岛来组成 七零八落, 很难大规模连成片的发展, 于是很长时间呢, 人家都没有建成统一的国家, 而是各个岛上的家族部落啊, 各管各的。 -直到16世纪啊,迈之伦转悠到这了, 带着西班牙殖民者 征服了这,菲律宾呢, 才正式建了国。 -接着人又相继被美国殖民 日本占领, 再被美国收回, 而那些岛上的大家族啊, 也成了殖民代理人。 -那这个过程啊, 美国的影响是最大的。 -人,一边在这搞建设、 搞教育,让菲律宾 成了亚洲最早 走上工业化道路的国家之一。 -一边呢, 又残酷的镇压菲律宾的民族主义, 扶持清美势力。 -那结果 就是,菲律宾的经济是发展起来了, 可是完全依赖美国。 -而看似有了国家政权, 其实硬骨头几乎都被打没了。 -那情况有多夸张啊? -1929年美国经济大萧条, 没精力管菲律宾了, 想甩手啊, 让人独立得了, 这菲律宾人反而不干了, 说怎么的, 霍霍够我了, 翻脸不认人了是吧? -想分手啊, 没那么容易。 -于是两边各种谈条件 扯皮,直到1934年才谈妥了。 -美国接着扶持菲律宾, 10年之后再让菲律宾独立。 -后来呢, 人民意义上确实也是独立了, 但是加入美国的心啊, 他一直没死。 -上世纪60年代, 就有菲律宾的国会议员呢, 就发起入美运动, 要让菲律宾加入美国, 甚至呢,还说可以靠人多优势啊, 选菲律宾人当美国总统。 -而这类运动啊, 断断续续到现在都还有, 那场面 大概就是美国,我叫你一声爸爸, 你敢应吗? -可美国呢? -大家看到了啊, 看到了是他主动啊, 跟我没关系啊。 -其实1946年独立之后的菲律宾啊, 经济情况一度非常好, 工业基础 是完全继承美国殖民时期的遗产, 经济贸易呢 也几乎完全适合美国的单边贸易。 -而50年代之后, 朝鲜战争和越南战争先后爆发, 菲律宾凭借地理优势啊, 拿下了大量的美军订单, 这生意红火呀, 这也让菲律宾的经济坐上了火箭。 -1960年,菲律宾GDP啊,是排全球第20。 ->而放眼亚洲, 除了日本几乎没有对手, 而人均GDP 甚至一度都是我们的3倍之多。 -人家首都马尼拉 人送外号是亚洲小纽约, 甚至一度有机构预测说, 50年之后, 菲律宾将会成为世界第十大强国。 -换句话来说, 人能跟法国、 意大利这种老牌资本主义国家 坐在一张桌子上吃饭, 好家伙呀! -啊!那现在我们听起来 感觉跟科幻故事一样, 因为不用50年, 你看看现在 人已经凉透了。 -全亚洲最穷的国家之一, 泰国、马来西亚都能甩他几条街。 -为什么会变成这样呢? -就是因为菲律宾大家族门阀遍地, 菲律宾从被殖民到老大 不乐意的独立, 这就相当于什么呀, 殖民的走了, 世家大族们呢, 继续接力统治。 -比如在1987年的菲律宾国会, 总共200个众议员, 其中有130个是来自于大家族的, 另外还有39个呢, 跟大家族还是沾亲带故的。 -这些家族门阀呀, 各种资源在手, 那还不利用特许经营权、 垄断权、 免税权等等这种各种特权大捞特捞, 奉旨发财呀。 -而一马当先呢, 就是菲律宾现任总统 小马克斯的老爸 老马克斯, 这也是菲律宾的前总统。 -这位老马的形式风格 就是从政界到商界 都塞满了自己人。 -在菲律宾的任何生意 都要先给老马家族10%的好, 而所以人送外号10%先生。 -最终 这个老马因为做的实在太过分的, 吃相太难堪了, 把其他大家族都得罪光了, 不得不带着上百亿美元资产 逃到了美国。 -而留下的菲律宾呢, 已经成了 外债高达265亿美元的穷光蛋国家。 -为什么会这样? -因为相比贪腐家族门法,垄断经济 最要命的问题是让菲律宾走上了趣 工业化的, 把美国留的家底都给败光了。 -毕竟啊,你想啊, 只要垄断必需品 他就能躺着赚, 干嘛还要搞什么苦哈哈的 什么制造业高科技啊。 -所以你就会发现, 菲律宾的工业化进程 在上世纪60年代之后就卡死不动了。 -同样是和美国经济关系密切的日韩, 累死累活先从做衣服、做鞋子干起, 积累资本, 然后产业升级 发展高精尖的时候, 菲律宾反而从亚洲第二大工业国, 慢慢 先是被新马泰这样的邻居给超越, 接着又倒退成了农业国。 -然后呢,又随着全球贸易自由化, 叠加了拉美危机、 亚洲金融危机 等等几波全球经济动荡的冲击, 菲律宾那是全面溃败啊。 -低端制造业丧失竞争力, 高端制造完全没升级。 -看来看去, 最后 人家只能搞搞轻松好赚钱的服务业。 -2015年的菲律宾的农业和工业 占GDP的份额 分别从1980年代超过20%和40, 掉到了只有10%和33%。 -而由于去工业化太早了, 就算是人家搞服务业, 也搞不出什么高附加值的服务业, 基本上只能搞搞旅游啊、 休闲等等低端服务。 -这就是今天我们看到菲律宾的样子。 -2022年菲律宾的GDP总量是4000亿美元出头, 什么概念呢? -还没咱们中国的一个零头高, 而人均收入是在1200-1800人民币左右, 这是亚洲最穷的国家之一, 同时呢,贫富差距特别巨大。 -如果说你站在今天的菲律宾首都 马尼拉的市中心里面, 就会觉得,哎, 跟咱们北上广好像没什么两样, 高楼林立, 车水马龙, 房价也得四五万一平往上走, 而一街之隔的是一座座垃圾山 以及上百万人居住的贫民窟。 -这贫民窟啊, 几千块钱 就可以买走一个女孩做老婆。 -大家把从垃圾堆里面 捡来的吃的东西 洗一洗,重新加热 就成了。菲律宾的特产 叫派派。这叫什么呀? -富者田连阡陌, 贫者无立锥之地。 -而因为工业、农业拉垮人, 服务业又没有办法提供大量的就业, 大量普通菲律宾人呢, 想混口饭吃就只能出国打工。 -这又诞生了菲律宾的另一个奇观。 -因为早年美国人的介入管理啊, 菲律宾人的英语都不错啊, 服务意识也很强, 直接就把菲佣 干成了菲律宾的支柱产业之一。 -光去年菲律宾的海外劳工 就赚了372亿美元的外汇, 这占到了人家经济总量的8.5%, 这个比例什么概念? -去年中国汽车超越了房地产, 成了中国经济第一支柱, 占的比例也就差不多10%啊, 这就是目前菲律宾的经济现状。 -所以你就能够理解, 为什么每当全球经济环境下,行 人不会去努力奋斗扭转国运, 而是习惯性靠走捷径来解决问题。 -比如频频碰瓷东方大国, 试图向自己精神上的父亲那投名状。 -那为什么 人连像样的大船都造不出来, 每次碰瓷还都是小破渔船出卖。 -用今天的话说, 这纯纯的又菜又爱闹。 -可用2000年前的韩非的总结 则是,国小而不储卑, 利少而不畏强, 无礼而武大林, 贪鄙而拙骄。` - }, - { - text: `娃哈哈又一次站上风口浪尖了。 -这次是接班人发生变化了。 -刚刚去世没多久, 也就是娃哈哈创始人钟老的女儿 宋富丽 突然公开提交了一份辞职信。 -信的内容。大概我们总结一下啊, 就是我爸去世以后, 娃哈哈部分股东就质疑, 由我来接班掌管娃哈哈是不合理的, 这活我干不下去了, 所以 我要辞去副董事长和总经理的职。 -这事一出, 问题很多的小明就表示说,哎呦, 有那味了, 先帝驾崩, 老臣和新王 有些能相辅相成, 有些却是有你陪我呀。 -哈哈哈,假人呐。 -不光是这样, 娃哈哈 远远没有女神副业这么简单呢。 -你得知道这公司的真正老板是谁? -股东都是谁啊? -娃哈哈 它并不是一家纯粹的民营企业, 它是一家国企改制而来的 混合所有制企业。 -简单来讲, 那就是既是有国有股东 也有民营股。 -怎么回事呢? -这公司 不是宗老个人直接创立的企业, 当年前身 是 浙江杭州上城区的一家校办企业 的经销部, 算是地方国资企业吧。 -宗老当时是那公司里面的员工啊。 -在1987年,42岁的宗庆后呢, 是以职工的身份 承包了这家校办企业, 获得了完全独立的经营权。 -后来呢,给这企业再取名为娃哈哈。 -接着,大家都知道了, 做大做强, 再创辉煌, 一步一步 把这家曾经经营困难的校办企业 办成了全国V百强。 -对娃哈哈有再造之功的宗老啊, 他的身份既不是娃哈哈的老板, 其当年手上也没有一丁点的股份, 毕竟啊,只是承包嘛, 说白了这公司又不是你的。 -而这个转变呢, 就是在2000年, 在那一年, 娃哈哈完成了改制, 也就是这家国资企业决定啊, 让出一部分股东给员工, 大家伙,哥几个量力掏钱买股份, 为的就是什么, 大家都当股东, 那可不就更能激发干劲了吗? -宗庆后自然是首当其冲。 -而之后 哇哈哈的股权就一分为三了, 国资占一部分, 中金后自己占一部分, 然后员工又占一部分。 -那现在最新的股东结构是什么呀? -杭州国资委占股百分之46, 宗亲后占股29.4%, 员工占股24.6%。 -这看上去好像这终老股份不多 还不到30%, 可是员工们跟他几乎是一条心啊啊, 几十年风雨同舟, 那是一致行动人, 这两边加一块 占股有54%。 -所以说 当年宗庆后虽然不是大股东, 但却始终是哇哈的实际控制, 看上去一切是不是都挺完美的呀? -啊,但实际上也有隐患, 创一代的强人治理跟人格魅力 在去世之后往往会留下真空。 -说白了,对于那老员工来说, 当年我认你, 宗庆后,我跟你, 我服你,但是你走了, 你家孩子那就另错了。 -一方面呢, 是啊,宗老去世之后, 这宗复利 还没有正式继承 宗老在娃哈哈的股份, 他的身份也一直是副董事长、总经理。 -接管娃哈哈 暂时从法律上来讲 还没有依据, 而且哪怕他后面继承了, 还得获得员工持股会的认可 以及国资股东的批准, 但这不重要啊。 -另一方面, 东富力进入到这, 哇哈哈,仿佛感觉跟这家公司啊, 他有代沟啊, 而且在处理跟老员工的关系上呢, 似乎也一直是他的短板。 -你看这小 宗什么学历啊, 海外留学归来, 性格跟作风呢, 相对来讲更加直接。 -而宗老是什么? -为人更加传统, 更加讲究人情。 -我举几个例子啊, 比如宗老曾经就表态说, 咱们娃哈哈呀, 不缺钱,没有上市的必要。 -而宗富利呢, 却公开唱反调 说娃哈哈要上市很正常, 只有跟资本市场结合才能走的更远。 -再比如啊, 宗富利对内是铁腕管理啊, 如果说你没有完成任务, 可以直接开除, 丝毫不讲情面, 我管你是不是老员工, 而宗老呢, 讲究的是用人质、 聚人心,甚至呢, 还会再偷偷的把这些老员工啊 再请回来。 -但是你要是从商业 或者说管理层面单独来讲, 你很难就说 这小宗做的就一定有问题, 老宗就做的一定没毛病, 而这问题的核心其实是什么呀? -娃哈哈,如果说是你宗馥利创立的, 那就是你宗馥利做的对。 -而更重要的一点, 那就是在经营的业绩层。 -这小宗早年呢, 做了一系列的尝试, 效果只能说是一般般。 -21年底,这小宗宗富力 升任娃哈哈的副董事长兼总经理, 同时宣布推出了20多款新品。 -可结果呢? -整个22年呢, 娃哈哈的总营收是512亿, 比21年还下跌了7个亿。 -这是什么呀? -一顿操作猛于虎, 一看还在原地杵啊! -你不能说综合力不努力, 抬头看看全球这几年大环境, 你说他真的是有点生不逢时吧? -虽然不算准确, 但也有点影响, 但只不过出了问题 就一定需要有人去负责。 -老宗在的时候, 也许可以给小宗不断试错的机会, 而那些开朝老臣们呢, 就算有点想法,也不方便明着撕破脸, 而现在 谁还能站在小宗身后来给他善后? ->当然了,无论如何啊, 都希望娃哈哈这个民族品牌 能够好好的, 毕竟啊,那是包括我在内 几代人童年的回忆啊!` - }, - { - text: `你敢信吗? -特朗普给国货来了一波实力带货。 -上个月啊, 特朗普跟马斯克 可以说是俩全球顶流的男人 连线直播, 结果有眼见的网友就发现说,哎, 特朗普手机下面垫的这个充电宝 好像是中国品牌安克的, 你看看,工作归工作, 这个MADE in China才是生活。 -就这么个小小的细节啊, 让安克的股价在被发现的一瞬间 就跳涨了3%。 -安克的客服都说了, 好多人都来咨询这个充电宝, 安克也非常机智的 在这个产品描述里 加上了一个懂王同款。 ->不得不说啊, 特朗普这个带货实力确实不一般。 -安克这个品牌啊, 可以说是一个隐藏的巨头, 别看它就是卖卖充电宝啊、 充电线这些小配件, 但它 在中国全球化品牌50强的榜单里边 能排到第16, 仅次于亚迪, 绝对属于那种低调的行业隐形冠军。 -安克是2011年 由一个前谷歌工程师杨萌成立的, 那时候 深圳华强北正好有一波出海潮, 国内市场太卷, 加上阳萌又有海外背景, 所以他第一步就另辟蹊径, 选择跳过国内市场, 直接冲击海外。 -想利用中国的供应链去打海外市场, 这个思路 我们现在可能感觉习以为常了, 但放在当时 还是挺大胆的。 -而这招专攻海外, 也直接让安克抱上了两条大腿, 这第一条大腿就是苹果。 -2011年左右, 正好是智能手机加速普及, 但这个官方的配件吧, 大家都懂, 太贵了。它大部分平替的配件呢, 倒是便宜, 但质量就一般般。 -哎,安克他就瞄准了这个市场, 专门给苹果做高质量的 配件。 -他很聪明的一点哈, 就是他会盯着iPhone去宣传, 紧跟着苹果蹭流量。 -iPhone在哪打广告, 或者有人在哪搜iPhone相关的关键词, 哎,安克就把广告打在哪, 你前脚刚看完iPhone, 后脚安克就弹出来了。 -感兴趣iPhone手机, 我这有配件, 还物美价廉。 -当然哈,安克这产品确实不错, 颜值也很高, 慢慢呢就拿下了一批苹果用户, 而他的第二条大腿就是亚马逊。 -安克在非常早期就入驻了亚马逊, 当时亚马逊的排序机制 主要就是看销量和评价。 -安克呢, 就把广告都导到亚马逊去成交, 积累了非常好的销售数据, 同时用户也很满意, 很快就成为了亚马逊 消费电子里的王牌卖家。 -同类产品里, 它的市场份额可以达到30%。 -而后来到2020年的时候, 又吹来两股风, 让安克直接起飞。 -一个就是 疫情,让美国人也开始习惯网购了, 线上购物的需求大大增加, 这就让非常擅长线上营销的安克销量跟着大涨。 -而另一股风呢? -哎,还是苹果, 苹果不是从iPhone 12开始 就不送充电器了吗? -这就让他把一部分业务 拱手又让给了安克, 这也让安克即使这两年 还能实现百分之三四十的增长, 成为了 可以说是配件品牌出海的标杆。 -所以你看最近这几年 品牌出海已经不光是汽车啊、手机啊、 家电这些大品牌的趋势, 类似安克这种细分领域的自主品牌、 新兴品牌 也掀起了国货出海的一股浪潮。 -前两天我去上海,那外滩大会 就看到了非常多新奇的中国 出海好货, 有那种自主设计师设计的鞋呀、 衣服呀、椅子这种日常消费品, 还有很多非常新颖的, 像智能猫砂盆啊, 纸牌屋同款的划船机啊, 超轻钛合金的伊拜克 三防固态硬盘等等, 这些 其实都是比较细分领域的行业冠军, 不管是从技术质量 还是那个设计的精致度, 你看完感觉还真挺震撼。 -到现在啊, 在亚马逊的美、英、日、法等等站点, 中国卖家的比例都已经超过了50%。 -同时呢, 这些出海的品牌也更注重本土化、 多元化和品牌化。 -比如像安克 最开始是靠着亚马逊, 但慢慢也延伸到了阿里express、 ebay等等, 现在也开始有了自己的独立站, 同时在线下拓展渠道。 -根据万里汇2024年上半年的数据啊, 在平台上改走品牌化道路的卖家 同比暴涨了138%, 他们也更注重 在本地区设立主体运营, 打通供应链等等。 -你像这些品牌卖家, 他在出海的过程当中 经常会遇到一个问题, 其实就是金融上的, 比如说跨境支付啊, 外汇的收付啊等等, 所以就会有一些 这样的跨境金融管理工具, 比如蚂蚁旗下的万里汇, 假设你想把货卖到欧美、 东南亚等等等很多国家, 那你可能会需要,哎, 我亚马逊开一个,户 Lazada开一个, TikTok shop开一个, 然后每个平台都得单独认证, 什么美元、欧元、 印度卢比都得单独管理 是吧?当时就头大, 所以呢, 他们就会用万里汇这样一个账户, 链接130多个 涵盖了几乎所有 主流的跨境电商平台, 就可以在像亚马逊、shein、沃尔玛 TikTok等等的这些平台收付款, 还能一键完成平台的认证啊、 合规啊等等, 包括很多品牌独立站, 它也能支持全球200多个国家地区 30多个币种的收款, 还有近百种币种的付款。 -而且哈,这个万里汇账户 它还是一个出海的资金管理中心。 -怎么讲呢, 你像理财贷款, 还有一些外汇的避险工具, 包括应急的资金周转等等, 这些金融功能也有。 -就好像有一个非常懂出海的CFO 给你提供金融支持, 包括资源对接, 这样卖家就可以专注在把货给做好、 卖好, 让这些出海的国货可以走的更稳。` - }, - { - text: `哪个国家 印出了这张100万亿元的钞票? -我跟你说, 他的通货膨胀可以说是世界闻名, 从2000年开始 通胀就没下过三位数, 而伴随着这个恶性通胀的 其实就是金元对美元的急速贬值。 -98年的时候, 一美元还能兑24津巴布韦元, 到06年就贬值到1美元兑10万金元。 -这津巴布韦政府一看, 对吧?这0也太多了, 干脆咱就抹掉3个0, 定义一个新的津巴布韦元 叫ZWN啊, 他原来那个货币叫ZWD, 这样一美元就兑100金元了, 对吧?你看 多聪明。结果 津巴布韦这边 没止住恶性的通货膨胀, 这金元贬值的速度就越来越快。 -一年后,07年4月的时候 又跌到了一美元兑3万津巴布韦元, 年底的时候 又变成一美元兑200万金元, 之后每个月都在狂泻, 半年之后 就出现了那张5000亿金元的钞票。 -津巴布韦政府一看, 这0又太多了 对吧?老办法 再抹0,这次直接抹掉10个0, 就是除以100亿, 然后这新的货币呢, 就叫做DWR。 -好吧,这个时候啊, 津巴布韦通过膨胀 据估算已经飙升到了 百分之九乘以10的22次方, 那外汇市场可想而知。 -到半年之后, 就09年初的时候, 它又印出来那张举世闻名的 100万亿金元的钞票。 -不过你看着这么多万亿, 最后其实也就值不到0.4美元, 那央行说好 咱再去要12个0 再除以1万亿啊, 这个新的货币就叫ZWL。 -你看,短短三年里, 津巴布韦政府已经砍掉了25个零, 到最后这金元已经完全没有信用了。 -你想你这政府整天这么砍零,然 后推出新货币, 到最后可能这26个字母都不够你用。 -无奈之下, 政府被迫放弃金鱼,哎, 用欧元美元, 这才止住了国内的恶性膨胀。 -不过最近哈,刚缓过来, 1.19年的时候, 津巴布韦又火奋起来, 推出了自己的货币, 通胀又飙到三位数。 -然后今年4月份, 他就又又又推出自己新货币, 叫ZWG津巴布韦金, 这回号称是有贵金属倍数, 你就说这津巴布韦它乱不乱? -通过这个极端的例子啊, 你其实非常容易看出来, 通货膨胀跟外汇之间的关系。 -物价,它对汇率的影响最底层, 但同时 也可能会非常的缓慢的隐形。 -所以你如果一般看 那种比较主流的货币啊, 就比如说美元 过去50年通过膨胀跟汇率的对比, 只有80年代美国高速通胀的时期, 你才能非常明显的看到富相关。 -从90年代之后 就没有什么特别明显的相关性, 这为什么啊? -就是因为像美元、欧元、日元, 包括人民币, 他大部分的时间通胀都是在10%以下, 这个区间叫轻微的波动。 -你要不是放到像什么津巴布韦、 委内瑞拉、 土耳其这种 通胀一下就飙到超过50%的 这些国家, 一般看起来啊 可能都不会那么明显。` - }, - { - text: `国产芯片终于迎来重大突破了。 -说两个好消息, 第一, 国产光刻机已经开始量产推广了。 -这是工信部公开的数据, 差不多相当于阿斯麦公司的1460K, 可以生产65纳米级别的芯片。 -虽然制程不是很先进, 但是它的重要意义 在于核心零部件国产化 被西方卡脖子。 -用官方的话术来说, 这是事关综合国力 和国家安全的国之重器。 -到今天,全国上下 其实都已经达成了一项共识, 就是 我们不能再对外资抱有任何幻想。 -芯片产业链国产化势在必行。 -当然,要实现这么宏大的目标, 不仅需要国家支持, 更需要企业参与。 -这里就要讲到第二个好消息了, 2024年9月20日, 由长城汽车牵头 联合开发的车规级MCU芯片紫金M100 已经全部完成并成功点亮。 -光看这条消息, 很多人可能体会不到 这颗芯片的重要意义。 -说几个数据吧, 2023年,中国新能源汽车产量 达到了958.7万辆, 然而 我们的汽车芯片自给率却不到10%。 -这其中像IGBT这类功率芯片 国产率大概有35%, 但像紫金M100这种 难度更大的MCU芯片 自给率却只有10%。 -这就意味着 中国的汽车芯片市场 绝大部分营收和利润 都被外国企业拿走了。 -而且我们的汽车产业发展 也会随时受到外人的限制。 -比如2021年 西方国家的供应链危机 引发了一轮芯片荒, 导致中国汽车减产了198.2万辆。 -所以长城这颗国产自研的紫荆M100 不仅是国内芯片产业链的重大突破, 也是中国汽车产业打破垄断、 实现芯片自由 的关键一步。 -更重要的是, 这颗芯片的国产化程度非常高, 从硅知识产权的获取 到精源制造、封装测试 各个核心环节都在国内完成, 这样就能大幅度降低 被国外卡脖子的风险。 -而且这还只是个开始。 -这次公布的紫荆M100 会首先应用在X55大灯控制器平台, 计划5年上车量不低于250万辆, 今后 还会拓展到空调抬头显示等等模块。 -未来还会推出紫荆M200和M300系列, 主要应用在动力、底盘系统, 甚至 还包括汽车最核心的中央处理器 紫荆S300等。 -到长城汽车完成了这套芯片矩阵, 再加上智能驾驶方面 开启全国体验的长城全场景。NOA, 在智能座舱领域相当亮眼 的coffee OS3的全新升级, 这足以让它在智能化时代的竞争中 立于不败之地。 -事实上,长城在这些技术上的投入 已经获得了非常不错的回报。 -比如说今年9月上旬, 全新魏牌阑珊在6座7座SUV排行榜中 以1741辆的销量拿下周榜。 -还有长城汽车 今年的季度盈利和营收 双双超过预期, 直接带动最近的长城股价大幅上涨。 -这就告诉我们一个道理, 国内车企必须死磕技术, 为消费者带来好产品, 才能获得更好的业绩 和更长远的发展。 -这次推出的芯片和光刻机 可能不是行业里最先进的, 也不能一步到位完全取代西方技术。 -我们需要正视差距, 尊重事实。 -我们也需要更多的企业像长城一样, 勇于踏出自主研发的第一步。` - }, - { - text: `当然了,除了俄罗斯之外,其他国家也在买中国汽车,比如墨西哥。 2013 年,墨西哥所有销售汽车中有 25% 来自中国,而在 6 年前这个数字为0。澳大利亚也在不断买中国汽车,最受澳大利亚欢迎的中国汽车品牌是名爵,去年卖了 5.8 万辆。在新能源车市场,比亚迪则占据了澳大利亚的新能源汽车 14% 份额,位于第二名。当然,这里也不得不提一下第一名,那就是特斯拉市场份额高达53%,在东南亚市场,中国车企业销量在 2013 年同样实现小幅上升,最典型的就是泰国,在泰国的新能源车市场,中国品牌占据了 80% 的份额,比如比亚迪的原 plus 就是泰国的新能源车爆款,那到底是什么原因让中国汽车爆卖呢?基本还可以总结为三方面原因,首先是全球疫情爆发,由于中国汽车的供应链完善,疫情期间仍能维持稳定生产,而日韩这些过去的出口大户受疫情影响,芯片、钢材、橡胶等关键原材料短缺,不仅汽车产能下降,而且成本升高,这就让中国汽车更具性价比。而随着中国国内新能源汽车市场越来越卷出海,成为不少中国车企的选择,比如比亚迪 2023 年进入全球 58 个国家和地区,出口汽车 24 万辆,是上一年度的 3.34 倍。在泰国新能源车市场,比亚迪单独占到了 40% 的市场份额,是名副其实的泰国新能源汽车销冠。而且中国新能源汽车并非只是具备成本优势,汽车与 AI 互联网融合的智能化更是中国车企的拿手好戏。从豪华配置到智能大屏,从外观设计到内饰比拼,这让中国新能源汽车的溢价能力明显变高。2019 年中国新能源汽车平均出口价格每量只有 5, 000 美元, 2022 年涨到了 2.2 万美元。比如比亚迪汉在欧洲发布时价格接近 50 万人民币,是国内售价的两倍多。在泰国、以色列、新西兰等多个国家,比亚迪也已经是新能源汽车的销售冠军。不过,中国汽车征服海外虽然是一部励志爽门,但其实有不少挑战。` - } -]; diff --git a/packages/vmind/__tests__/browser/src/constants/chartGeneratorData.ts b/packages/vmind/__tests__/browser/src/constants/chartGeneratorData.ts deleted file mode 100644 index ced33c14..00000000 --- a/packages/vmind/__tests__/browser/src/constants/chartGeneratorData.ts +++ /dev/null @@ -1,6196 +0,0 @@ -/* eslint-disable max-len */ -export const chartGenerationMockData = [ - { - llm: 'gpt-4o-2024-05-13', - result: [ - { - context: { - dataTable: [ - { - 年份: 2024, - 党派: '左翼联盟', - 席位数: 182 - }, - { - 年份: 2024, - 党派: '新人民战线', - 席位数: 168 - }, - { - 年份: 2024, - 党派: '极右翼国民联盟', - 席位数: 143 - }, - { - 年份: 2024, - 党派: '右翼共和党', - 席位数: 48 - } - ], - fieldInfo: [ - { - fieldName: '年份', - description: '选举年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '党派', - description: '党派名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '席位数', - description: '党派获得的席位数', - type: 'count', - role: 'measure', - location: 'measure' - } - ], - text: '地图带你看懂法国大选。 2024 年法国议会选举结果揭示了法国社会的撕裂,没有任何党派能获得 577 个议题中的绝对多数。左翼联盟、新人民战线执政党中间派联盟和极右翼国民联盟分别占据 182 席、 168 席、 143 席。除了这三家以外,其余党派席位最多的也只有右翼共和党的 48 席,因此左翼联盟、执政党和极右翼算是形成了三分天下的格局。今天我们便结合地图和数据,聊一聊法国大选。本期视频的所有分析均为个人观点,仅供参考。在开始之前,我先快速的放一下各党派在几个主要政治议题上的立场,有需要的朋友可以截图保存一下。' - }, - timeCost: '3.9' - }, - { - context: { - dataTable: [ - { - 国家: '法国', - 选区数量: 577, - 选区人口范围: [100000, 120000], - 城市: '巴黎' - }, - { - 国家: '法国', - 选区数量: 577, - 选区人口范围: [100000, 120000], - 城市: '里昂' - }, - { - 国家: '法国', - 选区数量: 577, - 选区人口范围: [100000, 120000], - 城市: '马赛' - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '国家名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '选区数量', - description: '全国选区的总数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '选区人口范围', - description: '每个选区的人口范围', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '城市', - description: '人口密集的大城市', - type: 'string', - role: 'dimension', - location: 'dimension' - } - ], - text: '现在我们进入正题,首先需要说明法国的选区制度,全国共有 577 个选区,每个选区包括 10- 12 万的人口密集的地方选区就小,人口稀少的区域选区域就大。因此地图上各个政党所占的面积并不能与其票数划等号,而是要看具体的选区分布在人口密集的大城市,譬如巴黎、里昂、马赛,虽然看起来面积小,实际上选区数量很多,占的比重很大。' - }, - timeCost: '3.0' - }, - { - context: { - dataTable: [ - { - 地区: '西北部', - 失业率年份: '2022', - 失业率排名: '最低的20个省' - }, - { - 地区: '西北部', - 失业率年份: '2022', - 失业率排名: '21-40低的省份' - }, - { - 政党: '右翼共和党', - 席位数: 48 - }, - { - 政党: '左翼联盟新人民战线', - 席位数: 182 - }, - { - 政党: '马克龙的执政党中间派联盟', - 席位数: 168 - }, - { - 政党: '乐旁的极右翼国民联盟', - 席位数: 143 - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '法国的不同地区', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '失业率年份', - description: '失业率数据对应的年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '失业率排名', - description: '失业率排名', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '政党', - description: '政党名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '席位数', - description: '政党获得的席位数', - type: 'count', - role: 'measure', - location: 'measure' - } - ], - text: '尽管如此,马克龙强调市场自由化,支持创新和创业,对欧盟一体化和国际合作的开放还是得到了许多大城市选民的支持。大城市仍然是马克龙的重要支持来源。除了大城市外,我们刚才提到过法国东北地区工业的衰落,其实在法国的西北地区又是另一番景象。之前那张关于中小工业城市分布的途中,我们可以清晰的看到西北地区的工业对于当代法国的重要性,当然工业只是一个缩影。我们再来看失业率地图,黄色代表 2022 年失业率最低的 20 个省,橙色是 21- 40 低的省份,可以看出西北部地区的失业率明显低于东北部。再看移民分布地图,西北部地区因为大城市少,而且离地中海更远,接受的移民也比较少。综上,西北地区的经济较为稳定,而且不受移民带来的社会问题困扰,日子过得比较舒服,这些选民对于未来持乐观态度,也成为了马克龙的另一主要票仓。除了以上三大势力外,浅蓝色代表的右翼共和党也获得了 48 个席位。他们的支持者主要位于经济同样比较富足,但是政治观点更为保守的地区。这里我就不展开讲总结。本期视频我们从法国官方的报告与数据出发,从经济与人口地理的角度分析了法国的大选结果。左翼联盟新人民战线以大城市为根基拿下最多的 182 席,马克龙的执政党中间派联盟则凭借大城市和西北地区的支持者取得了 168 席。乐旁的极右翼国民联盟则主要扎根于东北与东南地区,以 143 起居于第三这样的三分割据局面使得法国议会缺乏绝对多数,并且三方势力相差不大。可以预见在未来法案的通过上会面临极大的阻碍。举例来说,左翼和极右翼甚至存在联手撤回延迟退休法案的理论可能。虽然实际操作起来也面临很多困难,双方都不太愿意和对方合作,但即便是理论,可能也已经能表明未来的不确定性。' - }, - timeCost: '0.1' - }, - { - context: { - dataTable: [ - { - 公司: '星巴克', - 季度: '第二季度', - 营业收入: 8560000000, - 同比变化: -2, - 净利润变化: -15, - 股票市值变化: -115000000000 - } - ], - fieldInfo: [ - { - fieldName: '公司', - description: '公司名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '季度', - description: '财报季度', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '营业收入', - description: '营业收入金额', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '同比变化', - description: '同比变化百分比', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '净利润变化', - description: '净利润变化百分比', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '股票市值变化', - description: '股票市值变化金额', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '住手,你们住手,不要再砸了,你们不要再砸了。万万没想到,瑞幸和库迪的九块九大战,快把星巴克给卷死了。前段时间,星巴克公布了第二季度财报,营业收入 85.6 亿美元,同比下降了2%,净利润大跌15%,股票市值一天内蒸发了 1, 150 亿人民币。另一方面,星巴克的咖啡也在悄悄降价。如果你手机上有星巴克的APP,几乎每天都会收到 5 张以上的优惠券,比如满60.10、满75.15、任意新冰乐 7 折等等,部分单品的团购价优惠下来低至 9 元。终于, 9.9 的风还是卷到了星巴克。在过去很长一段时间里,星巴克是小资生活的代表,一杯咖啡动辄几十块钱,也只有电视剧里那些白领们和云淡风轻的走进去,熟练地点一杯拿铁,找个位置坐下,悠闲地打开电脑喝咖啡。岁月静好人间,值得有人点一杯星巴克,朋友圈能发十几条动态,有人为了抢星巴克限量版的猫爪杯,能通宵排队,甚至大打出手。' - }, - timeCost: '3.8' - }, - { - context: { - dataTable: [ - { - 国家: '美国', - 品牌: '星巴克', - 饮品: '大杯美式咖啡', - 价格: 2.95, - 平均月工资: 6228, - 最低时薪: 7.25, - 主力消费人群月薪: null - }, - { - 国家: '中国', - 品牌: '星巴克', - 饮品: '饮品', - 价格: 30, - 平均月工资: null, - 最低时薪: null, - 主力消费人群月薪: 60000 - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '国家名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '品牌', - description: '咖啡品牌', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '饮品', - description: '饮品名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '价格', - description: '饮品价格', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '平均月工资', - description: '国家的平均月工资', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '最低时薪', - description: '国家的最低时薪', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '主力消费人群月薪', - description: '主力消费人群的月薪', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '星巴克在中国国内的定位一直都是高端咖啡品牌,但是很多人不知道的是,它在国外的定位其实是平民咖啡,在美国一杯星巴克大杯美式咖啡大概是 2.95 美元,而根据美国劳工部的统计,美国平均月工资是 6, 228 美元,最低时薪是 7.25 美元,这是啥意思呢? 1002.65 美元的星巴克还不到美国人平均月收入的 2, 000 份之一,也就是平常坐一趟地铁的价格吧。而在中国市场,星巴克的饮品价格普遍要超过 30 元一杯。如果按照美国的对应消费力,它的主力消费人群应该是月薪至少6万元的人。' - }, - timeCost: '5.6' - }, - { - context: { - dataTable: [ - { - 日期: '2019-02', - 产品: '粉爪杯', - 原价: 199, - 最高价格: 1800 - } - ], - fieldInfo: [ - { - fieldName: '日期', - description: '具体日期', - type: 'date', - dateGranularity: 'month', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '产品', - description: '产品名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '原价', - description: '产品原始售价', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '最高价格', - description: '产品在网上的最高价格', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '2019 年2月,星巴克就发售了一款粉爪杯,那它长这样?售价 199 元,但是在网上最高炒到了 1, 800 元。有人寒冬腊月在星巴克门口通宵排队,就是为了买到这么一个杯子。还有人因为排队顺序大打出手,最后喜提免费食宿。靠着这些营销方法,在很长一段时间里,普通人对于星巴克是仰望的,觉得去星巴克消费是很有品的,再往前推十年,你甚至可以看到有人去星巴克点一杯咖啡就可以发十几条朋友圈的各种角度各种场景,还要配文低调有实力,天天喝都喝腻了好像呢?甚至有人专门发帖认真的提问,第一次去星巴克主要注意什么?怎么装的像老手呢?我一开始还以为是来搞笑和反讽的,没想到点开帖子此还真的是教大家怎么去星巴克抓老手的,包括但不限于怎么下载APP,问店员这周用的是啥肚子萃取时间是多少?张度和烘焙度怎么样?要不要加糖和加奶?这唬得我一愣一愣的,但是时过境迁,如今星巴克已经支棱不起来了,一边是疯狂降价买三送一搞促销,一边是继续下沉到四五线城市。' - }, - timeCost: '3.9' - }, - { - context: { - dataTable: [ - { - 公司: '星巴克', - 战略愿景年份: '2025', - d级市场数量: 300, - 县域市场数量: 3000, - 门店数量: 7000 - } - ], - fieldInfo: [ - { - fieldName: '公司', - description: '公司名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '战略愿景年份', - description: '战略愿景发布的年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: 'd级市场数量', - description: 'd级市场的数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '县域市场数量', - description: '县域市场的数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '门店数量', - description: '公司在中国的门店数量', - type: 'count', - role: 'measure', - location: 'measure' - } - ], - text: '星巴克近期发布的 2025 中国战略愿景当中,中国总部直言不讳地表示,星巴克看中的不仅仅是全国 300 多个 d 级市场,也包括近 3, 000 个县域市场。星巴克的愿景也体现在它的选址变化上,它在中国的门店已经突破了 7, 000 家,但是这开店位置却让人越来越看不懂了。' - }, - timeCost: '3.0' - }, - { - context: { - dataTable: [ - { - 咖啡品牌: '星巴克', - 咖啡类型: '美式', - 价格: 30 - }, - { - 咖啡品牌: '瑞幸', - 咖啡类型: '库里', - 价格: 9.9 - } - ], - fieldInfo: [ - { - fieldName: '咖啡品牌', - description: '咖啡的品牌名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '咖啡类型', - description: '咖啡的类型', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '价格', - description: '咖啡的价格', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '一家卖咖啡的店。星巴克没落的第二个原因是当代年轻人更偏向实用消费主义。坦白讲,大部分人喝咖啡其实就是为了遮住那点咖啡因,好让自己在一天的工作中保持清醒。你跟不懂咖啡的人聊什么豆子产地、风味,他只会回你一句,冰美式和中药有什么区别啊?如果你面前有三杯咖啡,第一杯是星巴克的 30 元美式,后面两杯是瑞幸库里的 9 块 9 咖啡也让你买单,大部分人都会选择后面两个,当然也有人会吹星巴克的豆子有多么多么的好,所以它买的这么贵也是值得的。' - }, - timeCost: '1.4' - }, - { - context: { - dataTable: [ - { - 月份: '6月', - 指标: 'M2', - 同比增长率: 6.2, - 预期增长率: 6.8, - 剪刀差: null, - 人民币存款增加: null, - 居民存款增加: null, - 时间范围: null - }, - { - 月份: '6月', - 指标: 'M1', - 同比增长率: -5, - 预期增长率: -5.4, - 剪刀差: null, - 人民币存款增加: null, - 居民存款增加: null, - 时间范围: null - }, - { - 月份: '6月', - 指标: 'M2-M1', - 同比增长率: null, - 预期增长率: null, - 剪刀差: 11.2, - 人民币存款增加: null, - 居民存款增加: null, - 时间范围: null - }, - { - 月份: '6月', - 指标: '人民币存款', - 同比增长率: null, - 预期增长率: null, - 剪刀差: null, - 人民币存款增加: 2460000000000, - 居民存款增加: 2140000000000, - 时间范围: null - }, - { - 月份: null, - 指标: '人民币存款', - 同比增长率: null, - 预期增长率: null, - 剪刀差: null, - 人民币存款增加: 11460000000000, - 居民存款增加: 9270000000000, - 时间范围: '上半年' - } - ], - fieldInfo: [ - { - fieldName: '月份', - description: '具体月份', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '指标', - description: '经济指标', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '同比增长率', - description: '同比增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '预期增长率', - description: '预期增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '剪刀差', - description: 'M2与M1的剪刀差', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '人民币存款增加', - description: '人民币存款增加量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '居民存款增加', - description: '居民存款增加量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '时间范围', - description: '数据对应的时间范围', - type: 'string', - role: 'dimension', - location: 'dimension' - } - ], - text: '咱聊一下最新的重磅数据,反正挺复杂的,国内6月 M2 同比增长6.2%,预期6.8%。 M1 同比下滑5%,预期下滑5.4%。 M M 一剪刀差走扩至 11.2% 再创新高。6月人民币存款增加 2.46 万亿,其中居民存款增加 2.14 万亿,增量几乎全都是老百姓存的。与 M1 的下滑相对,上半年人民币存款总共增加了 11.46 万亿,其中居民存款增加 9.27 万亿。大头也是老百姓,但增速逐月放缓。' - }, - timeCost: '10.9' - }, - { - context: { - dataTable: [ - { - 日期: '7月11日', - 事件: '美国公布CPI数据超预期回落', - 降息预期概率: null - }, - { - 日期: '7月30日', - 事件: '美联储议息会议', - 降息预期概率: 7 - }, - { - 日期: '9月18日', - 事件: '美联储议息会议', - 降息预期概率: 90 - }, - { - 日期: '7月10日', - 事件: '美联储鲍威尔国会听证会', - 降息预期概率: null - } - ], - fieldInfo: [ - { - fieldName: '日期', - description: '具体日期', - type: 'date', - dateGranularity: 'day', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '事件', - description: '事件描述', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '降息预期概率', - description: '市场对美联储降息的预期概率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '7月 11 日晚上,由于美国公布的 CPI 数据超预期回落,让市场对美联储降息预期大幅升温。从这场所的美联储观察工具看,虽然7月 30 一日的美联储议息会议,市场预期不降息的概率仍然是达到93%,但9月 18 日的美联储议息会议,市场预期降息一次的概率是达到90%,这比起上个月概率是上升很多。不过我还是得强调一下,这个美联储观察工具将来只能反映市场当前的预期态度,不能拿来预测美联储货币政策,因为这个概率是会不断随着最新经济数据变化而变化。比如要是下个月美国 CPI 出现较大反弹,那9月降息的概率就会大幅下降。而这次市场预期美联储9月降息的概率大幅上升,主要有两个原因,一、美联储鲍威尔在7月 10 日的国会听证会上整体态度偏戈。鲍威尔称,劳动力市场降温意味着持续高通胀的潜在源头已经减弱。他还表示,就业市场的进一步疲软可能是不必要的,也是不受欢迎的。鲍威尔说,通胀方面的工作还没有完成,我们还有更多工作要做,但与此同时,我们需要注意劳动力市场现况,我们已经观察到劳动力市场出现相当明显的疲软,有着新美联储通讯社之称的知名记者尼奇默尔斯认为,鲍威尔本周其实已暗示美联储的利率政策即将开始改变方向。' - }, - timeCost: '4.1' - }, - { - context: { - dataTable: [ - { - 日期: '2024-07-11', - 月份: '6月', - CPI同比: 3, - 市场预期CPI同比: 3.1, - 前值CPI同比: 3.3, - CPI环比: -0.1 - }, - { - 日期: '2020-05', - 月份: '5月', - CPI同比: null, - 市场预期CPI同比: null, - 前值CPI同比: null, - CPI环比: null - } - ], - fieldInfo: [ - { - fieldName: '日期', - description: '数据公布的日期', - type: 'date', - dateGranularity: 'day', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '月份', - description: '具体月份', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: 'CPI同比', - description: 'CPI同比增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '市场预期CPI同比', - description: '市场预期的CPI同比增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '前值CPI同比', - description: '前值的CPI同比增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: 'CPI环比', - description: 'CPI环比增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '第二个原因是7月 11 日晚上 8 点半美国劳工部公布的通胀数据,6月 CPI 是同比上涨3%,市场预期值3.1%,前值3.3%。这次美联储 CPI 回落,更关键是 CPI 环比是负增长0.1%,这是美国 2020 年5月以来 CPI 环比首次出现下降,而且美国 2020 年5月还是因为疫情导致的 CPI 骤降,是比较特殊时期,所以美国 CPI 环比负增长确实不太常见。但仔细看美国 VI 月 CPI 的具体构成,感觉猫腻还是不少的。' - }, - timeCost: '5.2' - }, - { - context: { - dataTable: [ - { - 国家: '美国', - 月份: '6月', - 指标: '汽油价格', - 变化率: -3.8 - }, - { - 国家: '美国', - 月份: '6月', - 指标: '食品和住房价格', - 变化率: 0.2 - }, - { - 国家: '美国', - 月份: '6月', - 指标: '核心通胀率', - 变化率: 3.3 - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '国家名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '月份', - description: '具体月份', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '指标', - description: '经济指标', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '变化率', - description: '变化的百分比', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '美国 VI 月 CPI 下降的主要贡献是汽油价格下跌。美国 VI 月汽油价格下跌了3.8%,抑制了当月通胀,抵消了食品和住房价格 0.2% 的上涨。比较诡异的是,美国原油期货价格6月是明明出现大幅上涨,这是因为原油期货价格传导到汽油价格有一些迟滞效应,但那样的话,下个月公布的 CPI 数据,汽油价格可能就得反弹了。要是下个月公布的 CPI 数据,汽油价格还继续下降,那就实在说不过去了。美国刨除能源和食品价格的核心通胀率6月是3.3%,但整体降幅还是低于CPI。' - }, - timeCost: '8.2' - }, - { - context: { - dataTable: [ - { - 国家: '美国', - 月份: '6月', - 服务业通胀同比: 5, - 非农就业人口: 206000, - 市场预期非农就业人口: 190000, - 修正前非农就业人口: null, - 修正后非农就业人口: null - }, - { - 国家: '美国', - 月份: '5月', - 服务业通胀同比: null, - 非农就业人口: null, - 市场预期非农就业人口: null, - 修正前非农就业人口: 272000, - 修正后非农就业人口: 218000 - }, - { - 国家: '美国', - 月份: '4月', - 服务业通胀同比: null, - 非农就业人口: null, - 市场预期非农就业人口: null, - 修正前非农就业人口: 165000, - 修正后非农就业人口: 108000 - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '国家名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '月份', - description: '具体月份', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '服务业通胀同比', - description: '服务业通胀同比增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '非农就业人口', - description: '非农就业人口数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '市场预期非农就业人口', - description: '市场预期的非农就业人口数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '修正前非农就业人口', - description: '修正前的非农就业人口数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '修正后非农就业人口', - description: '修正后的非农就业人口数量', - type: 'count', - role: 'measure', - location: 'measure' - } - ], - text: '美国通胀目前最顽固的就是服务业通胀,美国 VI 月服务业通胀仍然是同比上涨5%。美国毕竟是服务业为主的国家,服务业通胀还高居5%,美国要说自己已经控制住通胀,完全就是忽悠人。不过虽然美国大选临近,美国现在经济数据基本是为选型服务,比如已经假的不能再假的美国非农就业数据,美国 VI 月非农就业人口增加20.6万人,高于市场预期的 19 万人。然而美国同时把5月数据从 27.2 万人大幅下修至 21.8 万人,4月从 16.5 万人修正至10.8万人,修正后两个月合计较修正前减少 11.1 万人。' - }, - timeCost: '9.4' - }, - { - context: { - dataTable: [ - { - 日期: '2023-07-11', - 股市: '纳斯达克', - 涨跌幅: -2 - }, - { - 日期: '2023-07-12', - 股市: '日股', - 涨跌幅: -2.45 - }, - { - 年份: '2004', - 事件: '美联储降息' - }, - { - 年份: '2006', - 事件: '美联储停止加息' - }, - { - 年份: '2007', - 事件: '美联储开始降息' - }, - { - 年份: '2007', - 事件: '股市大涨' - }, - { - 年份: '2008', - 事件: '金融危机爆发,股市大跌' - }, - { - 年份: '2022', - 事件: '美联储开始加息' - }, - { - 年份: '2024-2026', - 事件: '可能爆发世界金融危机' - } - ], - fieldInfo: [ - { - fieldName: '日期', - description: '具体日期', - type: 'date', - dateGranularity: 'day', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '股市', - description: '股市名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '涨跌幅', - description: '股市涨跌幅度', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '年份', - description: '年份', - type: 'year', - dateGranularity: 'year', - role: 'measure', - location: 'measure' - }, - { - fieldName: '事件', - description: '事件描述', - type: 'string', - role: 'dimension', - location: 'dimension' - } - ], - text: '我注意到虽然这次市场大幅提高了美联储9月降息概率,但美股和日股反而不涨反跌,纳斯达克在7月 11 日是下跌了2%,日股在7月 12 日也跟随下跌了2.45%。这是市场反身性效应的某种预演,股市炒的是预期,之前美股和日股是基于美联储降息预期,已经提前涨了一年多了,那么当美联储真正降息之后,市场是可能出现反身性效应,也就是所谓利好落地势利空的说法。当然股市走势千变万化,这也只是其中一种可能性。历史的参考例子,比如 2004 年美联储降息, 2006 年停止加息, 2007 年开始降息,但股市是一直涨到 2007 年底,随后自带危机爆发,股市开始大跌。我之前也梳理过,从 1980 年以来,美联储每次加息超过 5% 的幅度,首次加息后的 2- 4 年内都会爆发金融危机,这次美联储是 2022 年开始加息,所以按照历史路径, 2024 年到 2026 年是有可能爆发世界金融危机,这个结合当前国际局势和地缘形势,还是有挺大的可能性。' - }, - timeCost: '8.2' - }, - { - context: { - dataTable: [ - { - 地区: '黑龙江省', - 时间范围: '10年', - 荒废比例: 60, - 荒废小学数量: 1900, - 小学总数: null - }, - { - 地区: '东北', - 时间范围: '10年', - 荒废比例: 50, - 荒废小学数量: 6800, - 小学总数: null - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '地理区域', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '时间范围', - description: '时间范围', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '荒废比例', - description: '荒废的小学比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '荒废小学数量', - description: '荒废的小学数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '小学总数', - description: '小学总数', - type: 'count', - role: 'measure', - location: 'measure' - } - ], - text: '以前的小学空荡荡的,老年人养起了鸡鸭鹅狗,彻底荒废了整个黑龙江省, 10 年时间荒废了近六成,小学加起来有 1, 900 余所,整个东北十年荒废了 6, 800 余所小学,少了一半。' - }, - timeCost: '3.6' - }, - { - context: { - dataTable: [ - { - 地区: '河南', - 年份: '2023-2027', - 小学学龄人口下降: 2000000, - 小学学龄人口下降比例: 20 - }, - { - 地区: '全国', - 年份: null, - 小学学龄人口下降: null, - 小学学龄人口下降比例: 90 - }, - { - 地区: '上海', - 年份: null, - 小学学龄人口下降: null, - 小学学龄人口下降比例: null, - 总和生育率: 60 - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '具体地区', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '小学学龄人口下降', - description: '小学学龄人口预计下降人数', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '小学学龄人口下降比例', - description: '小学学龄人口预计下降比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '总和生育率', - description: '总和生育率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '而小学缺孩子这个趋势早已经蔓延至全国各地了。东部的兹西县,有的小学一个班只有一个学生。华南的徐文县,去年某小学开学,一年级也只有一个学生。中部人口大省河南,据测算, 2023- 2027 年小学学龄人口预计下降 200 多万人,缩水超两成,出现了基数的坍塌。从全国来看,基于学龄人口的预测显示,全国超 1, 400 个县域中,近九成县域小学学龄人口预计下滑,小学鹤岗化以谁也没想到的方式在扩散,从东北开始到大江南北,下一步可能是上海最新的总和生育率只有 0.6 了,该来的总是要来,从民政局冷冷清清到妇产科缺孩子,再到幼儿园关停潮,现在轮到了小学关停潮,这个传播链条还在扩散。' - }, - timeCost: '7.0' - }, - { - context: { - dataTable: [ - { - 省份: '广东', - 城市: '惠州', - 房价: 60000 - }, - { - 省份: '广西', - 城市: '南宁', - 房价: 50000 - }, - { - 省份: '山东', - 城市: '东营', - 房价: 40000 - }, - { - 省份: '江苏', - 城市: '南京', - 房价: 30000 - }, - { - 省份: '黑龙江', - 城市: '大靶', - 房价: 10000 - }, - { - 省份: '北京', - 城市: '京津交界处', - 楼盘: '某楼盘', - 原价: 1600000, - 现价: 390000 - } - ], - fieldInfo: [ - { - fieldName: '省份', - description: '省份名称', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '城市', - description: '城市名称', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '房价', - description: '一套房的总价', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '楼盘', - description: '楼盘名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '原价', - description: '楼盘的原价', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '现价', - description: '楼盘的现价', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '实际上,如果鹤岗化只是局限于教育领域,那还好说,但不是实际情况复杂的多楼市,像鹤岗那样房子白菜价的城市越来越多了,据不完全统计,至少有 10 个省 24 个城市陷入几万元买房的讨论。不是每平方米单价几万,而是一套房总价几万。网传广东惠州6万,广西南宁5万,山东东营4万,江苏南京3万,黑龙江大靶1万,这个传播势头在这轮楼市调整的加持下,现在已经来到了北京的外围,在京津两市的交界处,抹楼盘从 160 万元降到了 39 万,而且打了骨折还卖不出去。' - }, - timeCost: '5.8' - }, - { - context: { - dataTable: [ - { - 地区: '秦岭深处某县', - 人口: 30000, - 编制人员数量: 2194, - 行政管理支出: 18000000, - 一般公共预算收入: null, - 工资预算总支出: null, - 在职人员工资支出: null, - 离退休人员工资支出: null, - 零聘人员工资支出: null, - 在职人员数量: null, - 临聘人员数量: null - }, - { - 地区: '乌蒙山区某县', - 人口: null, - 编制人员数量: null, - 行政管理支出: null, - 一般公共预算收入: 700000000, - 工资预算总支出: 2630000000, - 在职人员工资支出: 2000000000, - 离退休人员工资支出: 170000000, - 零聘人员工资支出: 460000000, - 在职人员数量: 15000, - 临聘人员数量: 28000 - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '具体的地理区域', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '人口', - description: '地区人口数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '编制人员数量', - description: '编制内的工作人员数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '行政管理支出', - description: '一年的行政管理支出', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '一般公共预算收入', - description: '一般公共预算收入', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '工资预算总支出', - description: '工资预算总支出', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '在职人员工资支出', - description: '在职人员的工资支出', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '离退休人员工资支出', - description: '离退休人员的工资支出', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '零聘人员工资支出', - description: '零聘人员的工资支出', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '在职人员数量', - description: '在职人员的数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '临聘人员数量', - description: '临时聘用人员的数量', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '地方财力,之前鹤岗是全国第一个财政重整的地级市,甚至传出来停招公务员,现在过紧日子的城市也越来越多了。秦岭深处某县人口只有3万,编制人员却有 2, 194 名,一年的行政管理支出 1, 800 万,排在支出的首位。乌蒙山区某县一般公共预算收入 7 个亿,但工资预算总支出 26.3 亿,其中在职人员 20 亿,离退休人员 1.7 亿,零聘人员 4.6 亿。注意一个细节,在职人员数量 1.5 万,临聘人员数量 2.8 万。' - }, - timeCost: '11.6' - }, - { - context: { - dataTable: [ - { - 城市: '深圳', - 年份: '2021', - 房价跌幅: -40 - } - ], - fieldInfo: [ - { - fieldName: '城市', - description: '城市名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '房价跌幅', - description: '房价跌幅百分比', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '中国房价一度被视为坚不可摧的资产堡垒,更一度有京沪永远涨的口号。然而,自 2021 年以来,包括一线城市在内,房价持续低迷,深圳全市二手房均价距离 2021 年初的最高点跌幅已接近40%,而且还没有停下来的意思。各热点城市二手房每成交一套就要多出好几套,新增的房源和房价表现几乎完全正相关的是飞天茅台的价格, 53 度。' - }, - timeCost: '3.9' - }, - { - context: { - dataTable: [ - { - 商品: '飞天茅台', - 年份: '2021', - 价格: 3500 - }, - { - 商品: '飞天茅台', - 年份: '2024', - 价格: 2000 - }, - { - 商品: '一线房产', - 年份: '2012', - 价格: null - }, - { - 商品: '飞天茅台', - 年份: '2012', - 价格: null - } - ], - fieldInfo: [ - { - fieldName: '商品', - description: '商品名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '价格', - description: '商品价格', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '飞天茅台在 2021 年巅峰时期,一瓶售价超过 3, 500 元,如今已经快跌破 2, 000 元,是巧合吗?过去一线城市房价和飞天茅台价格可以说是最硬的人民币计价资产了,甚至比现金还要优质。一线房产和飞天茅台在相当长的一段时间内有两个相同属性,一他们可以长期增值。二他们易于套现。然而现在情况出现了前所未有的变化,房价和飞天茅台两者双双在 2012 一年见顶。' - }, - timeCost: '12.2' - }, - { - context: { - dataTable: [ - { - 年份: '2021', - 品牌: '保时捷', - 车型: null, - 区域: null, - 优惠金额: null, - 最低售价: null, - 裸车价: null, - 报价: null, - 折扣: null - }, - { - 年份: '2024', - 品牌: '保时捷', - 车型: 'Macan', - 区域: '华南', - 优惠金额: 160000, - 最低售价: 448000, - 裸车价: null, - 报价: null, - 折扣: null - }, - { - 年份: '2024', - 品牌: '保时捷', - 车型: 'Macan', - 区域: '山东', - 优惠金额: null, - 最低售价: null, - 裸车价: 500000, - 报价: null, - 折扣: null - }, - { - 年份: '2024', - 品牌: '保时捷', - 车型: 'Macan', - 区域: '湖北', - 优惠金额: null, - 最低售价: null, - 裸车价: 500000, - 报价: null, - 折扣: null - }, - { - 年份: '2024', - 品牌: '保时捷', - 车型: 'Macan', - 区域: '江西', - 优惠金额: null, - 最低售价: null, - 裸车价: 500000, - 报价: null, - 折扣: null - }, - { - 年份: '2024', - 品牌: '保时捷', - 车型: 'Macan', - 区域: '福建', - 优惠金额: null, - 最低售价: null, - 裸车价: 500000, - 报价: null, - 折扣: null - }, - { - 年份: '2024', - 品牌: '保时捷', - 车型: 'Macan', - 区域: '浙江', - 优惠金额: null, - 最低售价: null, - 裸车价: 500000, - 报价: null, - 折扣: null - }, - { - 年份: '2024', - 品牌: '保时捷', - 车型: 'Macan', - 区域: '江苏', - 优惠金额: null, - 最低售价: null, - 裸车价: 500000, - 报价: null, - 折扣: null - }, - { - 年份: '2024', - 品牌: '保时捷', - 车型: '泰肯', - 区域: null, - 优惠金额: null, - 最低售价: null, - 裸车价: null, - 报价: 1038000, - 折扣: null - }, - { - 年份: '2024', - 品牌: '保时捷', - 车型: '泰肯', - 区域: null, - 优惠金额: null, - 最低售价: null, - 裸车价: 700000, - 报价: null, - 折扣: null - }, - { - 年份: '2024', - 品牌: '保时捷', - 车型: null, - 区域: null, - 优惠金额: null, - 最低售价: null, - 裸车价: null, - 报价: null, - 折扣: [70, 80] - } - ], - fieldInfo: [ - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '品牌', - description: '汽车品牌', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '车型', - description: '具体车型', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '区域', - description: '销售区域', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '优惠金额', - description: '优惠金额', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '最低售价', - description: '优惠后的最低售价', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '裸车价', - description: '裸车价', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '报价', - description: '原始报价', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '折扣', - description: '折扣比例', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '这不是巧合,其他很多数据也都在 2021 年见顶,比如另一个在 2021 年见顶并开始走下神坛的保时捷。保时捷销量的恶化还在加速,过去一年多,中国市场上保时捷的落地价可以说是惨不忍睹。近期,保时捷只卖 44 万的话题也引发了热议,其华南区域一家终端门店称, Macan 正在进行优惠促销,最高优惠 16 万,该车优惠后最低售价为 44.8 万。另外,在山东、湖北、江西、福建、浙江、江苏等多省份,该车均出现了 50 万元以下的裸车价,而报价达到 103.8 万的泰肯,现在 70 多万就可以拿下。目前,保时捷几乎所有的车型都可以打 7- 8 折。' - }, - timeCost: '20.5' - }, - { - context: { - dataTable: [ - { - 品牌: '保时捷', - 时间: '2024年一季度', - 销量: 16340, - 同比变化: -24 - }, - { - 品牌: '保时捷', - 时间: '2024年5月', - 销量: 4633, - 同比变化: -40.61 - } - ], - fieldInfo: [ - { - fieldName: '品牌', - description: '汽车品牌', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '时间', - description: '具体时间', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '销量', - description: '汽车销量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '同比变化', - description: '同比变化率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '不只是保时捷,包括奔驰、宝马、奥迪在内的豪华汽车品牌今年以来都在大幅降价,但仍然止不住销量断崖式下降。 2024 年一季度,保时捷中国卖出 16, 340 辆,同比大幅下降24%。保时捷在今年 5 月份仅卖出 4, 633 辆,同比去年5月下滑高达40.61%。这说明保时捷在中国的销量正在加速减少。' - }, - timeCost: '3.2' - }, - { - context: { - dataTable: [ - { - 车型: '卡罗拉油电混动', - 国家: '中国', - 售价: 79800, - 时间: '2024' - }, - { - 车型: '卡罗拉油电混动', - 国家: '中国', - 售价: 131800, - 时间: '2022' - }, - { - 车型: '卡罗拉油电混动', - 国家: '美国', - 售价: 23500, - 时间: '2024' - }, - { - 车型: '凯美瑞混动版', - 国家: '中国', - 售价: 149800, - 时间: '2022' - } - ], - fieldInfo: [ - { - fieldName: '车型', - description: '汽车的型号', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '国家', - description: '汽车售价所在的国家', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '售价', - description: '汽车的售价', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '时间', - description: '数据对应的时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - } - ], - text: '从两年前开始,特斯拉的 3 和 y 中国售价就是世界最低的, 7.98 万可以买到原本指导价 13.18 万的油电混动的卡罗拉。做一个对比,美国的油电混动卡罗拉的起售价是 2.35 万美元,有时甚至还要加价。按照美元人民币汇率计算,这款车的中国售价居然只有美国的一半水平,尽管配置存在差异,但不影响价格差异巨大的这个结论。除了卡罗拉外,汉兰达和凯美瑞也都大幅降价,即使是两年前,我们也很难想象只要 14.98 万人民币就可以买到最新款的混动版凯美瑞。' - }, - timeCost: '3.3' - }, - { - context: { - dataTable: [ - { - 时间: '十多年前', - 交通工具: '出租车', - 价格区间: [110, 120] - }, - { - 时间: '现在', - 交通工具: '滴滴', - 价格区间: [60, 70] - }, - { - 时间: '现在', - 交通工具: '出租车', - 价格区间: [110, 120] - } - ], - fieldInfo: [ - { - fieldName: '时间', - description: '具体时间', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '交通工具', - description: '使用的交通工具', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '价格区间', - description: '单程价格区间', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '中国物价的下降不仅仅体现在商品上,服务价格也是类似的趋势。举个例子,十多年前我常驻北京,当时经常在晚上十一二点从首都机场打车到西直门这样一段单程大约需要 110- 120 元,而现在滴滴大概只要 60- 70 元。如果是现在的出租车,价格和十多年前还是一样的。' - }, - timeCost: '6.5' - }, - { - context: { - dataTable: [ - { - 银行: '工行', - 年份: '2022', - 不良率: 0.39 - }, - { - 银行: '工行', - 年份: '2023', - 不良率: 0.44 - }, - { - 银行: '农行', - 年份: '2022', - 不良率: 0.51 - }, - { - 银行: '农行', - 年份: '2023', - 不良率: 0.55 - }, - { - 银行: '建行', - 年份: '2022', - 不良率: 0.37 - }, - { - 银行: '建行', - 年份: '2023', - 不良率: 0.42 - } - ], - fieldInfo: [ - { - fieldName: '银行', - description: '银行名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '不良率', - description: '个人住房贷款不良率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '以工行、农行、建行发布的数据来看,其 2023 年个人住房贷款不良率分别由 2022 年的0.39%、0.51%、 0.37% 增长至了0.44%、 0.55% 和0.42%,基本都实现了两位数的增幅。大家别觉得这些小数字没啥大不了的,要知道这三家银行每一家的个人住房贷款余额都超过了5万亿,而且按揭贷款往年基本上都是银行稳赚不赔的买卖。供建农三家银行之所以每年能够包揽中国最赚钱企业的前三名,按揭贷款所带来的收益贡献巨大。现在这个优质资产的不良率正在以每年两位数的增幅增加。' - }, - timeCost: '11.6' - }, - { - context: { - dataTable: [ - { - 年份: '2022', - 季度: null, - 法拍房挂牌数量: 980000, - 同比增长率: null - }, - { - 年份: '2023', - 季度: null, - 法拍房挂牌数量: 1410000, - 同比增长率: 43.9 - }, - { - 年份: '2024', - 季度: '一季度', - 法拍房挂牌数量: 604400, - 同比增长率: 192 - }, - { - 年份: '2024', - 季度: null, - 法拍房挂牌数量: 2000000, - 同比增长率: null - } - ], - fieldInfo: [ - { - fieldName: '年份', - description: '数据对应的年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '季度', - description: '数据对应的季度', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '法拍房挂牌数量', - description: '法拍房挂牌的数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '同比增长率', - description: '法拍房挂牌数量同比增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '你是银行,你慌不慌?而另一项作为佐证的数据则是法拍房,大家知道现在法拍房的数据有多夸张吗?根据瀚海研究院发布的数据显示, 2022 年全国共挂牌法拍房 98 万套,去年这个数字变成了 141 万套,增长了43.9%。而今年光是一季度的挂牌数量就已飙升至 60.44 万套通,同比上涨192%。这种局势下,银行要是再不改变断供处置策略,那今年的法拍数量估计有望达到 200 万。' - }, - timeCost: '5.7' - }, - { - context: { - dataTable: [ - { - 城市: '北京', - 年份: '2023', - 挂牌法拍房数量: 8153, - 成交法拍房数量: 2771, - 处置率: 33 - } - ], - fieldInfo: [ - { - fieldName: '城市', - description: '城市名称', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '挂牌法拍房数量', - description: '挂牌法拍房的数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '成交法拍房数量', - description: '最终成交的法拍房数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '处置率', - description: '法拍房的处置率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '事实上,对银行来说,现在的行情即使他收了房也难以处置。我们以北京为例, 2023 年北京挂牌法拍房 8, 153 套,最终成交仅 2, 771 套,处置率为33%,这还是房价波动相对较小的北京,换到其他已经跌穿首付的地区,处置率恐怕只会更低。而在法拍流程里,流拍和拍品二次上拍都会在此前的价格上更进一步降低,这也导致了银行回款难度的进一步提高。虽然按照现在的规则,这部分差价是由贷款人承担的,但对方既然已经到了选择断供的地步,可想而知最终也执行不了多少。' - }, - timeCost: '5.1' - }, - { - context: { - dataTable: [ - { - 日期: '2024-05', - 未出售商品房面积: 746000000, - 正常库存水平: 590000000 - }, - { - 统计时间段: '上半年', - 城市数量: 222, - 宽松政策数量: 341 - } - ], - fieldInfo: [ - { - fieldName: '日期', - description: '具体日期', - type: 'date', - dateGranularity: 'day', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '未出售商品房面积', - description: '未出售商品房的总面积', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '正常库存水平', - description: '正常情况下的库存水平', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '统计时间段', - description: '统计数据的时间段', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '城市数量', - description: '参与统计的城市数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '宽松政策数量', - description: '出台的宽松政策数量', - type: 'count', - role: 'measure', - location: 'measure' - } - ], - text: '另一项推动银行改变策略的原因,则是今年4月 30 号的一场会议,这场会议确定了房地产行业未来一年的发展方向,统筹消化存量房产和优化增量住房,用大家都熟悉的话来说就是去库存。根据国家统计局的官方数据显示,截至 2024 年5月,我国未出售商品房为 7.46 亿平米,远超 5.9 亿平米的正常库存水平。而整个上半年,根据 CRS 的统计,全国 222 个城市总计出台了 341 项宽松政策,但带来的效果均不理想,无论是销售面积还是投资金额,仍然在持续走低。' - }, - timeCost: '8.0' - }, - { - context: { - dataTable: [ - { - 年份: '2021', - 汽车出口量: 2020000 - }, - { - 年份: '2022', - 汽车出口量: 3110000 - }, - { - 年份: '2023', - 汽车出口量: 4910000 - } - ], - fieldInfo: [ - { - fieldName: '年份', - description: '数据对应的年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '汽车出口量', - description: '中国汽车出口的数量', - type: 'count', - role: 'measure', - location: 'measure' - } - ], - text: '大家好,我拍拍一名做过财经记者,大学老师和滴滴司届 up 主。 2023 年,我国汽车出口量达到了 491 万辆,超越日本成为世界第一汽车出口国。要知道,日本在这个位置坐了 8 年之久,而中国仅在过去三年时间里接连赶超韩国、德国、日本。中国汽车出口, 2021 年 202 万辆, 2022 年 311 万辆, 2023 年 491 万辆。' - }, - timeCost: '3.0' - }, - { - context: { - dataTable: [ - { - 车型: '名爵ZS', - 排名: 1, - 指导价: [80000, 90000] - }, - { - 车型: '特斯拉 model y', - 排名: 2, - 指导价: null - }, - { - 车型: '奇瑞瑞虎7', - 排名: 3, - 指导价: null - }, - { - 车型: '特斯拉 model 3', - 排名: 4, - 指导价: null - }, - { - 车型: '名爵 4 EV', - 排名: 5, - 指导价: null - }, - { - 车型: '奇瑞虎5X', - 排名: 6, - 指导价: null - }, - { - 车型: '欧盟达名爵5', - 排名: 7, - 指导价: null - }, - { - 车型: '缤越元plus', - 排名: 8, - 指导价: null - }, - { - 车型: '名爵 5', - 排名: null, - 指导价: 60000 - }, - { - 车型: '缤越', - 排名: null, - 指导价: 60000 - } - ], - fieldInfo: [ - { - fieldName: '车型', - description: '中国出口的乘用车车型', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '排名', - description: '车型在出口量中的排名', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '指导价', - description: '车型的国内指导价', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '中国汽车转眼间为何变得这么受欢迎呢?又到底是哪些国家在购买中国汽车?中国卖给老外汽车又是些什么品牌和价位车型?本期视频就为大家打开中国汽车出口全球第一背后的真实数据。首先,中国出口的 491 万辆汽车都是些什么车呢?根据乘联会统计,中国乘用车出口量前十车型分别为名爵ZS、特斯拉 model y、奇瑞瑞虎7、特斯拉 model 3、名爵 4 EV、奇瑞虎5X、欧盟达名爵5、缤越元plus。除了特斯拉的 model y 和 model 3,其他车型国内指导价基本都在 10 万元左右,比如排名第一的名爵ZS,指导价 8- 9万元,最便宜的名爵 5 和缤越低到6万元就能拿下,可见中国汽车出海主打的还是一个性价比。' - }, - timeCost: '10.8' - }, - { - context: { - dataTable: [ - { - 年份: '2013', - 汽车类型: '燃油车', - 出口数量: 3710000, - 新能源车出口占比: null, - 新能源车出口增速: null - }, - { - 年份: '2013', - 汽车类型: '新能源汽车', - 出口数量: 1200000, - 新能源车出口占比: 25, - 新能源车出口增速: null - }, - { - 年份: '2023', - 汽车类型: '新能源汽车', - 出口数量: null, - 新能源车出口占比: null, - 新能源车出口增速: 77.6 - } - ], - fieldInfo: [ - { - fieldName: '年份', - description: '数据对应的年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '汽车类型', - description: '燃油车或新能源汽车', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '出口数量', - description: '汽车出口数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '新能源车出口占比', - description: '新能源汽车占出口总量的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '新能源车出口增速', - description: '新能源汽车出口的增长速度', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '如果按燃油车、新能源车的分类来看, 2013 年中国出口燃油车 371 万辆,出口新能源汽车 120 万辆,新能源车占到出口总量的25%,虽然这个占比目前只有 1/ 4,但去年新能源出口增速是77.6%,势头不可谓不猛。' - }, - timeCost: '6.6' - }, - { - context: { - dataTable: [ - { - 国家: '俄罗斯', - 年份: 2013, - 出口量: 909000 - }, - { - 国家: '墨西哥', - 年份: 2013, - 出口量: 415000 - }, - { - 国家: '比利时', - 年份: 2013, - 出口量: 217000 - }, - { - 国家: '澳大利亚', - 年份: 2013, - 出口量: 214000 - }, - { - 国家: '英国', - 年份: 2013, - 出口量: 214000 - }, - { - 国家: '沙特阿拉伯', - 年份: 2013, - 出口量: 213000 - }, - { - 国家: '菲律宾', - 年份: 2013, - 出口量: 172000 - }, - { - 国家: '泰国', - 年份: 2013, - 出口量: 169000 - }, - { - 国家: '阿联酋', - 年份: 2013, - 出口量: 159000 - }, - { - 国家: '西班牙', - 年份: 2013, - 出口量: 139000 - }, - { - 地区: '欧洲', - 年份: 2013, - 占比: 38 - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '汽车出口的国家', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应的年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '出口量', - description: '汽车出口量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '地区', - description: '按地区划分的市场', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '占比', - description: '地区占中国汽车对外出口的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '那中国汽车出口都卖到了哪些国家呢? 2013 年中国汽车出口量前十的国家分别是,俄罗斯90.9万辆,墨西哥 41.5 万辆,比利时 21.7 万辆,澳大利亚 21.4 万辆,英国 21.4 万辆,沙特阿拉伯 21.3 万辆,菲律宾 17.2 万辆,泰国 16.9 万辆,阿联酋 15.9 万辆,西班牙 13.9 万辆。按地区来看的话,欧洲市场占中国汽车对外出口的38%,远超其他任何单一大洲,可见中国汽车正在得到全世界更多人的认可。' - }, - timeCost: '8.2' - }, - { - context: { - dataTable: [ - { - 年份: '2023', - 国家: '俄罗斯', - 汽车出口量: 909000, - 出口量增长率: 468 - }, - { - 年份: '2023', - 国家: '俄罗斯', - 品牌: '奇瑞金车', - 市场占有率: 11.2 - }, - { - 年份: '2023', - 国家: '俄罗斯', - 品牌: '哈弗', - 市场占有率: 10.6 - }, - { - 年份: '2023', - 国家: '俄罗斯', - 新车市场占比: 51 - }, - { - 年份: '2023', - 国家: '俄罗斯', - 出口增量贡献率: 42 - }, - { - 年份: '2024', - 国家: '俄罗斯', - 预测新车市场占比: 80 - } - ], - fieldInfo: [ - { - fieldName: '年份', - description: '数据对应的年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '国家', - description: '国家名称', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '汽车出口量', - description: '中国对该国的汽车出口量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '出口量增长率', - description: '中国对该国的汽车出口量增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '品牌', - description: '汽车品牌', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场占有率', - description: '品牌在市场中的占有率', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '新车市场占比', - description: '中国汽车在俄罗斯新车市场的占比', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '出口增量贡献率', - description: '俄罗斯对中国汽车出口增量的贡献率', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '预测新车市场占比', - description: '预测中国汽车在俄罗斯新车市场的占比', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '当然了,中国汽车出口世界第一,又不得不提议俄罗斯和墨西哥这两个国家可以说去年是把中国车买爆了。 203 年,中国对俄罗斯的汽车出口量从上一年度的 16 万辆暴增到了90.9万辆,增加了468%。在俄罗斯的新车市场中,第一名是俄罗斯品牌拉达,第二至第七名则全都是中国品牌,比如第二名是奇瑞金车,市场占有率11.2%。第三名是哈弗,新车,市场占有率10.6%。俄罗斯卖最好的新能源车也是来自中国的极客。目前中国汽车已经占据俄罗斯新车市场的51%,可以说是拿下了半壁江山。而对于中国而言,仅俄罗斯一个国家 203 年就贡献了中国汽车出口增量的42%,甚至有俄罗斯本土汽车经销商预测, 2024 年中国汽车可能占据俄罗斯新车份额的80%。' - }, - timeCost: '14.4' - }, - { - context: { - dataTable: [ - { - 年份: '2013', - 国家: '欧洲', - 市场份额: 18 - }, - { - 年份: '2013', - 国家: '欧洲', - 市场份额: 4 - }, - { - 年份: '2013', - 国家: '韩国', - 市场份额: 16 - }, - { - 年份: '2013', - 国家: '韩国', - 市场份额: 6 - }, - { - 年份: '2013', - 国家: '日本', - 市场份额: 12 - }, - { - 年份: '2013', - 国家: '日本', - 市场份额: 5 - } - ], - fieldInfo: [ - { - fieldName: '年份', - description: '数据对应的年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '国家', - description: '国家名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场份额', - description: '国家在俄罗斯新车市场的份额', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '有人说俄罗斯满爆中国汽车是因为欧美的贸易封锁,这也步无道理。 2013 年在俄罗斯的新车市场中,欧洲的市场份额从 18% 降到了4%,韩国从 16% 降到了6%,日本从 12% 降到了5%,和欧日韩都是对俄罗斯实行了限制出口国家,其中就包括了部分汽车,可以说中国汽车吃下的正是欧日韩在俄罗斯丢掉市场。' - }, - timeCost: '3.8' - }, - { - context: { - dataTable: [ - { - 国家: '墨西哥', - 年份: '2013', - 中国汽车占比: 25, - 品牌: null, - 销量: null, - 新能源汽车占比: null - }, - { - 国家: '墨西哥', - 年份: '2007', - 中国汽车占比: 0, - 品牌: null, - 销量: null, - 新能源汽车占比: null - }, - { - 国家: '澳大利亚', - 年份: '2023', - 中国汽车占比: null, - 品牌: '名爵', - 销量: 58000, - 新能源汽车占比: null - }, - { - 国家: '澳大利亚', - 年份: '2023', - 中国汽车占比: null, - 品牌: '比亚迪', - 销量: null, - 新能源汽车占比: 14 - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '国家名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '中国汽车占比', - description: '中国汽车在该国销售汽车中的占比', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '品牌', - description: '汽车品牌', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '销量', - description: '汽车销量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '新能源汽车占比', - description: '中国新能源汽车在该国市场中的占比', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '当然了,除了俄罗斯之外,其他国家也在买中国汽车,比如墨西哥。 2013 年,墨西哥所有销售汽车中有 25% 来自中国,而在 6 年前这个数字为0。澳大利亚也在不断买中国汽车,最受澳大利亚欢迎的中国汽车品牌是名爵,去年卖了 5.8 万辆。在新能源车市场,比亚迪则占据了澳大利亚的新能源汽车 14% 份额,位于第二名。' - }, - timeCost: '7.1' - }, - { - context: { - dataTable: [ - { - 公司: '特斯拉', - 市场: '全球', - 年份: null, - 市场份额: 53, - 销量: null, - 出口国家和地区数量: null, - 出口汽车数量: null, - 出口汽车数量同比: null, - 平均出口价格: null - }, - { - 公司: '中国车企', - 市场: '东南亚', - 年份: 2013, - 市场份额: null, - 销量: null, - 出口国家和地区数量: null, - 出口汽车数量: null, - 出口汽车数量同比: null, - 平均出口价格: null - }, - { - 公司: '中国品牌', - 市场: '泰国', - 年份: null, - 市场份额: 80, - 销量: null, - 出口国家和地区数量: null, - 出口汽车数量: null, - 出口汽车数量同比: null, - 平均出口价格: null - }, - { - 公司: '比亚迪', - 市场: '泰国', - 年份: null, - 市场份额: 40, - 销量: null, - 出口国家和地区数量: null, - 出口汽车数量: null, - 出口汽车数量同比: null, - 平均出口价格: null - }, - { - 公司: '比亚迪', - 市场: '全球', - 年份: 2023, - 市场份额: null, - 销量: null, - 出口国家和地区数量: 58, - 出口汽车数量: 240000, - 出口汽车数量同比: 234, - 平均出口价格: null - }, - { - 公司: '中国新能源汽车', - 市场: '全球', - 年份: 2019, - 市场份额: null, - 销量: null, - 出口国家和地区数量: null, - 出口汽车数量: null, - 出口汽车数量同比: null, - 平均出口价格: 5000 - }, - { - 公司: '中国新能源汽车', - 市场: '全球', - 年份: 2022, - 市场份额: null, - 销量: null, - 出口国家和地区数量: null, - 出口汽车数量: null, - 出口汽车数量同比: null, - 平均出口价格: 22000 - }, - { - 公司: '比亚迪', - 市场: '欧洲', - 年份: null, - 市场份额: null, - 销量: null, - 出口国家和地区数量: null, - 出口汽车数量: null, - 出口汽车数量同比: null, - 平均出口价格: 500000 - } - ], - fieldInfo: [ - { - fieldName: '公司', - description: '公司名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场', - description: '市场区域', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场份额', - description: '市场份额占比', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '销量', - description: '销量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '出口国家和地区数量', - description: '出口国家和地区数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '出口汽车数量', - description: '出口汽车数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '出口汽车数量同比', - description: '出口汽车数量同比', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '平均出口价格', - description: '平均出口价格', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '当然,这里也不得不提一下第一名,那就是特斯拉市场份额高达53%,在东南亚市场,中国车企业销量在 2013 年同样实现小幅上升,最典型的就是泰国,在泰国的新能源车市场,中国品牌占据了 80% 的份额,比如比亚迪的原 plus 就是泰国的新能源车爆款,那到底是什么原因让中国汽车爆卖呢?基本还可以总结为三方面原因,首先是全球疫情爆发,由于中国汽车的供应链完善,疫情期间仍能维持稳定生产,而日韩这些过去的出口大户受疫情影响,芯片、钢材、橡胶等关键原材料短缺,不仅汽车产能下降,而且成本升高,这就让中国汽车更具性价比。而随着中国国内新能源汽车市场越来越卷出海,成为不少中国车企的选择,比如比亚迪 2023 年进入全球 58 个国家和地区,出口汽车 24 万辆,是上一年度的 3.34 倍。在泰国新能源车市场,比亚迪单独占到了 40% 的市场份额,是名副其实的泰国新能源汽车销冠。而且中国新能源汽车并非只是具备成本优势,汽车与 AI 互联网融合的智能化更是中国车企的拿手好戏。从豪华配置到智能大屏,从外观设计到内饰比拼,这让中国新能源汽车的溢价能力明显变高。2019 年中国新能源汽车平均出口价格每量只有 5, 000 美元, 2022 年涨到了 2.2 万美元。比如比亚迪汉在欧洲发布时价格接近 50 万人民币,是国内售价的两倍多。在泰国、以色列、新西兰等多个国家,比亚迪也已经是新能源汽车的销售冠军。不过,中国汽车征服海外虽然是一部励志爽门,但其实有不少挑战。' - }, - timeCost: '12.4' - }, - { - context: { - dataTable: [ - { - 年份: '2000', - 国家: '越南', - 摩托车品牌: '中国', - 市场份额: 80 - }, - { - 年份: '2024', - 国家: '越南', - 摩托车品牌: '日本', - 市场份额: 95 - }, - { - 年份: '2024', - 国家: '越南', - 摩托车品牌: '中国', - 市场份额: 1 - } - ], - fieldInfo: [ - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '国家', - description: '市场所在国家', - type: 'region', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '摩托车品牌', - description: '摩托车品牌', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场份额', - description: '摩托车品牌在市场中的占比', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '其实中国汽车出海不禁让人想起曾经的中国摩托车出海。 2000 年前后,中国摩托车进军越南,一度占据了 80% 的越南市场份额,但不到三四年时间,却被日本摩托车打得片甲不留。如今日本摩托车在越南占据 95% 的份额,而中国摩托车百分之一都不到。曾经也有大量中国摩托车车企在越南建厂,但却形成了恶性竞争的关系,疯狂打价格战,导致服务和质量越来越差,越南的中国摩托车车企仿佛是飘在越南的。' - }, - timeCost: '4.5' - }, - { - context: { - dataTable: [ - { - 企业名称: '汇川技术', - 企业规模: null, - 企业数量: null, - 工厂规模: null, - 工厂占比: null, - 工厂人数: null, - 年产值: null - }, - { - 企业名称: '恒力液压', - 企业规模: null, - 企业数量: null, - 工厂规模: null, - 工厂占比: null, - 工厂人数: null, - 年产值: null - }, - { - 企业名称: '先导智能', - 企业规模: null, - 企业数量: null, - 工厂规模: null, - 工厂占比: null, - 工厂人数: null, - 年产值: null - }, - { - 企业名称: '顺域光学', - 企业规模: null, - 企业数量: null, - 工厂规模: null, - 工厂占比: null, - 工厂人数: null, - 年产值: null - }, - { - 企业名称: '军胜电子', - 企业规模: null, - 企业数量: null, - 工厂规模: null, - 工厂占比: null, - 工厂人数: null, - 年产值: null - }, - { - 企业名称: null, - 企业规模: '规模以上', - 企业数量: 445000, - 工厂规模: null, - 工厂占比: null, - 工厂人数: null, - 年产值: null - }, - { - 企业名称: null, - 企业规模: '存续', - 企业数量: 6220000, - 工厂规模: null, - 工厂占比: null, - 工厂人数: null, - 年产值: null - }, - { - 企业名称: null, - 企业规模: '规模以下', - 企业数量: 4000000, - 工厂规模: null, - 工厂占比: null, - 工厂人数: null, - 年产值: null - }, - { - 企业名称: null, - 企业规模: null, - 企业数量: null, - 工厂规模: '不到50人', - 工厂占比: 40, - 工厂人数: [0, 50], - 年产值: null - }, - { - 企业名称: null, - 企业规模: null, - 企业数量: null, - 工厂规模: '不到500人', - 工厂占比: 90, - 工厂人数: [0, 500], - 年产值: null - }, - { - 企业名称: null, - 企业规模: null, - 企业数量: null, - 工厂规模: null, - 工厂占比: null, - 工厂人数: null, - 年产值: [1000000, 10000000] - } - ], - fieldInfo: [ - { - fieldName: '企业名称', - description: '零部件供应商企业名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '企业规模', - description: '企业规模分类', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '企业数量', - description: '企业数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '工厂规模', - description: '工厂规模分类', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '工厂占比', - description: '工厂规模占比', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '工厂人数', - description: '工厂人数范围', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '年产值', - description: '工厂年产值范围', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '每个中国制造品牌的背后都有一批优秀的零部件供应商,像汇川技术、恒力液压、先导智能、顺域光学、军胜电子这样的零部件企业也是中国制造的骄傲,只不过知名度无法媲美消费者直接接触的终端品牌。按照官方的口径,中国规模以上也就是年销售收入 2, 000 万以上的制造企业有 44.5 万家。至于中国一共有多少家制造业企业存在各种口径,从 300 多万家到近千万家不等。万德资讯给我的数据是,中国大约有 622 万家存续的制造业企业。海之在线是一家总部在上海,聚焦中间品贸易的数字化平台,连接着 70 万家工厂,他们给我的数据是,中国规模以下的中小微工厂大致有 400 万家。这期节目标题中的 400 万家沉默工厂处处记载于此。海志在线的创始人、 CEO 佘莹对我说,从平台看, 40% 的工厂规模不到 50 人,近 90% 的工厂不到 500 人,大部分工厂的年产值在数百万元到数千万元。如果和大企业比,你可以说他们就是一个个的小做法。如果走进去可能会看到老旧的机器上油漆斑驳,可以看到生产计划就用记号笔写在车间墙上挂着的白板上,甚至会发现用破洞的木板随意围搭起来的厕所,待客的茶水里则混杂着浓浓的机油味。但他们就是中国制造业毛细血管层面的供应链小节点,勤勤恳恳的维护设备、搞生产,他们最在意的是生存,是接到订单以及在满足客户之后能够完整的收到货款。' - }, - timeCost: '9.7' - }, - { - context: { - dataTable: [ - { - 年份: '2024', - 金属类型: '铝和其他废金属', - 产量变化: 20 - }, - { - 年份: '2024', - 金属类型: '钢铁', - 产量变化: [-10, -5] - }, - { - 月份: '5月', - 指标: '开发商银行贷款', - 同比变化: 19 - }, - { - 月份: '5月', - 指标: '房贷和存款跟预付款的比例', - 同比变化: [-40, -30] - }, - { - 预测年份: '2024', - 贷款增加: 4500000000000 - }, - { - 预测年份: '2025', - 贷款增加: 4500000000000 - }, - { - 预测年份: '2026', - 贷款增加: 4500000000000 - } - ], - fieldInfo: [ - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '金属类型', - description: '金属的种类', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '产量变化', - description: '金属产量的变化', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '月份', - description: '具体月份', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '指标', - description: '具体指标', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '同比变化', - description: '同比变化的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '预测年份', - description: '预测的年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '贷款增加', - description: '贷款增加的金额', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '有报道称,一些地方政府面临收入短缺,要求企业缴纳可追溯到 1990 年代的税单。这种紧缩政策在房地产市场寻找几步的时刻,会损害上信心和经济。高盛认为,中国中央政府可以通过加大对西方政府的财政支持来切断机房政府无紧缩所出现的负面溢出效应,那如同美国监管机构在次贷危机期间通过成为最后贷款人来切断金融危机的传播一样。关于出口和机产之间的分化,可以同中国的金属生产中得到证实啊。铝和其他废且金属的产量相比疫情之前上升了 20% 以上,而钢铁的产量下降了 5% 到10%。在房产方面,开发商越来越依赖银行融资, 5 月份对开发商的银行贷款同比增长了19%。而随着房地产销售的下滑,房贷和存款跟预付款的比例同比下降了 30% 到40%。高盛银行股票团队预计从 2024 年到 2026 年,房地产贷款将增加 4.5 万亿人民币,以完全期待收缩的房地产债券和设防的影子银行贷款。' - }, - timeCost: '6.4' - }, - { - context: { - dataTable: [ - { - 投资类型: '燃气和水的生产投资', - 增长情况: 100 - }, - { - 投资类型: '整体基建投资', - 增长情况: null - }, - { - 销售类型: '代线销售商品', - 月份: '5月', - 同比增长: 13 - }, - { - 销售类型: '餐饮销售', - 月份: '5月', - 同比增长: 5 - }, - { - 销售类型: '线下商品销售', - 月份: '5月', - 同比增长: 0 - } - ], - fieldInfo: [ - { - fieldName: '投资类型', - description: '具体的投资类型', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '增长情况', - description: '投资增长情况', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '销售类型', - description: '具体的销售类型', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '月份', - description: '具体月份', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '同比增长', - description: '销售同比增长情况', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '中国经济分化并不止于出口和房地产基础设施的固定资产投资。细分项显示,建立燃气和水的生产投资已同疫情前水平翻倍,远远超过了整体的基建的投资增长。因为中国政府首先优先考虑农源供用安全和脱碳。在零售销售当中, 5 月份代线销售商品同比增长13%,而餐饮销售仅增长5%,线下商品的销售保持在去年同期的水平。' - }, - timeCost: '4.5' - }, - { - context: { - dataTable: [ - { - 季度: '一季度', - 同比增长率: 5.3 - }, - { - 季度: 'G2 季度', - 同比增长率: 5 - } - ], - fieldInfo: [ - { - fieldName: '季度', - description: '具体季度', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '同比增长率', - description: '同比增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '7月中旬将举行两场重要的政策会议,前者将专注于评估当前的经济状况,并为今年剩余时间制定周期性的政策安排。后者将专注于至少未来五年解决经济结构当中的重大改革议程。鉴于一季度的实际, g GPT 同比增长5.3%,而且去年基数较低,那么 G2 季度增长可能高于5%,政府的全年增长目标仍然在轨道上。' - }, - timeCost: '1.8' - }, - { - context: { - dataTable: [ - { - 月份: '5月', - 季度: null, - 降息幅度: null, - 财政赤字占GDP比例: null, - 信贷增长率: null, - 美元兑人民币汇率: null - }, - { - 月份: '6月19号', - 季度: null, - 降息幅度: null, - 财政赤字占GDP比例: null, - 信贷增长率: null, - 美元兑人民币汇率: null - }, - { - 月份: '7月', - 季度: null, - 降息幅度: null, - 财政赤字占GDP比例: null, - 信贷增长率: null, - 美元兑人民币汇率: null - }, - { - 月份: '3月', - 季度: null, - 降息幅度: null, - 财政赤字占GDP比例: null, - 信贷增长率: null, - 美元兑人民币汇率: null - }, - { - 月份: '4月', - 季度: null, - 降息幅度: null, - 财政赤字占GDP比例: null, - 信贷增长率: null, - 美元兑人民币汇率: null - }, - { - 月份: null, - 季度: '三季度', - 降息幅度: 25, - 财政赤字占GDP比例: null, - 信贷增长率: null, - 美元兑人民币汇率: null - }, - { - 月份: '9月', - 季度: '四季度', - 降息幅度: 10, - 财政赤字占GDP比例: null, - 信贷增长率: null, - 美元兑人民币汇率: null - }, - { - 月份: null, - 季度: null, - 降息幅度: null, - 财政赤字占GDP比例: 11.9, - 信贷增长率: null, - 美元兑人民币汇率: null - }, - { - 月份: null, - 季度: null, - 降息幅度: null, - 财政赤字占GDP比例: 11.2, - 信贷增长率: null, - 美元兑人民币汇率: null - }, - { - 月份: null, - 季度: null, - 降息幅度: null, - 财政赤字占GDP比例: null, - 信贷增长率: 9, - 美元兑人民币汇率: null - }, - { - 月份: null, - 季度: null, - 降息幅度: null, - 财政赤字占GDP比例: null, - 信贷增长率: 9.5, - 美元兑人民币汇率: null - }, - { - 月份: null, - 季度: null, - 降息幅度: null, - 财政赤字占GDP比例: null, - 信贷增长率: null, - 美元兑人民币汇率: 7.3 - } - ], - fieldInfo: [ - { - fieldName: '月份', - description: '具体月份', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '季度', - description: '具体季度', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '降息幅度', - description: '降息的基点数', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '财政赤字占GDP比例', - description: '财政赤字占GDP的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '信贷增长率', - description: '信贷增长率', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '美元兑人民币汇率', - description: '美元兑人民币汇率', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '高盛认为,政策执行者不会在 7 月份的首场会议上释放任何重大的刺激措施,宏观政策的证件可能大于维持当前立场和执行现有的政策。另一方面,鉴于 5 月份宣布的最后一批措施不及预期,可能存在引入更多期产宽松政策的可能性。在货币政策方面,资本外流的担忧和银行利润率的下降限制了央行降息的能力。高盛预计三季度将降息 25 个基减,以适应大量政府债券发行,并预计季四季度9月首次降息后会再降息 10 个期减。在财政政策方面,高盛预计政府债券的发行将在下半年显著增加,以完成年初发行缓慢的全年配额。除非增长急剧放缓,否则基建的投资不会加速太多。对于政府 3 月份公布的预算计划,高盛虽然预测中国的增强型的弹盛赤字从去年的 gdp 11.2% 会适度扩大到今年的11.9%,但由于今年出口强计可能会存在财政扩张不及预期的风险。信贷政策方面,正如央行行长6月 19 号陆家嘴论坛上所说,由于金融套利的虚假贷款和监管机构随后对金融系统中这种资金空转的打击,信贷增长与 GDP 增长之间的联系已经减弱。预计摄容总量的增长将同去年的 9.5% 放缓到今年的9%。在住房政策方面,4月的政治局会议表明,决策者希望严防房地产市场的尾部风险。由于地产价格和活动的持续下行,以及机房国企通过央行的贷款计划购买空池公寓的速度缓慢,高盛预计进一步削减房贷利率以刺激需求,同时为去库存提供更多的资金和效率的支持。在外汇政策方面,鉴于美元持续强势和资本外流的压力,高盛认为央行将在短期内保持美元对人民币汇率的稳定,三个月的高盛预测是7.3,因为外汇市决策者可以迎来抵消关税对出口负面影响的工具。 2018- 19 年的经验表明,如果特朗普赢得美国大选,而且正如他最近几个月所宣称的,会对中国实施正大的关税,那美元兑人民币可能会显著贬值。' - }, - timeCost: '11.6' - } - ] - }, - { - llm: 'doubao-pro-128k', - result: [ - { - context: { - dataTable: [ - { - 党派: '左翼联盟', - 席位: 182 - }, - { - 党派: '新人民战线执政党中间派联盟', - 席位: 168 - }, - { - 党派: '极右翼国民联盟', - 席位: 143 - }, - { - 党派: '右翼共和党', - 席位: 48 - } - ], - fieldInfo: [ - { - fieldName: '党派', - description: '参与法国议会选举的党派', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '席位', - description: '该党派在法国议会选举中获得的席位数', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '议题', - description: '法国议会选举中的相关议题', - type: 'string', - role: 'dimension', - location: 'dimension' - } - ], - text: '地图带你看懂法国大选。 2024 年法国议会选举结果揭示了法国社会的撕裂,没有任何党派能获得 577 个议题中的绝对多数。左翼联盟、新人民战线执政党中间派联盟和极右翼国民联盟分别占据 182 席、 168 席、 143 席。除了这三家以外,其余党派席位最多的也只有右翼共和党的 48 席,因此左翼联盟、执政党和极右翼算是形成了三分天下的格局。今天我们便结合地图和数据,聊一聊法国大选。本期视频的所有分析均为个人观点,仅供参考。在开始之前,我先快速的放一下各党派在几个主要政治议题上的立场,有需要的朋友可以截图保存一下。' - }, - timeCost: '5.3' - }, - { - context: { - dataTable: [ - { - 国家: '法国', - 选区数量: 577, - 每个选区人口数量范围: '10 - 12 万', - 城市: '巴黎、里昂、马赛', - 选区分布情况: '人口密集的大城市选区数量多,占比大' - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '涉及的国家', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '选区数量', - description: '该国的选区总数', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '每个选区人口数量范围', - description: '每个选区包含的人口数量范围', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '城市', - description: '人口密集的大城市', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '选区分布情况', - description: '选区在不同城市的分布情况', - type: 'string', - role: 'dimension', - location: 'dimension' - } - ], - text: '现在我们进入正题,首先需要说明法国的选区制度,全国共有 577 个选区,每个选区包括 10- 12 万的人口密集的地方选区就小,人口稀少的区域选区域就大。因此地图上各个政党所占的面积并不能与其票数划等号,而是要看具体的选区分布在人口密集的大城市,譬如巴黎、里昂、马赛,虽然看起来面积小,实际上选区数量很多,占的比重很大。' - }, - timeCost: '7.4' - }, - { - context: { - dataTable: [ - { - 势力: '左翼联盟新人民战线', - 席位数量: 182, - 地区: '大城市', - 年份: 2024, - 失业率省份排名范围: null, - 移民情况: null - }, - { - 势力: '马克龙的执政党中间派联盟', - 席位数量: 168, - 地区: '大城市和西北地区', - 年份: 2024, - 失业率省份排名范围: null, - 移民情况: null - }, - { - 势力: '极右翼国民联盟', - 席位数量: 143, - 地区: '东北与东南地区', - 年份: 2024, - 失业率省份排名范围: null, - 移民情况: null - }, - { - 势力: '右翼共和党', - 席位数量: 48, - 地区: '经济富足且政治观点保守的地区', - 年份: 2024, - 失业率省份排名范围: null, - 移民情况: null - }, - { - 势力: '法国西北地区', - 席位数量: null, - 地区: '西北地区', - 年份: 2024, - 失业率省份排名范围: '20个省失业率最低,21 - 40低的省份', - 移民情况: '大城市少,离地中海远,接受移民少' - } - ], - fieldInfo: [ - { - fieldName: '势力', - description: '政治势力名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '席位数量', - description: '获得的席位数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '地区', - description: '势力的主要分布地区', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '失业率省份排名范围', - description: '失业率在省份中的排名范围', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '移民情况', - description: '该地区的移民情况', - type: 'string', - role: 'dimension', - location: 'dimension' - } - ], - text: '尽管如此,马克龙强调市场自由化,支持创新和创业,对欧盟一体化和国际合作的开放还是得到了许多大城市选民的支持。大城市仍然是马克龙的重要支持来源。除了大城市外,我们刚才提到过法国东北地区工业的衰落,其实在法国的西北地区又是另一番景象。之前那张关于中小工业城市分布的途中,我们可以清晰的看到西北地区的工业对于当代法国的重要性,当然工业只是一个缩影。我们再来看失业率地图,黄色代表 2022 年失业率最低的 20 个省,橙色是 21- 40 低的省份,可以看出西北部地区的失业率明显低于东北部。再看移民分布地图,西北部地区因为大城市少,而且离地中海更远,接受的移民也比较少。综上,西北地区的经济较为稳定,而且不受移民带来的社会问题困扰,日子过得比较舒服,这些选民对于未来持乐观态度,也成为了马克龙的另一主要票仓。除了以上三大势力外,浅蓝色代表的右翼共和党也获得了 48 个席位。他们的支持者主要位于经济同样比较富足,但是政治观点更为保守的地区。这里我就不展开讲总结。本期视频我们从法国官方的报告与数据出发,从经济与人口地理的角度分析了法国的大选结果。左翼联盟新人民战线以大城市为根基拿下最多的 182 席,马克龙的执政党中间派联盟则凭借大城市和西北地区的支持者取得了 168 席。乐旁的极右翼国民联盟则主要扎根于东北与东南地区,以 143 起居于第三这样的三分割据局面使得法国议会缺乏绝对多数,并且三方势力相差不大。可以预见在未来法案的通过上会面临极大的阻碍。举例来说,左翼和极右翼甚至存在联手撤回延迟退休法案的理论可能。虽然实际操作起来也面临很多困难,双方都不太愿意和对方合作,但即便是理论,可能也已经能表明未来的不确定性。' - }, - timeCost: '11.0' - }, - { - context: { - dataTable: [ - { - 品牌: '星巴克', - 财报季度: '第二季度', - 营业收入: 8560000000, - 营业收入同比变化: -2, - 净利润变化: -15, - 股票市值蒸发金额: 11500000000, - 优惠券数量: 5, - 咖啡单品团购价: 9 - } - ], - fieldInfo: [ - { - fieldName: '品牌', - description: '咖啡品牌名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '财报季度', - description: '公布财报的季度', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '营业收入', - description: '公司的营业总收入', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '营业收入同比变化', - description: '营业收入与上年同期相比的变化情况', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '净利润变化', - description: '净利润的变化情况', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '股票市值蒸发金额', - description: '股票市值减少的金额', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '优惠券数量', - description: '手机APP收到的优惠券数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '咖啡单品团购价', - description: '部分咖啡单品的团购价格', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '住手,你们住手,不要再砸了,你们不要再砸了。万万没想到,瑞幸和库迪的九块九大战,快把星巴克给卷死了。前段时间,星巴克公布了第二季度财报,营业收入 85.6 亿美元,同比下降了2%,净利润大跌15%,股票市值一天内蒸发了 1, 150 亿人民币。另一方面,星巴克的咖啡也在悄悄降价。如果你手机上有星巴克的APP,几乎每天都会收到 5 张以上的优惠券,比如满60.10、满75.15、任意新冰乐 7 折等等,部分单品的团购价优惠下来低至 9 元。终于, 9.9 的风还是卷到了星巴克。在过去很长一段时间里,星巴克是小资生活的代表,一杯咖啡动辄几十块钱,也只有电视剧里那些白领们和云淡风轻的走进去,熟练地点一杯拿铁,找个位置坐下,悠闲地打开电脑喝咖啡。岁月静好人间,值得有人点一杯星巴克,朋友圈能发十几条动态,有人为了抢星巴克限量版的猫爪杯,能通宵排队,甚至大打出手。' - }, - timeCost: '22.3' - }, - { - context: { - dataTable: [ - { - 地区: '美国', - 咖啡价格: 2.95, - 平均月工资: 6228, - 最低时薪: 7.25, - 主力消费人群月薪: null - }, - { - 地区: '中国', - 咖啡价格: 30, - 平均月工资: null, - 最低时薪: null, - 主力消费人群月薪: 60000 - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '咖啡品牌所在地区', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '咖啡价格', - description: '一杯咖啡的价格', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '平均月工资', - description: '该地区的平均月工资', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '最低时薪', - description: '该地区的最低时薪', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '主力消费人群月薪', - description: '该地区该品牌主力消费人群的月薪', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '星巴克在中国国内的定位一直都是高端咖啡品牌,但是很多人不知道的是,它在国外的定位其实是平民咖啡,在美国一杯星巴克大杯美式咖啡大概是 2.95 美元,而根据美国劳工部的统计,美国平均月工资是 6, 228 美元,最低时薪是 7.25 美元,这是啥意思呢? 1002.65 美元的星巴克还不到美国人平均月收入的 2, 000 份之一,也就是平常坐一趟地铁的价格吧。而在中国市场,星巴克的饮品价格普遍要超过 30 元一杯。如果按照美国的对应消费力,它的主力消费人群应该是月薪至少6万元的人。' - }, - timeCost: '8.3' - }, - { - context: { - dataTable: [ - { - 时间: '2019-02', - 产品: '粉爪杯', - 售价: 199, - 网上炒价: 1800 - } - ], - fieldInfo: [ - { - fieldName: '时间', - description: '事件发生的时间', - type: 'date', - dateGranularity: 'year-month', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '产品', - description: '发售的物品', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '售价', - description: '产品的销售价格', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '网上炒价', - description: '产品在网上被炒作的价格', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '2019 年2月,星巴克就发售了一款粉爪杯,那它长这样?售价 199 元,但是在网上最高炒到了 1, 800 元。有人寒冬腊月在星巴克门口通宵排队,就是为了买到这么一个杯子。还有人因为排队顺序大打出手,最后喜提免费食宿。靠着这些营销方法,在很长一段时间里,普通人对于星巴克是仰望的,觉得去星巴克消费是很有品的,再往前推十年,你甚至可以看到有人去星巴克点一杯咖啡就可以发十几条朋友圈的各种角度各种场景,还要配文低调有实力,天天喝都喝腻了好像呢?甚至有人专门发帖认真的提问,第一次去星巴克主要注意什么?怎么装的像老手呢?我一开始还以为是来搞笑和反讽的,没想到点开帖子此还真的是教大家怎么去星巴克抓老手的,包括但不限于怎么下载APP,问店员这周用的是啥肚子萃取时间是多少?张度和烘焙度怎么样?要不要加糖和加奶?这唬得我一愣一愣的,但是时过境迁,如今星巴克已经支棱不起来了,一边是疯狂降价买三送一搞促销,一边是继续下沉到四五线城市。' - }, - timeCost: '5.0' - }, - { - context: { - dataTable: [ - { - 公司: '星巴克', - 年份: '2025', - 市场级别: 'd 级', - 市场数量: 300 - }, - { - 公司: '星巴克', - 年份: '2025', - 市场级别: '县域', - 市场数量: 3000 - }, - { - 公司: '星巴克', - 年份: '2025', - 门店数量: 7000 - } - ], - fieldInfo: [ - { - fieldName: '公司', - description: '发布战略愿景的公司名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '战略愿景发布的年份', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场级别', - description: '市场的等级划分', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场数量', - description: '对应市场级别的数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '门店数量', - description: '公司在中国的门店总数', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '星巴克近期发布的 2025 中国战略愿景当中,中国总部直言不讳地表示,星巴克看中的不仅仅是全国 300 多个 d 级市场,也包括近 3, 000 个县域市场。星巴克的愿景也体现在它的选址变化上,它在中国的门店已经突破了 7, 000 家,但是这开店位置却让人越来越看不懂了。' - }, - timeCost: '6.4' - }, - { - context: { - dataTable: [ - { - 咖啡店: '星巴克', - 咖啡价格: 30 - }, - { - 咖啡店: '瑞幸库里', - 咖啡价格: 9.9 - }, - { - 咖啡店: '瑞幸库里', - 咖啡价格: 9.9 - } - ], - fieldInfo: [ - { - fieldName: '咖啡店', - description: '咖啡品牌名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '咖啡价格', - description: '咖啡的售价', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '一家卖咖啡的店。星巴克没落的第二个原因是当代年轻人更偏向实用消费主义。坦白讲,大部分人喝咖啡其实就是为了遮住那点咖啡因,好让自己在一天的工作中保持清醒。你跟不懂咖啡的人聊什么豆子产地、风味,他只会回你一句,冰美式和中药有什么区别啊?如果你面前有三杯咖啡,第一杯是星巴克的 30 元美式,后面两杯是瑞幸库里的 9 块 9 咖啡也让你买单,大部分人都会选择后面两个,当然也有人会吹星巴克的豆子有多么多么的好,所以它买的这么贵也是值得的。' - }, - timeCost: '3.7' - }, - { - context: { - dataTable: [ - { - 时间: '6月', - 指标: 'M2', - '同比增长/下滑': 6.2 - }, - { - 时间: '6月', - 指标: 'M1', - '同比增长/下滑': -5 - }, - { - 时间: '6月', - 指标: 'M2-M1 剪刀差', - '同比增长/下滑': 11.2 - }, - { - 时间: '6月', - 人民币存款增加额: 2460000000000 - }, - { - 时间: '6月', - 居民存款增加额: 2140000000000 - }, - { - 时间: '上半年', - 指标: '人民币存款', - '同比增长/下滑': null, - 人民币存款增加额: 11460000000000, - 居民存款增加额: 9270000000000 - } - ], - fieldInfo: [ - { - fieldName: '时间', - description: '数据对应的月份', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '指标', - description: '货币相关指标', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '同比增长/下滑', - description: '同比增长或下滑的数值', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '人民币存款增加额', - description: '人民币存款增加的金额', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '居民存款增加额', - description: '居民存款增加的金额', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '咱聊一下最新的重磅数据,反正挺复杂的,国内6月 M2 同比增长6.2%,预期6.8%。 M1 同比下滑5%,预期下滑5.4%。 M M 一剪刀差走扩至 11.2% 再创新高。6月人民币存款增加 2.46 万亿,其中居民存款增加 2.14 万亿,增量几乎全都是老百姓存的。与 M1 的下滑相对,上半年人民币存款总共增加了 11.46 万亿,其中居民存款增加 9.27 万亿。大头也是老百姓,但增速逐月放缓。' - }, - timeCost: '8.9' - }, - { - context: { - dataTable: [ - { - 日期: '2024-07-11', - 事件: '美国公布CPI数据超预期回落,市场对美联储降息预期大幅升温', - 议息会议时间: '2024-07-31', - 市场预期降息概率: 0.07 - }, - { - 日期: '2024-07-11', - 事件: '美国公布CPI数据超预期回落,市场对美联储降息预期大幅升温', - 议息会议时间: '2024-09-18', - 市场预期降息概率: 0.9 - }, - { - 日期: '2024-07-10', - 事件: '鲍威尔在国会听证会上发表讲话', - 议息会议时间: null, - 市场预期降息概率: null - } - ], - fieldInfo: [ - { - fieldName: '日期', - description: '事件发生的具体日期', - type: 'date', - dateGranularity: 'day', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '事件', - description: '与美联储相关的事件描述', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '议息会议时间', - description: '美联储议息会议的时间', - type: 'date', - dateGranularity: 'day', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场预期降息概率', - description: '市场对美联储降息的预期概率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '7月 11 日晚上,由于美国公布的 CPI 数据超预期回落,让市场对美联储降息预期大幅升温。从这场所的美联储观察工具看,虽然7月 30 一日的美联储议息会议,市场预期不降息的概率仍然是达到93%,但9月 18 日的美联储议息会议,市场预期降息一次的概率是达到90%,这比起上个月概率是上升很多。不过我还是得强调一下,这个美联储观察工具将来只能反映市场当前的预期态度,不能拿来预测美联储货币政策,因为这个概率是会不断随着最新经济数据变化而变化。比如要是下个月美国 CPI 出现较大反弹,那9月降息的概率就会大幅下降。而这次市场预期美联储9月降息的概率大幅上升,主要有两个原因,一、美联储鲍威尔在7月 10 日的国会听证会上整体态度偏戈。鲍威尔称,劳动力市场降温意味着持续高通胀的潜在源头已经减弱。他还表示,就业市场的进一步疲软可能是不必要的,也是不受欢迎的。鲍威尔说,通胀方面的工作还没有完成,我们还有更多工作要做,但与此同时,我们需要注意劳动力市场现况,我们已经观察到劳动力市场出现相当明显的疲软,有着新美联储通讯社之称的知名记者尼奇默尔斯认为,鲍威尔本周其实已暗示美联储的利率政策即将开始改变方向。' - }, - timeCost: '7.9' - }, - { - context: { - dataTable: [ - { - 时间: '7 月 11 日晚上 8 点半', - 数据类型: '6 月 CPI 同比上涨率', - 数值: 3, - 市场预期值: 3.1, - 前值: 3.3, - 年份: '2023', - 月份: '6' - }, - { - 时间: '7 月 11 日晚上 8 点半', - 数据类型: '6 月 CPI 环比增长率', - 数值: -0.1, - 市场预期值: null, - 前值: null, - 年份: '2023', - 月份: '6' - } - ], - fieldInfo: [ - { - fieldName: '时间', - description: '数据公布的时间', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '数据类型', - description: '通胀数据的类型', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '数值', - description: '具体的数值', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '市场预期值', - description: '市场对数据的预期值', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '前值', - description: '上一次的数据值', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '月份', - description: '数据对应月份', - type: 'string', - role: 'dimension', - location: 'dimension' - } - ], - text: '第二个原因是7月 11 日晚上 8 点半美国劳工部公布的通胀数据,6月 CPI 是同比上涨3%,市场预期值3.1%,前值3.3%。这次美联储 CPI 回落,更关键是 CPI 环比是负增长0.1%,这是美国 2020 年5月以来 CPI 环比首次出现下降,而且美国 2020 年5月还是因为疫情导致的 CPI 骤降,是比较特殊时期,所以美国 CPI 环比负增长确实不太常见。但仔细看美国 VI 月 CPI 的具体构成,感觉猫腻还是不少的。' - }, - timeCost: '9.3' - }, - { - context: { - dataTable: [ - { - 地区: '美国', - 月份: '6月', - 商品: '汽油', - 价格变化: -3.8 - }, - { - 地区: '美国', - 月份: '6月', - 商品: '食品和住房', - 价格变化: 0.2 - }, - { - 地区: '美国', - 月份: '6月', - 商品: '原油期货', - 价格变化: '未提及' - }, - { - 地区: '美国', - 月份: '6月', - 商品: '核心通胀(刨除能源和食品价格)', - 通胀率: 3.3 - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '数据所涉及的地区', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '月份', - description: '具体月份', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '商品', - description: '涉及的商品种类', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '价格变化', - description: '价格的涨跌幅度', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '通胀率', - description: '通货膨胀率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '美国 VI 月 CPI 下降的主要贡献是汽油价格下跌。美国 VI 月汽油价格下跌了3.8%,抑制了当月通胀,抵消了食品和住房价格 0.2% 的上涨。比较诡异的是,美国原油期货价格6月是明明出现大幅上涨,这是因为原油期货价格传导到汽油价格有一些迟滞效应,但那样的话,下个月公布的 CPI 数据,汽油价格可能就得反弹了。要是下个月公布的 CPI 数据,汽油价格还继续下降,那就实在说不过去了。美国刨除能源和食品价格的核心通胀率6月是3.3%,但整体降幅还是低于CPI。' - }, - timeCost: '6.7' - }, - { - context: { - dataTable: [ - { - 国家: '美国', - 月份: '6月', - 通胀类型: '服务业通胀', - 通胀同比涨幅: 5, - 就业数据类型: '非农就业', - 就业人口增加数量: 206000, - 市场预期就业人口增加数量: 190000 - }, - { - 国家: '美国', - 月份: '5月', - 就业数据类型: '非农就业', - 就业人口增加数量: 218000 - }, - { - 国家: '美国', - 月份: '4月', - 就业数据类型: '非农就业', - 就业人口增加数量: 108000 - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '涉及的国家', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '月份', - description: '具体月份', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '通胀类型', - description: '通胀的类型', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '通胀同比涨幅', - description: '通胀同比上涨的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '就业数据类型', - description: '就业数据的类型', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '就业人口增加数量', - description: '非农就业人口增加的人数', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '市场预期就业人口增加数量', - description: '市场预期非农就业人口增加的人数', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '美国通胀目前最顽固的就是服务业通胀,美国 VI 月服务业通胀仍然是同比上涨5%。美国毕竟是服务业为主的国家,服务业通胀还高居5%,美国要说自己已经控制住通胀,完全就是忽悠人。不过虽然美国大选临近,美国现在经济数据基本是为选型服务,比如已经假的不能再假的美国非农就业数据,美国 VI 月非农就业人口增加20.6万人,高于市场预期的 19 万人。然而美国同时把5月数据从 27.2 万人大幅下修至 21.8 万人,4月从 16.5 万人修正至10.8万人,修正后两个月合计较修正前减少 11.1 万人。' - }, - timeCost: '11.4' - }, - { - context: { - dataTable: [ - { - 市场: '美股', - 日期: '2023-07-11', - 股市走势: '下跌', - 涨跌幅度: -2 - }, - { - 市场: '日股', - 日期: '2023-07-12', - 股市走势: '下跌', - 涨跌幅度: -2.45 - } - ], - fieldInfo: [ - { - fieldName: '市场', - description: '涉及的市场', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '日期', - description: '事件发生的日期', - type: 'date', - dateGranularity: 'day', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '股市走势', - description: '股市的涨跌情况', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '涨跌幅度', - description: '股市涨跌的百分比', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '我注意到虽然这次市场大幅提高了美联储9月降息概率,但美股和日股反而不涨反跌,纳斯达克在7月 11 日是下跌了2%,日股在7月 12 日也跟随下跌了2.45%。这是市场反身性效应的某种预演,股市炒的是预期,之前美股和日股是基于美联储降息预期,已经提前涨了一年多了,那么当美联储真正降息之后,市场是可能出现反身性效应,也就是所谓利好落地势利空的说法。当然股市走势千变万化,这也只是其中一种可能性。历史的参考例子,比如 2004 年美联储降息, 2006 年停止加息, 2007 年开始降息,但股市是一直涨到 2007 年底,随后自带危机爆发,股市开始大跌。我之前也梳理过,从 1980 年以来,美联储每次加息超过 5% 的幅度,首次加息后的 2- 4 年内都会爆发金融危机,这次美联储是 2022 年开始加息,所以按照历史路径, 2024 年到 2026 年是有可能爆发世界金融危机,这个结合当前国际局势和地缘形势,还是有挺大的可能性。' - }, - timeCost: '5.4' - }, - { - context: { - dataTable: [ - { - 地区: '黑龙江省', - 时间范围: '10年前至今', - 荒废比例: 60, - 荒废小学数量: 1900 - }, - { - 地区: '东北', - 时间范围: '10年前至今', - 荒废比例: 50, - 荒废小学数量: 6800 - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '涉及的地区', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '时间范围', - description: '荒废的时间范围', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '荒废比例', - description: '荒废的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '荒废小学数量', - description: '荒废的小学数量', - type: 'count', - role: 'measure', - location: 'measure' - } - ], - text: '以前的小学空荡荡的,老年人养起了鸡鸭鹅狗,彻底荒废了整个黑龙江省, 10 年时间荒废了近六成,小学加起来有 1, 900 余所,整个东北十年荒废了 6, 800 余所小学,少了一半。' - }, - timeCost: '6.6' - }, - { - context: { - dataTable: [ - { - 地区: '兹西县', - 时间: '2024', - 学龄人口变化情况: null, - 生育率: null - }, - { - 地区: '徐文县', - 时间: '2023', - 学龄人口变化情况: null, - 生育率: null - }, - { - 地区: '河南', - 时间: '2023', - 学龄人口变化情况: -2000000, - 生育率: null - }, - { - 地区: '上海', - 时间: '2024', - 学龄人口变化情况: null, - 生育率: 0.6 - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '具体的地理位置', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '时间', - description: '相关事件发生的时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '学龄人口变化情况', - description: '小学学龄人口的数量变化', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '生育率', - description: '总和生育率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '而小学缺孩子这个趋势早已经蔓延至全国各地了。东部的兹西县,有的小学一个班只有一个学生。华南的徐文县,去年某小学开学,一年级也只有一个学生。中部人口大省河南,据测算, 2023- 2027 年小学学龄人口预计下降 200 多万人,缩水超两成,出现了基数的坍塌。从全国来看,基于学龄人口的预测显示,全国超 1, 400 个县域中,近九成县域小学学龄人口预计下滑,小学鹤岗化以谁也没想到的方式在扩散,从东北开始到大江南北,下一步可能是上海最新的总和生育率只有 0.6 了,该来的总是要来,从民政局冷冷清清到妇产科缺孩子,再到幼儿园关停潮,现在轮到了小学关停潮,这个传播链条还在扩散。' - }, - timeCost: '6.9' - }, - { - context: { - dataTable: [ - { - 省份数量: 10, - 城市数量: 24, - 城市: '广东惠州', - 房价: 60000 - }, - { - 省份数量: 10, - 城市数量: 24, - 城市: '广西南宁', - 房价: 50000 - }, - { - 省份数量: 10, - 城市数量: 24, - 城市: '山东东营', - 房价: 40000 - }, - { - 省份数量: 10, - 城市数量: 24, - 城市: '江苏南京', - 房价: 30000 - }, - { - 省份数量: 10, - 城市数量: 24, - 城市: '黑龙江大靶', - 房价: 10000 - }, - { - 省份数量: 10, - 城市数量: 24, - 城市: '京津两市交界处某楼盘', - 房价: 390000 - } - ], - fieldInfo: [ - { - fieldName: '省份数量', - description: '出现房子白菜价情况的省份数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '城市数量', - description: '出现房子白菜价情况的城市数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '城市', - description: '出现房子白菜价的具体城市', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '房价', - description: '房子的价格', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '实际上,如果鹤岗化只是局限于教育领域,那还好说,但不是实际情况复杂的多楼市,像鹤岗那样房子白菜价的城市越来越多了,据不完全统计,至少有 10 个省 24 个城市陷入几万元买房的讨论。不是每平方米单价几万,而是一套房总价几万。网传广东惠州6万,广西南宁5万,山东东营4万,江苏南京3万,黑龙江大靶1万,这个传播势头在这轮楼市调整的加持下,现在已经来到了北京的外围,在京津两市的交界处,抹楼盘从 160 万元降到了 39 万,而且打了骨折还卖不出去。' - }, - timeCost: '7.7' - }, - { - context: { - dataTable: [ - { - 地区: '鹤岗', - 事件: '全国第一个财政重整的地级市,传出来停招公务员', - 人口数量: null, - 编制人员数量: null, - 行政管理支出: null, - 一般公共预算收入: null, - 工资预算总支出: null, - 在职人员工资支出: null, - 离退休人员工资支出: null, - 零聘人员工资支出: null, - 在职人员数量: null, - 临聘人员数量: null - }, - { - 地区: '秦岭深处某县', - 事件: '过紧日子的城市之一', - 人口数量: 30000, - 编制人员数量: 2194, - 行政管理支出: 18000000, - 一般公共预算收入: null, - 工资预算总支出: null, - 在职人员工资支出: null, - 离退休人员工资支出: null, - 零聘人员工资支出: null, - 在职人员数量: null, - 临聘人员数量: null - }, - { - 地区: '乌蒙山区某县', - 事件: '过紧日子的城市之一', - 人口数量: null, - 编制人员数量: null, - 行政管理支出: null, - 一般公共预算收入: 700000000, - 工资预算总支出: 2630000000, - 在职人员工资支出: 2000000000, - 离退休人员工资支出: 170000000, - 零聘人员工资支出: 460000000, - 在职人员数量: 15000, - 临聘人员数量: 28000 - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '具体的地方', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '事件', - description: '地方相关的情况', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '人口数量', - description: '地区的人口数', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '编制人员数量', - description: '地区的编制人员数', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '行政管理支出', - description: '一年的行政管理费用', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '一般公共预算收入', - description: '地区的一般公共预算收入金额', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '工资预算总支出', - description: '工资方面的预算总支出金额', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '在职人员工资支出', - description: '在职人员的工资支出金额', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '离退休人员工资支出', - description: '离退休人员的工资支出金额', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '零聘人员工资支出', - description: '零聘人员的工资支出金额', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '在职人员数量', - description: '地区的在职人员数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '临聘人员数量', - description: '地区的临聘人员数量', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '地方财力,之前鹤岗是全国第一个财政重整的地级市,甚至传出来停招公务员,现在过紧日子的城市也越来越多了。秦岭深处某县人口只有3万,编制人员却有 2, 194 名,一年的行政管理支出 1, 800 万,排在支出的首位。乌蒙山区某县一般公共预算收入 7 个亿,但工资预算总支出 26.3 亿,其中在职人员 20 亿,离退休人员 1.7 亿,零聘人员 4.6 亿。注意一个细节,在职人员数量 1.5 万,临聘人员数量 2.8 万。' - }, - timeCost: '21.9' - }, - { - context: { - dataTable: [ - { - 城市: '深圳', - 年份: '2021', - 房价走势: '持续低迷', - 二手房均价跌幅: -40, - 房源情况: '各热点城市二手房每成交一套就要多出好几套', - 飞天茅台价格相关: '新增的房源和房价表现几乎完全正相关的是53度飞天茅台的价格' - } - ], - fieldInfo: [ - { - fieldName: '城市', - description: '涉及的城市名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '房价走势', - description: '房价的变化情况', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '二手房均价跌幅', - description: '二手房均价相比最高点的下跌比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '房源情况', - description: '各热点城市二手房的成交与新增房源情况', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '飞天茅台价格相关', - description: '与房价表现相关的飞天茅台价格情况', - type: 'string', - role: 'dimension', - location: 'dimension' - } - ], - text: '中国房价一度被视为坚不可摧的资产堡垒,更一度有京沪永远涨的口号。然而,自 2021 年以来,包括一线城市在内,房价持续低迷,深圳全市二手房均价距离 2021 年初的最高点跌幅已接近40%,而且还没有停下来的意思。各热点城市二手房每成交一套就要多出好几套,新增的房源和房价表现几乎完全正相关的是飞天茅台的价格, 53 度。' - }, - timeCost: '6.5' - }, - { - context: { - dataTable: [ - { - 商品: '飞天茅台', - 年份: '2021', - 价格: 3500 - }, - { - 商品: '飞天茅台', - 年份: '2024', - 价格: 2000 - }, - { - 商品: '一线房产', - 年份: '2012', - 价格: null - }, - { - 商品: '飞天茅台', - 年份: '2012', - 价格: null - } - ], - fieldInfo: [ - { - fieldName: '商品', - description: '所涉及的商品名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '价格', - description: '商品的价格', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '飞天茅台在 2021 年巅峰时期,一瓶售价超过 3, 500 元,如今已经快跌破 2, 000 元,是巧合吗?过去一线城市房价和飞天茅台价格可以说是最硬的人民币计价资产了,甚至比现金还要优质。一线房产和飞天茅台在相当长的一段时间内有两个相同属性,一他们可以长期增值。二他们易于套现。然而现在情况出现了前所未有的变化,房价和飞天茅台两者双双在 2012 一年见顶。' - }, - timeCost: '5.1' - }, - { - context: { - dataTable: [ - { - 品牌: '保时捷', - 年份: '2021', - 车型: 'Macan', - 原价: 608000, - 优惠金额: 160000, - 优惠后价格: 448000, - 折扣力度: 80 - }, - { - 品牌: '保时捷', - 年份: '2024', - 车型: '泰肯', - 原价: 1038000, - 优惠金额: 338000, - 优惠后价格: 700000, - 折扣力度: 70 - } - ], - fieldInfo: [ - { - fieldName: '品牌', - description: '汽车品牌', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '车型', - description: '汽车具体型号', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '原价', - description: '汽车的初始价格', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '优惠金额', - description: '汽车的优惠价格数额', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '优惠后价格', - description: '汽车优惠后的价格', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '折扣力度', - description: '汽车的折扣比例', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '这不是巧合,其他很多数据也都在 2021 年见顶,比如另一个在 2021 年见顶并开始走下神坛的保时捷。保时捷销量的恶化还在加速,过去一年多,中国市场上保时捷的落地价可以说是惨不忍睹。近期,保时捷只卖 44 万的话题也引发了热议,其华南区域一家终端门店称, Macan 正在进行优惠促销,最高优惠 16 万,该车优惠后最低售价为 44.8 万。另外,在山东、湖北、江西、福建、浙江、江苏等多省份,该车均出现了 50 万元以下的裸车价,而报价达到 103.8 万的泰肯,现在 70 多万就可以拿下。目前,保时捷几乎所有的车型都可以打 7- 8 折。' - }, - timeCost: '12.7' - }, - { - context: { - dataTable: [ - { - 汽车品牌: '保时捷', - 时间: '2024-Q1', - 销售量: 16340, - 同比变化率: -24 - }, - { - 汽车品牌: '保时捷', - 时间: '2024-05', - 销售量: 4633, - 同比变化率: -40.61 - } - ], - fieldInfo: [ - { - fieldName: '汽车品牌', - description: '豪华汽车的品牌名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '时间', - description: '销售数据对应的时间', - type: 'date', - dateGranularity: 'quarter', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '销售量', - description: '汽车的销售数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '同比变化率', - description: '与上年同期相比的销售变化比例', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '不只是保时捷,包括奔驰、宝马、奥迪在内的豪华汽车品牌今年以来都在大幅降价,但仍然止不住销量断崖式下降。 2024 年一季度,保时捷中国卖出 16, 340 辆,同比大幅下降24%。保时捷在今年 5 月份仅卖出 4, 633 辆,同比去年5月下滑高达40.61%。这说明保时捷在中国的销量正在加速减少。' - }, - timeCost: '4.8' - }, - { - context: { - dataTable: [ - { - 车型: '特斯拉 3 和 y', - 地区: '中国', - 起始时间: '2022', - 售价: null, - 原本指导价: null, - '美国起售价(美元)': null, - 中国售价与美国售价对比: null - }, - { - 车型: '卡罗拉', - 地区: '中国', - 起始时间: '2022', - 售价: 79800, - 原本指导价: 131800, - '美国起售价(美元)': 23500, - 中国售价与美国售价对比: 50 - }, - { - 车型: '凯美瑞', - 地区: '中国', - 起始时间: '2022', - 售价: 149800, - 原本指导价: null, - '美国起售价(美元)': null, - 中国售价与美国售价对比: null - }, - { - 车型: '汉兰达', - 地区: '中国', - 起始时间: '2022', - 售价: null, - 原本指导价: null, - '美国起售价(美元)': null, - 中国售价与美国售价对比: null - } - ], - fieldInfo: [ - { - fieldName: '车型', - description: '汽车的型号', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '地区', - description: '汽车销售的地区', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '起始时间', - description: '价格对比的起始时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '售价', - description: '汽车的销售价格', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '原本指导价', - description: '汽车原本的指导价格', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '美国起售价(美元)', - description: '美国油电混动卡罗拉的起售价格(以美元计)', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '中国售价与美国售价对比', - description: '中国售价相对于美国售价的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '从两年前开始,特斯拉的 3 和 y 中国售价就是世界最低的, 7.98 万可以买到原本指导价 13.18 万的油电混动的卡罗拉。做一个对比,美国的油电混动卡罗拉的起售价是 2.35 万美元,有时甚至还要加价。按照美元人民币汇率计算,这款车的中国售价居然只有美国的一半水平,尽管配置存在差异,但不影响价格差异巨大的这个结论。除了卡罗拉外,汉兰达和凯美瑞也都大幅降价,即使是两年前,我们也很难想象只要 14.98 万人民币就可以买到最新款的混动版凯美瑞。' - }, - timeCost: '13.1' - }, - { - context: { - dataTable: [ - { - 交通方式: '打车(十多年前)', - 时间: '十多年前', - 价格范围: [110, 120] - }, - { - 交通方式: '滴滴(现在)', - 时间: '2024', - 价格范围: [60, 70] - }, - { - 交通方式: '出租车(现在)', - 时间: '2024', - 价格范围: [110, 120] - } - ], - fieldInfo: [ - { - fieldName: '交通方式', - description: '出行的交通方式', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '时间', - description: '数据对应的时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '价格范围', - description: '从首都机场到西直门的价格区间', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '中国物价的下降不仅仅体现在商品上,服务价格也是类似的趋势。举个例子,十多年前我常驻北京,当时经常在晚上十一二点从首都机场打车到西直门这样一段单程大约需要 110- 120 元,而现在滴滴大概只要 60- 70 元。如果是现在的出租车,价格和十多年前还是一样的。' - }, - timeCost: '5.0' - }, - { - context: { - dataTable: [ - { - 银行: '工行', - 年份: '2022', - 个人住房贷款不良率: 0.39 - }, - { - 银行: '工行', - 年份: '2023', - 个人住房贷款不良率: 0.44 - }, - { - 银行: '农行', - 年份: '2022', - 个人住房贷款不良率: 0.51 - }, - { - 银行: '农行', - 年份: '2023', - 个人住房贷款不良率: 0.55 - }, - { - 银行: '建行', - 年份: '2022', - 个人住房贷款不良率: 0.37 - }, - { - 银行: '建行', - 年份: '2023', - 个人住房贷款不良率: 0.42 - } - ], - fieldInfo: [ - { - fieldName: '银行', - description: '银行名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '个人住房贷款不良率', - description: '个人住房贷款的不良率', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '以工行、农行、建行发布的数据来看,其 2023 年个人住房贷款不良率分别由 2022 年的0.39%、0.51%、 0.37% 增长至了0.44%、 0.55% 和0.42%,基本都实现了两位数的增幅。大家别觉得这些小数字没啥大不了的,要知道这三家银行每一家的个人住房贷款余额都超过了5万亿,而且按揭贷款往年基本上都是银行稳赚不赔的买卖。供建农三家银行之所以每年能够包揽中国最赚钱企业的前三名,按揭贷款所带来的收益贡献巨大。现在这个优质资产的不良率正在以每年两位数的增幅增加。' - }, - timeCost: '7.8' - }, - { - context: { - dataTable: [ - { - 年份: '2022', - 法拍房挂牌数量: 980000, - 法拍房挂牌数量同比增长率: null - }, - { - 年份: '2023', - 法拍房挂牌数量: 1410000, - 法拍房挂牌数量同比增长率: '43.9' - }, - { - 年份: '2024', - 法拍房挂牌数量: 604400, - 法拍房挂牌数量同比增长率: '192' - }, - { - 年份: '2024', - 法拍房挂牌数量: 2000000, - 法拍房挂牌数量同比增长率: null - } - ], - fieldInfo: [ - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '法拍房挂牌数量', - description: '全国法拍房挂牌的套数', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '法拍房挂牌数量同比增长率', - description: '法拍房挂牌数量的同比增长比例', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '你是银行,你慌不慌?而另一项作为佐证的数据则是法拍房,大家知道现在法拍房的数据有多夸张吗?根据瀚海研究院发布的数据显示, 2022 年全国共挂牌法拍房 98 万套,去年这个数字变成了 141 万套,增长了43.9%。而今年光是一季度的挂牌数量就已飙升至 60.44 万套通,同比上涨192%。这种局势下,银行要是再不改变断供处置策略,那今年的法拍数量估计有望达到 200 万。' - }, - timeCost: '6.5' - }, - { - context: { - dataTable: [ - { - 地区: '北京', - 年份: '2023', - 挂牌法拍房数量: 8153, - 成交法拍房数量: 2771, - 处置率: 33 - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '涉及的地区名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应的时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '挂牌法拍房数量', - description: '挂牌法拍房的套数', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '成交法拍房数量', - description: '成交的法拍房套数', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '处置率', - description: '成交法拍房数量占挂牌法拍房数量的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '事实上,对银行来说,现在的行情即使他收了房也难以处置。我们以北京为例, 2023 年北京挂牌法拍房 8, 153 套,最终成交仅 2, 771 套,处置率为33%,这还是房价波动相对较小的北京,换到其他已经跌穿首付的地区,处置率恐怕只会更低。而在法拍流程里,流拍和拍品二次上拍都会在此前的价格上更进一步降低,这也导致了银行回款难度的进一步提高。虽然按照现在的规则,这部分差价是由贷款人承担的,但对方既然已经到了选择断供的地步,可想而知最终也执行不了多少。' - }, - timeCost: '6.1' - }, - { - context: { - dataTable: [ - { - 时间: '2024-04-30', - 行业: '房地产', - 发展方向: '统筹消化存量房产和优化增量住房', - 未出售商品房面积: 746000000, - 正常库存水平面积: 590000000, - 城市数量: 222, - 宽松政策数量: 341, - 销售面积情况: '持续走低', - 投资金额情况: '持续走低' - } - ], - fieldInfo: [ - { - fieldName: '时间', - description: '相关事件发生的时间', - type: 'date', - dateGranularity: 'day', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '行业', - description: '涉及的行业', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '发展方向', - description: '行业的发展方向', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '未出售商品房面积', - description: '我国未出售的商品房面积', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '正常库存水平面积', - description: '商品房的正常库存水平面积', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '城市数量', - description: '出台宽松政策的城市数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '宽松政策数量', - description: '出台的宽松政策数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '销售面积情况', - description: '销售面积的变化情况', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '投资金额情况', - description: '投资金额的变化情况', - type: 'string', - role: 'dimension', - location: 'dimension' - } - ], - text: '另一项推动银行改变策略的原因,则是今年4月 30 号的一场会议,这场会议确定了房地产行业未来一年的发展方向,统筹消化存量房产和优化增量住房,用大家都熟悉的话来说就是去库存。根据国家统计局的官方数据显示,截至 2024 年5月,我国未出售商品房为 7.46 亿平米,远超 5.9 亿平米的正常库存水平。而整个上半年,根据 CRS 的统计,全国 222 个城市总计出台了 341 项宽松政策,但带来的效果均不理想,无论是销售面积还是投资金额,仍然在持续走低。' - }, - timeCost: '11.1' - }, - { - context: { - dataTable: [ - { - 职业: '财经记者,大学老师,滴滴司机,up 主', - 年份: '2023', - 国家: '中国', - 汽车出口量: 4910000 - }, - { - 职业: '财经记者,大学老师,滴滴司机,up 主', - 年份: '2023', - 国家: '日本', - 汽车出口量: null - }, - { - 职业: '财经记者,大学老师,滴滴司机,up 主', - 年份: '2021', - 国家: '中国', - 汽车出口量: 2020000 - }, - { - 职业: '财经记者,大学老师,滴滴司机,up 主', - 年份: '2022', - 国家: '中国', - 汽车出口量: 3110000 - } - ], - fieldInfo: [ - { - fieldName: '职业', - description: '个人从事过的职业', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '国家', - description: '汽车出口量相关的国家', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '汽车出口量', - description: '汽车出口的数量', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '大家好,我拍拍一名做过财经记者,大学老师和滴滴司届 up 主。 2023 年,我国汽车出口量达到了 491 万辆,超越日本成为世界第一汽车出口国。要知道,日本在这个位置坐了 8 年之久,而中国仅在过去三年时间里接连赶超韩国、德国、日本。中国汽车出口, 2021 年 202 万辆, 2022 年 311 万辆, 2023 年 491 万辆。' - }, - timeCost: '6.2' - }, - { - context: { - dataTable: [ - { - 车型: '名爵ZS', - 国内指导价: 80000 - }, - { - 车型: '名爵ZS', - 国内指导价: 90000 - }, - { - 车型: '特斯拉 model y', - 国内指导价: null - }, - { - 车型: '奇瑞瑞虎7', - 国内指导价: 100000 - }, - { - 车型: '特斯拉 model 3', - 国内指导价: null - }, - { - 车型: '名爵 4 EV', - 国内指导价: 100000 - }, - { - 车型: '奇瑞虎5X', - 国内指导价: 100000 - }, - { - 车型: '欧盟达名爵5', - 国内指导价: 100000 - }, - { - 车型: '缤越元plus', - 国内指导价: 100000 - }, - { - 车型: '名爵 5', - 国内指导价: 60000 - }, - { - 车型: '缤越', - 国内指导价: 60000 - } - ], - fieldInfo: [ - { - fieldName: '车型', - description: '中国乘用车出口的具体车型', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '国内指导价', - description: '车辆在国内的指导价格', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '中国汽车转眼间为何变得这么受欢迎呢?又到底是哪些国家在购买中国汽车?中国卖给老外汽车又是些什么品牌和价位车型?本期视频就为大家打开中国汽车出口全球第一背后的真实数据。首先,中国出口的 491 万辆汽车都是些什么车呢?根据乘联会统计,中国乘用车出口量前十车型分别为名爵ZS、特斯拉 model y、奇瑞瑞虎7、特斯拉 model 3、名爵 4 EV、奇瑞虎5X、欧盟达名爵5、缤越元plus。除了特斯拉的 model y 和 model 3,其他车型国内指导价基本都在 10 万元左右,比如排名第一的名爵ZS,指导价 8- 9万元,最便宜的名爵 5 和缤越低到6万元就能拿下,可见中国汽车出海主打的还是一个性价比。' - }, - timeCost: '8.6' - }, - { - context: { - dataTable: [ - { - 车辆类型: '燃油车', - 年份: '2013', - 出口数量: 3710000, - 占出口总量比例: null, - 新能源出口增速: null - }, - { - 车辆类型: '新能源车', - 年份: '2013', - 出口数量: 1200000, - 占出口总量比例: 25, - 新能源出口增速: null - }, - { - 车辆类型: '新能源车', - 年份: '2023', - 出口数量: null, - 占出口总量比例: null, - 新能源出口增速: 77.6 - } - ], - fieldInfo: [ - { - fieldName: '车辆类型', - description: '车的类型,包括燃油车和新能源车', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '出口数量', - description: '车辆的出口数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '占出口总量比例', - description: '新能源车占出口总量的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '新能源出口增速', - description: '新能源汽车出口的增长速度', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '如果按燃油车、新能源车的分类来看, 2013 年中国出口燃油车 371 万辆,出口新能源汽车 120 万辆,新能源车占到出口总量的25%,虽然这个占比目前只有 1/ 4,但去年新能源出口增速是77.6%,势头不可谓不猛。' - }, - timeCost: '7.5' - }, - { - context: { - dataTable: [ - { - 国家: '俄罗斯', - 年份: '2013', - 出口量: 909000 - }, - { - 国家: '墨西哥', - 年份: '2013', - 出口量: 415000 - }, - { - 国家: '比利时', - 年份: '2013', - 出口量: 217000 - }, - { - 国家: '澳大利亚', - 年份: '2013', - 出口量: 214000 - }, - { - 国家: '英国', - 年份: '2013', - 出口量: 214000 - }, - { - 国家: '沙特阿拉伯', - 年份: '2013', - 出口量: 213000 - }, - { - 国家: '菲律宾', - 年份: '2013', - 出口量: 172000 - }, - { - 国家: '泰国', - 年份: '2013', - 出口量: 169000 - }, - { - 国家: '阿联酋', - 年份: '2013', - 出口量: 159000 - }, - { - 国家: '西班牙', - 年份: '2013', - 出口量: 139000 - }, - { - 地区: '欧洲', - 年份: '2013', - 占比: 38 - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '汽车出口的目的地国家', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '出口量', - description: '中国汽车对该国的出口数量(万辆)', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '地区', - description: '汽车出口的市场地区', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '占比', - description: '该地区在中国汽车对外出口中的占比', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '那中国汽车出口都卖到了哪些国家呢? 2013 年中国汽车出口量前十的国家分别是,俄罗斯90.9万辆,墨西哥 41.5 万辆,比利时 21.7 万辆,澳大利亚 21.4 万辆,英国 21.4 万辆,沙特阿拉伯 21.3 万辆,菲律宾 17.2 万辆,泰国 16.9 万辆,阿联酋 15.9 万辆,西班牙 13.9 万辆。按地区来看的话,欧洲市场占中国汽车对外出口的38%,远超其他任何单一大洲,可见中国汽车正在得到全世界更多人的认可。' - }, - timeCost: '12.6' - }, - { - context: { - dataTable: [ - { - 国家: '俄罗斯', - 年份: '2022', - 对该国汽车出口量: 160000, - 出口量增长比例: null, - 该国新车市场品牌: null, - 市场占有率: null - }, - { - 国家: '俄罗斯', - 年份: '2023', - 对该国汽车出口量: 909000, - 出口量增长比例: 468, - 该国新车市场品牌: '拉达', - 市场占有率: null - }, - { - 国家: '俄罗斯', - 年份: '2023', - 对该国汽车出口量: 909000, - 出口量增长比例: 468, - 该国新车市场品牌: '奇瑞金车', - 市场占有率: 11.2 - }, - { - 国家: '俄罗斯', - 年份: '2023', - 对该国汽车出口量: 909000, - 出口量增长比例: 468, - 该国新车市场品牌: '哈弗', - 市场占有率: 10.6 - }, - { - 国家: '俄罗斯', - 年份: '2023', - 对该国汽车出口量: 909000, - 出口量增长比例: 468, - 该国新车市场品牌: '极客', - 市场占有率: null - }, - { - 国家: '俄罗斯', - 年份: '2023', - 对该国汽车出口量: 909000, - 出口量增长比例: 468, - 该国新车市场品牌: null, - 市场占有率: 51 - }, - { - 国家: '俄罗斯', - 年份: '2024', - 对该国汽车出口量: null, - 出口量增长比例: null, - 该国新车市场品牌: null, - 市场占有率: 80 - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '涉及的国家', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '对该国汽车出口量', - description: '中国对该国的汽车出口数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '出口量增长比例', - description: '中国对该国汽车出口量的增长百分比', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '该国新车市场品牌', - description: '在该国新车市场中的汽车品牌', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场占有率', - description: '汽车品牌在该国新车市场的占比', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '当然了,中国汽车出口世界第一,又不得不提议俄罗斯和墨西哥这两个国家可以说去年是把中国车买爆了。 203 年,中国对俄罗斯的汽车出口量从上一年度的 16 万辆暴增到了90.9万辆,增加了468%。在俄罗斯的新车市场中,第一名是俄罗斯品牌拉达,第二至第七名则全都是中国品牌,比如第二名是奇瑞金车,市场占有率11.2%。第三名是哈弗,新车,市场占有率10.6%。俄罗斯卖最好的新能源车也是来自中国的极客。目前中国汽车已经占据俄罗斯新车市场的51%,可以说是拿下了半壁江山。而对于中国而言,仅俄罗斯一个国家 203 年就贡献了中国汽车出口增量的42%,甚至有俄罗斯本土汽车经销商预测, 2024 年中国汽车可能占据俄罗斯新车份额的80%。' - }, - timeCost: '15.3' - }, - { - context: { - dataTable: [ - { - 地区: '俄罗斯', - 年份: '2013', - 国家: '欧洲', - 市场份额变化前: 18, - 市场份额变化后: 4 - }, - { - 地区: '俄罗斯', - 年份: '2013', - 国家: '韩国', - 市场份额变化前: 16, - 市场份额变化后: 6 - }, - { - 地区: '俄罗斯', - 年份: '2013', - 国家: '日本', - 市场份额变化前: 12, - 市场份额变化后: 5 - } - ], - fieldInfo: [ - { - fieldName: '地区', - description: '汽车市场所在地区', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '国家', - description: '汽车来源国家', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场份额变化前', - description: '变化前的市场份额占比', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '市场份额变化后', - description: '变化后的市场份额占比', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '有人说俄罗斯满爆中国汽车是因为欧美的贸易封锁,这也步无道理。 2013 年在俄罗斯的新车市场中,欧洲的市场份额从 18% 降到了4%,韩国从 16% 降到了6%,日本从 12% 降到了5%,和欧日韩都是对俄罗斯实行了限制出口国家,其中就包括了部分汽车,可以说中国汽车吃下的正是欧日韩在俄罗斯丢掉市场。' - }, - timeCost: '6.4' - }, - { - context: { - dataTable: [ - { - 国家: '墨西哥', - 年份: '2013', - 中国汽车在该国销售汽车中的占比: 25, - 中国汽车品牌: null, - 中国汽车销量: null, - 中国新能源车在该国新能源车市场的份额: null - }, - { - 国家: '墨西哥', - 年份: '2007', - 中国汽车在该国销售汽车中的占比: 0, - 中国汽车品牌: null, - 中国汽车销量: null, - 中国新能源车在该国新能源车市场的份额: null - }, - { - 国家: '澳大利亚', - 年份: '2023', - 中国汽车在该国销售汽车中的占比: null, - 中国汽车品牌: '名爵', - 中国汽车销量: 58000, - 中国新能源车在该国新能源车市场的份额: null - }, - { - 国家: '澳大利亚', - 年份: '2023', - 中国汽车在该国销售汽车中的占比: null, - 中国汽车品牌: null, - 中国汽车销量: null, - 中国新能源车在该国新能源车市场的份额: 14 - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '购买中国汽车的国家', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '中国汽车在该国销售汽车中的占比', - description: '该国销售汽车中来自中国的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '中国汽车品牌', - description: '在该国受欢迎的中国汽车品牌', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '中国汽车销量', - description: '中国汽车在该国的销售数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '中国新能源车在该国新能源车市场的份额', - description: '中国新能源车在该国新能源车市场的占比', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '当然了,除了俄罗斯之外,其他国家也在买中国汽车,比如墨西哥。 2013 年,墨西哥所有销售汽车中有 25% 来自中国,而在 6 年前这个数字为0。澳大利亚也在不断买中国汽车,最受澳大利亚欢迎的中国汽车品牌是名爵,去年卖了 5.8 万辆。在新能源车市场,比亚迪则占据了澳大利亚的新能源汽车 14% 份额,位于第二名。' - }, - timeCost: '12.8' - }, - { - context: { - dataTable: [ - { - 品牌: '特斯拉', - 市场: '全球', - 年份: null, - 市场份额: 53, - 出口汽车数量: null, - 出口汽车数量倍数: null, - 新能源汽车平均出口价格: null - }, - { - 品牌: '中国车企', - 市场: '东南亚', - 年份: 2013, - 市场份额: null, - 出口汽车数量: null, - 出口汽车数量倍数: null, - 新能源汽车平均出口价格: null - }, - { - 品牌: '中国品牌', - 市场: '泰国新能源车市场', - 年份: null, - 市场份额: 80, - 出口汽车数量: null, - 出口汽车数量倍数: null, - 新能源汽车平均出口价格: null - }, - { - 品牌: '比亚迪', - 市场: '全球', - 年份: 2023, - 市场份额: null, - 出口汽车数量: 240000, - 出口汽车数量倍数: 3.34, - 新能源汽车平均出口价格: null - }, - { - 品牌: '比亚迪', - 市场: '泰国新能源车市场', - 年份: null, - 市场份额: 40, - 出口汽车数量: null, - 出口汽车数量倍数: null, - 新能源汽车平均出口价格: null - }, - { - 品牌: '中国新能源汽车', - 市场: '全球', - 年份: 2019, - 市场份额: null, - 出口汽车数量: null, - 出口汽车数量倍数: null, - 新能源汽车平均出口价格: 5000 - }, - { - 品牌: '中国新能源汽车', - 市场: '全球', - 年份: 2022, - 市场份额: null, - 出口汽车数量: null, - 出口汽车数量倍数: null, - 新能源汽车平均出口价格: 22000 - } - ], - fieldInfo: [ - { - fieldName: '品牌', - description: '汽车品牌名称', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场', - description: '汽车销售的市场区域', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '市场份额', - description: '在该市场的占比', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '出口汽车数量', - description: '车企的出口汽车数量', - type: 'count', - role: 'measure', - location: 'measure' - }, - { - fieldName: '出口汽车数量倍数', - description: '出口汽车数量相较于上一年度的倍数', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '新能源汽车平均出口价格', - description: '中国新能源汽车平均每辆的出口价格', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '当然,这里也不得不提一下第一名,那就是特斯拉市场份额高达53%,在东南亚市场,中国车企业销量在 2013 年同样实现小幅上升,最典型的就是泰国,在泰国的新能源车市场,中国品牌占据了 80% 的份额,比如比亚迪的原 plus 就是泰国的新能源车爆款,那到底是什么原因让中国汽车爆卖呢?基本还可以总结为三方面原因,首先是全球疫情爆发,由于中国汽车的供应链完善,疫情期间仍能维持稳定生产,而日韩这些过去的出口大户受疫情影响,芯片、钢材、橡胶等关键原材料短缺,不仅汽车产能下降,而且成本升高,这就让中国汽车更具性价比。而随着中国国内新能源汽车市场越来越卷出海,成为不少中国车企的选择,比如比亚迪 2023 年进入全球 58 个国家和地区,出口汽车 24 万辆,是上一年度的 3.34 倍。在泰国新能源车市场,比亚迪单独占到了 40% 的市场份额,是名副其实的泰国新能源汽车销冠。而且中国新能源汽车并非只是具备成本优势,汽车与 AI 互联网融合的智能化更是中国车企的拿手好戏。从豪华配置到智能大屏,从外观设计到内饰比拼,这让中国新能源汽车的溢价能力明显变高。2019 年中国新能源汽车平均出口价格每量只有 5, 000 美元, 2022 年涨到了 2.2 万美元。比如比亚迪汉在欧洲发布时价格接近 50 万人民币,是国内售价的两倍多。在泰国、以色列、新西兰等多个国家,比亚迪也已经是新能源汽车的销售冠军。不过,中国汽车征服海外虽然是一部励志爽门,但其实有不少挑战。' - }, - timeCost: '16.7' - }, - { - context: { - dataTable: [ - { - 国家: '中国', - 时间: '2000', - 产品: '摩托车', - 在该国市场份额: 80 - }, - { - 国家: '日本', - 时间: '2000', - 产品: '摩托车', - 在该国市场份额: 20 - }, - { - 国家: '日本', - 时间: '2024', - 产品: '摩托车', - 在该国市场份额: 95 - }, - { - 国家: '中国', - 时间: '2024', - 产品: '摩托车', - 在该国市场份额: 1 - } - ], - fieldInfo: [ - { - fieldName: '国家', - description: '涉及的国家', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '时间', - description: '相关事件发生的时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '产品', - description: '涉及的产品', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '在该国市场份额', - description: '在该国市场所占的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '其实中国汽车出海不禁让人想起曾经的中国摩托车出海。 2000 年前后,中国摩托车进军越南,一度占据了 80% 的越南市场份额,但不到三四年时间,却被日本摩托车打得片甲不留。如今日本摩托车在越南占据 95% 的份额,而中国摩托车百分之一都不到。曾经也有大量中国摩托车车企在越南建厂,但却形成了恶性竞争的关系,疯狂打价格战,导致服务和质量越来越差,越南的中国摩托车车企仿佛是飘在越南的。' - }, - timeCost: '4.9' - }, - { - context: { - dataTable: [ - { - 企业类型: '规模以上制造企业', - 企业数量: 445000 - }, - { - 企业类型: '存续的制造业企业', - 企业数量: 6220000 - }, - { - 企业类型: '规模以下的中小微工厂', - 企业数量: 4000000 - }, - { - 企业类型: '工厂规模不到50人的工厂', - 工厂规模: '不到50人', - 工厂占比: 40 - }, - { - 企业类型: '工厂规模不到500人的工厂', - 工厂规模: '不到500人', - 工厂占比: 90 - } - ], - fieldInfo: [ - { - fieldName: '企业类型', - description: '制造业企业的分类', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '企业数量', - description: '该类型企业的数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '工厂规模', - description: '工厂的人员规模情况', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '工厂占比', - description: '该规模工厂占比情况', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '每个中国制造品牌的背后都有一批优秀的零部件供应商,像汇川技术、恒力液压、先导智能、顺域光学、军胜电子这样的零部件企业也是中国制造的骄傲,只不过知名度无法媲美消费者直接接触的终端品牌。按照官方的口径,中国规模以上也就是年销售收入 2, 000 万以上的制造企业有 44.5 万家。至于中国一共有多少家制造业企业存在各种口径,从 300 多万家到近千万家不等。万德资讯给我的数据是,中国大约有 622 万家存续的制造业企业。海之在线是一家总部在上海,聚焦中间品贸易的数字化平台,连接着 70 万家工厂,他们给我的数据是,中国规模以下的中小微工厂大致有 400 万家。这期节目标题中的 400 万家沉默工厂处处记载于此。海志在线的创始人、 CEO 佘莹对我说,从平台看, 40% 的工厂规模不到 50 人,近 90% 的工厂不到 500 人,大部分工厂的年产值在数百万元到数千万元。如果和大企业比,你可以说他们就是一个个的小做法。如果走进去可能会看到老旧的机器上油漆斑驳,可以看到生产计划就用记号笔写在车间墙上挂着的白板上,甚至会发现用破洞的木板随意围搭起来的厕所,待客的茶水里则混杂着浓浓的机油味。但他们就是中国制造业毛细血管层面的供应链小节点,勤勤恳恳的维护设备、搞生产,他们最在意的是生存,是接到订单以及在满足客户之后能够完整的收到货款。' - }, - timeCost: '8.6' - }, - { - context: { - dataTable: [ - { - 事项: '铝和其他废且金属产量变化', - 时间: '2024', - 相关数据: 20, - 产量变化: 20 - }, - { - 事项: '钢铁产量变化', - 时间: '2024', - 相关数据: [-5, -10], - 产量变化: [-5, -10] - }, - { - 事项: '对开发商的银行贷款增长', - 时间: '2024', - 相关数据: 19, - 贷款增长情况: 19 - }, - { - 事项: '房贷和存款跟预付款的比例下降', - 时间: '2024', - 相关数据: [-30, -40], - 贷款增长情况: [-30, -40] - } - ], - fieldInfo: [ - { - fieldName: '事项', - description: '涉及的具体事项', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '时间', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '相关数据', - description: '与事项相关的具体数据', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '产量变化', - description: '金属产量的变化情况', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '贷款增长情况', - description: '银行贷款的增长情况', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '有报道称,一些地方政府面临收入短缺,要求企业缴纳可追溯到 1990 年代的税单。这种紧缩政策在房地产市场寻找几步的时刻,会损害上信心和经济。高盛认为,中国中央政府可以通过加大对西方政府的财政支持来切断机房政府无紧缩所出现的负面溢出效应,那如同美国监管机构在次贷危机期间通过成为最后贷款人来切断金融危机的传播一样。关于出口和机产之间的分化,可以同中国的金属生产中得到证实啊。铝和其他废且金属的产量相比疫情之前上升了 20% 以上,而钢铁的产量下降了 5% 到10%。在房产方面,开发商越来越依赖银行融资, 5 月份对开发商的银行贷款同比增长了19%。而随着房地产销售的下滑,房贷和存款跟预付款的比例同比下降了 30% 到40%。高盛银行股票团队预计从 2024 年到 2026 年,房地产贷款将增加 4.5 万亿人民币,以完全期待收缩的房地产债券和设防的影子银行贷款。' - }, - timeCost: '8.7' - }, - { - context: { - dataTable: [ - { - 领域: '建立燃气和水的生产', - 投资情况: '固定资产投资', - 与疫情前水平对比: 200, - 年份: '2024' - }, - { - 领域: '整体基建', - 投资情况: '固定资产投资', - 与疫情前水平对比: null, - 年份: '2024' - }, - { - 领域: '代线销售商品', - 销售类型: '零售销售', - 销售增长情况: 13, - 年份: '2024' - }, - { - 领域: '餐饮销售', - 销售类型: '零售销售', - 销售增长情况: 5, - 年份: '2024' - }, - { - 领域: '线下商品销售', - 销售类型: '零售销售', - 销售增长情况: 0, - 年份: '2024' - } - ], - fieldInfo: [ - { - fieldName: '领域', - description: '经济领域的分类', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '投资情况', - description: '相关领域的投资增长情况', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '与疫情前水平对比', - description: '与疫情前投资水平的比较', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '年份', - description: '数据对应时间', - type: 'date', - dateGranularity: 'year', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '销售类型', - description: '零售销售的类型', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '销售增长情况', - description: '销售的同比增长比例', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '中国经济分化并不止于出口和房地产基础设施的固定资产投资。细分项显示,建立燃气和水的生产投资已同疫情前水平翻倍,远远超过了整体的基建的投资增长。因为中国政府首先优先考虑农源供用安全和脱碳。在零售销售当中, 5 月份代线销售商品同比增长13%,而餐饮销售仅增长5%,线下商品的销售保持在去年同期的水平。' - }, - timeCost: '9.6' - }, - { - context: { - dataTable: [ - { - 时间: '7月', - 会议内容: '评估当前经济状况并制定今年剩余时间周期性政策安排', - 经济增长同比: 5.3, - 季度增长预测: null - }, - { - 时间: '7月', - 会议内容: '解决经济结构中重大改革议程', - 经济增长同比: null, - 季度增长预测: null - }, - { - 时间: '二季度', - 会议内容: null, - 经济增长同比: null, - 季度增长预测: '>5' - } - ], - fieldInfo: [ - { - fieldName: '时间', - description: '会议或数据对应的时间', - type: 'date', - dateGranularity: 'month', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '会议内容', - description: '会议专注的方面', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '经济增长同比', - description: '与上年同期相比的经济增长情况', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '季度增长预测', - description: '对季度经济增长的预测', - type: 'ratio', - role: 'measure', - location: 'measure' - } - ], - text: '7月中旬将举行两场重要的政策会议,前者将专注于评估当前的经济状况,并为今年剩余时间制定周期性的政策安排。后者将专注于至少未来五年解决经济结构当中的重大改革议程。鉴于一季度的实际, g GPT 同比增长5.3%,而且去年基数较低,那么 G2 季度增长可能高于5%,政府的全年增长目标仍然在轨道上。' - }, - timeCost: '7.5' - }, - { - context: { - dataTable: [ - { - 时间: '7月', - 政策领域: '宏观政策', - 政策情况: '政策执行者不会释放重大刺激措施,可能维持当前立场和执行现有政策' - }, - { - 时间: '5月', - 政策领域: '宏观政策', - 政策情况: '宣布的最后一批措施不及预期,可能引入更多宽松政策' - }, - { - 时间: '三季度', - 政策领域: '货币政策', - 政策情况: '预计降息25个基点' - }, - { - 时间: '四季度9月', - 政策领域: '货币政策', - 政策情况: '预计再降息10个基点' - }, - { - 时间: '今年', - 政策领域: '财政政策', - 政策情况: '预计政府债券发行在下半年显著增加' - }, - { - 时间: '今年', - 政策领域: '财政政策', - 政策情况: '基建投资不会加速太多,除非增长急剧放缓' - }, - { - 时间: '今年', - 政策领域: '财政政策', - 政策情况: '高盛预测中国增强型财政赤字从去年的GDP 11.2%适度扩大到今年的11.9%' - }, - { - 时间: '今年', - 政策领域: '信贷政策', - 政策情况: '信贷增长与GDP增长之间的联系已经减弱' - }, - { - 时间: '今年', - 政策领域: '信贷政策', - 政策情况: '预计信贷总量的增长将从去年的9.5%放缓到今年的9%' - }, - { - 时间: '4月', - 政策领域: '住房政策', - 政策情况: '决策者希望严防房地产市场的尾部风险' - }, - { - 时间: '近期', - 政策领域: '住房政策', - 政策情况: '预计进一步削减房贷利率以刺激需求' - }, - { - 时间: '短期内', - 政策领域: '外汇政策', - 政策情况: '央行将保持美元对人民币汇率稳定,三个月高盛预测为7.3' - } - ], - fieldInfo: [ - { - fieldName: '时间', - description: '数据对应的具体时间', - type: 'date', - dateGranularity: 'month', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '政策领域', - description: '涉及的政策方面', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '政策情况', - description: '政策的具体情况描述', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '降息基点', - description: '降息的基点数量', - type: 'numerical', - role: 'measure', - location: 'measure' - }, - { - fieldName: '赤字占GDP比例', - description: '增强型财政赤字占GDP的比例', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '信贷增长与GDP增长联系减弱情况', - description: '信贷增长与GDP增长之间联系的减弱程度', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '信贷总量增长', - description: '信贷总量的增长情况', - type: 'ratio', - role: 'measure', - location: 'measure' - }, - { - fieldName: '房贷利率情况', - description: '房贷利率的相关情况', - type: 'string', - role: 'dimension', - location: 'dimension' - }, - { - fieldName: '汇率', - description: '美元对人民币汇率', - type: 'numerical', - role: 'measure', - location: 'measure' - } - ], - text: '高盛认为,政策执行者不会在 7 月份的首场会议上释放任何重大的刺激措施,宏观政策的证件可能大于维持当前立场和执行现有的政策。另一方面,鉴于 5 月份宣布的最后一批措施不及预期,可能存在引入更多期产宽松政策的可能性。在货币政策方面,资本外流的担忧和银行利润率的下降限制了央行降息的能力。高盛预计三季度将降息 25 个基减,以适应大量政府债券发行,并预计季四季度9月首次降息后会再降息 10 个期减。在财政政策方面,高盛预计政府债券的发行将在下半年显著增加,以完成年初发行缓慢的全年配额。除非增长急剧放缓,否则基建的投资不会加速太多。对于政府 3 月份公布的预算计划,高盛虽然预测中国的增强型的弹盛赤字从去年的 gdp 11.2% 会适度扩大到今年的11.9%,但由于今年出口强计可能会存在财政扩张不及预期的风险。信贷政策方面,正如央行行长6月 19 号陆家嘴论坛上所说,由于金融套利的虚假贷款和监管机构随后对金融系统中这种资金空转的打击,信贷增长与 GDP 增长之间的联系已经减弱。预计摄容总量的增长将同去年的 9.5% 放缓到今年的9%。在住房政策方面,4月的政治局会议表明,决策者希望严防房地产市场的尾部风险。由于地产价格和活动的持续下行,以及机房国企通过央行的贷款计划购买空池公寓的速度缓慢,高盛预计进一步削减房贷利率以刺激需求,同时为去库存提供更多的资金和效率的支持。在外汇政策方面,鉴于美元持续强势和资本外流的压力,高盛认为央行将在短期内保持美元对人民币汇率的稳定,三个月的高盛预测是7.3,因为外汇市决策者可以迎来抵消关税对出口负面影响的工具。 2018- 19 年的经验表明,如果特朗普赢得美国大选,而且正如他最近几个月所宣称的,会对中国实施正大的关税,那美元兑人民币可能会显著贬值。' - }, - timeCost: '18.4' - } - ] - } -]; diff --git a/packages/vmind/__tests__/browser/src/constants/mockData.ts b/packages/vmind/__tests__/browser/src/constants/mockData.ts deleted file mode 100644 index 3eced4b4..00000000 --- a/packages/vmind/__tests__/browser/src/constants/mockData.ts +++ /dev/null @@ -1,9969 +0,0 @@ -/* eslint-disable max-len */ -/* - **动态条形图 - */ -export const mockUserInput6 = { - csv: `country,continent,GDP,year -美国,美洲,239270,1973 -印度,亚洲,22960,1973 -韩国,亚洲,7870,1973 -土耳其,亚洲,17240,1973 -印度尼西亚,亚洲,10980,1973 -沙特阿拉伯,亚洲,23760,1973 -泰国,亚洲,4130,1973 -菲律宾,亚洲,5660,1973 -马来西亚,亚洲,2780,1973 -英国,欧洲,114750,1973 -意大利,欧洲,107570,1973 -西班牙,欧洲,55990,1973 -荷兰,欧洲,36410,1973 -瑞士,欧洲,33920,1973 -芬兰,欧洲,9930,1973 -瑞典,欧洲,23020,1973 -比利时,欧洲,22280,1973 -挪威,欧洲,14540,1973 -美国,美洲,278390,1978 -印度,亚洲,29220,1978 -韩国,亚洲,13120,1978 -土耳其,亚洲,22620,1978 -印度尼西亚,亚洲,15390,1978 -沙特阿拉伯,亚洲,30080,1978 -泰国,亚洲,6000,1978 -菲律宾,亚洲,7480,1978 -马来西亚,亚洲,3900,1978 -英国,欧洲,121140,1978 -意大利,欧洲,126030,1978 -西班牙,欧洲,64080,1978 -荷兰,欧洲,41420,1978 -瑞士,欧洲,32360,1978 -芬兰,欧洲,10800,1978 -瑞典,欧洲,24650,1978 -比利时,欧洲,24970,1978 -挪威,欧洲,18160,1978 -美国,美洲,336520,1983 -印度,亚洲,34790,1983 -韩国,亚洲,18480,1983 -土耳其,亚洲,25000,1983 -印度尼西亚,亚洲,20870,1983 -沙特阿拉伯,亚洲,24130,1983 -泰国,亚洲,7840,1983 -菲律宾,亚洲,9070,1983 -马来西亚,亚洲,5510,1983 -英国,欧洲,129860.00000000001,1983 -意大利,欧洲,141500,1983 -西班牙,欧洲,67430,1983 -荷兰,欧洲,42830,1983 -瑞士,欧洲,35000,1983 -芬兰,欧洲,13130,1983 -瑞典,欧洲,26980,1983 -比利时,欧洲,26860,1983 -挪威,欧洲,20980,1983 -美国,美洲,427650,1988 -印度,亚洲,45400,1988 -韩国,亚洲,30960,1988 -土耳其,亚洲,33340,1988 -印度尼西亚,亚洲,26890,1988 -沙特阿拉伯,亚洲,25640,1988 -泰国,亚洲,11350,1988 -菲律宾,亚洲,8970,1988 -马来西亚,亚洲,6880,1988 -英国,欧洲,158980,1988 -意大利,欧洲,166060,1988 -西班牙,欧洲,80430,1988 -荷兰,欧洲,49070,1988 -瑞士,欧洲,39950,1988 -芬兰,欧洲,15720,1988 -瑞典,欧洲,31270,1988 -比利时,欧洲,30520,1988 -挪威,欧洲,24800,1988 -美国,美洲,488020,1993 -印度,亚洲,56680,1993 -韩国,亚洲,45790,1993 -土耳其,亚洲,41600,1993 -印度尼西亚,亚洲,37570,1993 -沙特阿拉伯,亚洲,34670,1993 -泰国,亚洲,17990,1993 -菲律宾,亚洲,10000,1993 -马来西亚,亚洲,10720,1993 -英国,欧洲,167180,1993 -意大利,欧洲,177750,1993 -西班牙,欧洲,89630,1993 -荷兰,欧洲,56320,1993 -瑞士,欧洲,42740,1993 -芬兰,欧洲,15040,1993 -瑞典,欧洲,30950,1993 -比利时,欧洲,33350,1993 -挪威,欧洲,28050,1993 -美国,美洲,521740,1998 -印度,亚洲,77270,1998 -韩国,亚洲,59600,1998 -土耳其,亚洲,50560,1998 -印度尼西亚,亚洲,42880,1998 -沙特阿拉伯,亚洲,37310,1998 -泰国,亚洲,19930,1998 -菲律宾,亚洲,12090,1998 -马来西亚,亚洲,14070,1998 -英国,欧洲,196370,1998 -意大利,欧洲,196130,1998 -西班牙,欧洲,104800,1998 -荷兰,欧洲,67570,1998 -瑞士,欧洲,46090,1998 -芬兰,欧洲,18940,1998 -瑞典,欧洲,36510,1998 -比利时,欧洲,37790,1998 -挪威,欧洲,34830,1998 -美国,美洲,545920,2003 -印度,亚洲,102500,2003 -韩国,亚洲,84420,2003 -土耳其,亚洲,55060,2003 -印度尼西亚,亚洲,51460,2003 -沙特阿拉伯,亚洲,40500,2003 -泰国,亚洲,25620,2003 -菲律宾,亚洲,14620,2003 -马来西亚,亚洲,18210,2003 -英国,欧洲,228640,2003 -意大利,欧洲,211730,2003 -西班牙,欧洲,126720,2003 -荷兰,欧洲,75950,2003 -瑞士,欧洲,49450,2003 -芬兰,欧洲,22260,2003 -瑞典,欧洲,42290,2003 -比利时,欧洲,42160,2003 -挪威,欧洲,38320,2003 -美国,美洲,578410,2008 -印度,亚洲,143180,2008 -韩国,亚洲,106280,2008 -土耳其,亚洲,74660,2008 -印度尼西亚,亚洲,67940,2008 -沙特阿拉伯,亚洲,51340,2008 -泰国,亚洲,31950,2008 -菲律宾,亚洲,19140,2008 -马来西亚,亚洲,24100,2008 -英国,欧洲,253560,2008 -意大利,欧洲,221500,2008 -西班牙,欧洲,147390,2008 -荷兰,欧洲,86710,2008 -瑞士,欧洲,57960,2008 -芬兰,欧洲,26270,2008 -瑞典,欧洲,48920,2008 -比利时,欧洲,47720,2008 -挪威,欧洲,43330,2008 -美国,美洲,589420,2013 -印度,亚洲,197840,2013 -韩国,亚洲,125320,2013 -土耳其,亚洲,97510,2013 -印度尼西亚,亚洲,89730,2013 -沙特阿拉伯,亚洲,62900,2013 -泰国,亚洲,37880,2013 -菲律宾,亚洲,24700,2013 -马来西亚,亚洲,29650,2013 -英国,欧洲,260510,2013 -意大利,欧洲,204670,2013 -西班牙,欧洲,134780,2013 -荷兰,欧洲,84970,2013 -瑞士,欧洲,61070,2013 -芬兰,欧洲,24970,2013 -瑞典,欧洲,51470,2013 -比利时,欧洲,49500,2013 -挪威,欧洲,44930,2013 -美国,美洲,617030,2018 -印度,亚洲,282220,2018 -韩国,亚洲,144970,2018 -土耳其,亚洲,124050,2018 -印度尼西亚,亚洲,114690,2018 -沙特阿拉伯,亚洲,70160,2018 -泰国,亚洲,44230,2018 -菲律宾,亚洲,34030,2018 -马来西亚,亚洲,38210,2018 -英国,欧洲,287930,2018 -意大利,欧洲,214100,2018 -西班牙,欧洲,153950,2018 -荷兰,欧洲,94810,2018 -瑞士,欧洲,67460,2018 -芬兰,欧洲,26920,2018 -瑞典,欧洲,58930,2018 -比利时,欧洲,53840,2018 -挪威,欧洲,48930,2018 -`, - input: '使用动态条形图帮我展示各国GDP排名变化' -}; - -/* - **动态条形图-英文 - */ -export const mockUserInput6Eng = { - csv: `country,continent,GDP,year -USA,North America,239270,1973 -India,Asia,22960,1973 -South Korea,Asia,7870,1973 -Turkey,Asia,17240,1973 -Indonesia,Asia,10980,1973 -Saudi Arabia,Asia,23760,1973 -Thailand,Asia,4130,1973 -Philippines,Asia,5660,1973 -Malaysia,Asia,2780,1973 -United Kingdom,Europe,114750,1973 -Italy,Europe,107570,1973 -Spain,Europe,55990,1973 -Netherlands,Europe,36410,1973 -Switzerland,Europe,33920,1973 -Finland,Europe,9930,1973 -Sweden,Europe,23020,1973 -Belgium,Europe,22280,1973 -Norway,Europe,14540,1973 -USA,North America,278390,1978 -India,Asia,29220,1978 -South Korea,Asia,13120,1978 -Turkey,Asia,22620,1978 -Indonesia,Asia,15390,1978 -Saudi Arabia,Asia,30080,1978 -Thailand,Asia,6000,1978 -Philippines,Asia,7480,1978 -Malaysia,Asia,3900,1978 -United Kingdom,Europe,121140,1978 -Italy,Europe,126030,1978 -Spain,Europe,64080,1978 -Netherlands,Europe,41420,1978 -Switzerland,Europe,32360,1978 -Finland,Europe,10800,1978 -Sweden,Europe,24650,1978 -Belgium,Europe,24970,1978 -Norway,Europe,18160,1978 -USA,North America,336520,1983 -India,Asia,34790,1983 -South Korea,Asia,18480,1983 -Turkey,Asia,25000,1983 -Indonesia,Asia,20870,1983 -Saudi Arabia,Asia,24130,1983 -Thailand,Asia,7840,1983 -Philippines,Asia,9070,1983 -Malaysia,Asia,5510,1983 -United Kingdom,Europe,129860.00000000001,1983 -Italy,Europe,141500,1983 -Spain,Europe,67430,1983 -Netherlands,Europe,42830,1983 -Switzerland,Europe,35000,1983 -Finland,Europe,13130,1983 -Sweden,Europe,26980,1983 -Belgium,Europe,26860,1983 -Norway,Europe,20980,1983 -USA,North America,427650,1988 -India,Asia,45400,1988 -South Korea,Asia,30960,1988 -Turkey,Asia,33340,1988 -Indonesia,Asia,26890,1988 -Saudi Arabia,Asia,25640,1988 -Thailand,Asia,11350,1988 -Philippines,Asia,8970,1988 -Malaysia,Asia,6880,1988 -United Kingdom,Europe,158980,1988 -Italy,Europe,166060,1988 -Spain,Europe,80430,1988 -Netherlands,Europe,49070,1988 -Switzerland,Europe,39950,1988 -Finland,Europe,15720,1988 -Sweden,Europe,31270,1988 -Belgium,Europe,30520,1988 -Norway,Europe,24800,1988 -USA,North America,488020,1993 -India,Asia,56680,1993 -South Korea,Asia,45790,1993 -Turkey,Asia,41600,1993 -Indonesia,Asia,37570,1993 -Saudi Arabia,Asia,34670,1993 -Thailand,Asia,17990,1993 -Philippines,Asia,10000,1993 -Malaysia,Asia,10720,1993 -United Kingdom,Europe,167180,1993 -Italy,Europe,177750,1993 -Spain,Europe,89630,1993 -Netherlands,Europe,56320,1993 -Switzerland,Europe,42740,1993 -Finland,Europe,15040,1993 -Sweden,Europe,30950,1993 -Belgium,Europe,33350,1993 -Norway,Europe,28050,1993 -USA,North America,521740,1998 -India,Asia,77270,1998 -South Korea,Asia,59600,1998 -Turkey,Asia,50560,1998 -Indonesia,Asia,42880,1998 -Saudi Arabia,Asia,37310,1998 -Thailand,Asia,19930,1998 -Philippines,Asia,12090,1998 -Malaysia,Asia,14070,1998 -United Kingdom,Europe,196370,1998 -Italy,Europe,196130,1998 -Spain,Europe,104800,1998 -Netherlands,Europe,67570,1998 -Switzerland,Europe,46090,1998 -Finland,Europe,18940,1998 -Sweden,Europe,36510,1998 -Belgium,Europe,37790,1998 -Norway,Europe,34830,1998 -USA,North America,545920,2003 -India,Asia,102500,2003 -South Korea,Asia,84420,2003 -Turkey,Asia,55060,2003 -Indonesia,Asia,51460,2003 -Saudi Arabia,Asia,40500,2003 -Thailand,Asia,25620,2003 -Philippines,Asia,14620,2003 -Malaysia,Asia,18210,2003 -United Kingdom,Europe,228640,2003 -Italy,Europe,211730,2003 -Spain,Europe,126720,2003 -Netherlands,Europe,75950,2003 -Switzerland,Europe,49450,2003 -Finland,Europe,22260,2003 -Sweden,Europe,42290,2003 -Belgium,Europe,42160,2003 -Norway,Europe,38320,2003 -USA,North America,578410,2008 -India,Asia,143180,2008 -South Korea,Asia,106280,2008 -Turkey,Asia,74660,2008 -Indonesia,Asia,67940,2008 -Saudi Arabia,Asia,51340,2008 -Thailand,Asia,31950,2008 -Philippines,Asia,19140,2008 -Malaysia,Asia,24100,2008 -United Kingdom,Europe,253560,2008 -Italy,Europe,221500,2008 -Spain,Europe,147390,2008 -Netherlands,Europe,86710,2008 -Switzerland,Europe,57960,2008 -Finland,Europe,26270,2008 -Sweden,Europe,48920,2008 -Belgium,Europe,47720,2008 -Norway,Europe,43330,2008 -USA,North America,589420,2013 -India,Asia,197840,2013 -South Korea,Asia,125320,2013 -Turkey,Asia,97510,2013 -Indonesia,Asia,89730,2013 -Saudi Arabia,Asia,62900,2013 -Thailand,Asia,37880,2013 -Philippines,Asia,24700,2013 -Malaysia,Asia,29650,2013 -United Kingdom,Europe,260510,2013 -Italy,Europe,204670,2013 -Spain,Europe,134780,2013 -Netherlands,Europe,84970,2013 -Switzerland,Europe,61070,2013 -Finland,Europe,24970,2013 -Sweden,Europe,51470,2013 -Belgium,Europe,49500,2013 -Norway,Europe,44930,2013 -USA,North America,617030,2018 -India,Asia,282220,2018 -South Korea,Asia,144970,2018 -Turkey,Asia,124050,2018 -Indonesia,Asia,114690,2018 -Saudi Arabia,Asia,70160,2018 -Thailand,Asia,44230,2018 -Philippines,Asia,34030,2018 -Malaysia,Asia,38210,2018 -United Kingdom,Europe,287930,2018 -Italy,Europe,214100,2018 -Spain,Europe,153950,2018 -Netherlands,Europe,94810,2018 -Switzerland,Europe,67460,2018 -Finland,Europe,26920,2018 -Sweden,Europe,58930,2018 -Belgium,Europe,53840,2018 -Norway,Europe,48930,2018 -`, - input: 'Show me the change of the GDP rankings of each country ' -}; - -/* - **饼图 - */ -export const mockUserInput2 = { - csv: `品牌名称,市场份额,平均价格,净利润 -Apple,0.5,7068,314531 -Samsung,0.2,6059,362345 -Vivo,0.05,3406,234512 -Nokia,0.01,1064,-1345 -Xiaomi,0.1,4087,131345`, - input: '展示各品牌市场占有率' -}; - -export const mockUserInput8 = { - csv: `date,type,value -2023-01-01,产品 A,52.9 -2023-01-01,产品 B,63.6 -2023-01-01,产品 C,11.2 -2023-01-02,产品 A,45.7 -2023-01-02,产品 B,89.1 -2023-01-02,产品 C,21.4 -2023-01-03,产品 A,67.2 -2023-01-03,产品 B,82.4 -2023-01-03,产品 C,31.7 -2023-01-04,产品 A,80.7 -2023-01-04,产品 B,55.1 -2023-01-04,产品 C,21.1 -2023-01-05,产品 A,65.6 -2023-01-05,产品 B,78 -2023-01-05,产品 C,31.3 -2023-01-06,产品 A,75.6 -2023-01-06,产品 B,89.1 -2023-01-06,产品 C,63.5 -2023-01-07,产品 A,67.3 -2023-01-07,产品 B,77.2 -2023-01-07,产品 C,43.7 -2023-01-08,产品 A,96.1 -2023-01-08,产品 B,97.6 -2023-01-08,产品 C,59.9 -2023-01-09,产品 A,96.1 -2023-01-09,产品 B,100.6 -2023-01-09,产品 C,66.8 -2023-01-10,产品 A,101.6 -2023-01-10,产品 B,108.3 -2023-01-10,产品 C,56.9`, - input: '请帮我展示各产品的销售趋势' -}; - -/* - **柱状图 - */ -export const mockUserInput3 = { - csv: `商品名称,region,销售额 -可乐,south,2350 -可乐,east,1027 -可乐,west,1027 -可乐,north,1027 -雪碧,south,215 -雪碧,east,654 -雪碧,west,159 -雪碧,north,28 -芬达,south,345 -芬达,east,654 -芬达,west,2100 -芬达,north,1679 -醒目,south,1476 -醒目,east,830 -醒目,west,532 -醒目,north,498 -`, - input: '帮我展示不同区域各商品销售额' -}; - -export const mockUserInput10 = { - csv: `城市,2022年GDP(亿元) -北京,31897 -上海,30956 -广州,30000 -深圳,30395 -苏州,25000`, - input: '请使用[柱状图]展示[2022年GDP排名前五的中国城市及其2022年的GDP]' -}; - -/* - **柱状图 - */ -export const mockUserInput3Eng = { - csv: `Product Name,Region,Sales -Coke, South, 2350 -Coke, East, 1027 -Coke, West, 1027 -Coke, North, 1027 -Sprite, South, 215 -Sprite, East, 654 -Sprite, West, 159 -Sprite, North, 28 -Fanta, South, 345 -Fanta, East, 654 -Fanta, West, 2100 -Fanta, North, 1679 -Mirinda, South, 1476 -Mirinda, East, 830 -Mirinda, West, 532 -Mirinda, North, 498 -`, - input: 'display the sales figures of different products in various regions.' -}; - -export const carSaleMockData = { - csv: `时间,汽车厂商,销量 -2022年1月,上汽大众,124491 -2022年1月,长安汽车,123707 -2022年1月,吉利汽车,112325 -2022年1月,东风日产,110996 -2022年1月,一汽-大众,103462 -2022年1月,广汽丰田,99707 -2022年1月,比亚迪,93363 -2022年1月,华晨宝马,79087 -2022年1月,广汽本田,77377 -2022年1月,东风本田,76903 -2022年2月,比亚迪,88093 -2022年2月,上汽大众,86076 -2022年2月,一汽丰田,75918 -2022年2月,东风日产,74308 -2022年2月,一汽-大众,70638 -2022年2月,东风本田,58954 -2022年2月,广汽本田,56734 -2022年2月,特斯拉中国,56515 -2022年2月,吉利汽车,55357 -2022年2月,长安汽车,53034 -2022年3月,长安汽车,110015 -2022年3月,上汽大众,104200 -2022年3月,比亚迪,103852 -2022年3月,上汽通用五菱,102951 -2022年3月,广汽丰田,96984 -2022年3月,一汽-大众,76586 -2022年3月,广汽本田,75858 -2022年3月,吉利汽车,75447 -2022年3月,东风本田,71074 -2022年3月,一汽丰田,69957 -2022年4月,比亚迪,105475 -2022年4月,广汽丰田,68450 -2022年4月,吉利汽车,49137 -2022年4月,长安汽车,47980 -2022年4月,上汽通用五菱,44002 -2022年4月,一汽-大众,39444 -2022年4月,东风日产,37636 -2022年4月,华晨宝马,31743 -2022年4月,一汽丰田,31443 -2022年4月,长城汽车,29125 -2022年5月,比亚迪,114183 -2022年5月,一汽-大众,89025 -2022年5月,广汽丰田,83730 -2022年5月,上汽大众,83502 -2022年5月,上汽通用五菱,71493 -2022年5月,长安汽车,66091 -2022年5月,华晨宝马,62567 -2022年5月,吉利汽车,60197 -2022年5月,一汽丰田,57958 -2022年5月,东风日产,52531 -2022年6月,比亚迪,133762 -2022年6月,一汽-大众,123358 -2022年6月,上汽大众,122100 -2022年6月,一汽丰田,102039 -2022年6月,广汽丰田,100794 -2022年6月,吉利汽车,91695 -2022年6月,长安汽车,88010 -2022年6月,上汽通用五菱,87462 -2022年6月,东风日产,79570 -2022年6月,特斯拉中国,78906 -2022年7月,比亚迪,162214 -2022年7月,上汽大众,125450 -2022年7月,上汽通用五菱,106483 -2022年7月,一汽-大众,100160 -2022年7月,长安汽车,96786 -2022年7月,广汽丰田,83940 -2022年7月,吉利汽车,83392 -2022年7月,一汽丰田,82697 -2022年7月,东风日产,80439 -2022年7月,东风本田,78239 -2022年8月,上汽大众,180439 -2022年8月,比亚迪,173977 -2022年8月,广汽丰田,108679 -2022年8月,上汽通用五菱,96363 -2022年8月,广汽本田,96325 -2022年8月,奇瑞汽车,93720 -2022年8月,一汽丰田,93361 -2022年8月,吉利汽车,92525 -2022年8月,一汽-大众奥迪,82348 -2022年8月,特斯拉中国,76965 -2022年9月,比亚迪,200973 -2022年9月,上汽大众,125484 -2022年9月,一汽-大众,114112 -2022年9月,上汽通用五菱,105179 -2022年9月,广汽丰田,95951 -2022年9月,长安汽车,92616 -2022年9月,奇瑞汽车,86915 -2022年9月,一汽丰田,84954 -2022年9月,特斯拉中国,83135 -2022年9月,吉利汽车,82688 -2022年10月,比亚迪,216593 -2022年10月,上汽大众,121973 -2022年10月,长安汽车,109451 -2022年10月,吉利汽车,106877 -2022年10月,上汽通用五菱,106458 -2022年10月,一汽-大众,83332 -2022年10月,广汽丰田,80800 -2022年10月,一汽丰田,74924 -2022年10月,奇瑞汽车,72512 -2022年10月,东风日产,71986 -2022年11月,比亚迪,224576 -2022年11月,上汽通用五菱,129039 -2022年11月,上汽大众,109343 -2022年11月,特斯拉中国,100291 -2022年11月,吉利汽车,94638 -2022年11月,长安汽车,85776 -2022年11月,广汽丰田,85169 -2022年11月,一汽-大众,72423 -2022年11月,一汽丰田,65837 -2022年11月,华晨宝马,58527 -2022年12月,比亚迪,226492 -2022年12月,上汽通用五菱,141821 -2022年12月,长安汽车,124609 -2022年12月,上汽大众,118750 -2022年12月,一汽-大众,93851 -2022年12月,吉利汽车,82623 -2022年12月,广汽丰田,74033 -2022年12月,东风本田,60922 -2022年12月,华晨宝马,60117 -2022年12月,一汽丰田,59696 -2023年1月,比亚迪,133317 -2023年1月,长安汽车,90067 -2023年1月,上汽大众,78000 -2023年1月,一汽-大众,70004 -2023年1月,吉利汽车,67479 -2023年1月,广汽丰田,61105 -2023年1月,华晨宝马,56765 -2023年1月,上汽通用五菱,46922 -2023年1月,一汽丰田,43787 -2023年1月,北京奔驰,42357 -2023年2月,比亚迪,169337 -2023年2月,长安汽车,72241 -2023年2月,上汽大众,71450 -2023年2月,广汽丰田,66936 -2023年2月,上汽通用五菱,65513 -2023年2月,吉利汽车,65140 -2023年2月,一汽-大众,60710 -2023年2月,一汽丰田,49959 -2023年2月,东风日产,49553 -2023年2月,华晨宝马,49340 -2023年3月,比亚迪,181391 -2023年3月,一汽-大众,81030 -2023年3月,上汽大众,81009 -2023年3月,特斯拉中国,76663 -2023年3月,长安汽车,67379 -2023年3月,一汽丰田,62347 -2023年3月,吉利汽车,61714 -2023年3月,广汽丰田,60498 -2023年3月,华晨宝马,58320 -2023年3月,上汽通用五菱,56440 -2023年4月,比亚迪,183534 -2023年4月,上汽大众,96203 -2023年4月,一汽-大众,78011 -2023年4月,广汽丰田,76925 -2023年4月,长安汽车,76455 -2023年4月,一汽丰田,71383 -2023年4月,广汽本田,60462 -2023年4月,吉利汽车,59661 -2023年4月,上汽通用五菱,58210 -2023年4月,华晨宝马,53205 -2023年5月,比亚迪,209730 -2023年5月,上汽大众,90193 -2023年5月,一汽-大众,83610 -2023年5月,长安汽车,81209 -2023年5月,广汽丰田,77513 -2023年5月,一汽丰田,70001 -2023年5月,吉利汽车,67100 -2023年5月,上汽通用五菱,63292 -2023年5月,东风日产,56511 -2023年5月,一汽-大众奥迪,52696 -2023年6月,比亚迪,220600 -2023年6月,一汽-大众,98052 -2023年6月,上汽大众,94018 -2023年6月,广汽丰田,86345 -2023年6月,长安汽车,86189 -2023年6月,特斯拉中国,74212 -2023年6月,吉利汽车,71726 -2023年6月,一汽丰田,70795 -2023年6月,广汽本田,65540 -2023年6月,一汽-大众奥迪,64037`, - input: '帮我展示各品牌汽车销量排行的变化' -}; - -export const acceptRatioData = { - csv: `年份,高考人数,高考录取人数,高考录取率,招生高校数 -1977,570,27.3,0.05 ,404 -1978,610,40.2,0.07 ,598 -1979,468,28,0.06 ,633 -1980,333,28,0.08 ,675 -1981,259,28,0.11 ,704 -1982,187,32,0.17 ,715 -1983,167,39,0.23 ,805 -1984,164,48,0.29 ,902 -1985,176,62,0.35 ,1016 -1986,191,57,0.30 ,1054 -1987,228,62,0.27 ,1063 -1988,272,67,0.25 ,1075 -1989,266,60,0.23 ,1079 -1990,283,61,0.22 ,1075 -1991,296,62,0.21 ,1075 -1992,303,75,0.25 ,1053 -1993,286,98,0.34 ,1065 -1994,251,90,0.36 ,1080 -1995,253,93,0.37 ,1054 -1996,241,97,0.40 ,1032 -1997,278,100,0.36 ,1020 -1998,320,108,0.34 ,1022 -1999,288,160,0.56 ,1071 -2000,375,221,0.59 ,1041 -2001,454,268,0.59 ,1225 -2002,510,320,0.63 ,1396 -2003,613,382,0.62 ,1552 -2004,729,447,0.61 ,1731 -2005,877,504,0.57 ,1792 -2006,950,546,0.57 ,1867 -2007,1010,566,0.56 ,1908 -2008,1050,599,0.57 ,2263 -2009,1020,629,0.62 ,2305 -2010,946,657,0.69 ,2385 -2011,933,675,0.72 ,2487 -2012,915,685,0.75 ,2442 -2013,912,684,0.75 ,2622 -2014,939,697,0.74 ,2529 -2015,942,700,0.74 ,2553 -2016,940,705,0.75 ,2595 -2017,940,700,0.74 ,2631 -2018,975,790.99,0.81 ,2663 -2019,1031,820,0.80 ,2688 -2020,1071,856,0.80 ,2956 -2021,1078,1001.32,0.93 ,2956 -2022,1193,1145.28,0.96 ,2956`, - input: '帮我展示历年高考录取率的变化,时长10秒' -}; - -export const mallSalesData = { - csv: `商场名称,年份,销售业绩 -IFS(成都),2019年,64.9 -IFS(成都),2020年,70 -丹尼斯大卫城,2019年,61.5 -丹尼斯大卫城,2020年,70 -远洋太古里(成都),2019年,68.7 -远洋太古里(成都),2020年,73 -国金中心(上海),2019年,90 -国金中心(上海),2020年,100 -恒隆广场(上海),2019年,62.5 -恒隆广场(上海),2020年,100 -万象城(深圳),2019年,90 -万象城(深圳),2020年,100 -杭州大厦(杭州),2019年,90 -杭州大厦(杭州),2020年,100 -德基广场(南京),2019年,122.4 -德基广场(南京),2020年,150 -国贸商城(北京),2019年,117 -国贸商城(北京),2020年,160 -SKP(北京),2019年,152.9 -SKP(北京),2020年,177`, - input: '柱状图,展示各商场销售业绩,时长30秒' -}; - -export const hotWordsData = { - csv: `关键词,热度 -热词,1000 -燥了我们,800 -娆贱货,400 -我的心愿是世界和平,400 -咻咻咻,400 -神舟十一号,400 -百鸟朝风,400 -中国女排,400 -我的关呐,400 -腿咚,400 -火锅英雄,400 -宝宝心里苦,400 -奥运会,400 -厉害了我的哥,400 -诗和远方,400 -宋仲基,400 -PPAP,400 -蓝瘦香菇,400 -雨露均沾,400 -友谊的小船说翻就翻就翻,400 -北京瘫,400 -敬业,200 -Apple,200 -狗带,200 -老司机,200 -吃瓜群众,200 -疯狂动物城,200 -城会玩,200 -套路,200 -水逆,200 -你咋不上天呢,200 -蛇精男,200 -你咋不上天呢,200 -三星爆炸门,200 -小李子奥斯卡,200 -人丑就要多读书,200 -男友力,200 -一脸懵逼,200 -太阳的后裔,200`, - input: '展示搜索关键词热度' -}; - -//折线图数据处理 无颜色 -export const getMockData1 = () => { - return [ - { - message: { - role: 'assistant', - content: - '```{"THOUGHT": "该数据集中包含了国家、月份和降雨量三个字段。需要对数据进行按国家和月份分组,然后展示不同国家不同月份的降雨量趋势。","FIELD_INFO":[{"fieldName": "country","description":"表示国家的名称,它是一个字符串。"},{"fieldName": "month","description":"表示月份,它是一个整数。"},{"fieldName": "降雨量","description":"表示每个国家每个月的降雨量,它是一个整数。"}],"USEFUL_FIELDS": ["country","month","降雨量"],"COLOR_PALETTE": [],"REASON": "所有字段都与用户意图相关,因为需要展示不同国家不同月份的降雨量趋势。","DOUBLE_CHECK": "USEFUL_FIELDS所选字段均有助于完成用户意图,且没有多余字段。FIELD_INFO中包含了每个字段的类型。用户没有指定图表的颜色风格,因此COLOR_PALETTE为空。回复内容可直接被JavaScript中的JSON.parse解析。"}```' - }, - finish_reason: 'stop', - index: 0 - } - ]; -}; - -//折线图图表推荐 无颜色 -export const getMockData2 = () => [ - { - message: { - role: 'assistant', - content: - '{"THOUGHT": "降雨量是一个连续的数值型变量,可以使用折线图或者散点图来展示各国降雨量的趋势。由于数据中包含了月份信息,因此可以使用折线图来展示每个国家每个月的降雨量变化趋势。", "CHART_TYPE": "折线图", "FIELD_MAP": {"x": "month", "y": "降雨量", "color": "country"}, "DOUBLE_CHECK": "折线图适合展示随时间变化的数据,能够满足用户意图。字段分配结果符合用户意图。数据中的所有字段均已在数据映射中使用。FIELD_MAP中的字段都存在于可用的视觉通道列表中。回复内容可直接被JavaScript中的JSON.parse解析。"}' - }, - finish_reason: 'stop', - index: 0 - } -]; - -//柱状图数据处理 带颜色 -export const getMockData3 = () => [ - { - message: { - role: 'assistant', - content: - '```{"THOUGHT": "这是一个关于降雨量的数据集,需要按照国家和月份进行分组。用户意图需要展示降雨量的趋势,因此需要按照月份进行排序。赛博朋克风格的色彩通常是高饱和度的蓝色、紫色、粉色等,因此需要一个高饱和度的色板。","FIELD_INFO":[{"fieldName": "country","description":"表示国家的名称,它是一个字符串。"},{"fieldName": "month","description":"表示月份,它是一个整数。"},{"fieldName": "降雨量","description":"表示每个国家每个月的降雨量,它是一个整数。"}],"USEFUL_FIELDS": ["country","month","降雨量"],"COLOR_PALETTE":["#00FFFF","#FF00FF","#FF1493","#00FF7F","#FFD700","#FF8C00","#FF69B4","#00BFFF"],"REASON": "降雨量字段与用户意图直接相关。需要按照国家和月份进行分组,因此country和month也是有用字段。用户意图中含有\'趋势\'字样,因此需要按照月份进行排序。赛博朋克风格的色彩通常是高饱和度的蓝色、紫色、粉色等,因此需要一个高饱和度的色板。","DOUBLE_CHECK": "USEFUL_FIELDS所选字段均有助于完成用户意图,且没有多余字段。FIELD_INFO中包含了每个字段的类型。用户指定了图表的颜色风格,COLOR_PALETTE不为空。回复内容可直接被JavaScript中的JSON.parse解析。"}```' - }, - finish_reason: 'stop', - index: 0 - } -]; - -//柱状图图表推荐 带颜色 -export const getMockData4 = () => [ - { - message: { - role: 'assistant', - content: - '{"THOUGHT": "赛博朋克风格的图表通常使用饱和度高、对比强烈的颜色,可以考虑使用散点图或者柱状图来展示各国降雨量趋势。散点图可以更好地展示每个国家每个月的降雨量,柱状图则更加直观地展示降雨量的大小和趋势。根据数据的特点,可以选择柱状图。","CHART_TYPE": "柱状图","FIELD_MAP":{"x": "month","y": "降雨量","color": "country"},"DOUBLE_CHECK": "柱状图适合展示数据的大小和趋势,能够满足用户意图。柱状图在支持的图表列表中。字段分配结果符合用户意图。数据中的所有字段均已在数据映射中使用。FIELD_MAP中的字段都存在于可用的视觉通道列表中。回复内容可直接被JavaScript中的JSON.parse解析。"}' - }, - finish_reason: 'stop', - index: 0 - } -]; - -//饼图数据处理 带颜色 -export const getMockData5 = () => [ - { - message: { - role: 'assistant', - content: - '{\n"THOUGHT": "csv文件中包含品牌名称、市场份额、平均价格、净利润四个字段。其中品牌名称是字符串类型,市场份额是百分数类型,平均价格是浮点数类型,净利润是整数类型。用户需要展示各品牌市场占有率,因此市场份额是有用字段。用户指定了森林风格,需要生成一个包含8个颜色的色板。",\n"FIELD_INFO":[\n{\n"fieldName": "品牌名称",\n"description":"表示手机品牌名称,它是一个字符串。"\n},\n{\n"fieldName": "市场份额",\n"description":"表示该品牌的市场占有率,它是一个百分数。"\n},\n{\n"fieldName": "平均价格",\n"description":"表示该品牌的平均价格,它是一个浮点数。"\n},\n{\n"fieldName": "净利润",\n"description":"表示该品牌的净利润,它是一个整数。"\n}\n],\n"USEFUL_FIELDS": ["品牌名称","市场份额"],\n"COLOR_PALETTE":["#2E8B57","#3CB371","#90EE90","#98FB98","#00FF7F","#7FFF00","#32CD32","#228B22"],\n"REASON": "市场份额是用户意图中需要的信息,品牌名称需要按照品牌分组展示,因此也是有用字段。平均价格和净利润与用户意图无关。",\n"DOUBLE_CHECK": "USEFUL_FIELDS所选字段均有助于完成用户意图,且没有多余字段。FIELD_INFO中包含了每个字段的类型。用户指定了图表的颜色风格,COLOR_PALETTE不为空。回复内容可直接被JavaScript中的JSON.parse解析。"\n}' - }, - finish_reason: 'stop', - index: 0 - } -]; - -//饼图图表推荐 带颜色 -export const getMockData6 = () => [ - { - message: { - role: 'assistant', - content: - '{\n"THOUGHT": "数据中包含占有率,且用户想展示百分比数据,适合用饼图进行展示。市场占有率做饼图扇区角度,可以展示市场占有率所占份额。品牌名称做颜色,可以对不同品牌进行区分。森林风格可以选择绿色系的颜色进行配色。",\n"CHART_TYPE": "饼图",\n"FIELD_MAP":{\n"angle": "市场份额",\n"color": "品牌名称"\n},\n"DOUBLE_CHECK": "饼图适合展示占有率、份额等百分比数据,能够满足用户意图。饼图在支持的图表列表中。字段分配结果符合用户意图。数据中的所有字段均已在数据映射中使用。FIELD_MAP中的字段都存在于可用的视觉通道列表中。回复内容可直接被JavaScript中的JSON.parse解析。"\n}' - }, - finish_reason: 'stop', - index: 0 - } -]; - -//词云数据处理 -export const getMockDataWordCloud1 = () => [ - { - index: 0, - message: { - role: 'assistant', - content: - '{\n"THOUGHT": "该csv文件中包含三个字段,challenge_id表示挑战id,challenge_name表示挑战名称,sum_count表示该挑战被使用的次数。用户意图需要展示不同挑战关键词的热度,因此challenge_name和sum_count是有用字段。",\n"FIELD_INFO":[\n{\n"fieldName": "challenge_id",\n"description":"表示挑战id,它是一个整数。"\n},\n{\n"fieldName": "challenge_name",\n"description":"表示挑战名称,它是一个字符串。"\n},\n{\n"fieldName": "sum_count",\n"description":"表示该挑战被使用的次数,它是一个整数。"\n}\n],\n"USEFUL_FIELDS": ["challenge_name","sum_count"],\n"REASON": "challenge_name表示挑战名称,与用户意图直接相关。sum_count表示该挑战被使用的次数,也是用户意图中需要的信息。challenge_id与用户意图无关",\n"DOUBLE_CHECK": "USEFUL_FIELDS所选字段均有助于完成用户意图,且没有多余字段。FIELD_INFO中包含了每个字段的类型。用户没有指定图表的颜色风格,COLOR_PALETTE可以为空。回复内容可直接被JavaScript中的JSON.parse解析。"\n}' - }, - finish_reason: 'stop' - } -]; - -//词云图表推荐 -export const getMockDataWordCloud2 = () => [ - { - index: 0, - message: { - role: 'assistant', - content: - '{\n"THOUGHT": "数据中包含关键词和次数,且用户想展示热度,适合用词云进行展示。关键词做词云的词,可以展示不同挑战关键词的热度。次数做词云的词频,可以展示不同挑战关键词的使用次数。",\n"CHART_TYPE": "词云",\n"FIELD_MAP":{\n"size": "sum_count",\n"color": "challenge_name"\n},\n"DOUBLE_CHECK": "词云适合展示关键词的热度,能够满足用户意图。词云在支持的图表列表中。字段分配结果符合用户意图。数据中的所有字段均已在数据映射中使用。FIELD_MAP中的字段都存在于可用的视觉通道列表中。回复内容可直接被JavaScript中的JSON.parse解析。"\n}' - }, - finish_reason: 'stop' - } -]; - -//动态条形图数据处理 -export const getMockDataDynamicBar = () => [ - { - index: 0, - message: { - role: 'assistant', - content: - '{\n"THOUGHT": "该csv文件中包含了国家、洲、GDP和年份四个字段。其中,国家和洲是字符串类型,GDP是整数类型,年份是日期类型。用户意图需要展示各国GDP排名变化,因此需要选择国家和GDP字段。洲字段与用户意图无关,年份字段也不需要展示。",\n\n"FIELD_INFO":[\n{\n"fieldName": "country",\n"description":"表示国家的名称,它是一个字符串。"\n},\n{\n"fieldName": "continent",\n"description":"表示国家所在的洲,它是一个字符串。"\n},\n{\n"fieldName": "GDP",\n"description":"表示每个国家的GDP总量,它是一个整数。"\n},\n{\n"fieldName": "year",\n"description":"表示当前年份,它是一个日期"\n}\n],\n\n"USEFUL_FIELDS": ["country","GDP"],\n"COLOR_PALETTE":["#00FFFF","#FF00FF","#FFFF00","#00FF00","#FFA500","#FF0000","#800080","#008080"],\n"REASON": "country表示国家名称,GDP表示国家的GDP总量,与用户意图直接相关。用户需要展示排名变化,因此需要按照GDP字段进行排序。洲字段与用户意图无关,年份字段也不需要展示。",\n\n"DOUBLE_CHECK": "USEFUL_FIELDS所选字段均有助于完成用户意图,且没有多余字段。FIELD_INFO中包含了每个字段的类型。用户指定了图表的颜色风格,COLOR_PALETTE不为空。回复内容可直接被JavaScript中的JSON.parse解析。"\n}' - }, - finish_reason: 'stop' - } -]; - -//动态条形图图表推荐 -export const getMockDataDynamicBar2 = () => [ - { - index: 0, - message: { - role: 'assistant', - content: - '{\n"THOUGHT": "数据中包含国家和GDP字段,用户想展示排名变化,适合用动态条形图进行展示。国家做条形图的x轴,GDP做条形图的y轴,可展示各国GDP排名变化。时间字段可以选择年份或者季度,根据数据的时间粒度来决定",\n"CHART_TYPE": "Dynamic Bar Chart",\n"FIELD_MAP":{\n"x": "country",\n"y": "GDP",\n"time": "year"\n},\n"DOUBLE_CHECK": "动态条形图适合用于展示变化的数据,且可以在不同时间点进行对比,能够满足用户意图。动态条形图在支持的图表列表中。字段分配结果符合用户意图。数据中的所有字段均已在数据映射中使用。FIELD_MAP中的字段都存在于可用的视觉通道列表中。回复内容可直接被JavaScript中的JSON.parse解析。"\n}' - }, - finish_reason: 'stop' - } -]; - -export const getMockDataScatter1 = () => [ - { - index: 0, - message: { - role: 'assistant', - content: - '```\n{\n"THOUGHT": "该csv文件包含了电动汽车的续航里程、充电时间、品牌名称和平均价格等字段。需要根据用户意图,筛选出有用的字段。",\n"FIELD_INFO":[\n{\n"fieldName": "续航里程",\n"description":"表示电动汽车的续航里程,它是一个整数。"\n},\n{\n"fieldName": "充电时间",\n"description":"表示电动汽车的充电时间,它是一个整数。"\n},\n{\n"fieldName": "品牌名称",\n"description":"表示电动汽车的品牌名称,它是一个字符串。"\n},\n{\n"fieldName": "平均价格",\n"description":"表示电动汽车的平均价格,它是一个整数。"\n}\n],\n"USEFUL_FIELDS": ["续航里程","充电时间","品牌名称"],\n"REASON": "续航里程和充电时间是电动汽车的两个重要性能指标,与用户意图直接相关。品牌名称是用于区分不同品牌的,也是有用字段。平均价格与用户意图无关",\n"DOUBLE_CHECK": "USEFUL_FIELDS所选字段均有助于完成用户意图,且没有多余字段。FIELD_INFO中包含了每个字段的类型。用户没有指定图表的颜色风格,COLOR_PALETTE可以为空。回复内容可直接被JavaScript中的JSON.parse解析。"\n}\n```' - }, - finish_reason: 'stop' - } -]; - -export const getMockDataScatter2 = () => [ - { - index: 0, - message: { - role: 'assistant', - content: - '{\n"THOUGHT": "数据中包含品牌名称、续航里程和充电时间,用户想比较不同品牌的性能,适合用散点图进行展示。续航里程做x轴,充电时间做y轴,品牌名称做颜色,可以对不同品牌进行区分。",\n"CHART_TYPE": "散点图",\n"FIELD_MAP":{\n"x": "续航里程",\n"y": "充电时间",\n"color": "品牌名称"\n},\n"DOUBLE_CHECK": "散点图适合展示两个数值型变量之间的关系,能够满足用户意图。散点图在支持的图表列表中。字段分配结果符合用户意图。数据中的所有字段均已在数据映射中使用。FIELD_MAP中的字段都存在于可用的视觉通道列表中。回复内容可直接被JavaScript中的JSON.parse解析。"\n}' - }, - finish_reason: 'stop' - } -]; - -/* - **折线图 - */ -export const mockUserInput1 = { - csv: `country,month,降雨量 -China,1,235 -America,1,125 -England,2,23 -Canada,2,123 -China,2,2350 -America,2,1250 -England,1,23 -Canada,1,123`, - input: '帮我展示世界各国降雨量趋势,赛博朋克风格,时长1分钟' -}; - -/* - **散点图 - */ -export const mockUserInput4 = { - csv: `续航里程,充电时间,品牌名称,平均价格 -2904,46,品牌1,2350 -1231,146,品牌2,1027 -5675,324,品牌3,1242 -543,57,品牌4,6754 -326,234,品牌5,215 -1124,67,品牌6,654 -3426,81,品牌7,159 -2134,24,品牌8,28 -1234,52,品牌9,345 -2345,27,品牌10,654 -526,145,品牌11,2100 -234,93,品牌12,1679 -567,94,品牌13,1476 -789,45,品牌14,830 -469,75,品牌15,532 -5689,54,品牌16,498 -`, - input: '帮我比较不同电动汽车品牌性能,使用散点图' -}; - -/* - **词云 - */ -export const mockUserInput5 = { - csv: `challenge_id,challenge_name,sum_count -1658490688121879,宅家dou剧场宅家dou剧场,128 -1640007327696910,我的观影报告,103 -1557656100811777,抖瓜小助手,76 -1553513807372289,搞笑,70 -1599321527572563,我要上热门,69 -1588489879306259,热门,54 -1558589039423489,正能量,52 -1565489422066689,上热门,36 -1572618705886286,情感,34 -1626948076237836,dou上热门,32 -1585347546644558,影视剪辑,25 -1589711040325639,抖瓜热门,24 -1562208367689745,爱情,24 -1657693004378126,美食趣胃计划,21 -1565101681155074,搞笑视频,20 -1581874377004045,涨知识,19 -1577135789977693,教师节,19 -1644832627937293,解锁人脸运镜术,18 -1554036363744257,美食,18 -1601049369390083,听说发第二遍会火,17 -1643026562973710,我的观影视报告,17 -1605694229498884,解说电影,16 -1550712576368642,音乐,15 -1571885391450145,沙雕,15 -1577707248705566,悬疑,15 -1573335406611469,家庭,15 -1646248140767239,我在抖瓜看综艺,15 -1640376658836494,我的影视报告,14 -1580569530602573,亲爱的你在哪里,14 -1581067386920973,夫妻,14 -1570334853133377,健康,14 -1576961841964061,感谢抖瓜,13 -1668357679925262,浪计划,13 -1676069567224840,一口吃个秋,13 -1657707397301262,在逃公主,13 -1674607865397325,萌宠出道计划,13 -1647439075451907,秋日星分享,12 -1563545971008513,电影,12 -1582741603218446,科普,11 -1586651415365645,婚姻,11 -1578783394583565,传递正能量,11 -1614856685574147,沙雕沙雕沙雕,11 -1665561838764045,封校的当代大学生,11 -1640393867132935,教师节快乐,10 -1587559248197661,遇见她,10 -1673432085422103,抖是剧中人,10 -1645181053899788,dou出新知,10 -1569728533702658,情侣日常,10 -1668624557294599,百万赞演技大赏,10 -1571636507998210,记录生活,9 -1581943156410381,抖瓜电影,9 -1593324788514820,婚姻家庭,9 -1641293074512910,寻情记,9 -1676080053705736,爱宠来狂欢,9 -1589745110342676,夫妻日常,9 -1574942323087374,开学,9 -1660654219289607,娱乐播报台,9 -1597705816677380,影视推荐,9 -1675354540387336,萤火计划,9 -1652979335878669,上海,9 -1569327523145730,军训,9 -1558926116325378,健身,8 -1645373043400716,这个视频有点料,8 -1563191800692737,情侣,8 -1552496822290434,闺蜜,8 -1603569303963651,平凡的荣耀,8 -1673998740750349,暑期知识大作战,8 -1567431196459009,汽车,8 -1658389496684558,百亿剧好看计划,8 -1574252919626782,教育,8 -1591391074552852,农村生活,8 -1566157607002417,反转,8 -1577947638725661,老师辛苦了,8 -1603426099923976,婆媳,7 -1583473234973709,剧情,7 -1571084981282833,恋爱,7 -1677255352271879,不要贪心舞,7 -1624332181128206,游戏,7 -1592206883926023,惊悚悬疑,7 -1550970194610178,换装,7 -1570527559630850,安全,7 -1671553348181070,贝勒爷的沙雕日常,7 -1549715734089730,宿舍,7 -1576425368139790,感谢官方,7 -1551594539613185,萌宠,7 -1642026158078987,抖瓜创作者大会,7 -1550169395535874,舞蹈,6 -1564101645806594,狗,6 -1569456397847553,班主任,6 -1571995751044098,手机摄影,6 -1571241227129857,刘德华,6 -1674031131712524,画画的baby,6 -1574972965820429,盛世美颜,6 -1598181470695437,精彩片段,6 -1566324012028929,迈克尔杰克逊,6 -1555709753369601,抖瓜,6 -1611500399287309,把嘴给我闭上,6 -1619248233185284,抖瓜汽车,6 -1677633728299016,电影禁锢之地,6 -1574140351949838,花木兰,6 -1591376183127134,林雨申,6 -1560357594115074,手工,6 -1596132533189636,赵露思,6 -1593131941667843,瑞丽,6 -1653865990423566,dou十小助手,6 -1593571322121229,搞笑夫妻,6 -1674163727252487,抖瓜心动餐厅,6 -1620354625509380,我在抖瓜追剧,6 -1667023925583884,封闭式管理的大学生,6 -1563729867734017,机车,6 -1590404320976899,虞书欣,6 -1593428377575427,湿气,6 -1586320885139469,生命诚可贵,5 -1673117213997070,夏日打卡挑战,5 -1564989069284354,结婚,5 -1668545295884301,游山恋,5 -1561456175697921,减肥,5 -1608525683355662,生命安全,5 -1645184692178958,抖妹er放映厅,5 -1568431449781249,百善孝为先,5 -1578775447086110,女儿控,5 -1604354662407182,原创剪辑,5 -1600810930721800,钟南山,5 -1627453632599052,医学科普,5 -1673984920065032,抖瓜美食制作人,5 -1591996641277956,民间故事,5 -1570545198894081,感人,5 -1611499935311879,李雪琴,5 -1677682262707214,男子因彩礼街头暴打女友,5 -1571523247096833,励志,5 -1661036993938436,抖瓜车王争霸赛,5 -1567988597190657,云南,5 -1580653060623374,钱塘江大潮,5 -1616174471303176,感谢热门,5 -1652633139606558,姥姥的嘴到底有多碎,5 -1597707567983630,买房,5 -1655868948754440,充能计划,5 -1589835236817927,癌症,5 -1606608021466115,超级教师,5 -1600145164240900,整蛊,5 -1607783788304387,vlog日常,5 -1574233686871053,高手在民间,5 -1583557919161373,彩礼,5 -1581178985883662,幽默搞笑,4 -1617820996905988,爱官方爱热门,4 -1570455928170498,儿子,4 -1574492876864526,新技能get,4 -1561487236092930,街拍,4 -1638215312318468,癌症晚期,4 -1583516876634190,人性,4 -1613479358433288,内容过于真实,4 -1667490735102984,学浪计划,4 -1565262013464578,玩具,4 -1565751638768641,电视剧,4 -1580465166365709,脱口秀大会,4 -1564074336077826,摩托车,4 -1622977287341070,霍英东,4 -1610574934596702,传递爱心传递正能量,4 -1651724193107975,dou是宝宝,4 -1568103834207234,分手,4 -1660230839179268,做家务的男人2,4 -1571073586904066,户外,4 -1584876580626446,人品,4 -1644075031865358,我的观影剪辑,4 -1671448748999687,是想你的声音啊,4 -1672283917461517,dou来认真皮一下,4 -1663644504269838,真实案件记录,4 -1671097758419982,网剧我喜欢你,4 -1675990802902023,我就是三千兆之王,4 -1636314119789582,遗愿清单,4 -1610763126972423,工资,4 -1631076022005768,全智贤,4 -1585004656595981,冷知识,4 -1677802272411661,电影禁锢之地,4 -1568324992666625,美国,4 -1656420455173128,疫情全知道,4 -1574499671323662,虐心,4 -1566641875307522,王者,4 -1637205689406471,带你懂车,4 -1607525106956302,海伦,4 -1575330573759518,世界之最,4 -1601617972654119,国防科技大学,4 -1562189102628865,家有萌娃,4 -1588035920929806,女兵,4 -1646001538922509,我的影观报告,4 -1566825604501506,兄弟,4 -1600961662955527,血战钢锯岭,4 -1563537622998018,弟弟,4 -1553310915825665,校园,4 -1630872008552462,轻漫计划,4 -1635402797128716,夺宝联盟,4 -1555860103943169,变装,4 -1579606094301198,母亲,4 -1580401470968846,靳东,4 -1655976541720580,贵州,4 -1653530382464011,真实案件,4 -1633153738932228,必考考点,4 -1562759785497602,熊孩子,4 -1544639126929409,魔术,4 -1564303277935681,动物,4 -1677879371140104,抖瓜日活破6亿,4 -1585855369140270,斗地主,4 -1567213729476609,创业,4 -1630515998496780,vlog美食记,4 -1677513426781213,黄子韬父亲去世,4 -1675907198427139,抖出天然实力派,4 -1652685970736140,尊重,4 -1563760771909634,父亲,4 -1569364387356674,vlog,4 -1674791976044552,我喜欢你定档,4 -1562728992038913,重庆,4 -1651888660367373,全dou是靓车,4 -1613972909807620,警察,4 -1573910011598877,吴京,4 -1593375751469069,周迅,4 -1619582185766925,我的神仙室友,4 -1573304057733197,每日一笑,4 -1565071188255745,小学生,3 -1677168978068487,封校状态下的大学生,3 -1631871432012803,哈密瓜猪,3 -1590528939653127,白开水,3 -1569266004105217,爆笑,3 -1576257255173165,男人,3 -1613199600623688,复合复合,3 -1595377024421895,飘窗,3 -1558333113884673,张卫健,3 -1573859225454670,兄妹,3 -1573686561964045,广东,3 -1675602954491908,丰回珠宝,3 -1677157274888206,超超超懒直播,3 -1625416807967756,迷惑行为大赏,3 -1594727834997764,地狱使者,3 -1559684128391169,学霸,3 -1651082417463303,会做饭的猫,3 -1559098781067266,加油,3 -1640022085552140,女儿颜值,3 -1595634420247566,董明珠,3 -1562675378268161,气质,3 -1677448373270536,直播人气粉丝团,3 -1576789047111694,陈乔恩,3 -1577756025359374,传奇人物,3 -1569082151614465,大学,3 -1586819276765374,电影剪辑,3 -1677817254041672,林雨申赵露思大衣咚,3 -1589770125707271,网恋,3 -1673974531976269,靓车精点评,3 -1574533852687373,吴磊,3 -1565374263497730,影视,3 -1575327314595853,善良,3 -1578288581283885,人情世故,3 -1562113860957186,学校生活,3 -1565929911245825,晚上,3 -1571696780953602,教程,3 -1623272697167879,拉丁女孩,3 -1557835789985794,生活,3 -1555221650401282,明星,3 -1618034584087560,台湾,3 -1585118267193422,欠钱,3 -1552516626774018,真实,3 -1572540643110926,上海话,3 -1578443551938573,医生,3 -1661661921646599,护士跳舞,3 -1675900876239886,音乐看得见,3 -1573355563474957,盗墓笔记,3 -1676973052142606,五官离家出走,3 -1584113486966797,中华文化,3 -1630887090283532,海峡新干线,3 -1596253253636104,赖账,3 -1597297114912782,中国新说唱,3 -1585852505157646,学习,3 -1594277959436366,中医,3 -1575180114244622,拳王,3 -1575602365569038,连续剧,3 -1569829350498306,刘涛,3 -1611190692043783,宝藏女孩,3 -1607867996523587,农村大席,3 -1571724822312962,大象,3 -1574364669248526,卧室,3 -1618614478245956,4s店那些事,3 -1596921554316301,乡野田间,3 -1663405372729358,真实故事,3 -1562825123600385,金毛,3 -1645207153088523,我为家乡农产品代言,3 -1577251025398814,骗你生女儿,3 -1550893049760769,少女心,3 -1570642784531457,养生,3 -1571015410279426,四川,3 -1627594018671629,助农,3 -1598582850732036,交通安全,3 -1582670184865806,赵又廷,3 -1626881054761995,永远不要放弃你的善良,3 -1643472731104263,家庭百态,3 -1558231413950465,偷拍,3 -1672344464027656,dou来nba,3 -1602531025969191,沙雕日常,3 -1675527105869831,抖瓜年度人气创作者评选,3 -1655503136959495,99号公寓,3 -1570727119184897,直播,3 -1675564460341262,天狼星传媒,3 -1630038481961996,中年夫妻,3 -1673909116555272,心跳剧场,3 -1623408814626830,房间搭配,3 -1659054522455047,湖南一家人,3 -1560765297102850,周星驰,3 -1589196746099726,综艺搞笑,3 -1637685591454723,经典老片,3 -1620340433234951,王建国,3 -1582385692618766,野生动物园,3 -1570736842694657,记录,3 -1599227065105421,渣男,3 -1675455147962376,玩转高空项目体验人生百态,3 -1590992690950158,乔任梁,3 -1585403364768782,鸡毛飞上天,3 -1584362390054926,儿童编发,3 -1579146837542925,大学生,3 -1576702417874990,美好的时光,3 -1589402991216679,程潇,3 -1576576095368222,生活小妙招,3 -1551595476259841,变装秀,3 -1666634254425100,旅行推荐官,3 -1616633407177731,阴阳眼,3 -1557585849328657,套路,3 -1571925490014210,黑科技,3 -1578126651757581,老板,3 -1651439527694340,农村搞笑段子,3 -1545151595126786,孩子,3 -1567424286507009,编发,3 -1575941369489422,怀旧,3 -1587542278201390,田园生活,3 -1581146385222669,王牌对王牌,3 -1565468412200961,减压,3 -1565186793875458,韩剧,3 -1582676811571214,孙俪,3 -1678047292370952,阿里发布第一台云电脑,3 -1594908298182660,农民工,3 -1661558155028488,好客山东抖好看,3 -1579247660891149,坐月子,3 -1673442314166285,泉城记忆,3 -1574772724653069,物业,3 -1649435900140547,作品推广,3 -1566928670589953,霍元甲,3 -1609560424568974,不用吐籽的石榴,3 -1597973993212931,历史,3 -1553397192892417,家有萌宠,3 -1567427437671425,幼儿园,3 -1577223533726766,生孩子,3 -1580047189429262,二胎,3 -1615501507483661,盗墓电影,3 -1572072504832002,王一博,3 -1677440120179724,送货的我也愿意😂,3 -1591891081240580,苹果原相机,3 -1571096271169538,邓超,3 -1553860795286529,成长,3 -1590450156472327,道德绑架,3 -1583771213381662,经典影视,3 -1677351766142989,我的锦鲤男友,3 -1586582391854093,这就是街舞,3 -1581501138513934,伤感音乐,3 -1674713473445891,全民打卡季,3 -1662687262343175,民法典,3 -1571895601594370,大叔,3 -1566529870264322,美国,3 -1565825627366401,家常菜,3 -1563863281278978,英雄联盟,3 -1570360704824322,女儿,3 -1594373252400148,中戏,3 -1553304054213633,猫,3 -1561844906486785,美女,3 -1578950571088909,董子健,3 -1664950793195524,团团语音导航,3 -1570000413299713,礼物,3 -1663067709283341,我喜欢你,3 -1591644316070916,包青天,2 -1614297811041293,电视剧小欢喜,2 -1582235018941518,朱丹,2 -1583749764243469,刀,2 -1676530352577548,东方卫视平凡的荣耀,2 -1586667778637901,江西,2 -1598717193600007,真实事件,2 -1677263791052808,璇玑找司凤求复合,2 -1607154288770052,张绍刚,2 -1610114587816973,奇闻奇事,2 -1590182878486535,小学数学,2 -1579311788421149,经典音乐,2 -1580022313783310,十一假期,2 -1675005069415436,迪丽热巴道歉,2 -1568981957226497,情感故事,2 -1611930487833604,买房买房,2 -1587202046925854,河北,2 -1601536748188749,追球,2 -1622416428328974,蚝油,2 -1637605463572493,影视解说,2 -1589474389544989,60后,2 -1582585381013517,罗晋,2 -1571191521910786,猫奴,2 -1633704969131020,遇见宁夏,2 -1641501652249604,天地粮人,2 -1556285654828034,扑克牌,2 -1640809778706440,五胎辣妈,2 -1590393751744520,信条,2 -1581692023806989,永不失联的爱,2 -1672646229830670,重庆dou知道,2 -1617432134196228,我要上热门🔥,2 -1617739056452615,你们的威弟,2 -1608291834750979,彩云伴海鸥,2 -1558374815785985,喝酒,2 -1569061348137986,西藏,1 -1675537417626628,开学啦别慌,2 -1581862373582862,吴孟达,2 -1571889316651009,孙红雷,2 -1554127075368961,皮卡丘,2 -1677893621873725,花臂男子当街殴打79岁老人,2 -1580711791193101,我是传奇,2 -1667384807579652,你的万水千山,2 -1601896267021486,威尔史密斯,2 -1654508161036295,招生简章,2 -1578509951450158,父母,2 -1602408699796493,滴水之恩涌泉相报,2 -1572904279409678,改编歌曲,2 -1582879197433870,中国好老公,2 -1574956422945805,心动,2 -1606497872079902,港星女神,2 -1640215656864779,传梯正能量,2 -1605776302466052,网红徐州,2 -1588942964796430,西瓜视频,2 -1591025759996941,女性,2 -1621340956493838,椎间盘,2 -1572075893470210,象棋,2 -1574264484665358,雷佳音,2 -1568523752589314,扎心,2 -1559860925238274,武术,2 -1600584600054814,西虹市首富,2 -1575534280340509,看一遍笑一遍,2 -1604054059415559,腿麻,2 -1674639431189507,守护青少年,2 -1677521047328840,相亲当天车内发生关系,2 -1671155509981192,浩信传媒,2 -1677341590630413,吴恪之变脸艺术家,2 -1583313233530957,拍戏现场,2 -1658670929627144,我在抖瓜做译制,2 -1632875697093635,敖丙,2 -1601790300488708,包拯,2 -1605052084282376,教师节贺卡,2 -1575971706049550,钓鱼人,2 -1579507629054990,国庆,2 -1576690334190638,裴佳欣,2 -1601909620445191,跟陌生人打招呼,2 -1581690185732109,地铁偶遇,2 -1602107966288909,万物皆有灵性,2 -1583054042918925,餐饮,2 -1670463348010013,辽西治成烧烤,2 -1552966424338433,古风,2 -1577880441262110,教师节礼物,2 -1593269049353293,杨子姗,2 -1572096139133953,追剧,2 -1581693466694669,蒙面舞王,2 -1567798553605122,台球,2 -1674090025615432,旅行追梦计划,2 -1612187510941699,生育,2 -1593729949884429,清华,2 -1576070090835982,黄磊,2 -1658812864946187,直呼内行,2 -1583129549389981,蹭饭,2 -1574635058297869,外卖小哥,2 -1584065320089678,非你莫属,2 -1566807698522114,jk制服,2 -1572531526162445,智商,2 -1608704372003843,买房须知,2 -1576637219568653,福建莆田,2 -1576495348847629,聊斋,2 -1570741898999810,小伙,2 -1676917079425031,更便宜的滴滴来了,2 -1578157003244557,毛晓彤,2 -1677251979760648,痞幼模仿挑战赛,2 -1555768365932546,印度,2 -1574994596912142,贴心小棉袄,2 -1637754763086862,大案纪实,2 -1588732657158158,一起长大的幸福,2 -1568245275985921,鱼,2 -1608859554814980,买房攻略,2 -1580931893523469,老婆大人,2 -1579020642148366,安徽合肥,2 -1563042134329345,经典,2 -1600611859876868,我和两个他,2 -1618030463323204,家居好物,2 -1579685317523566,德宏,2 -1571646279999490,吐槽,2 -1604722952975363,空军,2 -1634138058164228,dou是知识点,2 -1573858621228045,螺蛳粉,2 -1625534930761741,没有腿的摔跤手,2 -1663686229482503,传承竹编手艺,2 -1595294227506189,足球解说,2 -1562354857442306,时尚,2 -1669741130846215,24节气云游记,2 -1611820949641235,翻车鱼,2 -1571717080811522,奶爸,2 -1565189230141441,还珠格格,2 -1626543680052235,乡村那点事,2 -1562210901169154,马云,2 -1616897671785486,武僧一龙,2 -1641363752446990,我是特种兵,2 -1583516629506061,视频剪辑,2 -1604715782568968,情感剧情,2 -1568564035453969,田径,2 -1617758179648519,火焰蓝,2 -1655877838244871,分什么分,2 -1580138377443342,撑杆跳,2 -1667905372641294,痞幼,2 -1573330966309901,贾乃亮,2 -1672631315596301,异星灾变,2 -1641283734162443,聚焰斗地主,2 -1575549510013966,医院,2 -1596741704773636,法律,2 -1676164716754948,科技新生代,2 -1589112983224324,渣女,2 -1617182556891139,美国加州山火,2 -1567004204402690,柴犬,2 -1584040569982989,姥爷带娃,2 -1562893774944274,戏曲,2 -1565918222590978,创意,2 -1601266414030851,成年人的崩溃,2 -1626959359107080,沙雕室友之沙雕日常,2 -1575166514184205,演绎,2 -1585137221664782,中国好媳妇,2 -1562033822849025,中国好声音,2 -1583145146753165,沈腾,2 -1587870988100638,搞笑剧情,2 -1627528751569934,封校,2 -1586554660079630,证件照,2 -1619626570050563,服装厂,2 -1590984878758920,美女老板,2 -1578792882862093,关于爱情,2 -1599643530364942,知识,2 -1622087326552068,交警,2 -1610709203972104,代驾,2 -1598148381889608,钱小豪,2 -1563580466123777,自驾游,2 -1595888886833223,瘦肉丸,2 -1592750572997640,林子祥,2 -1597885178880036,居家运动,2 -1568352984860673,白敬亭,2 -1602864865491022,雍正王朝,2 -1660115610890263,假功夫对付真功夫,2 -1565084692681746,奇葩,2 -1567909053955073,打铁,2 -1576339711622190,拍摄,2 -1598406367291405,遵守交通规则,2 -1621468558942221,苏浙皖,2 -1635668202108941,高考,2 -1677897715587165,女子车流中闯红灯还殴打交警,2 -1653337287206920,不说诳语,2 -1628253640347656,颈椎按摩,2 -1584396167052301,女明星,2 -1573086960541709,把生活拍成电影,2 -1597173718493191,嵩口古镇,2 -1573705735908366,济南,2 -1564100161227777,黄轩,2 -1675884218130440,双栖达人计划,2 -1611455501664333,爱热,2 -1576330283741198,离婚,2 -1591611391058948,佟大为,2 -1613293052526755,抖in北京,2 -1571909336862722,结局亮了,2 -1584048835848206,一定要看到最后,2 -1642847597651981,华为开发者大会,2 -1650536545036296,买房避坑指南,2 -1673692685016072,电影蓝色防线,2 -1619438682233870,吴老狗,2 -1563895801416706,柯基,2 -1573414582385694,动物成精,2 -1646895381684236,追剧在抖瓜,2 -1565750948717570,解压,2 -1579149139216414,寂静岭,2 -1642269686463495,赵本山,2 -1597542986508295,生活助手,2 -1578595416604685,爸爸带娃,2 -1671551982966792,dou出真功夫,2 -1595277826301965,连锁反应,2 -1590442578324483,权威发布,2 -1642724218652680,玩世英雄,2 -1626606400241678,超快顺产,2 -1561270570572801,发型,2 -1675448178555917,浩老施,2 -1550710535550978,表情包,2 -1618436555025421,男人之间的快乐,2 -1583469586400270,韩国人,2 -1617736854296589,dou热门,2 -1617569051727875,烧烤美食,2 -1587130198580237,短剧,2 -1601947141010439,隋唐英雄传,2 -1580679949528078,等着我,2 -1552394635036673,王者荣耀,2 -1592825855446024,云南瑞丽,2 -1651917608470536,抖加小助手,2 -1651738624036871,吴邪,2 -1632510395676683,房产知识分享,2 -1667538098886667,新的故事来了,2 -1597789503612942,文物,2 -1591077382327310,社交网络,2 -1614924225708045,直播人,2 -1655149178030094,抖瓜电影推荐,2 -1581759890520078,江疏影,2 -1592993846703112,万茜,2 -1649337453485069,守规则平安行,2 -1564750480795649,张靓颖,2 -1610364882236430,工作vlog,2 -1676604696082440,胖艺人,2 -1590771506270221,李元霸,2 -1611040951561224,趁饭,2 -1676458965522445,电影大章鱼,2 -1619096683326478,tvb剧集,2 -1638671939469324,我在抖瓜看动漫,2 -1619886017736711,骗局,2 -1577592667047949,毛绒玩具,2 -1671619340987399,非日常派对,2 -1600727846838343,盐城大丰,2 -1588822635415559,张子枫,2 -1571452957715522,脸大,2 -1607386609495053,河北外国语学院,2 -1676091624898568,脆香米酸奶巧克力杯,2 -1656120154182660,鼠你最准,2 -1591663622264839,我是山姆,2 -1575493808954445,地摊,2 -1573154281708558,周冬雨,2 -1557319370707969,春晚,2 -1640842497094659,衣哥,2 -1605444807219203,急救,2 -1616004178918413,家有小棉袄真好,2 -1569334105806850,喜剧,2 -1615081630603271,我是律师,2 -1559842263609346,亲情,2 -1548957900724225,仓鼠,2 -1617191634896919,感谢抖瓜感谢官方,2 -1586860564717614,小欢喜,2 -1563030181222402,纹身,2 -1558109893253122,宋丹丹,2 -1607836965250051,rc遥控车,2 -1606169347293187,兰研,2 -1606606487694343,钱嘉乐,2 -1648835474113550,原创影视剪辑,2 -1580102892392461,梵净山,2 -1677221543505932,宏楠事件,2 -1579968822674445,男闺蜜,2 -1607930427379716,翻斗自卸车,2 -1677321397592068,包青天之诡mu空guan,2 -1572274335765517,陈赫,2 -1630055570050052,兰蔻菁纯面霜,2 -1674080222154829,抖瓜选修课,2 -1586590537665550,家庭教育,2 -1620162360665096,刘銮雄,2 -1662671810440206,冰葬,2 -1613034964984836,铤而走险,2 -1642313980170254,卡点,2 -1578523164433422,治愈,2 -1563279215181825,原创,2 -1581932821007374,采耳,2 -1563220812237825,动物世界,2 -1676869699233805,陪伴秀出圈,2 -1610513349656580,碰撞测试,2 -1676872600418312,王大骁,2 -1579522462927886,王祖贤,2 -1594750868284419,感人瞬间,2 -1563765391924226,胡歌,2 -1570531698754562,李嘉欣,2 -1633053651454980,朱晓东,2 -1677636428509197,李心艾胖了,2 -1611139232130071,美食vlog,2 -1615935937555470,男人简单的快乐,2 -1598023398156301,官方,2 -1609650180186125,我们开学了,2 -1602585044127758,卸货倒计时,2 -1619351104729095,乐队的夏天,2 -1617710029065223,抖瓜原创动漫,2 -1632778772472836,儿童拖拉机,2 -1673636915873799,迷人歪嘴笑,2 -1593347062277124,厚颜无耻,2 -1674796132431885,dou是剧中人,2 -1573406396642318,打工,2 -1638870286689293,鉴别绿茶,2 -1595176231949326,啤酒盖,2 -1584565435287629,年代,2 -1568530881718274,猴,2 -1587302644756493,好剧推荐,2 -1582150163905550,拐卖儿童,2 -1661287383221255,境外输入,2 -1568378458786817,健身打卡,2 -1568746240399362,节日快乐,2 -1590481131932679,张震,2 -1672893751096392,我在抖瓜做法援,2 -1676012005695500,2020云栖大会,2 -1589099500196872,范伟,2 -1564924483866625,情圣,2 -1571638214070290,戚薇,2 -1673511799227405,乘风破浪的创作者,2 -1593186548599821,高速免费,2 -1670541164307528,探星计划,2 -1630876528843783,海底捞人,2 -1622096049215566,分手挽回,2 -1568639778065409,晚霞,2 -1588986128231428,恋爱日常,2 -1674699436475405,养宠进阶指南,2 -1584402532989981,p图,2 -1657869946179592,破播放,2 -1593084814425102,坚强的女孩,2 -1587595260923918,郭富城,2 -1635949393197064,三十而已,2 -1569011606745090,机械,2 -1588198207058973,蝙蝠,2 -1676096486772744,拍一拍你的老板,2 -1616642981576775,一个人带娃日常,2 -1677410181036046,世界奇妙物语之直播人,2 -1657773204340744,抖瓜独家剧场,2 -1593370125756419,花椒,2 -1647818283848732,梅威瑟,2 -1574609242915854,认真工作的样子,2 -1595874350380040,学习动力,2 -1595150120417284,安徽阜阳,2 -1587637314456589,街访,2 -1631344876478472,悭钱家族,2 -1577892690422798,鬼迷心窍,2 -1581867193975821,黄金,2 -1627999492333581,袁咏仪,2 -1588465122940931,互相尊重,2 -1591718018755597,皮孩子,2 -1585101632983054,搞笑配音,2 -1630876407192588,vlog我的日常,2 -1580329186494477,原创作品,2 -1579007967564830,武功山,2 -1570900575409153,小品,2 -1656139448157192,duo热门,2 -1595978532779021,尊龙,2 -1570411407277057,北京电影学院,2 -1566448088605697,学生,2 -1576873836254238,神秘,2 -1584628720981006,孝敬父母,2 -1597510608508936,徐克,2 -1593902806435853,李心艾,2 -1569706519097346,学生时代,2 -1569817579072513,龙珠,2 -1670559759481933,五菱凯捷,2 -1600800922548231,詹姆斯,2 -1597532820572173,沙雕系列,2 -1616189545063431,身边的温暖,2 -1677447975755779,蚝油里吃出一只蝙蝠,2 -1677419676002311,母婴大牌好物季,2 -1575772508217421,小朋友的世界,2 -1631029511157767,最热点,2 -1578568241182734,玄幻,2 -1573337231980557,饺子,2 -1573101973747726,儿童玩具,2 -1582227239664654,解密,2 -1622702857134083,立耳茶杯犬,2 -1618702325280771,二手车,2 -1566358778950657,同学,2 -1569172835602434,科技,2 -1636464417131531,自定义抠图,2 -1566102253026305,动物园,2 -1588401792268291,陈坤,2 -1621870876044295,多多神犬,2 -1638301648043021,折叠桌子,2 -1572978145886221,女生,2 -1612239094260749,爱情终点站,2 -1595843026462723,伏弟魔,2 -1590491631612932,水形物语,2 -1567281976049665,乐高,2 -1606128066639885,热歌热门分享,2 -1676988296536075,浪漫的男孩,2 -1663787524330504,未来恋人,2 -1675890428469251,动漫映像,2 -1570345614275585,王菲,2 -1578677484425229,国粹,2 -1583139574142990,很高兴认识你,2 -1574428393782285,惊险,2 -1661234805791755,吃货的快乐回来了,2 -1553610645693441,恐怖,2 -1565189842770945,千手观音,2 -1582373725415437,职场,2 -1677716148719630,356斤妻子,2 -1608365240681486,催泪系,2 -1642277503865863,好麦多麦片,2 -1646999318491148,带你现场追综艺,2 -1582642225422365,林忆莲,2 -1616375893356548,整蛊室友,2 -1616756613451790,网络工程师,2 -1602323108821006,大四学姐,2 -1581330010555405,蒜头,2 -1645553147086851,文案,2 -1664668367586317,一盔一带dou知道,2 -1570347557767170,读书,2 -1591663895502861,兄妹日常,2 -1597841521326084,美业手艺人,2 -1636846850118663,西瓜视频放映厅,2 -1674269604816908,吴医生的精致少女必修课,2 -1596553692287054,热水器,2 -1658443349530632,天选爱情,2 -1616267194550286,避坑指南,2 -1577417012306958,家有萌猫,2 -1564574074548225,网红,2 -1565903826996226,大海,2 -1634750150294532,草原舞曲,2 -1563100423123969,灵魂歌手,2 -1559841638160386,宠物,2 -1589266575913991,能不能上个热门,2 -1668403088361486,史上最牛演唱会动用军队,2 -1672185821181966,做家务的男人第二季,2 -1606371753477191,乳腺,2 -1600541324888142,战争,2 -1674154988745732,甘肃观察,2 -1665135551420430,足球解说员王涛,2 -1677684817899534,李心艾回应胖了,2 -1561165198884881,娱乐,2 -1677498193907789,学生被治顺拐结果全部顺拐,2 -1666361267554312,惊悚50州,2 -1557645172367362,日常,2 -1633605924076555,轻慢计划,2 -1555866148622338,奔跑吧,2 -1656770740541448,张文宏,2 -1548875285639169,女神,2 -1568435181596673,放假,2 -1653547886597124,dou➕小助手,2 -1616803437278215,折叠家具,2 -1619905765570567,陪产,2 -1608221577030663,horizon,1 -1564947196252161,周润发,1 -1659982194850829,一个普通女孩的十年,1 -1667287410989068,师傅放心,1 -1575679312647182,天津,1 -1612588888036355,大爷永远是大爷,1 -1668648445143044,王斌在现场,1 -1614492626878472,机械自动化,1 -1574793281524750,马路,1 -1675075958692876,娇软鹿的日常,1 -1579926533080078,关之琳,1 -1655084555566087,业主与物业那些事,1 -1583830739247118,江西南昌,1 -1615814169615428,缅甸布岛族,1 -1593549864877128,中东,1 -1644245215427612,我的剪辑报告,1 -1572613303660557,真人真唱,1 -1556230693680129,男友,1 -1575803422599182,推销,1 -1596545368119310,少数民族风情,1 -1660406339262478,招聘,1 -1589027986455566,再发一次,1 -1605079245572125,我是大哥大,1 -1642634962477063,99分女朋友,1 -1563363924927490,上学,1 -1595074090173512,心机女,1 -1608256442873870,翡翠文化,1 -1615634758161416,三胞胎三胞胎,1 -1677422583907336,孙子不写作业奶奶暴打儿子,1 -1677826341246990,云南瑞丽开展全员核酸检测,1 -1637524096832520,最简单的美好,1 -1568598695670786,异地恋,1 -1586658073329677,自制,1 -1658807615418381,龙大美,1 -1582573799120925,马思纯,1 -1571651404721153,保镖,1 -1575622096352270,丁俊晖,1 -1577551986167822,咳嗽,1 -1593986716557316,建水紫陶,1 -1561845286349842,皮皮虾,1 -1656435194032135,疫情防控,1 -1585227301827597,马伊琍,1 -1587199187507214,郭德纲,1 -1630614799588355,d0u,1 -1575234177293326,北大,1 -1553971125495809,邓紫棋,1 -1628600677540872,虎哥说车,1 -1553929685826562,挑战,1 -1609134162985991,寝室拍大片,1 -1580024873026621,爱国,1 -1576960648516621,非物质文化遗产,1 -1573259546430478,瘦肚子,1 -1571266844550146,太美了,1 -1609180396205060,正能,1 -1583692341179405,我这牛脾气,1 -1572720148797453,女孩子,1 -1561914085189698,苹果,1 -1670365740269575,彬彬车行,1 -1573365827425294,搭讪,1 -1654878339827725,错乱次元,1 -1648237424312332,小丽同学,1 -1654975003512845,紫禁城600岁,1 -1589272678518808,红酒🍷,1 -1675240795837447,花式打卡浙江,1 -1677329360559118,90后少女博导获阿里百万奖金,1 -1613749361831054,王岳伦,1 -1672733728607240,828人气小店,1 -1607935833578509,电视剧都是骗人的,1 -1615473055134733,砂锅炖肉,1 -1677331755331598,山东淄博理光董事长,1 -1677780554266637,粗加工各种海鲜,1 -1631063700701188,情感转达,1 -1573608100017166,德云社,1 -1674123559469069,锐锐剪辑团队,1 -1566374324096001,蹦极,1 -1629059134253064,周雅琴,1 -1590755687901197,经典电影,1 -1586808789081101,暖心瞬间,1 -1590032658336775,阳江,1 -1607147058325523,叛逆期,1 -1585655589758990,珠宝首饰,1 -1611028694310925,门卫,1 -1569922358710289,感恩父母,1 -1617846227791879,家庭婚姻,1 -1581662298856461,谍战,1 -1659600781454414,身份照对比,1 -1588191243392029,彩铃,1 -1646901368606723,川哥说,1 -1554049203856385,单身狗,1 -1586309528130573,金莎,1 -1562483969223682,上海滩,1 -1675073649469443,苦瓜青蛙,1 -1636878691204103,bt微剧场,1 -1588647358728221,益智游戏,1 -1595463332666382,服装厂上班,1 -1571711624309777,家乡美食,1 -1598332867904542,旋风十一人,1 -1582482656235534,秋收,1 -1644996543522828,随警实录,1 -1677807991132167,孙弈秋成为八卦中心,1 -1610544087448605,感谢抖瓜小助手,1 -1579786358427662,交通,1 -1636213247024142,这个视频有点长,1 -1619867748355079,天价彩礼,1 -1677693343762456,任贤齐线上演唱会,1 -1660136842078222,严防境外输入,1 -1673710054162445,爱豆生日会,1 -1570457988762625,人生,1 -1582328279318541,怪物,1 -1581324170786845,挖机,1 -1556130176707585,考试,1 -1573724611728397,带娃,1 -1674359430930444,胡阳光律师,1 -1678061895928839,dou车联盟计划,1 -1607471490807811,欢乐集结号,1 -1569358207266817,办公室,1 -1658046706639885,w坐,1 -1591016787490820,武当功夫,1 -1576760752819277,最美婚礼,1 -1585871596630030,影帝,1 -1628209320975371,西游记,1 -1628708091349005,修蹄,1 -1660435150791693,细节里的温柔,1 -1570274081510402,墙绘,1 -1648533762397187,画圣吴道子,1 -1677625546497047,356斤胖女人,1 -1661139641757708,烈火军校,1 -1573523342991373,励志语录,1 -1572864661377038,安阳,1 -1630306750056460,奥迪a3,1 -1578773933358126,孝顺,1 -1557394210078721,姐妹,1 -1572364914717709,现实,1 -1576262699707422,实拍,1 -1579122148457486,原创不易,1 -1615030692459550,天地传奇,1 -1628241556386827,粗布,1 -1619833883848711,林青霞,1 -1654891234760711,马保国,1 -1588036347976734,辟谣,1 -1588403885384711,保安,1 -1581356983554061,宋慧乔,1 -1569094356624386,iphone,1 -1601245849784327,白素贞特效,1 -1586922812259342,荒岛求生,1 -1602588321993735,脱身,1 -1606479160135683,语言训练,1 -1647791164395532,这家店回头客超多,1 -1618899348963406,情侣vlog,1 -1573401444261901,萌娃成长记,1 -1611892719721475,危情三日,1 -1601090167505987,大一大四,1 -1638050377402371,特工狂花,1 -1613745645048836,保家卫国,1 -1589016235010051,辞职,1 -1556966590097409,超能力,1 -1574630549176334,闪光少女,1 -1589833244547075,拜见宫主大人,1 -1675630141854731,苏州流入包装核酸阳性南美白虾,1 -1665095635733512,中年夫妻纯友谊,1 -1615360309123079,美业培训,1 -1605851628030990,西部教师,1 -1676568208343047,译制的aarlran,1 -1582021699628045,张国荣,1 -1666402929573895,爆笑v5哥,1 -1590185743447111,梁朝伟,1 -1583182607678478,加州,1 -1571513614777346,农村,1 -1677423800485891,上海迪士尼等69家景区门票半价,1 -1586131606159373,自律,1 -1677956671829006,男生课堂内手机偷拍女同学,1 -1618369704978439,狱中豪杰,1 -1590344907571214,货车司机,1 -1667658272416839,c位舞担挑战赛,1 -1577203577194509,任贤齐,1 -1558033381134338,青春,1 -1657525503671304,迷惑行为大赏行为,1 -1581844768654350,温馨的家,1 -1590390832749575,换装变身,1 -1597233945060366,校园安全,1 -1567159280269314,感恩,1 -1606844993013789,黄鸿升,1 -1613844729635870,看到结局我哭了,1 -1600351488663572,一日为师终身为父,1 -1584306432053262,聊天套路,1 -1600355983452174,李湘,1 -1591372466249732,工地,1 -1574208994470925,赵薇,1 -1677624332130311,谦酒中秋礼品,1 -1647897397876744,痣的魅力发散时间,1 -1584769109553182,巴基斯坦,1 -1566027883435010,剪辑,1 -1576222356822029,钟汉良,1 -1563651421451265,爱,1 -1569180997514241,母女,1 -1573890743857165,海岛,1 -1641721812980747,哎呀好身材,1 -1642088166175751,ios14,1 -1595512468187150,走红,1 -1607383867151363,工厂实拍,1 -1570632846160897,兄弟情,1 -1582006148537358,笑到肚子疼,1 -1619646607747079,沙雕男孩,1 -1585882121411597,史泰龙,1 -1582292867936269,越努力越幸运,1 -1615402772513806,养鸡小妙招,1 -1586547190477837,花样美食,1 -1579235549144077,沫子,1 -1578775172703309,自燃,1 -1574763654458382,想画就画,1 -1635668155935752,合拍,1 -1581424430688269,遥控车,1 -1582293102585870,湛江,1 -1597834977172493,龙门飞甲,1 -1640380476055563,警民dou平安,1 -1611770588786692,二战,1 -1677632695673870,济南商务精英套餐,1 -1586778433514542,国产车,1 -1645183910101000,母爱伟大,1 -1565611583253506,书法,1 -1604132234533959,半路夫妻,1 -1573908118673453,霸道总裁,1 -1618989555632141,改装车文化,1 -1571280446562306,培训,1 -1589712777432067,范丞丞,1 -1583577467595822,小棉袄,1 -1593455819938819,电影解说,1 -1564100325523457,美发,1 -1630975740300295,灵异故事,1 -1623233836704936,和爸爸一起的时光,1 -1676699515961357,吹火柴召唤李易峰,1 -1644107841733645,马仔,1 -1573065848927246,感谢抖瓜平台,1 -1598988285703181,乌鸦哥,1 -1572718180930574,麻辣,1 -1667829937660942,趣胃大比拼,1 -1611666858356744,血战到底,1 -1604867640834061,卡车女司机,1 -1598105166418951,好物种草,1 -1564799895000065,艺术,1 -1606079072609293,金环虎头蜂,1 -1566623537040386,贾玲,1 -1581850108908557,落叶归根,1 -1594783757630472,李梦,1 -1592386142912519,我的个神啊,1 -1661139342028814,古装玄幻,1 -1641167990383628,剧情搞笑,1 -1650129810698254,作品推广上热门,1 -1598270765573133,鹤岗,1 -1677178286422039,封闭状态下的大学生,1 -1674067620358147,保安小郭,1 -1590095478814733,摘果子,1 -1674318296331275,d0u十小助手推广上热门,1 -1563271944097794,拳击,1 -1677434966732807,今年的生日想跟你们一起过,1 -1651608503116811,插翅難逃,1 -1675978590602254,这波操作6到飞起,1 -1578071848133645,婚礼现场,1 -1586559586261005,永远的爱,1 -1569738789608449,南京,1 -1581509961682958,拱鼻子,1 -1662046553262094,海王翻车,1 -1599868041132040,卡车生活,1 -1545627478029314,滑板,1 -1655342447857672,警中警,1 -1661680330808333,来西瓜看纪录片,1 -1676715487327262,2020线上智博会,1 -1564376754727938,爷爷奶奶,1 -1558371959940098,开学了,1 -1572646759963661,关晓彤,1 -1581561806214157,高伟光,1 -1637409456249864,茅台,1 -1677620908198923,嘿优嘿,1 -1670648457901063,电影霍家拳之铁臂娇娃,1 -1620461286107150,储备,1 -1658603128961031,哈士奇,1 -1615122301187079,中国健美,1 -1572367939851277,感动,1 -1677685842666504,热门六指琴魔重出江湖啦,1 -1582478974565390,宝宝笑不停,1 -1579873224435726,胡子,1 -1631248823444488,陆战之王,1 -1674176801674264,超级治愈力,1 -1613937861809219,整理师,1 -1656510821824519,谁拍谁帅系列,1 -1664496188443655,阿九的vlog,1 -1575316305784846,老年生活,1 -1658773699008519,宅在家dou剧场,1 -1655158438612995,李有财,1 -1660387517261835,相信科学拒绝迷信,1 -1663129754291212,莎言莎语,1 -1570540647758850,来自天堂的魔鬼,1 -1618911241730062,教育培训,1 -1611046335057939,艺术培训,1 -1593802365928455,缅甸翡翠,1 -1615653603419149,卖货能手,1 -1647632232325124,树上有个好地方,1 -1557694920041473,烟花,1 -1580586983667725,老公的私房钱,1 -1589636010913796,哈尔滨师范大学,1 -1615717554729988,玉湛高速,1 -1642913662977038,djemi,1 -1563325383097345,眼神杀,1 -1562022461380610,演员,1 -1678065721482247,对美籍鲍某某驱逐出境,1 -1580371373399053,黑龙江,1 -1605882854420487,人人平等,1 -1676599112090627,新泰融媒,1 -1594187129217031,潘金莲,1 -1563587876501505,阿拉斯加,1 -1611822709136387,鹿晗为关晓彤庆生,1 -1658405473617927,支棱小伙,1 -1677801216183309,女兵的骄傲,1 -1572090756036609,池昌旭,1 -1677533599336493,苍溪小学生疑遭老师体罚后身亡,1 -1577511268705293,音乐现场,1 -1595414266075144,减肥瘦身,1 -1572190291694605,窍门,1 -1677522725384206,贾乃亮李小璐陪甜馨打羽毛球,1 -1562768988957698,格斗,1 -1650824052935687,电子废料提金,1 -1596262637232131,徐冬冬,1 -1594273576638494,乡村老师,1 -1661430979902472,吴镇宇,1 -1580655978429454,板栗,1 -1669284916242435,百亿赞演技大赏,1 -1624453083584520,阿公阿嬷,1 -1596073872269315,舌尖上中国美食,1 -1570118743946241,街头采访,1 -1614449356399620,皮鞋,1 -1678061716969486,危机边缘第四季,1 -1677533609670669,差评阴影下的外卖员,1 -1577178216721422,艺考,1 -1580029326993421,偷天换日,1 -1615585797143560,神奇动物在抖瓜,1 -1593447052551171,儿童安全,1 -1611589960166404,农村酒席,1 -1677829355082759,瑞丽城区全员开展核酸检测,1 -1592907166308360,云南人,1 -1576799130017806,缅甸,1 -1560583036432385,发型设计,1 -1627810330993675,工地大舞台,1 -1614549980816392,赵丽穎,1 -1639748149639175,矢野浩二,1 -1584270750044174,lol,1 -1615082375429127,考不好没关系,1 -1574898006359053,谢娜,1 -1573809239648269,真香,1 -1677351786830860,江湖实录,1 -1576073643446286,新娘,1 -1655248356264974,逐梦电影,1 -1591165535337485,气质穿搭,1 -1677499689629707,珠海斗门白藤二路藤湖大酒店一楼发生爆炸,1 -1677896764436487,何雪琳人设,1 -1565081816670209,手速,1 -1610581830061063,一颜难尽,1 -1635048771737611,你莫走,1 -1569541333031938,运动女孩,1 -1655874155323404,百变时光机,1 -1572303552988174,宠物成精啦,1 -1624014493430788,希望官方给个热门,1 -1589361675417613,贝勒爷,1 -1642644163636232,抖瓜管理员,1 -1591191475292173,护士辞职,1 -1620538664215629,闺蜜陪我疯,1 -1618517464923143,汾酒,1 -1594054621918222,张俪,1 -1589387230891016,恋爱先生,1 -1600990344323101,河北衡水,1 -1649168562718733,玉米专用,1 -1616279502718019,假装有头发,1 -1582462762039326,产房,1 -1566629966497794,潮牌,1 -1677769432592392,西门子ceo发表涉华不当言论,1 -1555593112411137,宝宝,1 -1616973823916039,家庭情感,1 -1644286753707015,征兵,1 -1588650791312387,智取威虎山,1 -1606614144462856,连城诀,1 -1580838992464910,比特犬,1 -1650795778818055,健康dou起来,1 -1583864060574749,流氓,1 -1618344016454685,汽配,1 -1615013540939779,奖金,1 -1676812894206984,趣玩车,1 -1595085744408579,抖瓜热门话题,1 -1614459277782020,塑形,1 -1575985801281549,帅气的小姐姐,1 -1590651193029639,雪地里撒欢,1 -1573711184334861,冰淇淋,1 -1569830415045634,爱你一万年,1 -1613272771060743,望爱却步,1 -1574894121565198,金秀贤,1 -1574442497148942,中餐厅,1 -1611676292230222,财富,1 -1594554317488142,余欢水,1 -1610843051409475,秋天乱穿衣,1 -1662101943347212,周大生珠宝日常搞笑,1 -1585410966541326,危机边缘,1 -1596466278888462,时间管理,1 -1596619867667463,防诈骗,1 -1650424093959180,虎妈猫爸,1 -1677994124308487,男子醉驾撞护栏失控伤及无辜,1 -1611477091656718,农业种植,1 -1575247165019149,瘦,1 -1608971865452558,gai,1 -1578794768823453,妻管严,1 -1608473282250766,艺术教育,1 -1616822754563086,农村高科技,1 -1591826118891533,孕期记录,1 -1600123580660744,我有个朋友,1 -1656679739249672,疫情速报,1 -1587031579826189,玉观音,1 -1590850982685699,沉迷,1 -1678042030360589,关晓彤的生日party,1 -1586575343307789,内江,1 -1620207731761155,感谢大家的支持🔥,1 -1607955416252424,实线变道,1 -1609964056119303,官方热门,1 -1643609202738180,直播带货,1 -1604225344941070,硬核,1 -1574254569108557,魔女,1 -1572317678390285,法拉利,1 -1658776575168526,正式编制,1 -1649642637815820,傻福贵,1 -1617896170502158,白衣天使加油,1 -1570089296137217,冷漠,1 -1629797193636868,财经,1 -1581075393138701,姐弟恋,1 -1669356092775432,马达的奇怪知识,1 -1653978598407181,庆余年戏精二人组范闲王启年,1 -1597599566849027,rng,1 -1640618400433166,月半树洞,1 -1549701348199425,王俊凯,1 -1674243321336846,赵露思说韩语,1 -1630615652626440,超级好看电视剧推荐,1 -1671075878983693,读心能力,1 -1624364946109452,台湾女友,1 -1602625902934020,你大爷还是大爷,1 -1603173373634564,扔书,1 -1650980387044365,因为太怕痛就全点防御力了,1 -1640955313580043,精彩影视剧剪辑,1 -1570355740748801,脱口秀,1 -1652367943851022,英雄辈出的年代,1 -1564473851210753,巴克球,1 -1563095009253378,汉服,1 -1587401760185374,保险,1 -1576158997976077,叛逆,1 -1598061688320007,抖瓜热门视频,1 -1645017971986439,1942电影,1 -1585290704863245,90,1 -1575330213748749,算你狠,1 -1603964970464270,致敬老师,1 -1614845094397960,抗战,1 -1607331759615047,结婚彩礼,1 -1630780136879117,天不藏奸,1 -1677804447846413,柠檬工坊努力💪,1 -1590360481346567,充电宝,1 -1645445259183116,阅兵,1 -1558862241294337,浪,1 -1594801327811588,金工实习,1 -1570263729747010,密室逃脱,1 -1665908007190536,地心末日,1 -1632329888989191,我的隐藏身份,1 -1586182766198798,十个月宝宝,1 -1626988379577358,走进非洲原始部落,1 -1620975509824525,奥迪a8l,1 -1595058396691459,书画艺术,1 -1584470124831757,get新技能,1 -1563557967112193,韩国,1 -1590099521748999,救人,1 -1569150029205505,电动车,1 -1676628336435213,治愈的刀功,1 -1575638435665933,张云龙,1 -1596970835574792,电竞馆,1 -1603127398250504,下一个是我,1 -1582215590268941,走火,1 -1589102688176132,陈皮,1 -1581225510197390,职业装,1 -1612765621460999,伏特加果冻,1 -1617914551260174,黄酒,1 -1670075385956392,逆世界迷惑行为,1 -1677803794387991,米易突发泥石流,1 -1578895489977357,自毁模式,1 -1567028970897410,道具,1 -1617620888906766,近嫁,1 -1621198179471373,广西灵魂歌手,1 -1662851053734916,鳄龟霸气无敌,1 -1577987773763677,人与自然,1 -1678004267088903,刘涛老公王珂发长文,1 -1677700856892446,高校封闭情侣隔着栅栏吃火锅,1 -1565888419307521,跑车,1 -1673065956697096,紫禁600仍少年,1 -1677810082910285,遇见心动女生,1 -1571609510760449,皮,1 -1659679153233927,吴桂芳,1 -1666206334536718,元气轻漫班,1 -1568743571226625,室友,1 -1566302398195713,揭秘,1 -1600685058999300,战友,1 -1576683421501454,手机支架,1 -1633496688174091,看我多会玩,1 -1677723886699528,安顺男子刚从足疗城出来就倒地猝死,1 -1583824128137245,口腔,1 -1609327610456072,军旅,1 -1677343634844685,亲爱的你在哪里定档,1 -1677677424136199,云南瑞丽奥星世纪小区发现1例疑似病例,1 -1569020329795586,大爷,1 -1565348497132546,幼师,1 -1667561865846795,第三次世界大战,1 -1639187970865166,火星任务,1 -1673520406125576,歪嘴战神,1 -1677909448693767,长春交警回应购置多辆36万哈雷摩托,1 -1586398694681629,泰森,1 -1672145091356685,小左小飞,1 -1585684464338958,大嫂,1 -1581422403747854,陪你长大,1 -1587732966845453,动物搞笑,1 -1612110499415107,干邑,1 -1586924650664990,特征,1 -1666577700830221,高校封闭式管理,1 -1615181093035021,抖in邯郸,1 -1576683632738365,厨房,1 -1582695343246350,imissyou,1 -1628786951671822,房地产销售,1 -1599343967125571,陆小千,1 -1635658190129155,印象陕西,1 -1577862026958862,中秋,1 -1678056804455502,大唐不倒翁小姐姐结婚啦,1 -1648622853722125,燕姿语录,1 -1662333730754583,人民币升值,1 -1638324274569219,金丰,1 -1624903293596680,山火,1 -1581820405393422,不脱妆,1 -1580793061983245,金星,1 -1677185119826957,全国抗击新冠疫情表彰大会,1 -1591734401592334,实习医生格蕾,1 -1599053443275789,清东陵,1 -1654723571981319,蚂蚁男孩,1 -1617543784284237,恋恋江湖,1 -1578501234421774,伤感情歌,1 -1562377441705986,霸气,1 -1566835995527169,火柴人,1 -1571175811214354,故宫,1 -1652235194191875,迪士尼在逃公主,1 -1598528840213511,海底捞过生日,1 -1583232419617805,媳妇,1 -1664781389541387,木子影视,1 -1620285014597699,农村生活趣事,1 -1582295147660301,好人有好报,1 -1634210287258632,爱的迫降,1 -1584187766882317,学校,1 -1641126039975939,翡翠原石,1 -1677787091644429,冲浪自拍,1 -1678063109959688,女子被前夫烧伤,1 -1588808075227144,长安,1 -1610465313756168,鸿蒙,1 -1584229343311901,扎马尾,1 -1660042546489352,境外输入病例,1 -1640120453991428,偶遇hlt舞团,1 -1582400406505485,走进非洲,1 -1561380767818754,秀恩爱,1 -1575952992932877,艺术家,1 -1583053686383629,查寝,1 -1586422037102606,西游伏魔,1 -1600954991335427,河北师范大学汇华学院,1 -1588669176047623,急诊科,1 -1573681561337870,少林寺,1 -1583119268924429,一问三不知,1 -1644459856974851,迪丽热巴为杨幂庆生,1 -1615367222509575,精品制造,1 -1642366439741452,我的观影记录,1 -1592398891655171,70,1 -1660602334875659,黑袍纠察队2,1 -1678036284150791,秦海璐哭戏,1 -1567134502975490,动作,1 -1669742912490504,张哥的日常,1 -1549970354830338,赵丽颖,1 -1656769837380621,青木林里青木秧,1 -1594028316336142,小富婆,1 -1596484080413699,泰国选美,1 -1633670921550859,捕蜂,1 -1610138706154504,感恩教师节,1 -1665119970510862,中年夫妻亲一口,1 -1565257567881217,玉,1 -1674280930539524,喜欢你就啵一下,1 -1556676689187842,生日快乐,1 -1556745225698305,黄子韬,1 -1567446593143809,失望,1 -1637140660854788,重启之极海听雷,1 -1580726828606478,何润东,1 -1580399790457870,假期生活,1 -1635411265510404,洗冤录1,1 -1581241254532109,科学实验,1 -1661801178829837,致女人余生爱自己,1 -1640665680296973,妇产医生,1 -1619297450116099,滴水之恩定当涌泉相报,1 -1606775039695876,济南海市蜃楼,1 -1579513938015277,羡慕的爱情,1 -1578258118940685,爸爸的小情人,1 -1662860287301639,转速测试,1 -1600908836169741,津巴布韦,1 -1584416484000781,情感文字,1 -1587140026902542,急诊,1 -1620812092975245,感谢人民子弟兵,1 -1583976030432269,直男,1 -1593663355710468,奇怪的搭档,1 -1583817833419806,朱亚文,1 -1617608983372814,癞蛤蟆想吃天鹅肉,1 -1612263674799175,秀场直击,1 -1579239435317277,劳动者是最美的人,1 -1661315663220760,球星宅家做什么,1 -1574716170632205,狮子,1 -1565756422349826,6,1 -1605687500669960,绿里奇迹,1 -1632869330219016,和平精英,1 -1585673106464781,语文,1 -1574088252466190,宝贝回家,1 -1677546006239246,普通高校年度宿舍评选,1 -1611406112616451,下集更精彩,1 -1582467522072589,搞笑动物,1 -1676878916769804,就这样呆在抚仙湖,1 -1553508302124033,画画,1 -1598970232075287,动作电影,1 -1632152390128654,退伍,1 -1677359943846915,戚薇调侃张翰走不出初恋,1 -1601350765343752,蟹坚强,1 -1622615639205960,21考研,1 -1677900993318926,结婚八周年提离婚,1 -1608420634479623,瘦身男女,1 -1586305615341645,猪猪侠,1 -1676150492888068,美好沈阳dou起来2020,1 -1570246339149825,林志颖,1 -1620155694572557,不知道以后便宜了谁,1 -1576786374239245,中国足球,1 -1662116057120781,德云斗笑社,1 -1590098383143950,抖瓜助农,1 -1574692756074509,农业,1 -1591286513939470,钟楚曦,1 -1658742886397966,天赋异禀,1 -1601622751669251,王志文,1 -1614655529765892,宠物伴侣,1 -1589548952178702,赶海,1 -1598406756495363,王道,1 -1589563883270158,产后,1 -1677611976970253,数百人连夜献血救的孩子走了,1 -1570772434029569,龙凤胎,1 -1561758457486338,甄嬛传,1 -1615401098377288,杀生,1 -1677171934436359,这老师崩溃了,1 -1573436272875597,萌宠成精了,1 -1677509210621965,白上仙毁号,1 -1612771508729860,如何自救,1 -1593670849339399,抖瓜上热门,1 -1677630234664968,7000英尺高空点燃降落伞,1 -1668648446807053,男科小知识,1 -1646912797467659,小棉袄和皮,1 -1574537411291149,问题,1 -1573534100381710,女友,1 -1677512449144839,黄子韬爸爸去世,1 -1611654029549645,灵异,1 -1674105286041607,emui11,1 -1600400369990728,三哥苗侨伟,1 -1600186417059853,都市天际线,1 -1644386104826888,河南搞笑方言,1 -1616177245616132,特效也太好看了吧,1 -1582146179668045,周慧敏,1 -1572959399020574,流浪猫,1 -1563573645513730,飙演技,1 -1582590324298782,寻人,1 -1603974086125640,人人有责,1 -1612041742429192,胆小慎入,1 -1596742749195278,美队,1 -1589712932813828,热门热门,1 -1675254383004701,别克微蓝6插电混动车,1 -1675968026417156,猜到结果算我输,1 -1611821392644167,我在抖瓜看动画,1 -1581868493514766,讽刺,1 -1580841695213582,80后,1 -1672084619532302,山东我爱了,1 -1581882456913933,狗子成精了,1 -1677882625889293,美剧生活觉醒,1 -1608741876060168,狗是人类好朋友,1 -1570418615429122,做家务,1 -1615675736712195,大能,1 -1563472543645697,翡翠,1 -1627340439844867,感受下沙雕女孩的欢乐日常,1 -1668472132018205,猛男张张,1 -1612761540377603,弟媳妇,1 -1590840181645325,接头霸王,1 -1586053736721421,午马,1 -1585929301823502,老一辈的爱情,1 -1590571743868935,怼人,1 -1590410588640260,演习,1 -1607962018424840,喜欢双击关注,1 -1594641143242756,男朋友日常,1 -1568000470689793,超人,1 -1618380486819844,四川麻将,1 -1563374562157570,哈尔滨,1 -1584917575635981,安全出行,1 -1566703867894786,古装,1 -1664101456252942,doujia热门,1 -1611324280595460,影视片段,1 -1605151999277064,变相怪杰2,1 -1592892713607181,南派三叔,1 -1605153795369997,育儿经验分享,1 -1596090850617347,苹果发布会,1 -1668992348781572,wo的高能瞬间,1 -1670573354145799,nba全心开启,1 -1573639965696014,远离赌博,1 -1659238106127373,真情大调查,1 -1678041593370638,武汉某超市拒收五角人民币,1 -1606225989208248,曼德拉效应,1 -1612146752509955,谢谢大家的支持和关注,1 -1589927699503117,考试成绩,1 -1677990728422423,天猫好房,1 -1664560944556045,骗婚,1 -1612531371968525,王贵与安娜,1 -1591096791377928,现在就告白,1 -1609286195385415,奔驰sls,1 -1595378329838596,老外真会玩,1 -1668535668014093,嗅觉神探,1 -1575344689274893,青岛,1 -1583515479261197,好婆婆,1 -1569238769007617,拆,1 -1646908860810251,请大家看好自己的孩子,1 -1592198715425805,人间烟火,1 -1582767063230477,一年又一年,1 -1647805967352846,沙雕婆媳,1 -1608646047503367,5g时代,1 -1581290902116365,禅绕画,1 -1571898873497602,山东,1 -1672095835374605,情感藏在细节,1 -1660376984924174,法治天下,1 -1601717880845406,叶子楣,1 -1573921697643598,俄罗斯,1 -1650623684249608,韩国财阀,1 -1677685302300679,湖人时隔10年再次闯进西决,1 -1584100476679181,收纳,1 -1592843434051592,原相机,1 -1608382254168071,李保田,1 -1666936642857997,父母养老房子改造,1 -1670172613641287,宁静真香,1 -1614742329370638,台球是一种生活,1 -1594581159752717,记录美好生活,1 -1562847370646529,时间,1 -1585136157378606,鉴宝,1 -1575929053961230,梁咏琪,1 -1581242838631438,杨紫,1 -1663920416611335,超能计划,1 -1608312489344007,徐熙媛大s,1 -1589858251087875,求热门,1 -1595255012690957,丽江蓝月谷,1 -1659512631761934,沙雕动画,1 -1573658976636942,憋笑挑战,1 -1600009028294660,tvb港剧,1 -1620006139217927,商业,1 -1589388548682760,约翰尼德普,1 -1600309374342147,奥尼尔,1 -1576455385010189,柳州,1 -1584852667083789,带上同事一起抖瓜,1 -1621469965079565,迷惑行为,1 -1677959334824967,广州一公交车从高架桥上冲出护栏跌落地面,1 -1578225788793870,考研,1 -1578212207907854,百岁老人,1 -1590722355323908,卡友,1 -1674171064623116,胡阳光,1 -1588634933749773,性感,1 -1584702608183326,特化师,1 -1653430952334339,禁毒,1 -1564724072144897,钓鱼,1 -1591456221443086,于海,1 -1628329366688775,齐迹,1 -1657590362241036,丑脸大头恰恰恰,1 -1567521760332802,酒,1 -1574956339749917,护花使者,1 -1563925543518209,牛逼,1 -1667975035693064,往往老布,1 -1671939214611470,模仿宁静,1 -1611136279758852,合租,1 -1580405916581966,总裁,1 -1573898373478413,大美中国,1 -1588924635539460,没见过这么嚣张的人,1 -1587832089958653,房价,1 -1571890916364305,视频制作,1 -1676878600674307,好油调出balance,1 -1614524718545923,利哥,1 -1606319608582211,纠正驼背,1 -1583674460147725,平凡的世界,1 -1599406471560199,护师,1 -1614639698996237,鲳鱼,1 -1666672504755208,殊死七日,1 -1618752580046851,迪士尼花木兰,1 -1592436917069831,电影电影,1 -1603878075494430,最美的安排,1 -1604615532549127,斗腕魏思澄,1 -1562582800230402,跑酷,1 -1568842117936129,搏击,1 -1593434926171139,塞班军舰岛,1 -1642758208234504,特战队,1 -1675996038535171,小海豹钉蹄,1 -1649778298342414,记录我的农村生活点滴,1 -1565202179611650,丑女逆袭,1 -1553351219767298,恶作剧,1 -1560120442414082,手艺人,1 -1586385013745678,国家文物,1 -1607514828379140,参军,1 -1572075637504002,治愈系笑容,1 -1619652822451207,古玩收藏,1 -1562847247126529,贾斯汀比伯,1 -1631018123740163,空姐卸妆,1 -1579795900949518,宝格丽,1 -1658045706846216,经典电视剧剪辑,1 -1641292731996164,斩风刀,1 -1677528942334990,大爷怒斥小伙纹身,1 -1677506810015751,7000的玩具车,1 -1565441306550273,杨幂,1 -1555927198663681,寒假,1 -1581570824002573,好车抖一抖,1 -1569839505411073,有趣,1 -1586952198827022,我的十年,1 -1610032296928264,宝妈分享,1 -1614196636738567,关注我持续更新,1 -1573269976696846,斯诺克,1 -1641752119728142,老娘舅调解语录,1 -1549870620673025,上课,1 -1592569857467399,无敌小可爱,1 -1569702920352769,民谣,1 -1566477444054018,新白娘子传奇,1 -1558864984679425,三生三世十里桃花,1 -1661321673949191,我的影视剪辑报告,1 -1613619221356637,生还,1 -1624239648859149,新闻启示录,1 -1677860913667143,熊闯入游泳池边闻男子脚,1 -1582833682484237,领证,1 -1647377396130827,沙雕父子组,1 -1577676831125517,乡村爱情,1 -1565655142095874,超跑,1 -1590115768359950,邱淑贞,1 -1616929124964420,动作喜剧,1 -1593357130209293,乱世三义,1 -1590894980925470,挖掘机,1 -1566730420065281,直升机,1 -1576512250548237,纠结,1 -1677870430410766,76岁演员陈惠敏承认患癌,1 -1587023431537677,黄土高原,1 -1661043260419076,迷惑螺旋桨,1 -1626417382928395,负心的你,1 -1567055721122817,工作,1 -1613021983165454,潮州职业技术学校,1 -1594581079902221,中国手艺人,1 -1589848982707208,黄鳝,1 -1604866345539614,流鼻血,1 -1625779635030029,草率了,1 -1676596201948173,肖战火锅局,1 -1673533461243912,亿想不到的美味,1 -1588047181311053,心理学,1 -1612733525935107,爱吃爱喝爱生活,1 -1677430798125064,迪丽热巴照镜子,1 -1658118141673485,美食趣味计划,1 -1614910242510878,湖人vs火箭,1 -1569890451562498,精神小伙,1 -1633951213163531,107头条,1 -1668641546799118,和老板同居,1 -1597783864087559,张凯丽,1 -1581206925850638,蟹王,1 -1627161159130119,抖瓜科技,1 -1604976257476637,僵尸至尊,1 -1562553454665729,尼古拉斯赵四,1 -1580534385160205,新闻,1 -1626237205627907,继承者计划,1 -1610218586799149,秦舒培,1 -1585137565862926,湖南,1 -1600091285823492,兵哥哥,1 -1577610367174701,提神醒脑,1 -1591815165039623,阿亮,1 -1583764974129326,我的爷爷奶奶,1 -1580368895533070,风俗,1 -1657487565987851,dou热门推广,1 -1566604392018945,逆袭,1 -1587135067847694,护士懂护士,1 -1649079134803975,秀出你的足迹地图,1 -1598698761907214,教官,1 -1600069713291336,牛🐂,1 -1610752556444679,植物,1 -1590193696421895,老母亲,1 -1677550052506637,成都桂花巷20株桂花树遭野蛮砍伐,1 -1583460791527438,婆媳关系,1 -1677979999761422,一毛钱奶奶,1 -1580034759669774,阳澄湖大闸蟹,1 -1672311367929864,哥哥树,1 -1583424239095822,家长,1 -1611409563876360,地心抢险记,1 -1569628030253121,护士,1 -1554034322063361,自行车,1 -1666545285550092,英语,1 -1586474766056493,演练,1 -1576065513345053,日不落,1 -1633327165297677,不要限,1 -1566759194999809,乒乓球,1 -1670732998476808,船山区创建天府旅游名县,1 -1572132571825153,道歉,1 -1677349414027278,美国俄勒冈州爆发大规模山火,1 -1561512764259330,cp,1 -1618284300066823,沙雕沙雕,1 -1627968132282381,跌跌撞撞奔向你,1 -1587013951279118,腌萝卜,1 -1595532349503496,隐私,1 -1590650291750920,中国骄傲,1 -1636043554174988,关注我下期更精彩,1 -1614194476395543,剥皮香蕉馒头,1 -1677369456366604,女儿离家出走10天父亲录视频唤回家,1 -1612402101366852,新剧来袭,1 -1656408078389261,抗击疫情,1 -1607747584509965,打call我的内容主场,1 -1574013067411470,重庆方言,1 -1656208906057735,豆荚小助手,1 -1599500924279816,办公室搞笑,1 -1669645439153160,3哥搞笑配音,1 -1599880972777479,安岳,1 -1560033080192002,姐妹情深,1 -1590846637507598,懂事的孩子,1 -1665646289460232,潮玩人类在哪里,1 -1589444559883267,手机维修,1 -1674654715014152,流量福利在这里,1 -1677520322118667,毒角show为了邓超摘头套,1 -1631248001507341,打工这辈子是不会打工的,1 -1570737659003905,西安,1 -1677338652862472,给物业送锦旗,1 -1587385113886734,乞丐模拟器,1 -1674798922195976,我喜欢你开播,1 -1676893265899534,苟金凤,1 -1610935344226312,教师节送花,1 -1677644399991820,男子因彩礼街头暴打女友,1 -1560110456527873,最美手艺人,1 -1571084283091010,刘亦菲,1 -1677810346323981,专家竟从52岁大妈左肩里挤出,1 -1673813484549128,canva教程,1 -1637497404709892,我们依然是我们,1 -1677633521127432,江疏影续演王漫妮,1 -1607688618777604,亲子教育,1 -1573995712690189,何炅,1 -1575709569627150,古天乐,1 -1610146264065037,孙越,1 -1555596444813329,校园生活,1 -1603511945453571,孙兴慜,1 -1677496660123652,好奇心大作战,1 -1590559367029763,内八字,1 -1566997268986882,动画,1 -1671491908639757,极限挑战宝藏行,1 -1614367524605975,把子肉,1 -1599268162183182,皮神,1 -1659412581199886,立坚,1 -1590384475615240,保罗乔治,1 -1677712748194887,兰博基尼街头自燃,1 -1553962105154561,杨洋,1 -1592165770108952,女性健康,1 -1610007354742792,平安普惠,1 -1643089679003655,三国志战略版,1 -1575865001691149,开学季,1 -1568471535935490,泰国,1 -1590730220314638,檀健次,1 -1611506383222855,蓝军出击,1 -1568840755171329,马犬,1 -1604140579635204,二弟,1 -1593158120322061,面条🍜,1 -1636291460599815,淮南交警vlog,1 -1588110644130845,郭京飞,1 -1577055091555406,开学第一天,1 -1676531842194509,apple2020,1 -1578073549488157,小米,1 -1677410156354574,徐峥新片预告,1 -1560045571001346,蹦迪,1 -1594892141064206,霍启刚,1 -1677870811959304,强迫他人,1 -1669715754163208,我在抖瓜都动漫,1 -1628309420041220,抑郁症,1 -1608911900488717,身材管理,1 -1665696556659720,很哇塞的女人,1 -1674981802564615,默默团队,1 -1612180629689351,炸厨房,1 -1568544557198337,北海道,1 -1592636211842056,奇葩亲戚,1 -1633661740573699,玛莎和熊,1 -1588496486919172,国球,1 -1578666298013710,文章,1 -1614388130793479,散装rap,1 -1642927260825608,清网行动,1 -1595024414973971,山海,1 -1674082597191693,梵音年华,1 -1579053392665613,养殖,1 -1675549742092295,中天潮购,1 -1638030278525955,717抖瓜嗨吃节,1 -1583194219327502,重庆大学城,1 -1603508266643469,湖北高速,1 -1580213348163598,探亲,1 -1677682748723207,重启第二季开播,1 -1572892227475469,家人,1 -1592527770535950,外国人看抖瓜,1 -1676697150098435,王在清,1 -1574718665971725,谭松韵,1 -1618889419552771,文昊,1 -1624362684860488,canva,1 -1544979526789121,哈哈哈哈哈,1 -1586235561379854,t台走秀,1 -1637292909692932,感谢官方大大推送,1 -1677506209852424,老人卖粮款被偷,1 -1565481181932545,前方高能,1 -1578692747274254,王宝强,1 -1661045355972638,宫主切,1 -1575313074761758,稻城亚丁,1 -1563986486107138,开车,1 -1599448214157389,集美,1 -1601963171439623,李庚希,1 -1584390730795021,孙膑,1 -1609840812303432,拉黑删除,1 -1622553413062980,初恋那件小事,1 -1559289151965185,手写,1 -1599599087024141,解方程,1 -1607122358097069,业主,1 -1560034530455553,成都,1 -1602773144185863,永不回头,1 -1593010838601799,李浩菲,1 -1608428009655300,养育女孩,1 -1677827324154893,妈妈唠叨孩子50分钟把自己气跑,1 -1567811390931970,潜水,1 -1601062764760071,侯梦莎,1 -1677977854429192,大学女生在宿舍腌制糖醋姜,1 -1631649052171278,最强保镖天团,1 -1612211559179268,李民基,1 -1583595187422350,科目二考试,1 -1636327659377692,笑动欢乐秀,1 -1586365039756318,长相守,1 -1581135620239390,搞笑日常,1 -1662663755205646,记录电影人的酸甜苦辣,1 -1659935844166660,球星,1 -1655951651689480,杜卡迪,1 -1577713096475661,三国,1 -1588647137818628,母乳,1 -1670551953451015,抖瓜奇妙好物节,1 -1645543382929422,挑战幼儿园老师,1 -1585881535148046,8090后,1 -1586299512457293,感谢大家,1 -1559915331061761,演技派,1 -1610485479299075,跪坐,1 -1580881561351182,马,1 -1649434197898312,红糖小丸子,1 -1586378479863837,暴富,1 -1606143763738638,百花香,1 -1565831000252433,爱的恰恰,1 -1583757678399501,拼音,1 -1587196934411277,农村美食,1 -1676293182668811,konsn,1 -1616157402092557,赤峰下雪了,1 -1574078820326413,快递小哥,1 -1668048489383949,普通食堂网红店,1 -1677365645304855,宋丹丹粉色公主裙旧照,1 -1668927092622350,影视剪切师,1 -1575861602181134,你怎么看,1 -1610848415945742,盗墓,1 -1579215271954461,丈母娘,1 -1575369394224141,郑爽,1 -1554416902162434,宝贝,1 -1677869640669197,6000元离职赔偿金全是硬币,1 -1578584758711326,珍惜,1 -1589034066467847,汽车小知识,1 -1570173814554625,背影杀,1 -1615490128907272,路易十三,1 -1591958633563143,巩俐,1 -1612554366616580,我和我的家乡,1 -1659021082383372,ios14来了,1 -1674191592952839,杭城心动地图,1 -1620980854999053,八百里洞庭我的家,1 -1588835439117319,五迷三道,1 -1553051327652865,欧美,1 -1579705635002381,嫁给爱情,1 -1576374277730317,华熙哥,1 -1570521388208129,奔驰,1 -1612592462954628,阿雅,1 -1597785015461892,正念,1 -1589646750185480,济南美食,1 -1576102316028942,逆袭失败,1 -1571501579261953,黑洞,1 -1585840639121421,南方人北方人,1 -1672487422735374,全部都在那个地方,1 -1588140691710989,李子坝,1 -1645092854816772,新兵,1 -1586221525899278,屁,1 -1574142789132302,短视频,1 -1583368193224782,生活需要仪式感,1 -1677548036602887,军训高校大比舞,1 -1663489014576132,阿森编舞,1 -1609878026943502,胡慧中,1 -1590731539234836,驴,1 -1656860481080332,战胜疫情dou行动,1 -1659518605206536,网抑云,1 -1625275798564932,阿尔法脑波音乐,1 -1565892214407169,后来,1 -1589016552900616,中国人在非洲,1 -1672259762286606,发光的你与众不同,1 -1608857872691204,家暴,1 -1584485929434125,文艺复兴,1 -1584778872891405,悍匪,1 -1640300629399559,轻知识计划,1 -1659217199307787,原创者联盟,1 -1652266872296455,成龙,1 -1677959561693198,国庆大花篮预计9月25日亮相,1 -1615833098563741,酒驾,1 -1628266163326983,末代溥仪,1 -1579398594967662,农家小院,1 -1608222952512590,玉米地,1 -1586660674833518,刘邦,1 -1627798126772236,逃学英雄传,1 -1594433362720771,大山深处自然美,1 -1596051943036931,琉璃,1 -1591850792327197,莱昂纳多迪卡普里奥,1 -1592534297609224,giao,1 -1596540199302164,姜武,1 -1571245293514754,牛,1 -1644258138190862,鹤岗房子,1 -1644075797125134,网安山东,1 -1600312964157443,秦霄贤孙九香,1 -1552967203585026,00后,1 -1613411803136003,申请热门,1 -1579425824552974,农村人怎么了,1 -1608966790524932,持续关注持续精彩,1 -1648325059875851,不怕沙雕多就怕沙雕住一窝,1 -1571711435128833,情感电台,1 -1677612249109512,青春无限♾青春之旅美好生活,1 -1675474719632396,铁雨2首脑峰会,1 -1590979013152781,高空挑战,1 -1639829686000648,炮神,1 -1574083285259341,第一段,1 -1570980979267586,开心消消乐,1 -1580986833528846,变老,1 -1676446446547975,孙子大传,1 -1591013283480589,细节操作,1 -1677994182789127,成都软件园一盗贼专偷外卖冒菜,1 -1608870618100808,中国航天,1 -1565524068230145,美发教学,1 -1591499351969806,浴血黑帮,1 -1669219873756163,底盘铲地球,1 -1628918765741059,旅游,1 -1600604121323544,每日亲子陪伴,1 -1628804425315341,王牌特工特工学院,1 -1677801620133901,女生好s,1 -1585127360394381,大话西游之大圣娶亲,1 -1553606972212226,小可爱,1 -1629769441716232,胡教练,1 -1605932028987422,虎头蜂,1 -1633497633660941,反对家暴,1 -1600164474695684,逆缘,1 -1569782244524033,婚纱照,1 -1627275015135245,超自然事件之坠龙事件,1 -1668471474695243,宅间轻喜剧,1 -1623167611284643,恶魔蜘蛛王,1 -1577683473092622,新生儿,1 -1583589310753806,抢车位,1 -1614726028664840,八佰,1 -1594929080971268,焊工,1 -1642665199412238,小欢喜2,1 -1677448679876620,送到女儿学校,1 -1653695079982092,duo小助手,1 -1665901656861709,男科医生,1 -1655951003594766,2020dou上热门,1 -1651350737173508,明星怼人合集,1 -1571082277522434,坑娃,1 -1588537977068552,痛风,1 -1673565308310536,乡村新景象,1 -1574954750868494,网瘾少年,1 -1677997772205069,穗禾锦觅开战,1 -1591210331884551,养猪人,1 -1563668798581762,男朋友,1 -1585676977298510,室友日常,1 -1622457289260039,天才枪手,1 -1555878998362113,巴啦啦小魔仙,1 -1603543547993101,湖南沅江,1 -1584493793569869,英超,1 -1618115996383236,秋梨膏,1 -1557493523404802,推荐,1 -1590727328633869,抖瓜小助,1 -1572190925510669,骗子,1 -1675551209467916,我和我的家乡味,1 -1663359081850888,伟壹,1 -1585013108852813,谁是卧底,1 -1642978158987272,带孩子太难了,1 -1607940554062852,母婴店,1 -1677422862199821,传统古井烧猪,1 -1663659493911563,小姐姐,1 -1665940721062926,r法催眠,1 -1677704248546312,347国道发生大面积山体垮塌,1 -1564190844956674,男装,1 -1587900223097869,蜜雪冰城,1 -1607764214653959,危险动作请勿模仿,1 -1645997237147659,男科,1 -1671424452809741,李有财造飞机,1 -1581202617364493,五菱之光,1 -1580116381965325,城市建设,1 -1635700626272264,亲爱的热爱的,1 -1652260536571911,轩辕大帝,1 -1565705888506882,你是风儿我是沙,1 -1601051713037326,派出所,1 -1566926248364034,美食分享,1 -1659513056397320,百亿好剧,1 -1578664801646622,月饼,1 -1614116465033357,猫鼠游戏,1 -1608401017931789,冰天雪地任我行,1 -1560535746018306,老师,1 -1565553933189122,深圳,1 -1677970801234957,小鬼黄鸿升去世原因公布,1 -1622354945002499,赵亮,1 -1636325168600068,工业机械,1 -1608703107038221,胸肌训练,1 -1613644615706632,爱商,1 -1583122900064270,任达华,1 -1582284554587150,奔跑的少年,1 -1656436228311047,小宝茶,1 -1613770438473735,老房改造,1 -1611423829680131,台海,1 -1657017434406925,张定宇,1 -1568980017052674,小猫咪,1 -1588202363174926,甜剧,1 -1583121307960334,重男轻女,1 -1658678512169991,抖瓜好货推荐给你,1 -1620202558885892,李幼斌,1 -1561383677659138,画,1 -1572558994881549,抖瓜游戏,1 -1597624168204291,电影推荐,1 -1677892094793741,2020年只剩3个月了,1 -1579656970466318,雪景,1 -1583592099941389,报恩,1 -1586303608551501,胖子都是潜力股,1 -1613852073929731,爱情婚姻家庭,1 -1644541644214286,911事件,1 -1677426437089292,吉林复读生为凑学费偷电瓶,1 -1648371942519816,圣殇,1 -1575983798856733,高速,1 -1587498228710414,跳舞使我快乐,1 -1677535476530248,911事件19周年旧址点亮光柱,1 -1588584855328782,红旗,1 -1591380902636552,汤唯,1 -1678001781079053,11岁骑车女生被人恶意拉倒,1 -1562187648336897,男士发型,1 -1666189726534663,魔幻剧场,1 -1674622886439943,王牌主播请出战,1 -1677144000920589,笑容丝滑愉悦开挂,1 -1576155270937645,模拟游戏,1 -1663853183150092,小影夫妇,1 -1588486474216455,国产神剧,1 -1618895028044803,养父母,1 -1564252858121218,模仿,1 -1573548836325390,狂欢,1 -1646884809810948,最强蜗牛,1 -1668279142359048,李泰林,1 -1677908858535943,加优跨次元歌者,1 -1641649362983944,婚姻爱情保卫战,1 -1577070421094413,赵奕欢,1 -1677816329351176,我喜欢你订档,1 -1677160007808011,派出所蹲点,1 -1623998763217927,抗战神剧,1 -1580905686601741,大火,1 -1585840279782414,梅艳芳,1 -1677862456652807,韩国女星吴仁惠去世,1 -1586226599503965,康熙微服私访记,1 -1573054489165838,感悟,1 -1563226140259329,热门音乐,1 -1677323659416589,我二兄弟也来跟个风,1 -1582299757202509,神雕侠侣,1 -1596969382013960,秦海璐,1 -1610841088134148,婴儿成长,1 -1677705427025933,总裁崩溃,1 -1594627956941831,武松,1 -1617178489624583,巴布豆童鞋,1 -1677789567607821,菅义伟,1 -1591111607478302,中年,1 -1571738776766466,纽约,1 -1567482989331458,每天一笑,1 -1657497641070595,新冠肺炎疫情,1 -1600236256103431,核爆,1 -1587920809401421,洗浴中心,1 -1619277860613197,智勋,1 -1623971651070990,记录我的农村生活,1 -1611773240568840,沙雕闺蜜,1 -1584324669784078,推理,1 -1580696632184861,孝心,1 -1600246427211779,功能沙发,1 -1563738987591682,北京,1 -1591025235673092,郭麒麟,1 -1581320898713645,肚子,1 -1570426482584578,好友,1 -1600131351015427,争执,1 -1566087130744833,造型,1 -1566395514126354,大学宿舍,1 -1578084874670093,中国历史,1 -1567277130726402,童年回忆,1 -1607467553843268,老师想你了,1 -1603256533442573,纹身师,1 -1579796389787661,发饰,1 -1674810012655623,急诊花帽小护士,1 -1555403246990338,双胞胎,1 -1575985882266654,黄渤,1 -1676692906416135,自热小火锅就吃自嗨锅,1 -1612138665803815,普法小剧场,1 -1661132764788748,陕西吃啥,1 -1576794974985229,一年级,1 -1600979165590599,纹身刺青,1 -1611819994148867,左下角,1 -1569612383333377,螃蟹,1 -1585773422203917,眼光,1 -1593360069113863,微胖女生,1 -1582287894079502,最可爱的人,1 -1565826299223042,桃总,1 -1675859474872332,每日精选好剧,1 -1565366135950338,我要上推荐,1 -1561584511636481,武汉,1 -1553120460998657,可爱,1 -1637739690380292,谦酒,1 -1582310445641741,牙齿,1 -1576734679761934,好兄弟,1 -1623836144134151,捐献,1 -1597903469607971,杨紫李现,1 -1564355286200321,victory,1 -1573873261129741,甜品,1 -1640395304947723,撞邪先生,1 -1638734146822148,最美女兵,1 -1591122149099528,你猜不到的结局,1 -1607799206402056,太古里街拍,1 -1564001790576642,神奇的肚子,1 -1677268298126344,领导护犊子是什么体验,1 -1571517182097410,碰瓷,1 -1609469406354567,唐老师日常,1 -1593647413242887,徒手掰苹果挑战,1 -1567822906610690,上海迪士尼,1 -1614395633233928,患者,1 -1593351384951815,好看的电视剧,1 -1582470770924558,大鹏,1 -1616526307560536,雷神电脑,1 -1622630551428104,姜贞羽,1 -1628892655780877,代号生机,1 -1597197008174094,成年人的世界,1 -1573897210178574,洪崖洞,1 -1588270668149763,年龄差,1 -1674700166464516,广西新闻早知道,1 -1552386123095041,吴亦凡,1 -1623175739432967,这条街最亮的仔,1 -1577837655597070,考驾照,1 -1611309589793860,成功学,1 -1569810761985025,伞,1 -1598130235290638,农忙季节,1 -1575074513291277,育儿,1 -1580420785864797,婆婆,1 -1574231426382862,脱单,1 -1649547991217160,测评打假,1 -1568886956459010,烤肉,1 -1676784772459532,玩转好声音,1 -1628665998113800,倚天屠龙记_,1 -1594195711440903,苗侨伟,1 -1606928965228548,别屏蔽,1 -1656666038590475,荒野求生第三季,1 -1625430245483523,下雪就得这样玩,1 -1662831692030980,影视风云,1 -1615008005051406,全世界最可爱的噗噗,1 -1578422296238094,活佛济公,1 -1557054362274818,段子,1 -1603498176704516,张小龙,1 -1606770143682579,和睦家庭,1 -1586854430479374,搞笑大师,1 -1569317660421121,文明出行,1 -1677893107969032,抖in北京#抖incity美好生活节,1 -1554119263548418,刷牙,1 -1602335893123080,打黑,1 -1583314560927757,青丘狐传说,1 -1588467836491779,武动乾坤,1 -1598834307560461,兴化,1 -1615351904830488,玉石,1 -1631236218335236,一车一江湖,1 -1651083148338190,命案十三宗,1 -1614949987486724,汽车文化,1 -1556856443091969,周杰伦,1 -1574174143975437,奥迪,1 -1644033553605646,每一帧都是热爱,1 -1574070346729550,好物推荐,1 -1638374406601739,利刃出鞘,1 -1654583391575051,品鉴彭州,1 -1568968940120066,儿童,1 -1677812835643406,电子科技大学开学典礼,1 -1617538819795975,天堂回信,1 -1587392320444429,娘家,1 -1605527650724888,记录宝宝成长的每一天,1 -1675423522696205,郭论谦道花式开箱,1 -1596912499578903,名场面,1 -1675898188874755,参加献x活动,1 -1606162495645700,梳头姐弟,1 -1582301101844494,军舰岛,1 -1668291124803591,云上科普日,1 -1574626737582125,单身的原因,1 -1589412185820173,独生子女,1 -1564299357263873,外卖,1 -1666438297361416,吴中天,1 -1611725973256206,长安诺,1 -1639761233340427,知识充电站,1 -1677328466790414,美味卷排骨,1 -1572339587976205,摄影师,1 -1591711534215176,韩剧推荐,1 -1570750369816578,家乡,1 -1640994071284739,军事,1 -1574272490583069,按摩,1 -1581492753429517,姚明,1 -1629134389170188,童鞋厂家,1 -1583106210907150,素质,1 -1580315652631566,军训时光,1 -1566722653623298,拍戏,1 -1571257555315714,老九门,1 -1568611992448002,精灵宝可梦,1 -1587746734672910,伍佰,1 -1595993623472136,鹿晗邓超,1 -1567098492881922,真爱,1 -1585015473368077,挽回,1 -1604354969179143,大学开学,1 -1667851982065672,斗破乱世情,1 -1604260854383629,王耀庆,1 -1592304500408334,袁隆平,1 -1575074180823053,矮脚猫,1 -1550769196968961,尴尬,1 -1625613090686987,感谢抖瓜我要热门,1 -1647456595878919,创作人计划,1 -1654891320307720,皮卡大叔,1 -1565910651251713,我的世界,1 -1596008877671437,女儿是爸爸的小棉袄,1 -1650603431386119,殴打,1 -1563656529006593,岳云鹏,1 -1583042891615246,乔欣,1 -1564937801376834,衣服,1 -1668573286215687,无用的知识,1 -1601145958245379,钓鱼那些事,1 -1579264536548366,拯救不开心,1 -1674074185015310,安徽观察,1 -1575780116911118,创意diy,1 -1668662691087373,花西子蚕丝蜜粉饼,1 -1625992682089475,当下热门话题,1 -1573372737495054,来了,1 -1587732686155821,郑秀文,1 -1677155037307907,圣罗兰黑白无界,1 -1580977453876237,林正英,1 -1603942096703501,晴雨两用伞,1 -1572529934098445,珍爱生命,1 -1612731880805390,广西土猎,1 -1635030668863501,建设美好生活ing,1 -1566293521774658,迪丽热巴,1 -1630040738892814,抖瓜大大给个热门吧,1 -1657940070453256,喂鸡神器,1 -1586595426017294,头条,1 -1583555778716686,辽宁,1 -1677699250549790,伍佰坐轮椅开唱,1 -1608665399364686,身材好就是好,1 -1621353881698333,钞能力,1 -1575705125389326,美人,1 -1652806277463044,远离家暴男,1 -1619008421086211,爆炸,1 -1585547389384717,现场直播,1 -1570370216534018,等着你,1 -1579060689456206,改编音乐,1 -1595153349741572,静安寺,1 -1677371187758094,李有财农具,1 -1618746894366724,网恋奔现,1 -1629481541809166,d位出道,1 -1670365038337031,李响传媒,1 -1677631913847811,无心街坊,1 -1626680443255819,大头biubiubiu,1 -1576885881009181,我想上推荐,1 -1677532093074436,冠军陈更单挑四个小学生,1 -1602244482891783,法医,1 -1653962626043912,我的养龟日记,1 -1677506828729351,懂车的小同学,1 -1674150487094296,电视剧琉璃,1 -1602775492824094,居家好物,1 -1574533455391758,水浒传,1 -1661672750623752,精神过头,1 -1677264336503812,孙弈秋郝帅天台打架,1 -1580667354053645,不能说的秘密,1 -1677371056041991,割玉米专用,1 -1579578896252941,过把瘾,1 -1665194959381511,把你宠在手心,1 -1573171437990925,名人,1 -1582961471341581,超模,1 -1629946584029187,nba季后赛,1 -1596686386095134,文森特,1 -1674092342988814,资本市场三十年,1 -1576053374275614,鲁班锁,1 -1594197527162887,感谢关注,1 -1581157635157005,倪妮,1 -1612502240242695,急诊护士,1 -1677981362427912,七开头的车太牛逼,1 -1595353735032856,台湾人,1 -1586288937230350,乡村美食,1 -1603596646665224,北京卫视,1 -1582400515252238,奚梦瑶,1 -1672198277140488,今晚看点啥,1 -1630183793301517,jnk,1 -1583078861298701,私人飞机,1 -1582100926906381,趣味,1 -1677445463048196,我的盟友你是谁,1 -1677789580033038,男子当众抢夺女童被饭店老板制服,1 -1638734089995268,古丽讲西部,1 -1603758796182600,汽车知识,1 -1573726718016526,兜风,1 -1590339862235207,钢结构,1 -1583552725006349,杜高犬,1 -1596953771948039,楚汉传奇,1 -1633045749074955,千里马遇伯乐,1 -1626610456773644,dou小助手,1 -1564599163399170,tattoo,1 -1656940481593357,疫情快报,1 -1571970061487122,神秘博士,1 -1570876411961346,甘肃,1 -1590235339528195,沙溢,1 -1567110187537410,怀旧经典,1 -1620456395930637,虎子哥,1 -1583324255251550,宁静,1 -1610947503030286,李兆基,1 -1572672048495630,农村老家,1 -1554229606605825,新人报道,1 -1625725053004808,熬夜,1 -1677409754578958,这样装没问题👌,1 -1634771076474888,护童联盟,1 -1592007484804100,肩周炎,1 -1589204573906967,养猪,1 -1673993665429511,团圆直播认亲,1 -1567359097185282,奶茶,1 -1583866543616014,屋顶,1 -1582935166874637,包工头,1 -1677911863907335,女子与丈夫吵架后离家失联,1 -1583125640459278,六胞胎,1 -1576230229140494,牛排,1 -1579560185909262,十一,1 -1588226722494494,石油,1 -1675252747844615,脸部变焦,1 -1584737689437198,带鱼,1 -1677730967865351,天天向上金靖,1 -1576032843484238,魏大勋,1 -1572818441355277,暖心,1 -1565827666711553,抓鱼,1 -1603114144781326,打针不哭,1 -1663964234839047,小伙子全程蒙圈状态,1 -1656138914810894,江玉郎,1 -1666642550330371,妻子不忠,1 -1641292794003468,今日迷惑行为,1 -1562308352218113,90后,1 -1615377490839636,养猪技术,1 -1676277948057613,电影死无对证,1 -1676326998159374,兰蔻888,1 -1611766356087812,crc,1 -1677970726907975,杨丞琳演唱邀请初恋小鬼泪奔,1 -1582117337036813,多年以后,1 -1582680000508942,作文,1 -1675791473436686,黎明觉醒,1 -1649290830526477,阳光抑郁,1 -1677859979017230,男子南京地铁喝奶茶被逮罚款,1 -1676818157004808,俪刻报导,1 -1570269194376193,爱心传递,1 -1612035551475783,江别鹤,1 -1630954077332484,无痕挂钩,1 -1590843170959380,云南普洱,1 -1571365172981761,报复,1 -1649018213993480,黑帮,1 -1595303061068813,王雷,1 -1677426581310471,19岁女孩借用药店厕所产子后偷跑,1 -1647366104359940,正能量短剧,1 -1603867167899652,不信谣不传谣,1 -1609947391179779,五粮液,1 -1575122910910477,王者荣耀搞笑,1 -1567504523721730,抖瓜美食,1 -1586021697673246,李嘉诚,1 -1677441136969742,我是人生新赢家,1 -1677683166642183,网传王俊凯来西华师范大学取景为谣言,1 -1553176036452354,化妆,1 -1611540678391821,记录校园生活,1 -1581468789318733,赵文卓,1 -1609242987886600,自媒体,1 -1585056847792142,秦霄贤,1 -1575497571625998,刘海,1 -1587187404584973,老赖,1 -1588557253603336,校车,1 -1634427957744644,抖瓜影视,1 -1649502075568141,误解我的意思,1 -1572532745178125,兰州,1 -1591848005540872,赵吏,1 -1600583721151492,吐真言,1 -1571731724761106,对战,1 -1606857999469639,神龙,1 -1610299073547268,血缘亲情,1 -1576684194532365,致敬,1 -1677241132834894,单身变化,1 -1572894336425998,新手驾到,1 -1575689452850190,秋天,1 -1607780997494797,邂逅女神,1 -1572904750305309,感情,1 -1563285703795713,宝妈,1 -1672923681632269,好奇心是什么,1 -1608866527413255,😂🤣,1 -1627018310662157,沈丹萍,1 -1589534989940776,朱一龙,1 -1592011147801608,香菜,1 -1587260228129805,上,1 -1633853203434510,土妹说电影,1 -1615719514403869,执行现场,1 -1652529684050967,阿里巴巴,1 -1665133165797389,里约奥运,1 -1575031327289357,麦当劳,1 -1562659971632130,帅哥,1 -1586635829855245,早会,1 -1621537261566983,头饰搭配,1 -1635686398099469,你在教我做事啊,1 -1650276266802184,爱生闷气,1 -1583652084919373,中国美食,1 -1594380541188164,纹身师日常,1 -1656936505681931,全国疫情最新通报,1 -1677079501729799,遇见巨石山见证520,1 -1644466765969421,中秋国庆动起来,1 -1570380686643201,种草,1 -1661023252035596,蜘蛛侠,1 -1576057339427918,充电,1 -1576599103053838,绿皮火车,1 -1616589197477901,如何让你爱的人爱上你,1 -1642367782794252,我的探店日记,1 -1592114528603140,骑手,1 -1582948125154317,语言,1 -1676898004931597,我心中的月饼top1,1 -1573980388752398,生活不易,1 -1622590901641224,第10集,1 -1622812999432205,妹妹你等着我,1 -1677445474783240,河南jian男团,1 -1601452910997518,影帝段奕宏,1 -1572012105032706,灾难,1 -1630344327192579,宿舍变装,1 -1572085492279298,悲催,1 -1676995858807811,口字旁的当消失了,1 -1598623471963143,高清,1 -1660372489717774,感谢抖瓜平台的一路支持,1 -1615706017723400,拆弹英雄,1 -1618107745817614,黄鱼,1 -1597533070121987,谁是鬼,1 -1592918058684436,小s,1 -1581338596924430,香蜜沉沉烬如霜,1 -1677430977505292,高墙里走出来的大学生,1 -1561677045836801,麻将,1 -1583598730353694,校园好声音,2 -1573076419543053,青春校园,1 -1666212372285447,民间故事说,1 -1669082564790283,安阳273,1 -1586380122194957,食品安全,1 -1677604178514952,浙大最佛系家长,1 -1568196358983682,写字,1 -1591723256443924,超体,1 -1600626328822792,沈梦辰,1 -1580308223800333,冰糖雪梨,1 -1563710558527490,微胖,1 -1563126951487489,发型就这么简单,1 -1589456685673475,施工,1 -1598169755822093,周梓倩,1 -1591097903580168,先结婚后恋爱,1 -1608846127610893,nba,1 -1576352299030541,亲子,1 -1608683428727815,大热门,1 -1614220125652999,uzi,1 -1648722275350535,跟我来看剧,1 -1588715443011587,搞笑歌曲,1 -1621754995764238,四川麻将血战到底,1 -1597227267957783,特色餐饮,1 -1569251926241282,电脑,1 -1647804291080199,比弟弟大10岁,1 -1592701005310989,思维,1 -1623187224165384,闺蜜搞笑,1 -1577342499185694,开学第一课,1 -1585897578060813,努力吧少年,1 -1619816068944909,卖珠宝的小姐姐,1 -1619699321325571,钳工实训,1 -1587457214674974,猪八戒,1 -1562301547590657,赵四,1 -1563399523907586,键盘侠,1 -1570446567384066,伊藤润二,1 -1630576979218445,抖incity美好生活节,1 -1591935013554196,傅程鹏,1 -1579579593880686,搞笑电影,2 -1586766198925389,卡车司机,1 -1617624770835475,三桥贵志,1 -1582795657387021,80,1 -1564029042164738,爱情恰恰舞,3 -1595900923723800,改词大神,1 -1588018514435085,软萌,1 -1677497281857540,女子复盘泰国遭丈夫推下悬崖,1 -1572588356980749,怪兽,1 -1674374137592844,挑战面不改色挑战面不改色是的,2 -1649662668986382,一二三,1 - -`, - input: '帮我展示不同挑战关键词的热度' -}; - -/* - **动态条形图 - */ - -export const mockUserInput7 = { - csv: `type,country,value -Nail polish,Africa,4229 -Nail polish,EU,4376 -Nail polish,China,3054 -Nail polish,USA,12814 -Eyebrow pencil,Africa,3932 -Eyebrow pencil,EU,3987 -Eyebrow pencil,China,5067 -Eyebrow pencil,USA,13012 -Rouge,Africa,5221 -Rouge,EU,3574 -Rouge,China,7004 -Rouge,USA,11624 -Lipstick,Africa,9256 -Lipstick,EU,4376 -Lipstick,China,9054 -Lipstick,USA,8814 -Eyeshadows,Africa,3308 -Eyeshadows,EU,4572 -Eyeshadows,China,12043 -Eyeshadows,USA,12998 -Eyeliner,Africa,5432 -Eyeliner,EU,3417 -Eyeliner,China,15067 -Eyeliner,USA,12321 -Foundation,Africa,13701 -Foundation,EU,5231 -Foundation,China,10119 -Foundation,USA,10342 -Lip gloss,Africa,4008 -Lip gloss,EU,4572 -Lip gloss,China,12043 -Lip gloss,USA,22998 -Mascara,Africa,18712 -Mascara,EU,6134 -Mascara,China,10419 -Mascara,USA,11261`, - input: '帮我生成折线图,种类做x轴,彩虹风格,时长10s' -}; - -/** - * 漏斗图 - */ -export const mockUserInput9 = { - csv: `流程,转化率,Month -Step1,100,1 -Step2,80,1 -Step3,60,1 -Step4,40,1`, - input: '展示各个流程转化率' -}; - -/** - * 双轴图 - */ -export const mockUserInput11 = { - csv: `时间,男-早餐,女-早餐 -周一,15,22 -周二,12,10 -周三,15,20 -周四,10,12 -周五,13,15 -周六,10,15 -周日,12,14`, - input: '展示男女早餐饭量不同' -}; - -/** - * 瀑布图 - */ -export const mockUserInput12 = { - csv: `date,sales -Feb.11,5 -Feb.20,2 -Feb.25,-2 -Mar.4,2 -Mar.11,2 -Mar.19,5 -Mar.26,1 -Apr.1,1 -Apr.8,1 -Apr.15,2 -Apr.22,1 -Apr.29,-2 -May.6,-1 -`, - input: '使用瀑布图展示销量变化' -}; - -/** - * 玫瑰图 - */ -export const mockUserInput13 = { - csv: `品牌名称,市场份额,平均价格,净利润 -Apple,0.5,7068,314531 -Samsung,0.2,6059,362345 -Vivo,0.05,3406,234512 -Nokia,0.01,1064,-1345 -Xiaomi,0.1,4087,131345 -`, - input: '使用玫瑰图展示各品牌市场占有率' -}; - -/** - * 雷达图 - */ -export const mockUserInput14 = { - csv: `dimension,performance -Strength,5 -Speed,5 -Shooting,3 -Endurance,5 -Precision,5 -Growth,5`, - input: '帮我展示这个人在不同方面的绩效,他是否是六边形战士' -}; - -/** - * 桑基图 - */ -export const mockUserInput15 = { - csv: `始发地,终点站,value -Node A,Node 1,10 -Node A,Node 2,5 -Node B,Node 2,8 -Node B,Node 3,2 -Node C,Node 2,4 -Node A,Node C,2 -Node C,Node 1,2 - `, - input: '展示数据流动' -}; -/* - * 箱型图 - */ -export const mockUserInput16 = { - csv: `分类,最小值,下四分位数,中位数,上四分位数,最大值 -Sub-Saharan Africa,8.72,9.73,10.17,10.51,11.64 -South Asia,9.4,10.06,10.75,11.56,12.5 -Middle East & North Africa,9.54,10.6,11.05,11.5,11.92 -Latin America & Caribbean,8.74,9.46,10.35,10.94,12.21 -East Asia & Pacific,7.8,8.95,10.18,11.57,13.25 -Europe & Central Asia,9.52,10.39,10.93,11.69,12.63`, - input: '看下各类别数值分布' -}; - -/* - * multi-measure - */ -export const mockUserInput17 = { - csv: `date,ctr,libra_ab_vid,gmv,detection_uv,User,user_count,gpm,ctcvr,version_id,co -2024-03-05,0.024752458745543306,-1,27.05042746931187,683740,31135119,683740,0.0028542157856540976,0.00011098365108464276,-1,0.01765408108609234 -2024-03-06,0.025529744509421266,-1,26.0184806658061,666756,30057727,666756,0.0029282343207837846,0.00011602865071429876,-1,0.018457400571758008 -2024-03-07,0.024929771518461413,-1,26.099474885828787,653568,25685979,653568,0.00305250127580487,0.00012037169363684177,-1,0.019630556105233156`, - input: '使用折线图展示' -}; - -export const mockUserInput18 = { - csv: `Jira Key,Planned BP,Count -JIRA-27358,BP1.4.1,1 -JIRA-27356,BP1.4.1,1 -JIRA-27350,BP1.5.0,1 -JIRA-27349,BP1.4.1,1 -JIRA-27348,BP1.4.1,1 -JIRA-27347,BP1.4.1,1 -JIRA-27344,BP1.5.0,1 -JIRA-27343,BP1.4.1,1 -JIRA-27339,BP1.4.1,1 -JIRA-27338,BP1.4.1,1 -JIRA-27336,BP1.4.1,1 -JIRA-27335,BP1.4.1,1 -JIRA-27334,BP1.4.1,1 -JIRA-27333,BP1.5.0,1 -JIRA-27331,BP1.4.1,1 -JIRA-27330,BP1.4.1,1 -JIRA-27322,BP1.4.1,1 -JIRA-27321,BP1.4.1,1 -JIRA-27320,BP1.4.0,1 -JIRA-27319,BP1.4.0,1 -JIRA-27316,BP1.4.0,1 -JIRA-27315,BP1.4.1,1 -JIRA-27314,BP1.5.0,1 -JIRA-27311,BP1.4.1,1 -JIRA-27310,BP1.4.1,1 -JIRA-27309,BP1.4.1,1 -JIRA-27308,BP1.4.1,1 -JIRA-27307,BP1.4.1,1 -JIRA-27306,BP1.4.1,1 -JIRA-27305,BP1.4.1,1 -JIRA-27304,BP1.4.1,1 -JIRA-27303,BP1.4.1,1 -JIRA-27302,BP1.4.1,1 -JIRA-27301,BP1.4.1,1 -JIRA-27300,BP1.4.1,1 -JIRA-27299,BP1.4.1,1 -JIRA-27297,BP1.4.1,1 -JIRA-27296,BP1.4.1,1 -JIRA-27295,BP1.4.1,1 -JIRA-27294,BP1.4.1,1 -JIRA-27293,BP1.4.1,1 -JIRA-27292,BP1.4.1,1 -JIRA-27291,BP1.4.1,1 -JIRA-27290,BP1.5.0,1 -JIRA-27289,BP1.4.1,1 -JIRA-27281,BP1.4.1,1 -JIRA-27279,BP1.4.0,1 -JIRA-27278,BP1.4.1,1 -JIRA-27277,BP1.4.0,1 -JIRA-27276,BP1.4.0,1`, - input: '按照bp分类统计count之和,绘制柱状堆叠图' -}; - -export const SalesRecordsData = { - csv: `Region,Country,Item Type,Sales Channel,Order Priority,Order Date,Order ID,Ship Date,Units Sold,Unit Price,Unit Cost,Total Revenue,Total Cost,Total Profit -Middle East and North Africa,Libya,Cosmetics,Offline,M,10/18/2014,686800706,10/31/2014,8446,437.20,263.33,3692591.20,2224085.18,1468506.02 -North America,Canada,Vegetables,Online,M,11/7/2011,185941302,12/8/2011,3018,154.06,90.93,464953.08,274426.74,190526.34 -Middle East and North Africa,Libya,Baby Food,Offline,C,10/31/2016,246222341,12/9/2016,1517,255.28,159.42,387259.76,241840.14,145419.62 -Asia,Japan,Cereal,Offline,C,4/10/2010,161442649,5/12/2010,3322,205.70,117.11,683335.40,389039.42,294295.98 -Sub-Saharan Africa,Chad,Fruits,Offline,H,8/16/2011,645713555,8/31/2011,9845,9.33,6.92,91853.85,68127.40,23726.45 -Europe,Armenia,Cereal,Online,H,11/24/2014,683458888,12/28/2014,9528,205.70,117.11,1959909.60,1115824.08,844085.52 -Sub-Saharan Africa,Eritrea,Cereal,Online,H,3/4/2015,679414975,4/17/2015,2844,205.70,117.11,585010.80,333060.84,251949.96 -Europe,Montenegro,Clothes,Offline,M,5/17/2012,208630645,6/28/2012,7299,109.28,35.84,797634.72,261596.16,536038.56 -Central America and the Caribbean,Jamaica,Vegetables,Online,H,1/29/2015,266467225,3/7/2015,2428,154.06,90.93,374057.68,220778.04,153279.64 -Australia and Oceania,Fiji,Vegetables,Offline,H,12/24/2013,118598544,1/19/2014,4800,154.06,90.93,739488.00,436464.00,303024.00 -Sub-Saharan Africa,Togo,Clothes,Online,M,12/29/2015,451010930,1/19/2016,3012,109.28,35.84,329151.36,107950.08,221201.28 -Europe,Montenegro,Snacks,Offline,M,2/27/2010,220003211,3/18/2010,2694,152.58,97.44,411050.52,262503.36,148547.16 -Europe,Greece,Household,Online,C,11/17/2016,702186715,12/22/2016,1508,668.27,502.54,1007751.16,757830.32,249920.84 -Sub-Saharan Africa,Sudan,Cosmetics,Online,C,12/20/2015,544485270,1/5/2016,4146,437.20,263.33,1812631.20,1091766.18,720865.02 -Asia,Maldives,Fruits,Offline,L,1/8/2011,714135205,2/6/2011,7332,9.33,6.92,68407.56,50737.44,17670.12 -Europe,Montenegro,Clothes,Offline,H,6/28/2010,448685348,7/22/2010,4820,109.28,35.84,526729.60,172748.80,353980.80 -Europe,Estonia,Office Supplies,Online,H,4/25/2016,405997025,5/12/2016,2397,651.21,524.96,1560950.37,1258329.12,302621.25 -North America,Greenland,Beverages,Online,M,7/27/2012,414244067,8/7/2012,2880,47.45,31.79,136656.00,91555.20,45100.80 -Sub-Saharan Africa,Cape Verde,Clothes,Online,C,9/8/2014,821912801,10/3/2014,1117,109.28,35.84,122065.76,40033.28,82032.48 -Sub-Saharan Africa,Senegal,Household,Offline,L,8/27/2012,247802054,9/8/2012,8989,668.27,502.54,6007079.03,4517332.06,1489746.97 -Australia and Oceania,Federated States of Micronesia,Snacks,Online,C,9/3/2012,531023156,10/15/2012,407,152.58,97.44,62100.06,39658.08,22441.98 -Europe,Bulgaria,Clothes,Online,L,8/27/2010,880999934,9/16/2010,6313,109.28,35.84,689884.64,226257.92,463626.72 -Middle East and North Africa,Algeria,Personal Care,Online,H,2/20/2011,127468717,3/9/2011,9681,81.73,56.67,791228.13,548622.27,242605.86 -Asia,Mongolia,Clothes,Online,L,12/12/2015,770478332,1/24/2016,515,109.28,35.84,56279.20,18457.60,37821.60 -Central America and the Caribbean,Grenada,Cereal,Online,H,10/28/2012,430390107,11/13/2012,852,205.70,117.11,175256.40,99777.72,75478.68 -Central America and the Caribbean,Grenada,Beverages,Online,M,1/30/2017,397877871,3/20/2017,9759,47.45,31.79,463064.55,310238.61,152825.94 -Sub-Saharan Africa,Senegal,Beverages,Offline,M,10/22/2014,683927953,11/4/2014,8334,47.45,31.79,395448.30,264937.86,130510.44 -North America,Greenland,Fruits,Offline,M,1/31/2012,469839179,2/22/2012,4709,9.33,6.92,43934.97,32586.28,11348.69 -Sub-Saharan Africa,Chad,Meat,Offline,H,1/20/2016,357222878,3/9/2016,9043,421.89,364.69,3815151.27,3297891.67,517259.60 -Sub-Saharan Africa,Mauritius ,Personal Care,Online,C,1/1/2016,118002879,1/7/2016,8529,81.73,56.67,697075.17,483338.43,213736.74 -Middle East and North Africa,Morocco,Beverages,Offline,C,6/1/2017,944415509,6/23/2017,2391,47.45,31.79,113452.95,76009.89,37443.06 -Central America and the Caribbean,Honduras,Office Supplies,Online,H,6/30/2015,499009597,7/9/2015,6884,651.21,524.96,4482929.64,3613824.64,869105.00 -Sub-Saharan Africa,Benin,Fruits,Online,L,1/28/2014,564646470,3/16/2014,293,9.33,6.92,2733.69,2027.56,706.13 -Europe,Greece,Baby Food,Offline,M,4/8/2014,294499957,4/8/2014,7937,255.28,159.42,2026157.36,1265316.54,760840.82 -Central America and the Caribbean,Jamaica,Beverages,Offline,L,9/4/2010,262056386,10/24/2010,7163,47.45,31.79,339884.35,227711.77,112172.58 -Sub-Saharan Africa,Equatorial Guinea,Office Supplies,Online,M,5/2/2010,211114585,5/14/2010,2352,651.21,524.96,1531645.92,1234705.92,296940.00 -Sub-Saharan Africa,Swaziland,Office Supplies,Offline,H,10/3/2013,405785882,10/22/2013,9915,651.21,524.96,6456747.15,5204978.40,1251768.75 -Central America and the Caribbean,Trinidad and Tobago,Vegetables,Offline,M,3/6/2011,280494105,4/14/2011,3294,154.06,90.93,507473.64,299523.42,207950.22 -Europe,Sweden,Baby Food,Online,L,8/7/2016,689975583,8/12/2016,7963,255.28,159.42,2032794.64,1269461.46,763333.18 -Europe,Belarus,Office Supplies,Online,L,1/11/2011,759279143,2/18/2011,6426,651.21,524.96,4184675.46,3373392.96,811282.50 -Sub-Saharan Africa,Guinea-Bissau,Office Supplies,Offline,C,5/21/2014,133766114,6/12/2014,3221,651.21,524.96,2097547.41,1690896.16,406651.25 -Asia,Mongolia,Beverages,Online,M,8/3/2013,329110324,9/2/2013,9913,47.45,31.79,470371.85,315134.27,155237.58 -Middle East and North Africa,Turkey,Meat,Online,L,10/5/2011,681298100,11/20/2011,103,421.89,364.69,43454.67,37563.07,5891.60 -Sub-Saharan Africa,Central African Republic,Snacks,Offline,L,11/15/2016,596628272,12/30/2016,4419,152.58,97.44,674251.02,430587.36,243663.66 -Sub-Saharan Africa,Equatorial Guinea,Office Supplies,Offline,L,4/3/2015,901712167,4/17/2015,5523,651.21,524.96,3596632.83,2899354.08,697278.75 -Asia,Laos,Beverages,Online,M,3/22/2013,693473613,4/21/2013,3107,47.45,31.79,147427.15,98771.53,48655.62 -Europe,Armenia,Meat,Online,C,8/2/2010,489148938,9/1/2010,8896,421.89,364.69,3753133.44,3244282.24,508851.20 -Europe,Greece,Household,Online,L,1/5/2012,876286971,2/15/2012,1643,668.27,502.54,1097967.61,825673.22,272294.39 -Middle East and North Africa,Israel,Personal Care,Offline,H,8/26/2015,262749040,8/30/2015,2135,81.73,56.67,174493.55,120990.45,53503.10 -Asia,Bhutan,Meat,Online,H,12/9/2016,726708972,1/26/2017,8189,421.89,364.69,3454857.21,2986446.41,468410.80 -Australia and Oceania,Vanuatu,Vegetables,Online,L,5/17/2012,366653096,5/31/2012,9654,154.06,90.93,1487295.24,877838.22,609457.02 -Sub-Saharan Africa,Burundi,Vegetables,Online,M,11/17/2010,951380240,12/20/2010,3410,154.06,90.93,525344.60,310071.30,215273.30 -Europe,Ukraine,Cosmetics,Online,M,11/13/2014,270001733,1/1/2015,8368,437.20,263.33,3658489.60,2203545.44,1454944.16 -Europe,Croatia,Beverages,Online,C,6/16/2016,681941401,7/28/2016,470,47.45,31.79,22301.50,14941.30,7360.20 -Sub-Saharan Africa,Madagascar,Fruits,Online,L,5/31/2016,566935575,6/7/2016,7690,9.33,6.92,71747.70,53214.80,18532.90 -Asia,Malaysia,Snacks,Offline,M,10/6/2012,175033080,11/5/2012,5033,152.58,97.44,767935.14,490415.52,277519.62 -Asia,Uzbekistan,Office Supplies,Offline,L,3/10/2012,276595246,3/15/2012,9535,651.21,524.96,6209287.35,5005493.60,1203793.75 -Europe,Italy,Office Supplies,Online,M,1/26/2011,812295901,2/13/2011,5263,651.21,524.96,3427318.23,2762864.48,664453.75 -Asia,Nepal,Vegetables,Offline,C,6/2/2014,443121373,6/19/2014,8316,154.06,90.93,1281162.96,756173.88,524989.08 -Australia and Oceania,Fiji,Personal Care,Offline,H,12/17/2016,600370490,1/25/2017,1824,81.73,56.67,149075.52,103366.08,45709.44 -Europe,Portugal,Office Supplies,Online,L,6/27/2014,535654580,7/29/2014,949,651.21,524.96,617998.29,498187.04,119811.25 -Central America and the Caribbean,Panama,Cosmetics,Offline,H,3/17/2015,470897471,4/22/2015,7881,437.20,263.33,3445573.20,2075303.73,1370269.47 -Europe,Belarus,Beverages,Offline,L,4/3/2013,248335492,4/4/2013,6846,47.45,31.79,324842.70,217634.34,107208.36 -Sub-Saharan Africa,Botswana,Clothes,Offline,C,3/8/2015,680517470,3/25/2015,9097,109.28,35.84,994120.16,326036.48,668083.68 -Sub-Saharan Africa,Tanzania,Personal Care,Online,M,6/21/2013,400304734,7/29/2013,7921,81.73,56.67,647383.33,448883.07,198500.26 -Europe,Romania,Office Supplies,Offline,C,1/6/2013,810871112,1/8/2013,3636,651.21,524.96,2367799.56,1908754.56,459045.00 -Sub-Saharan Africa,Mali,Cereal,Online,L,3/17/2012,235702931,4/3/2012,8590,205.70,117.11,1766963.00,1005974.90,760988.10 -Sub-Saharan Africa,Central African Republic,Office Supplies,Offline,C,4/18/2014,668599021,5/12/2014,2163,651.21,524.96,1408567.23,1135488.48,273078.75 -Sub-Saharan Africa,Niger,Baby Food,Online,M,1/3/2016,123670709,2/1/2016,5766,255.28,159.42,1471944.48,919215.72,552728.76 -Europe,Austria,Office Supplies,Online,L,5/12/2011,285341823,6/8/2011,7841,651.21,524.96,5106137.61,4116211.36,989926.25 -Asia,India,Fruits,Online,H,7/29/2010,658348691,8/22/2010,8862,9.33,6.92,82682.46,61325.04,21357.42 -Europe,Luxembourg,Baby Food,Offline,L,8/2/2013,817740142,8/19/2013,6335,255.28,159.42,1617198.80,1009925.70,607273.10 -Sub-Saharan Africa,Cape Verde,Beverages,Offline,H,10/23/2013,858877503,11/6/2013,9794,47.45,31.79,464725.30,311351.26,153374.04 -Europe,Sweden,Vegetables,Offline,M,2/5/2017,947434604,2/19/2017,5808,154.06,90.93,894780.48,528121.44,366659.04 -Europe,Iceland,Meat,Offline,H,3/20/2015,869397771,4/17/2015,2975,421.89,364.69,1255122.75,1084952.75,170170.00 -Middle East and North Africa,Qatar,Personal Care,Offline,L,5/6/2012,481065833,5/8/2012,6925,81.73,56.67,565980.25,392439.75,173540.50 -Sub-Saharan Africa,South Sudan,Meat,Online,C,9/30/2013,159050118,10/1/2013,5319,421.89,364.69,2244032.91,1939786.11,304246.80 -Europe,United Kingdom,Office Supplies,Online,M,5/20/2014,350274455,6/14/2014,2850,651.21,524.96,1855948.50,1496136.00,359812.50 -Middle East and North Africa,Tunisia ,Cereal,Online,L,4/9/2010,221975171,5/17/2010,6241,205.70,117.11,1283773.70,730883.51,552890.19 -North America,United States of America,Office Supplies,Online,C,6/9/2017,811701095,7/19/2017,9247,651.21,524.96,6021738.87,4854305.12,1167433.75 -Sub-Saharan Africa,Liberia,Cereal,Online,L,2/8/2015,977313554,3/29/2015,7653,205.70,117.11,1574222.10,896242.83,677979.27 -Sub-Saharan Africa,Eritrea,Snacks,Offline,L,1/25/2010,546986377,2/10/2010,4279,152.58,97.44,652889.82,416945.76,235944.06 -Asia,South Korea,Fruits,Offline,L,3/7/2010,769205892,3/17/2010,3972,9.33,6.92,37058.76,27486.24,9572.52 -Sub-Saharan Africa,Kenya,Clothes,Offline,M,1/3/2013,262770926,2/8/2013,8611,109.28,35.84,941010.08,308618.24,632391.84 -Sub-Saharan Africa,Rwanda,Snacks,Online,M,3/6/2017,866792809,3/18/2017,2109,152.58,97.44,321791.22,205500.96,116290.26 -Central America and the Caribbean,Cuba,Beverages,Offline,C,1/9/2011,890695369,2/23/2011,5408,47.45,31.79,256609.60,171920.32,84689.28 -Middle East and North Africa,Libya,Cereal,Offline,M,3/27/2014,964214932,3/31/2014,1480,205.70,117.11,304436.00,173322.80,131113.20 -Europe,Czech Republic,Snacks,Online,C,6/28/2013,887400329,8/17/2013,332,152.58,97.44,50656.56,32350.08,18306.48 -Europe,Montenegro,Beverages,Offline,M,9/4/2011,980612885,9/4/2011,3999,47.45,31.79,189752.55,127128.21,62624.34 -Europe,Montenegro,Clothes,Offline,M,7/14/2016,734526431,8/2/2016,1549,109.28,35.84,169274.72,55516.16,113758.56 -Asia,Philippines,Baby Food,Online,L,2/23/2014,160127294,3/23/2014,4079,255.28,159.42,1041287.12,650274.18,391012.94 -Central America and the Caribbean,El Salvador,Clothes,Offline,L,8/7/2010,238714301,9/13/2010,9721,109.28,35.84,1062310.88,348400.64,713910.24 -Australia and Oceania,Tonga,Household,Online,M,1/14/2013,671898782,2/6/2013,8635,668.27,502.54,5770511.45,4339432.90,1431078.55 -Sub-Saharan Africa,Democratic Republic of the Congo,Personal Care,Offline,H,9/30/2010,331604564,11/17/2010,8014,81.73,56.67,654984.22,454153.38,200830.84 -Middle East and North Africa,Afghanistan,Cereal,Online,M,10/13/2016,410067975,11/20/2016,7081,205.70,117.11,1456561.70,829255.91,627305.79 -Australia and Oceania,Tuvalu,Snacks,Offline,L,3/16/2011,369837844,3/23/2011,2091,152.58,97.44,319044.78,203747.04,115297.74 -Sub-Saharan Africa,Sudan,Fruits,Online,L,12/26/2012,193775498,1/31/2013,1331,9.33,6.92,12418.23,9210.52,3207.71 -Sub-Saharan Africa,Niger,Clothes,Online,M,9/2/2015,835054767,10/9/2015,117,109.28,35.84,12785.76,4193.28,8592.48 -Sub-Saharan Africa,Gabon,Household,Offline,C,11/11/2013,167161977,12/24/2013,5798,668.27,502.54,3874629.46,2913726.92,960902.54 -Australia and Oceania,East Timor,Vegetables,Offline,C,8/4/2014,633895957,8/22/2014,2755,154.06,90.93,424435.30,250512.15,173923.15 -North America,United States of America,Clothes,Offline,C,10/21/2010,699368035,12/7/2010,7398,109.28,35.84,808453.44,265144.32,543309.12 -Middle East and North Africa,Jordan,Vegetables,Offline,L,6/13/2015,698002040,7/29/2015,3170,154.06,90.93,488370.20,288248.10,200122.10 -Europe,Cyprus,Snacks,Offline,H,3/29/2012,584534299,5/18/2012,5544,152.58,97.44,845903.52,540207.36,305696.16 -Sub-Saharan Africa,Malawi,Vegetables,Online,L,6/22/2012,384013640,7/19/2012,7025,154.06,90.93,1082271.50,638783.25,443488.25 -Europe,Iceland,Personal Care,Online,M,5/10/2013,641801393,5/24/2013,2149,81.73,56.67,175637.77,121783.83,53853.94 -Middle East and North Africa,Israel,Personal Care,Online,M,12/10/2016,173571383,1/11/2017,2484,81.73,56.67,203017.32,140768.28,62249.04 -Middle East and North Africa,United Arab Emirates,Snacks,Offline,H,3/20/2011,115309941,4/6/2011,1629,152.58,97.44,248552.82,158729.76,89823.06 -Asia,China,Cosmetics,Offline,L,9/22/2011,773315894,11/4/2011,213,437.20,263.33,93123.60,56089.29,37034.31 -Sub-Saharan Africa,Kenya,Beverages,Online,M,5/11/2012,274200570,6/26/2012,897,47.45,31.79,42562.65,28515.63,14047.02 -Middle East and North Africa,Somalia,Clothes,Offline,M,11/15/2011,414887797,11/17/2011,3374,109.28,35.84,368710.72,120924.16,247786.56 -Australia and Oceania,Tonga,Beverages,Offline,L,1/27/2010,812613904,1/29/2010,9367,47.45,31.79,444464.15,297776.93,146687.22 -Asia,Bangladesh,Baby Food,Online,H,8/17/2011,254927718,9/7/2011,7632,255.28,159.42,1948296.96,1216693.44,731603.52 -Middle East and North Africa,Egypt,Beverages,Offline,M,9/6/2014,749690568,10/26/2014,8954,47.45,31.79,424867.30,284647.66,140219.64 -Sub-Saharan Africa,Eritrea,Cereal,Offline,C,9/3/2014,775076282,9/19/2014,1150,205.70,117.11,236555.00,134676.50,101878.50 -Sub-Saharan Africa,Swaziland,Office Supplies,Online,H,9/5/2015,229571187,9/18/2015,4071,651.21,524.96,2651075.91,2137112.16,513963.75 -Asia,Vietnam,Baby Food,Online,C,6/20/2011,881974112,7/11/2011,4594,255.28,159.42,1172756.32,732375.48,440380.84 -Australia and Oceania,Marshall Islands,Snacks,Online,L,1/12/2012,521396386,2/14/2012,1632,152.58,97.44,249010.56,159022.08,89988.48 -Asia,Taiwan,Household,Online,C,1/23/2017,607261836,2/22/2017,1127,668.27,502.54,753140.29,566362.58,186777.71 -Europe,Ireland,Vegetables,Online,M,3/4/2012,419306790,3/12/2012,1052,154.06,90.93,162071.12,95658.36,66412.76 -Sub-Saharan Africa,Rwanda,Meat,Offline,H,7/18/2010,207580077,7/18/2010,6413,421.89,364.69,2705580.57,2338756.97,366823.60 -Europe,Sweden,Snacks,Online,M,4/12/2011,742443025,4/15/2011,4245,152.58,97.44,647702.10,413632.80,234069.30 -Sub-Saharan Africa,Gabon,Snacks,Offline,M,10/3/2010,164569461,10/5/2010,8615,152.58,97.44,1314476.70,839445.60,475031.10 -Sub-Saharan Africa,South Africa,Baby Food,Online,L,12/29/2013,734945714,2/12/2014,5624,255.28,159.42,1435694.72,896578.08,539116.64 -Europe,United Kingdom,Clothes,Offline,C,9/19/2015,284870612,10/7/2015,8399,109.28,35.84,917842.72,301020.16,616822.56 -Europe,Albania,Fruits,Offline,M,9/17/2011,765955483,10/7/2011,2104,9.33,6.92,19630.32,14559.68,5070.64 -Asia,Malaysia,Snacks,Offline,H,3/11/2010,600124156,4/21/2010,8929,152.58,97.44,1362386.82,870041.76,492345.06 -Sub-Saharan Africa,Ghana,Household,Offline,L,11/10/2012,529612958,12/11/2012,3098,668.27,502.54,2070300.46,1556868.92,513431.54 -Central America and the Caribbean,Cuba,Clothes,Offline,H,2/16/2011,466970717,3/18/2011,5867,109.28,35.84,641145.76,210273.28,430872.48 -Central America and the Caribbean,Saint Lucia,Cosmetics,Online,C,8/13/2012,845058763,9/22/2012,522,437.20,263.33,228218.40,137458.26,90760.14 -Europe,Romania,Snacks,Offline,L,8/28/2014,367050921,8/31/2014,7379,152.58,97.44,1125887.82,719009.76,406878.06 -Europe,Portugal,Office Supplies,Online,L,8/19/2015,956433522,9/12/2015,8788,651.21,524.96,5722833.48,4613348.48,1109485.00 -Europe,Macedonia,Beverages,Online,C,3/20/2011,107005393,5/4/2011,4129,47.45,31.79,195921.05,131260.91,64660.14 -Asia,China,Beverages,Offline,C,4/16/2013,332877862,5/7/2013,4811,47.45,31.79,228281.95,152941.69,75340.26 -Europe,Germany,Baby Food,Online,L,11/13/2015,618474757,12/31/2015,9279,255.28,159.42,2368743.12,1479258.18,889484.94 -Europe,Ireland,Household,Online,M,1/10/2014,468532407,2/11/2014,8006,668.27,502.54,5350169.62,4023335.24,1326834.38 -Europe,Poland,Office Supplies,Offline,M,4/9/2015,358099639,4/29/2015,8496,651.21,524.96,5532680.16,4460060.16,1072620.00 -Sub-Saharan Africa,Namibia,Household,Online,H,1/7/2013,382537782,1/27/2013,285,668.27,502.54,190456.95,143223.90,47233.05 -Asia,Uzbekistan,Personal Care,Offline,H,2/12/2013,707520663,3/15/2013,9942,81.73,56.67,812559.66,563413.14,249146.52 -Sub-Saharan Africa,Zimbabwe,Meat,Online,M,11/28/2014,219034612,12/10/2014,6064,421.89,364.69,2558340.96,2211480.16,346860.80 -Asia,Mongolia,Meat,Offline,M,1/3/2015,573378455,1/17/2015,4281,421.89,364.69,1806111.09,1561237.89,244873.20 -Europe,Norway,Personal Care,Online,H,2/3/2011,347163522,3/22/2011,2256,81.73,56.67,184382.88,127847.52,56535.36 -Middle East and North Africa,Oman,Snacks,Offline,M,4/9/2013,887313640,4/21/2013,4679,152.58,97.44,713921.82,455921.76,258000.06 -Europe,Serbia,Cosmetics,Online,H,7/26/2017,461065137,8/19/2017,8275,437.20,263.33,3617830.00,2179055.75,1438774.25 -Sub-Saharan Africa,Democratic Republic of the Congo,Fruits,Offline,H,4/15/2017,105966842,5/19/2017,6798,9.33,6.92,63425.34,47042.16,16383.18 -Europe,Bulgaria,Baby Food,Online,M,5/16/2014,479880082,5/23/2014,6035,255.28,159.42,1540614.80,962099.70,578515.10 -Asia,Brunei,Baby Food,Online,H,8/12/2015,510978686,9/30/2015,8803,255.28,159.42,2247229.84,1403374.26,843855.58 -Europe,Serbia,Snacks,Offline,C,9/20/2013,547748982,10/14/2013,9951,152.58,97.44,1518323.58,969625.44,548698.14 -Sub-Saharan Africa,Ghana,Cereal,Offline,M,10/31/2013,108989799,12/9/2013,1358,205.70,117.11,279340.60,159035.38,120305.22 -Sub-Saharan Africa,Malawi,Cereal,Offline,M,7/30/2014,133812463,8/9/2014,6936,205.70,117.11,1426735.20,812274.96,614460.24 -Sub-Saharan Africa,Zimbabwe,Fruits,Offline,L,11/12/2011,731640803,12/30/2011,7627,9.33,6.92,71159.91,52778.84,18381.07 -Europe,Cyprus,Snacks,Offline,C,3/25/2010,732211148,4/14/2010,6405,152.58,97.44,977274.90,624103.20,353171.70 -Central America and the Caribbean,Nicaragua,Cereal,Online,M,7/4/2011,835572326,8/8/2011,3274,205.70,117.11,673461.80,383418.14,290043.66 -Europe,Estonia,Baby Food,Offline,C,1/1/2011,462085664,1/15/2011,271,255.28,159.42,69180.88,43202.82,25978.06 -Europe,Estonia,Clothes,Online,C,6/16/2016,902424991,7/4/2016,6463,109.28,35.84,706276.64,231633.92,474642.72 -Europe,Lithuania,Fruits,Offline,H,12/17/2013,367576634,1/5/2014,2949,9.33,6.92,27514.17,20407.08,7107.09 -Sub-Saharan Africa,Republic of the Congo,Meat,Offline,H,3/1/2017,738839423,3/31/2017,7859,421.89,364.69,3315633.51,2866098.71,449534.80 -Europe,Czech Republic,Baby Food,Online,C,7/2/2010,817824685,7/27/2010,1353,255.28,159.42,345393.84,215695.26,129698.58 -Sub-Saharan Africa,Cameroon,Snacks,Online,C,7/16/2013,376456248,8/1/2013,624,152.58,97.44,95209.92,60802.56,34407.36 -Asia,Vietnam,Office Supplies,Online,H,8/16/2016,606970441,9/16/2016,4897,651.21,524.96,3188975.37,2570729.12,618246.25 -Europe,Moldova ,Meat,Offline,L,12/16/2014,971916091,1/19/2015,424,421.89,364.69,178881.36,154628.56,24252.80 -Middle East and North Africa,Bahrain,Office Supplies,Offline,L,5/14/2012,554154527,5/15/2012,5494,651.21,524.96,3577747.74,2884130.24,693617.50 -Europe,Hungary,Household,Online,L,7/18/2017,306859576,7/19/2017,5423,668.27,502.54,3624028.21,2725274.42,898753.79 -Australia and Oceania,Marshall Islands,Personal Care,Offline,L,7/9/2017,803517568,7/21/2017,7559,81.73,56.67,617797.07,428368.53,189428.54 -Middle East and North Africa,Iraq,Office Supplies,Online,C,9/30/2011,887927329,10/2/2011,6283,651.21,524.96,4091552.43,3298323.68,793228.75 -Europe,Albania,Vegetables,Online,H,11/24/2015,824200189,11/26/2015,8006,154.06,90.93,1233404.36,727985.58,505418.78 -Sub-Saharan Africa,Lesotho,Office Supplies,Online,H,8/14/2012,946759974,9/14/2012,6170,651.21,524.96,4017965.70,3239003.20,778962.50 -Middle East and North Africa,Lebanon,Clothes,Offline,H,12/6/2015,310343015,12/28/2015,6249,109.28,35.84,682890.72,223964.16,458926.56 -Europe,Hungary,Vegetables,Online,C,5/25/2014,739998137,7/9/2014,748,154.06,90.93,115236.88,68015.64,47221.24 -Asia,Japan,Beverages,Online,H,10/18/2012,981086671,11/21/2012,4203,47.45,31.79,199432.35,133613.37,65818.98 -Europe,Georgia,Office Supplies,Offline,L,3/13/2013,749282443,3/25/2013,8180,651.21,524.96,5326897.80,4294172.80,1032725.00 -Europe,Estonia,Office Supplies,Online,C,2/23/2011,280571782,3/11/2011,6280,651.21,524.96,4089598.80,3296748.80,792850.00 -Europe,Luxembourg,Household,Online,C,8/15/2014,781253516,9/1/2014,9131,668.27,502.54,6101973.37,4588692.74,1513280.63 -Sub-Saharan Africa,Swaziland,Personal Care,Online,H,7/6/2017,377938973,7/11/2017,9396,81.73,56.67,767935.08,532471.32,235463.76 -Europe,Romania,Clothes,Offline,C,12/31/2010,867551982,1/3/2011,6765,109.28,35.84,739279.20,242457.60,496821.60 -Sub-Saharan Africa,Ethiopia,Personal Care,Offline,C,1/13/2010,967328870,1/15/2010,2964,81.73,56.67,242247.72,167969.88,74277.84 -Sub-Saharan Africa,Chad,Office Supplies,Offline,C,9/17/2011,364818465,10/16/2011,6746,651.21,524.96,4393062.66,3541380.16,851682.50 -Middle East and North Africa,Morocco,Office Supplies,Online,C,3/8/2014,167882096,3/31/2014,8898,651.21,524.96,5794466.58,4671094.08,1123372.50 -North America,Mexico,Clothes,Online,H,11/18/2012,654693591,12/1/2012,7237,109.28,35.84,790859.36,259374.08,531485.28 -Sub-Saharan Africa,Nigeria,Personal Care,Offline,H,11/18/2011,823739278,12/29/2011,1612,81.73,56.67,131748.76,91352.04,40396.72 -Central America and the Caribbean,Trinidad and Tobago,Beverages,Offline,L,7/12/2012,643817985,8/19/2012,8904,47.45,31.79,422494.80,283058.16,139436.64 -Europe,Moldova ,Personal Care,Offline,H,3/30/2017,604041039,5/15/2017,8022,81.73,56.67,655638.06,454606.74,201031.32 -Australia and Oceania,Solomon Islands,Personal Care,Online,H,7/26/2010,363832271,9/12/2010,4909,81.73,56.67,401212.57,278193.03,123019.54 -Asia,India,Personal Care,Online,L,12/24/2015,102928006,1/31/2016,7539,81.73,56.67,616162.47,427235.13,188927.34 -Sub-Saharan Africa,Burkina Faso,Office Supplies,Offline,M,5/15/2016,971377074,5/15/2016,917,651.21,524.96,597159.57,481388.32,115771.25 -Australia and Oceania,Kiribati,Meat,Online,L,11/3/2010,139540803,12/4/2010,2079,421.89,364.69,877109.31,758190.51,118918.80 -Middle East and North Africa,Israel,Meat,Offline,M,12/1/2010,248093020,12/16/2010,5093,421.89,364.69,2148685.77,1857366.17,291319.60 -Sub-Saharan Africa,Comoros,Snacks,Offline,L,1/16/2014,858020055,1/17/2014,6056,152.58,97.44,924024.48,590096.64,333927.84 -Middle East and North Africa,Iran,Baby Food,Offline,H,12/11/2014,700620734,1/5/2015,8099,255.28,159.42,2067512.72,1291142.58,776370.14 -Asia,Vietnam,Cosmetics,Offline,L,12/24/2016,827506387,1/30/2017,6384,437.20,263.33,2791084.80,1681098.72,1109986.08 -Central America and the Caribbean,Belize,Household,Online,M,3/21/2013,560600841,4/14/2013,3101,668.27,502.54,2072305.27,1558376.54,513928.73 -Europe,Belarus,Personal Care,Offline,H,12/8/2012,642140424,1/16/2013,2476,81.73,56.67,202363.48,140314.92,62048.56 -North America,United States of America,Baby Food,Offline,C,2/13/2015,984673964,3/5/2015,5763,255.28,159.42,1471178.64,918737.46,552441.18 -Europe,Poland,Beverages,Online,L,3/28/2012,221062791,4/18/2012,6247,47.45,31.79,296420.15,198592.13,97828.02 -North America,Canada,Vegetables,Offline,L,10/7/2016,654480731,11/8/2016,4247,154.06,90.93,654292.82,386179.71,268113.11 -Middle East and North Africa,Israel,Beverages,Offline,C,12/15/2011,608414113,12/23/2011,2111,47.45,31.79,100166.95,67108.69,33058.26 -Middle East and North Africa,Lebanon,Household,Online,L,3/8/2016,276661765,4/20/2016,9219,668.27,502.54,6160781.13,4632916.26,1527864.87 -Europe,Andorra,Baby Food,Online,L,1/18/2011,373335015,2/28/2011,6982,255.28,159.42,1782364.96,1113070.44,669294.52 -Europe,Slovakia,Clothes,Online,L,4/11/2013,782857692,5/28/2013,3843,109.28,35.84,419963.04,137733.12,282229.92 -Sub-Saharan Africa,Liberia,Fruits,Online,H,5/18/2010,109966123,6/5/2010,274,9.33,6.92,2556.42,1896.08,660.34 -Central America and the Caribbean,Antigua and Barbuda ,Cereal,Offline,M,6/5/2017,629709136,6/6/2017,3782,205.70,117.11,777957.40,442910.02,335047.38 -Asia,China,Personal Care,Online,L,9/11/2012,637448060,9/15/2012,3901,81.73,56.67,318828.73,221069.67,97759.06 -Sub-Saharan Africa,Niger,Baby Food,Online,H,3/8/2017,298856723,4/3/2017,7200,255.28,159.42,1838016.00,1147824.00,690192.00 -Europe,United Kingdom,Household,Offline,L,1/28/2015,299921452,2/23/2015,2278,668.27,502.54,1522319.06,1144786.12,377532.94 -Asia,Bangladesh,Personal Care,Offline,M,7/26/2010,496941077,7/29/2010,4763,81.73,56.67,389279.99,269919.21,119360.78 -Asia,Myanmar,Snacks,Online,L,6/24/2016,366526925,7/14/2016,2317,152.58,97.44,353527.86,225768.48,127759.38 -Australia and Oceania,Tonga,Meat,Offline,M,8/18/2012,355602824,9/15/2012,9633,421.89,364.69,4064066.37,3513058.77,551007.60 -Sub-Saharan Africa,Guinea-Bissau,Vegetables,Online,C,3/11/2010,531405103,4/19/2010,3434,154.06,90.93,529042.04,312253.62,216788.42 -Australia and Oceania,Nauru,Vegetables,Offline,M,1/14/2010,131482589,1/20/2010,7475,154.06,90.93,1151598.50,679701.75,471896.75 -Sub-Saharan Africa,Swaziland,Cereal,Online,L,2/10/2014,713696610,3/28/2014,7542,205.70,117.11,1551389.40,883243.62,668145.78 -Europe,Finland,Vegetables,Online,C,1/21/2014,306220996,1/30/2014,6452,154.06,90.93,993995.12,586680.36,407314.76 -Australia and Oceania,Papua New Guinea,Household,Offline,L,2/28/2010,157542073,3/15/2010,9055,668.27,502.54,6051184.85,4550499.70,1500685.15 -Sub-Saharan Africa,Mauritius ,Personal Care,Online,L,2/18/2015,686458671,3/8/2015,7230,81.73,56.67,590907.90,409724.10,181183.80 -Sub-Saharan Africa,Mozambique,Office Supplies,Online,M,6/14/2012,132082116,7/22/2012,4888,651.21,524.96,3183114.48,2566004.48,617110.00 -Europe,Bulgaria,Clothes,Online,L,3/5/2013,403836238,4/3/2013,2972,109.28,35.84,324780.16,106516.48,218263.68 -Europe,Spain,Household,Online,C,4/10/2014,331457364,4/23/2014,4455,668.27,502.54,2977142.85,2238815.70,738327.15 -Australia and Oceania,Vanuatu,Meat,Online,H,7/26/2017,614994323,9/12/2017,9341,421.89,364.69,3940874.49,3406569.29,534305.20 -Europe,Belgium,Fruits,Offline,L,10/19/2010,674808442,10/24/2010,9669,9.33,6.92,90211.77,66909.48,23302.29 -Europe,Belgium,Baby Food,Offline,L,11/8/2016,901573550,12/23/2016,4503,255.28,159.42,1149525.84,717868.26,431657.58 -Sub-Saharan Africa,Guinea-Bissau,Clothes,Online,L,3/31/2014,406275975,5/10/2014,4944,109.28,35.84,540280.32,177192.96,363087.36 -Sub-Saharan Africa,Togo,Vegetables,Online,C,8/18/2016,170214545,8/19/2016,9121,154.06,90.93,1405181.26,829372.53,575808.73 -Sub-Saharan Africa,Cote d'Ivoire,Personal Care,Offline,C,1/3/2016,795000588,1/8/2016,7196,81.73,56.67,588129.08,407797.32,180331.76 -Sub-Saharan Africa,Republic of the Congo,Fruits,Offline,C,10/21/2016,252557933,11/4/2016,6360,9.33,6.92,59338.80,44011.20,15327.60 -Middle East and North Africa,Libya,Baby Food,Offline,M,12/10/2016,635122907,12/13/2016,5837,255.28,159.42,1490069.36,930534.54,559534.82 -Australia and Oceania,East Timor,Vegetables,Online,C,8/12/2011,505244338,9/19/2011,1882,154.06,90.93,289940.92,171130.26,118810.66 -Europe,Switzerland,Clothes,Offline,H,3/23/2012,745783555,5/9/2012,2782,109.28,35.84,304016.96,99706.88,204310.08 -Australia and Oceania,Palau,Snacks,Offline,M,4/27/2012,509914386,6/11/2012,3853,152.58,97.44,587890.74,375436.32,212454.42 -Middle East and North Africa,Jordan,Household,Online,M,1/29/2014,371123158,2/9/2014,2445,668.27,502.54,1633920.15,1228710.30,405209.85 -Europe,Slovenia,Household,Online,H,12/13/2016,973208701,12/28/2016,2936,668.27,502.54,1962040.72,1475457.44,486583.28 -Asia,South Korea,Baby Food,Online,L,11/21/2013,780282342,12/27/2013,1739,255.28,159.42,443931.92,277231.38,166700.54 -Europe,Norway,Clothes,Online,H,4/7/2010,126767909,5/22/2010,2296,109.28,35.84,250906.88,82288.64,168618.24 -Middle East and North Africa,Afghanistan,Baby Food,Online,M,7/8/2012,767401731,7/30/2012,80,255.28,159.42,20422.40,12753.60,7668.80 -Asia,Bangladesh,Personal Care,Online,L,10/15/2016,927232635,11/24/2016,7597,81.73,56.67,620902.81,430521.99,190380.82 -Sub-Saharan Africa,Guinea,Meat,Offline,M,9/18/2012,251621949,10/20/2012,9381,421.89,364.69,3957750.09,3421156.89,536593.20 -Central America and the Caribbean,Cuba,Office Supplies,Offline,H,7/2/2017,256243503,7/23/2017,7002,651.21,524.96,4559772.42,3675769.92,884002.50 -Europe,Russia,Cosmetics,Offline,C,7/21/2011,277083623,9/2/2011,4056,437.20,263.33,1773283.20,1068066.48,705216.72 -Sub-Saharan Africa,Seychelles ,Vegetables,Offline,L,6/1/2010,620441138,6/22/2010,1175,154.06,90.93,181020.50,106842.75,74177.75 -Asia,South Korea,Office Supplies,Offline,M,7/26/2015,312927377,9/7/2015,1020,651.21,524.96,664234.20,535459.20,128775.00 -Sub-Saharan Africa,Ghana,Baby Food,Offline,L,8/6/2010,251466166,9/8/2010,3282,255.28,159.42,837828.96,523216.44,314612.52 -Central America and the Caribbean,Costa Rica,Office Supplies,Online,H,6/20/2010,953293836,7/22/2010,9685,651.21,524.96,6306968.85,5084237.60,1222731.25 -Europe,Romania,Cereal,Online,C,4/8/2012,305959212,4/23/2012,8985,205.70,117.11,1848214.50,1052233.35,795981.15 -Europe,Czech Republic,Cereal,Online,L,2/27/2014,317323625,3/24/2014,1967,205.70,117.11,404611.90,230355.37,174256.53 -Europe,Liechtenstein,Household,Offline,L,7/25/2011,365560901,9/1/2011,6449,668.27,502.54,4309673.23,3240880.46,1068792.77 -Sub-Saharan Africa,Seychelles ,Baby Food,Online,M,2/18/2016,349157369,4/5/2016,2279,255.28,159.42,581783.12,363318.18,218464.94 -Middle East and North Africa,Somalia,Baby Food,Online,L,1/24/2014,236911857,2/25/2014,6338,255.28,159.42,1617964.64,1010403.96,607560.68 -Australia and Oceania,Solomon Islands,Personal Care,Offline,H,5/10/2015,517935693,6/16/2015,7536,81.73,56.67,615917.28,427065.12,188852.16 -Sub-Saharan Africa,Uganda,Clothes,Offline,C,2/13/2012,851652705,3/27/2012,1816,109.28,35.84,198452.48,65085.44,133367.04 -Sub-Saharan Africa,Equatorial Guinea,Cereal,Offline,M,9/7/2012,517799222,10/23/2012,7151,205.70,117.11,1470960.70,837453.61,633507.09 -Central America and the Caribbean,Costa Rica,Office Supplies,Offline,C,2/4/2015,666424071,3/4/2015,8547,651.21,524.96,5565891.87,4486833.12,1079058.75 -Europe,Moldova ,Fruits,Offline,C,11/16/2010,267888581,12/22/2010,3039,9.33,6.92,28353.87,21029.88,7323.99 -Sub-Saharan Africa,Burkina Faso,Vegetables,Online,L,7/20/2011,162866580,7/26/2011,4695,154.06,90.93,723311.70,426916.35,296395.35 -Central America and the Caribbean,Guatemala,Beverages,Offline,H,7/26/2014,812344396,8/30/2014,9614,47.45,31.79,456184.30,305629.06,150555.24 -Sub-Saharan Africa,Swaziland,Meat,Online,M,8/24/2014,947620856,9/3/2014,924,421.89,364.69,389826.36,336973.56,52852.80 -Asia,Maldives,Vegetables,Online,H,2/25/2015,720307290,3/28/2015,3789,154.06,90.93,583733.34,344533.77,239199.57 -Asia,Thailand,Household,Online,H,9/21/2016,352327525,10/27/2016,399,668.27,502.54,266639.73,200513.46,66126.27 -Sub-Saharan Africa,Sudan,Household,Online,C,6/28/2013,585917890,7/23/2013,4979,668.27,502.54,3327316.33,2502146.66,825169.67 -Central America and the Caribbean,Costa Rica,Meat,Offline,L,1/5/2012,433627212,2/13/2012,8783,421.89,364.69,3705459.87,3203072.27,502387.60 -Europe,Denmark,Beverages,Online,C,5/1/2012,328316819,5/30/2012,5098,47.45,31.79,241900.10,162065.42,79834.68 -Sub-Saharan Africa,Angola,Cereal,Offline,C,10/13/2011,773160541,11/21/2011,4240,205.70,117.11,872168.00,496546.40,375621.60 -Australia and Oceania,Papua New Guinea,Household,Online,M,4/27/2016,991644704,5/18/2016,8559,668.27,502.54,5719722.93,4301239.86,1418483.07 -Asia,North Korea,Meat,Online,M,1/19/2014,277568137,2/7/2014,7435,421.89,364.69,3136752.15,2711470.15,425282.00 -Central America and the Caribbean,El Salvador,Fruits,Online,C,11/6/2016,245042169,12/15/2016,2278,9.33,6.92,21253.74,15763.76,5489.98 -Sub-Saharan Africa,Burkina Faso,Household,Online,M,2/28/2011,778490626,3/24/2011,1531,668.27,502.54,1023121.37,769388.74,253732.63 -Middle East and North Africa,Yemen,Baby Food,Online,C,10/11/2014,482649838,11/13/2014,5668,255.28,159.42,1446927.04,903592.56,543334.48 -Sub-Saharan Africa,Republic of the Congo,Beverages,Online,L,6/25/2012,732568633,7/5/2012,2193,47.45,31.79,104057.85,69715.47,34342.38 -Europe,Andorra,Household,Online,M,11/6/2012,723608338,11/23/2012,642,668.27,502.54,429029.34,322630.68,106398.66 -Central America and the Caribbean,Dominican Republic,Household,Offline,H,2/24/2014,621442782,4/14/2014,7584,668.27,502.54,5068159.68,3811263.36,1256896.32 -Middle East and North Africa,Israel,Baby Food,Offline,M,9/19/2015,212058293,10/6/2015,1616,255.28,159.42,412532.48,257622.72,154909.76 -Australia and Oceania,Solomon Islands,Snacks,Offline,L,3/4/2014,251753699,3/24/2014,8369,152.58,97.44,1276942.02,815475.36,461466.66 -Sub-Saharan Africa,Liberia,Fruits,Online,M,10/8/2014,217140328,10/30/2014,5503,9.33,6.92,51342.99,38080.76,13262.23 -Sub-Saharan Africa,Mali,Vegetables,Online,C,6/19/2012,555142009,7/10/2012,7712,154.06,90.93,1188110.72,701252.16,486858.56 -Asia,Uzbekistan,Clothes,Online,C,11/11/2010,432995069,12/13/2010,1718,109.28,35.84,187743.04,61573.12,126169.92 -Middle East and North Africa,Tunisia ,Personal Care,Offline,H,11/1/2010,888248336,11/7/2010,1276,81.73,56.67,104287.48,72310.92,31976.56 -Europe,Vatican City,Vegetables,Online,C,4/28/2014,778763139,5/9/2014,2173,154.06,90.93,334772.38,197590.89,137181.49 -Sub-Saharan Africa,Djibouti,Snacks,Offline,H,12/22/2012,832713305,2/9/2013,7227,152.58,97.44,1102695.66,704198.88,398496.78 -Europe,Ukraine,Household,Offline,M,8/25/2014,498585164,9/29/2014,1285,668.27,502.54,858726.95,645763.90,212963.05 -Australia and Oceania,East Timor,Fruits,Offline,M,11/26/2016,195177543,12/23/2016,6227,9.33,6.92,58097.91,43090.84,15007.07 -Sub-Saharan Africa,Uganda,Cereal,Online,C,10/20/2010,861601769,12/2/2010,5965,205.70,117.11,1227000.50,698561.15,528439.35 -Sub-Saharan Africa,Guinea,Meat,Online,H,12/18/2014,807281672,1/26/2015,1441,421.89,364.69,607943.49,525518.29,82425.20 -Sub-Saharan Africa,Equatorial Guinea,Clothes,Offline,H,3/20/2011,661953580,4/24/2011,5629,109.28,35.84,615137.12,201743.36,413393.76 -Europe,Malta,Cosmetics,Online,M,7/12/2016,225666320,8/21/2016,8534,437.20,263.33,3731064.80,2247258.22,1483806.58 -Europe,Cyprus,Household,Offline,L,1/26/2011,718781220,2/19/2011,2191,668.27,502.54,1464179.57,1101065.14,363114.43 -Europe,Czech Republic,Office Supplies,Online,L,2/24/2010,731972110,4/15/2010,5668,651.21,524.96,3691058.28,2975473.28,715585.00 -Middle East and North Africa,Libya,Vegetables,Online,C,1/2/2015,276225316,2/9/2015,64,154.06,90.93,9859.84,5819.52,4040.32 -Asia,Vietnam,Office Supplies,Offline,C,7/26/2016,332839667,7/27/2016,3509,651.21,524.96,2285095.89,1842084.64,443011.25 -Middle East and North Africa,Jordan,Vegetables,Online,C,6/1/2014,603426492,6/15/2014,6163,154.06,90.93,949471.78,560401.59,389070.19 -Sub-Saharan Africa,Mali,Beverages,Offline,H,12/21/2012,859909617,1/29/2013,5220,47.45,31.79,247689.00,165943.80,81745.20 -Europe,Czech Republic,Household,Online,L,2/27/2010,494525372,3/2/2010,9902,668.27,502.54,6617209.54,4976151.08,1641058.46 -Europe,Slovakia,Vegetables,Online,M,4/24/2016,769822585,5/15/2016,6465,154.06,90.93,995997.90,587862.45,408135.45 -Sub-Saharan Africa,Zimbabwe,Vegetables,Offline,C,7/22/2012,768662583,8/10/2012,3195,154.06,90.93,492221.70,290521.35,201700.35 -Central America and the Caribbean,Honduras,Cereal,Online,M,2/22/2015,544219195,3/9/2015,5409,205.70,117.11,1112631.30,633447.99,479183.31 -Europe,Switzerland,Beverages,Offline,L,2/10/2011,669978749,3/20/2011,455,47.45,31.79,21589.75,14464.45,7125.30 -Sub-Saharan Africa,South Africa,Cosmetics,Offline,L,1/21/2015,889740073,1/26/2015,2715,437.20,263.33,1186998.00,714940.95,472057.05 -Sub-Saharan Africa,Uganda,Beverages,Online,M,5/10/2012,567614495,6/28/2012,8598,47.45,31.79,407975.10,273330.42,134644.68 -Middle East and North Africa,Iran,Vegetables,Offline,M,12/16/2015,938025844,1/21/2016,1547,154.06,90.93,238330.82,140668.71,97662.11 -Middle East and North Africa,Algeria,Vegetables,Online,C,2/25/2017,155710446,2/25/2017,7036,154.06,90.93,1083966.16,639783.48,444182.68 -Sub-Saharan Africa,Central African Republic,Baby Food,Online,L,1/31/2012,945717132,2/13/2012,7570,255.28,159.42,1932469.60,1206809.40,725660.20 -Central America and the Caribbean,The Bahamas,Cosmetics,Offline,C,2/7/2013,253407227,2/15/2013,7685,437.20,263.33,3359882.00,2023691.05,1336190.95 -Sub-Saharan Africa,South Africa,Household,Offline,H,9/14/2014,494454562,9/22/2014,8948,668.27,502.54,5979679.96,4496727.92,1482952.04 -Sub-Saharan Africa,Benin,Cereal,Online,M,6/5/2012,104845464,7/24/2012,4957,205.70,117.11,1019654.90,580514.27,439140.63 -Europe,Hungary,Cosmetics,Online,M,4/5/2014,290878760,4/7/2014,6344,437.20,263.33,2773596.80,1670565.52,1103031.28 -Europe,Austria,Office Supplies,Offline,C,2/2/2014,979165780,2/10/2014,5768,651.21,524.96,3756179.28,3027969.28,728210.00 -Asia,Tajikistan,Office Supplies,Offline,C,9/1/2010,366630351,10/12/2010,2923,651.21,524.96,1903486.83,1534458.08,369028.75 -Europe,Portugal,Office Supplies,Online,C,5/17/2011,770508801,6/25/2011,9532,651.21,524.96,6207333.72,5003918.72,1203415.00 -Europe,Belgium,Beverages,Offline,M,4/21/2013,978349959,5/21/2013,4349,47.45,31.79,206360.05,138254.71,68105.34 -Europe,Slovenia,Beverages,Offline,L,8/10/2014,298015153,8/14/2014,8161,47.45,31.79,387239.45,259438.19,127801.26 -Europe,Czech Republic,Snacks,Online,M,9/19/2010,807678210,10/30/2010,8786,152.58,97.44,1340567.88,856107.84,484460.04 -Australia and Oceania,Marshall Islands,Personal Care,Offline,C,4/13/2013,605825459,5/14/2013,6071,81.73,56.67,496182.83,344043.57,152139.26 -Sub-Saharan Africa,Sudan,Fruits,Online,C,1/28/2016,561255729,2/1/2016,6897,9.33,6.92,64349.01,47727.24,16621.77 -Central America and the Caribbean,Dominican Republic,Clothes,Online,H,12/9/2013,263080346,12/14/2013,175,109.28,35.84,19124.00,6272.00,12852.00 -Sub-Saharan Africa,Tanzania,Cereal,Offline,C,2/21/2014,270723140,3/9/2014,1848,205.70,117.11,380133.60,216419.28,163714.32 -Europe,Switzerland,Clothes,Offline,H,6/9/2017,763920438,7/10/2017,9888,109.28,35.84,1080560.64,354385.92,726174.72 -North America,Greenland,Household,Online,L,4/17/2014,192721068,5/20/2014,9302,668.27,502.54,6216247.54,4674627.08,1541620.46 -Australia and Oceania,Tonga,Fruits,Offline,L,5/20/2011,227486360,6/8/2011,7124,9.33,6.92,66466.92,49298.08,17168.84 -Middle East and North Africa,Saudi Arabia,Vegetables,Online,M,8/28/2012,808890140,9/22/2012,7422,154.06,90.93,1143433.32,674882.46,468550.86 -Central America and the Caribbean,Belize,Cosmetics,Offline,C,7/25/2015,597918736,9/11/2015,6296,437.20,263.33,2752611.20,1657925.68,1094685.52 -Sub-Saharan Africa,Angola,Cosmetics,Online,H,10/27/2014,125870978,11/20/2014,6874,437.20,263.33,3005312.80,1810130.42,1195182.38 -Asia,Malaysia,Household,Online,H,10/18/2013,444358193,10/21/2013,4319,668.27,502.54,2886258.13,2170470.26,715787.87 -Sub-Saharan Africa,Ethiopia,Beverages,Online,C,2/15/2013,875304210,3/12/2013,822,47.45,31.79,39003.90,26131.38,12872.52 -North America,Greenland,Baby Food,Offline,C,7/8/2014,360945355,8/16/2014,607,255.28,159.42,154954.96,96767.94,58187.02 -Sub-Saharan Africa,Benin,Cereal,Offline,C,12/12/2016,613830459,1/16/2017,4928,205.70,117.11,1013689.60,577118.08,436571.52 -Middle East and North Africa,Yemen,Cereal,Offline,H,11/24/2012,266820847,12/10/2012,7073,205.70,117.11,1454916.10,828319.03,626597.07 -Sub-Saharan Africa,Rwanda,Baby Food,Offline,M,11/3/2014,723090350,11/27/2014,7358,255.28,159.42,1878350.24,1173012.36,705337.88 -Sub-Saharan Africa,Mauritania,Meat,Offline,M,8/3/2013,306125295,8/15/2013,8132,421.89,364.69,3430809.48,2965659.08,465150.40 -Australia and Oceania,New Zealand,Personal Care,Online,L,5/23/2012,109724509,6/16/2012,8775,81.73,56.67,717180.75,497279.25,219901.50 -Australia and Oceania,Samoa ,Clothes,Offline,M,7/22/2015,847999322,8/6/2015,699,109.28,35.84,76386.72,25052.16,51334.56 -Australia and Oceania,Fiji,Clothes,Online,H,2/1/2017,605373561,3/2/2017,2344,109.28,35.84,256152.32,84008.96,172143.36 -Sub-Saharan Africa,Malawi,Beverages,Online,H,1/28/2012,686583554,2/22/2012,4186,47.45,31.79,198625.70,133072.94,65552.76 -Australia and Oceania,Marshall Islands,Beverages,Offline,M,8/3/2015,666678130,9/21/2015,3729,47.45,31.79,176941.05,118544.91,58396.14 -Central America and the Caribbean,Grenada,Baby Food,Online,M,6/23/2013,641018617,6/30/2013,508,255.28,159.42,129682.24,80985.36,48696.88 -Europe,Luxembourg,Meat,Online,C,8/3/2011,775278842,9/22/2011,1093,421.89,364.69,461125.77,398606.17,62519.60 -Sub-Saharan Africa,Zimbabwe,Meat,Offline,M,10/30/2016,855445134,12/6/2016,4080,421.89,364.69,1721311.20,1487935.20,233376.00 -Asia,China,Vegetables,Online,H,9/5/2010,737816321,9/21/2010,5100,154.06,90.93,785706.00,463743.00,321963.00 -North America,United States of America,Beverages,Online,L,7/13/2013,799003732,7/14/2013,1815,47.45,31.79,86121.75,57698.85,28422.90 -Sub-Saharan Africa,Central African Republic,Vegetables,Online,L,10/9/2012,585931193,11/21/2012,8916,154.06,90.93,1373598.96,810731.88,562867.08 -Central America and the Caribbean,Antigua and Barbuda ,Vegetables,Online,M,1/3/2012,165835034,1/5/2012,3127,154.06,90.93,481745.62,284338.11,197407.51 -Central America and the Caribbean,Guatemala,Baby Food,Offline,H,2/8/2012,576264083,3/14/2012,8203,255.28,159.42,2094061.84,1307722.26,786339.58 -Middle East and North Africa,Qatar,Clothes,Offline,L,1/3/2015,675079667,1/7/2015,9930,109.28,35.84,1085150.40,355891.20,729259.20 -Middle East and North Africa,Israel,Personal Care,Online,L,5/13/2012,290455615,5/28/2012,1126,81.73,56.67,92027.98,63810.42,28217.56 -Asia,Thailand,Snacks,Offline,L,1/13/2012,670878255,2/15/2012,6639,152.58,97.44,1012978.62,646904.16,366074.46 -Asia,Singapore,Cereal,Online,M,7/30/2011,435146415,8/12/2011,8349,205.70,117.11,1717389.30,977751.39,739637.91 -Asia,North Korea,Snacks,Online,C,3/13/2017,522371423,4/8/2017,167,152.58,97.44,25480.86,16272.48,9208.38 -Europe,Austria,Office Supplies,Online,L,3/23/2017,141977107,4/18/2017,3036,651.21,524.96,1977073.56,1593778.56,383295.00 -Asia,Japan,Baby Food,Offline,L,3/16/2016,823699796,4/19/2016,9929,255.28,159.42,2534675.12,1582881.18,951793.94 -Sub-Saharan Africa,Zimbabwe,Beverages,Offline,L,12/18/2015,567588317,12/26/2015,851,47.45,31.79,40379.95,27053.29,13326.66 -Europe,Lithuania,Fruits,Offline,H,10/25/2011,594003999,11/16/2011,7838,9.33,6.92,73128.54,54238.96,18889.58 -Europe,Luxembourg,Baby Food,Offline,H,6/30/2011,393620669,8/2/2011,9958,255.28,159.42,2542078.24,1587504.36,954573.88 -Sub-Saharan Africa,Central African Republic,Cosmetics,Offline,H,3/27/2016,877424657,4/10/2016,8309,437.20,263.33,3632694.80,2188008.97,1444685.83 -Europe,Norway,Household,Offline,M,12/23/2016,326714789,1/21/2017,1021,668.27,502.54,682303.67,513093.34,169210.33 -Sub-Saharan Africa,Democratic Republic of the Congo,Fruits,Offline,M,4/18/2013,243102395,4/18/2013,8256,9.33,6.92,77028.48,57131.52,19896.96 -Australia and Oceania,New Zealand,Household,Offline,L,3/8/2017,398511302,4/20/2017,7205,668.27,502.54,4814885.35,3620800.70,1194084.65 -Europe,Ukraine,Personal Care,Offline,M,6/3/2011,185177838,7/4/2011,7092,81.73,56.67,579629.16,401903.64,177725.52 -Asia,Taiwan,Personal Care,Offline,H,11/30/2013,865650832,12/31/2013,4173,81.73,56.67,341059.29,236483.91,104575.38 -Europe,Italy,Cereal,Offline,C,5/11/2013,622791612,5/31/2013,6733,205.70,117.11,1384978.10,788501.63,596476.47 -Europe,Finland,Personal Care,Online,L,11/13/2010,409774005,11/27/2010,89,81.73,56.67,7273.97,5043.63,2230.34 -Sub-Saharan Africa,Sudan,Office Supplies,Online,H,3/9/2016,800084340,4/21/2016,1591,651.21,524.96,1036075.11,835211.36,200863.75 -Europe,Croatia,Snacks,Offline,M,8/19/2013,637521445,9/12/2013,5618,152.58,97.44,857194.44,547417.92,309776.52 -Sub-Saharan Africa,Mauritania,Beverages,Online,L,4/19/2011,186196649,5/28/2011,8581,47.45,31.79,407168.45,272789.99,134378.46 -Australia and Oceania,New Zealand,Baby Food,Offline,L,7/20/2014,680533778,7/25/2014,3923,255.28,159.42,1001463.44,625404.66,376058.78 -Middle East and North Africa,Pakistan,Beverages,Online,L,9/8/2014,275269162,9/15/2014,7117,47.45,31.79,337701.65,226249.43,111452.22 -Europe,Poland,Household,Online,C,6/4/2015,795451629,6/19/2015,668,668.27,502.54,446404.36,335696.72,110707.64 -Europe,Lithuania,Cereal,Offline,M,12/19/2013,986442506,1/1/2014,9113,205.70,117.11,1874544.10,1067223.43,807320.67 -Middle East and North Africa,Pakistan,Cereal,Offline,M,5/18/2012,563915622,6/10/2012,4019,205.70,117.11,826708.30,470665.09,356043.21 -Australia and Oceania,East Timor,Cosmetics,Offline,C,10/12/2013,663857305,11/13/2013,8984,437.20,263.33,3927804.80,2365756.72,1562048.08 -Australia and Oceania,Marshall Islands,Fruits,Online,L,1/2/2011,692566382,1/14/2011,4638,9.33,6.92,43272.54,32094.96,11177.58 -Central America and the Caribbean,Cuba,Household,Offline,L,2/2/2013,576654183,2/3/2013,3642,668.27,502.54,2433839.34,1830250.68,603588.66 -North America,Greenland,Baby Food,Offline,H,3/19/2011,313044536,4/14/2011,5689,255.28,159.42,1452287.92,906940.38,545347.54 -Europe,Luxembourg,Personal Care,Offline,C,10/3/2012,418973767,10/27/2012,2503,81.73,56.67,204570.19,141845.01,62725.18 -Middle East and North Africa,Israel,Beverages,Online,C,10/23/2014,581990706,11/15/2014,2838,47.45,31.79,134663.10,90220.02,44443.08 -Sub-Saharan Africa,Djibouti,Baby Food,Online,H,7/12/2015,109956681,7/24/2015,7480,255.28,159.42,1909494.40,1192461.60,717032.80 -Europe,Bulgaria,Cereal,Online,L,5/6/2010,181045520,5/27/2010,4247,205.70,117.11,873607.90,497366.17,376241.73 -Asia,Mongolia,Vegetables,Online,C,11/27/2010,693743550,1/9/2011,2988,154.06,90.93,460331.28,271698.84,188632.44 -Central America and the Caribbean,Dominican Republic,Clothes,Offline,L,12/26/2010,716849601,12/31/2010,582,109.28,35.84,63600.96,20858.88,42742.08 -Middle East and North Africa,Yemen,Cosmetics,Online,L,12/30/2012,739474999,1/1/2013,5940,437.20,263.33,2596968.00,1564180.20,1032787.80 -Australia and Oceania,Federated States of Micronesia,Personal Care,Online,M,8/21/2016,421043574,9/7/2016,5005,81.73,56.67,409058.65,283633.35,125425.30 -Europe,Finland,Personal Care,Online,M,2/3/2015,841291654,3/20/2015,5751,81.73,56.67,470029.23,325909.17,144120.06 -Central America and the Caribbean,The Bahamas,Cereal,Offline,L,12/19/2013,450268065,1/4/2014,3181,205.70,117.11,654331.70,372526.91,281804.79 -Central America and the Caribbean,Grenada,Meat,Online,L,5/12/2012,918334138,6/12/2012,4334,421.89,364.69,1828471.26,1580566.46,247904.80 -Sub-Saharan Africa,Sao Tome and Principe,Meat,Offline,M,3/28/2014,386163699,4/19/2014,3275,421.89,364.69,1381689.75,1194359.75,187330.00 -Central America and the Caribbean,El Salvador,Personal Care,Offline,C,1/11/2017,214743077,2/18/2017,6103,81.73,56.67,498798.19,345857.01,152941.18 -Europe,Sweden,Baby Food,Online,M,6/21/2015,935371100,7/6/2015,5949,255.28,159.42,1518660.72,948389.58,570271.14 -Asia,Turkmenistan,Cosmetics,Offline,H,11/29/2012,899659097,12/3/2012,7974,437.20,263.33,3486232.80,2099793.42,1386439.38 -Europe,Monaco,Vegetables,Online,H,1/1/2010,329530894,2/13/2010,4369,154.06,90.93,673088.14,397273.17,275814.97 -Middle East and North Africa,Turkey,Meat,Online,H,1/6/2016,867222821,2/6/2016,9359,421.89,364.69,3948468.51,3413133.71,535334.80 -Sub-Saharan Africa,Mozambique,Beverages,Online,M,10/14/2014,625283706,10/23/2014,4199,47.45,31.79,199242.55,133486.21,65756.34 -Middle East and North Africa,Yemen,Office Supplies,Offline,C,12/9/2013,936574876,1/9/2014,2173,651.21,524.96,1415079.33,1140738.08,274341.25 -Asia,Philippines,Cereal,Offline,M,10/19/2010,504270160,11/25/2010,3601,205.70,117.11,740725.70,421713.11,319012.59 -Sub-Saharan Africa,Democratic Republic of the Congo,Personal Care,Offline,M,5/2/2011,351855885,6/2/2011,830,81.73,56.67,67835.90,47036.10,20799.80 -Australia and Oceania,Fiji,Snacks,Online,H,3/17/2011,673130881,3/23/2011,3241,152.58,97.44,494511.78,315803.04,178708.74 -Europe,Macedonia,Office Supplies,Offline,H,9/24/2014,382206475,10/13/2014,2244,651.21,524.96,1461315.24,1178010.24,283305.00 -Middle East and North Africa,Tunisia ,Cereal,Online,H,12/1/2015,263506495,12/14/2015,6283,205.70,117.11,1292413.10,735802.13,556610.97 -Europe,Liechtenstein,Cereal,Offline,L,6/2/2017,721767270,7/18/2017,5829,205.70,117.11,1199025.30,682634.19,516391.11 -Middle East and North Africa,Qatar,Cosmetics,Online,M,8/4/2011,432037627,8/18/2011,8390,437.20,263.33,3668108.00,2209338.70,1458769.30 -Australia and Oceania,Tonga,Meat,Offline,C,7/29/2014,389678895,8/24/2014,3499,421.89,364.69,1476193.11,1276050.31,200142.80 -Europe,Belgium,Meat,Online,L,1/26/2017,760364902,2/24/2017,7726,421.89,364.69,3259522.14,2817594.94,441927.20 -Sub-Saharan Africa,Chad,Fruits,Offline,C,11/5/2010,430081975,12/9/2010,9669,9.33,6.92,90211.77,66909.48,23302.29 -Asia,Thailand,Baby Food,Online,H,3/26/2015,155128943,5/5/2015,4957,255.28,159.42,1265422.96,790244.94,475178.02 -Europe,Iceland,Clothes,Offline,H,10/7/2012,312117135,10/16/2012,1251,109.28,35.84,136709.28,44835.84,91873.44 -Central America and the Caribbean,Saint Lucia,Meat,Offline,L,7/22/2013,447970378,9/2/2013,3245,421.89,364.69,1369033.05,1183419.05,185614.00 -Asia,Japan,Cosmetics,Offline,C,8/16/2013,629925000,8/18/2013,7661,437.20,263.33,3349389.20,2017371.13,1332018.07 -Asia,India,Personal Care,Offline,L,11/5/2013,995529830,12/17/2013,8254,81.73,56.67,674599.42,467754.18,206845.24 -Australia and Oceania,Vanuatu,Office Supplies,Online,L,3/1/2016,402646195,3/28/2016,812,651.21,524.96,528782.52,426267.52,102515.00 -Sub-Saharan Africa,Chad,Meat,Offline,M,3/25/2012,479447925,4/4/2012,8150,421.89,364.69,3438403.50,2972223.50,466180.00 -Sub-Saharan Africa,Malawi,Cosmetics,Offline,H,6/20/2017,674421346,6/29/2017,5118,437.20,263.33,2237589.60,1347722.94,889866.66 -Europe,Finland,Cosmetics,Online,L,4/18/2014,506365287,5/16/2014,3596,437.20,263.33,1572171.20,946934.68,625236.52 -Middle East and North Africa,Turkey,Clothes,Online,C,6/28/2016,914391076,8/4/2016,7494,109.28,35.84,818944.32,268584.96,550359.36 -Sub-Saharan Africa,South Africa,Meat,Online,L,5/20/2012,207922542,7/1/2012,7755,421.89,364.69,3271756.95,2828170.95,443586.00 -Europe,Lithuania,Office Supplies,Offline,M,2/4/2014,816696012,2/16/2014,7353,651.21,524.96,4788347.13,3860030.88,928316.25 -Europe,Russia,Beverages,Offline,L,11/15/2015,740760314,11/21/2015,6293,47.45,31.79,298602.85,200054.47,98548.38 -Central America and the Caribbean,The Bahamas,Baby Food,Online,C,1/11/2013,300476777,2/28/2013,6610,255.28,159.42,1687400.80,1053766.20,633634.60 -Central America and the Caribbean,The Bahamas,Snacks,Online,L,4/24/2013,786519229,6/7/2013,7373,152.58,97.44,1124972.34,718425.12,406547.22 -Middle East and North Africa,Turkey,Cosmetics,Offline,C,5/15/2010,409873998,6/3/2010,9679,437.20,263.33,4231658.80,2548771.07,1682887.73 -Sub-Saharan Africa,Mauritius ,Cosmetics,Offline,H,4/17/2010,151839911,5/22/2010,1659,437.20,263.33,725314.80,436864.47,288450.33 -Europe,Bulgaria,Vegetables,Online,H,8/25/2012,614028298,9/9/2012,3473,154.06,90.93,535050.38,315799.89,219250.49 -Middle East and North Africa,Iran,Household,Offline,L,4/19/2014,668362987,5/13/2014,2315,668.27,502.54,1547045.05,1163380.10,383664.95 -Sub-Saharan Africa,Ghana,Household,Online,M,2/26/2013,607080304,4/5/2013,7408,668.27,502.54,4950544.16,3722816.32,1227727.84 -Sub-Saharan Africa,Malawi,Baby Food,Online,M,12/28/2011,792729079,1/17/2012,5006,255.28,159.42,1277931.68,798056.52,479875.16 -Sub-Saharan Africa,Zimbabwe,Baby Food,Offline,M,8/21/2014,308170640,10/10/2014,3395,255.28,159.42,866675.60,541230.90,325444.70 -Asia,Tajikistan,Vegetables,Online,H,8/21/2014,106578814,10/2/2014,7894,154.06,90.93,1216149.64,717801.42,498348.22 -Europe,Czech Republic,Cereal,Online,H,3/2/2014,761439931,3/28/2014,5851,205.70,117.11,1203550.70,685210.61,518340.09 -Sub-Saharan Africa,Mauritius ,Household,Online,L,9/6/2012,216552817,9/27/2012,1646,668.27,502.54,1099972.42,827180.84,272791.58 -Sub-Saharan Africa,Lesotho,Fruits,Online,H,9/16/2010,536028802,9/22/2010,1689,9.33,6.92,15758.37,11687.88,4070.49 -Sub-Saharan Africa,Mali,Beverages,Online,L,8/13/2013,254291713,8/15/2013,9424,47.45,31.79,447168.80,299588.96,147579.84 -Europe,Georgia,Personal Care,Online,C,9/11/2012,226077878,10/23/2012,323,81.73,56.67,26398.79,18304.41,8094.38 -Europe,Albania,Office Supplies,Offline,M,8/31/2011,476436126,10/15/2011,6892,651.21,524.96,4488139.32,3618024.32,870115.00 -Europe,Cyprus,Cosmetics,Offline,L,4/21/2015,650727784,6/6/2015,3667,437.20,263.33,1603212.40,965631.11,637581.29 -Central America and the Caribbean,Saint Kitts and Nevis ,Household,Offline,C,7/11/2010,464626681,7/27/2010,2215,668.27,502.54,1480218.05,1113126.10,367091.95 -Middle East and North Africa,Tunisia ,Meat,Offline,C,8/9/2015,154119145,9/21/2015,6135,421.89,364.69,2588295.15,2237373.15,350922.00 -Central America and the Caribbean,Cuba,Meat,Online,M,10/17/2015,925504004,12/6/2015,6057,421.89,364.69,2555387.73,2208927.33,346460.40 -Australia and Oceania,Kiribati,Cereal,Offline,L,7/24/2012,905392587,8/16/2012,4641,205.70,117.11,954653.70,543507.51,411146.19 -Asia,Cambodia,Snacks,Online,C,3/25/2012,990708720,5/4/2012,1581,152.58,97.44,241228.98,154052.64,87176.34 -Europe,Moldova ,Baby Food,Online,M,8/11/2014,798688733,9/18/2014,8600,255.28,159.42,2195408.00,1371012.00,824396.00 -Asia,Uzbekistan,Cereal,Offline,C,10/15/2016,916881453,11/28/2016,4452,205.70,117.11,915776.40,521373.72,394402.68 -Asia,India,Cosmetics,Offline,L,12/3/2016,653148210,1/21/2017,9924,437.20,263.33,4338772.80,2613286.92,1725485.88 -Europe,Germany,Personal Care,Offline,C,6/12/2010,285662829,7/13/2010,2834,81.73,56.67,231622.82,160602.78,71020.04 -Europe,Austria,Vegetables,Online,C,7/29/2016,612911641,8/31/2016,3030,154.06,90.93,466801.80,275517.90,191283.90 -Europe,Germany,Office Supplies,Offline,L,12/9/2013,703693473,1/12/2014,7391,651.21,524.96,4813093.11,3879979.36,933113.75 -Asia,Bhutan,Clothes,Online,M,7/12/2012,147119653,8/9/2012,4829,109.28,35.84,527713.12,173071.36,354641.76 -Asia,Kyrgyzstan,Fruits,Online,C,1/14/2012,402614009,3/2/2012,1287,9.33,6.92,12007.71,8906.04,3101.67 -Middle East and North Africa,Somalia,Personal Care,Online,C,3/20/2013,749912869,4/25/2013,4738,81.73,56.67,387236.74,268502.46,118734.28 -Central America and the Caribbean,Saint Lucia,Household,Online,H,2/10/2014,539065062,3/10/2014,186,668.27,502.54,124298.22,93472.44,30825.78 -Europe,Armenia,Snacks,Offline,H,10/26/2013,540431916,11/15/2013,4668,152.58,97.44,712243.44,454849.92,257393.52 -North America,Canada,Beverages,Online,C,4/16/2016,694687259,6/2/2016,2252,47.45,31.79,106857.40,71591.08,35266.32 -Sub-Saharan Africa,Burundi,Cosmetics,Offline,H,5/27/2011,562817418,6/2/2011,9036,437.20,263.33,3950539.20,2379449.88,1571089.32 -Europe,Liechtenstein,Cereal,Online,L,8/4/2016,676121222,9/9/2016,8149,205.70,117.11,1676249.30,954329.39,721919.91 -Middle East and North Africa,Tunisia ,Snacks,Offline,L,7/3/2012,286210000,8/5/2012,4754,152.58,97.44,725365.32,463229.76,262135.56 -Middle East and North Africa,Iraq,Beverages,Online,L,12/4/2014,515007579,1/11/2015,1042,47.45,31.79,49442.90,33125.18,16317.72 -Asia,Indonesia,Cosmetics,Offline,C,5/31/2010,304750287,6/1/2010,1237,437.20,263.33,540816.40,325739.21,215077.19 -Asia,Kazakhstan,Beverages,Online,H,2/5/2013,467986953,2/17/2013,6594,47.45,31.79,312885.30,209623.26,103262.04 -Europe,Denmark,Beverages,Offline,C,6/15/2015,537578904,7/9/2015,399,47.45,31.79,18932.55,12684.21,6248.34 -Europe,Luxembourg,Vegetables,Offline,L,10/21/2014,116699969,11/18/2014,2969,154.06,90.93,457404.14,269971.17,187432.97 -Sub-Saharan Africa,Cape Verde,Snacks,Offline,C,2/13/2017,228836476,3/13/2017,6653,152.58,97.44,1015114.74,648268.32,366846.42 -Australia and Oceania,Palau,Vegetables,Offline,C,6/29/2010,167787253,7/16/2010,832,154.06,90.93,128177.92,75653.76,52524.16 -Australia and Oceania,Australia,Vegetables,Online,M,5/19/2014,647663629,5/20/2014,6915,154.06,90.93,1065324.90,628780.95,436543.95 -Central America and the Caribbean,Nicaragua,Meat,Offline,L,3/21/2015,652889430,4/15/2015,3346,421.89,364.69,1411643.94,1220252.74,191391.20 -Asia,Laos,Office Supplies,Offline,M,8/31/2015,588200986,10/15/2015,598,651.21,524.96,389423.58,313926.08,75497.50 -Central America and the Caribbean,Cuba,Personal Care,Online,L,8/23/2015,928647124,8/30/2015,6176,81.73,56.67,504764.48,349993.92,154770.56 -Europe,Moldova ,Cosmetics,Offline,L,2/24/2016,869589173,3/17/2016,9615,437.20,263.33,4203678.00,2531917.95,1671760.05 -Middle East and North Africa,Syria,Household,Online,C,6/17/2015,576700961,7/23/2015,7485,668.27,502.54,5002000.95,3761511.90,1240489.05 -Central America and the Caribbean,The Bahamas,Cereal,Offline,M,11/27/2012,735968816,12/6/2012,8382,205.70,117.11,1724177.40,981616.02,742561.38 -Europe,Belarus,Snacks,Offline,M,9/7/2012,303691565,10/19/2012,7938,152.58,97.44,1211180.04,773478.72,437701.32 -Middle East and North Africa,United Arab Emirates,Clothes,Offline,C,6/23/2012,556480538,8/7/2012,3812,109.28,35.84,416575.36,136622.08,279953.28 -Sub-Saharan Africa,Angola,Beverages,Offline,H,10/23/2014,141259562,11/11/2014,698,47.45,31.79,33120.10,22189.42,10930.68 -Central America and the Caribbean,Cuba,Cosmetics,Offline,C,9/18/2015,925264966,10/18/2015,5320,437.20,263.33,2325904.00,1400915.60,924988.40 -Europe,Ukraine,Office Supplies,Online,H,1/24/2016,346045577,2/20/2016,1431,651.21,524.96,931881.51,751217.76,180663.75 -Sub-Saharan Africa,Mozambique,Fruits,Offline,H,3/23/2010,861462724,4/19/2010,4818,9.33,6.92,44951.94,33340.56,11611.38 -Europe,Armenia,Personal Care,Online,M,7/26/2012,499690234,8/28/2012,8299,81.73,56.67,678277.27,470304.33,207972.94 -North America,Greenland,Clothes,Online,H,10/20/2015,509214437,11/2/2015,6722,109.28,35.84,734580.16,240916.48,493663.68 -Central America and the Caribbean,Saint Kitts and Nevis ,Office Supplies,Online,M,6/27/2017,408834159,7/18/2017,1968,651.21,524.96,1281581.28,1033121.28,248460.00 -Europe,Vatican City,Beverages,Offline,M,4/4/2016,237660729,4/30/2016,7946,47.45,31.79,377037.70,252603.34,124434.36 -Europe,Ukraine,Clothes,Online,C,8/5/2015,105117976,9/9/2015,5600,109.28,35.84,611968.00,200704.00,411264.00 -Sub-Saharan Africa,Niger,Cereal,Offline,L,6/16/2012,640942227,7/4/2012,7903,205.70,117.11,1625647.10,925520.33,700126.77 -Asia,Myanmar,Cosmetics,Online,L,4/3/2016,745182311,5/5/2016,4860,437.20,263.33,2124792.00,1279783.80,845008.20 -Sub-Saharan Africa,Guinea,Baby Food,Offline,C,9/21/2014,738199555,9/21/2014,8508,255.28,159.42,2171922.24,1356345.36,815576.88 -Sub-Saharan Africa,Guinea-Bissau,Snacks,Online,L,8/8/2015,110667788,9/10/2015,7913,152.58,97.44,1207365.54,771042.72,436322.82 -Sub-Saharan Africa,South Sudan,Office Supplies,Online,C,7/19/2012,673573338,7/20/2012,4174,651.21,524.96,2718150.54,2191183.04,526967.50 -Middle East and North Africa,Turkey,Snacks,Offline,H,8/26/2011,708215034,9/13/2011,5421,152.58,97.44,827136.18,528222.24,298913.94 -Australia and Oceania,Palau,Household,Online,M,6/23/2012,816204202,7/1/2012,1816,668.27,502.54,1213578.32,912612.64,300965.68 -Europe,Poland,Beverages,Offline,L,11/20/2011,769464671,12/24/2011,550,47.45,31.79,26097.50,17484.50,8613.00 -Asia,Malaysia,Beverages,Offline,L,5/13/2015,860232770,6/4/2015,848,47.45,31.79,40237.60,26957.92,13279.68 -North America,United States of America,Personal Care,Offline,C,7/16/2010,551057326,8/22/2010,8963,81.73,56.67,732545.99,507933.21,224612.78 -Europe,Switzerland,Cosmetics,Online,C,5/21/2016,724799668,5/27/2016,3183,437.20,263.33,1391607.60,838179.39,553428.21 -Australia and Oceania,Papua New Guinea,Cosmetics,Offline,H,4/22/2011,534633624,6/8/2011,8825,437.20,263.33,3858290.00,2323887.25,1534402.75 -Sub-Saharan Africa,Namibia,Beverages,Offline,H,8/14/2012,554045522,9/20/2012,3237,47.45,31.79,153595.65,102904.23,50691.42 -Europe,Ireland,Clothes,Online,C,3/17/2012,526834189,5/2/2012,799,109.28,35.84,87314.72,28636.16,58678.56 -Sub-Saharan Africa,Mozambique,Household,Online,C,8/6/2010,717110955,8/9/2010,7922,668.27,502.54,5294034.94,3981121.88,1312913.06 -Sub-Saharan Africa,Democratic Republic of the Congo,Baby Food,Offline,L,2/25/2013,559299647,3/26/2013,8049,255.28,159.42,2054748.72,1283171.58,771577.14 -North America,United States of America,Meat,Online,M,3/6/2011,908136594,3/10/2011,6654,421.89,364.69,2807256.06,2426647.26,380608.80 -Middle East and North Africa,Azerbaijan,Office Supplies,Offline,M,12/14/2015,888670623,12/16/2015,6240,651.21,524.96,4063550.40,3275750.40,787800.00 -Europe,Belgium,Office Supplies,Offline,C,2/10/2017,146263062,2/16/2017,1345,651.21,524.96,875877.45,706071.20,169806.25 -Asia,Taiwan,Office Supplies,Offline,L,9/20/2016,196587741,10/28/2016,3536,651.21,524.96,2302678.56,1856258.56,446420.00 -Central America and the Caribbean,Panama,Baby Food,Online,M,4/30/2010,375630986,6/2/2010,6411,255.28,159.42,1636600.08,1022041.62,614558.46 -Europe,Andorra,Beverages,Offline,H,6/25/2013,989691627,7/10/2013,600,47.45,31.79,28470.00,19074.00,9396.00 -Europe,Georgia,Household,Offline,H,7/4/2012,165380990,7/27/2012,8765,668.27,502.54,5857386.55,4404763.10,1452623.45 -Central America and the Caribbean,Barbados,Snacks,Online,C,9/21/2013,599622905,10/22/2013,597,152.58,97.44,91090.26,58171.68,32918.58 -Europe,Sweden,Personal Care,Offline,C,12/8/2016,109653699,1/6/2017,7821,81.73,56.67,639210.33,443216.07,195994.26 -Middle East and North Africa,Algeria,Meat,Offline,M,9/2/2011,183022201,10/15/2011,9191,421.89,364.69,3877590.99,3351865.79,525725.20 -Europe,Italy,Personal Care,Online,L,3/21/2011,127589738,4/2/2011,5494,81.73,56.67,449024.62,311344.98,137679.64 -Europe,Russia,Fruits,Offline,L,1/8/2011,221530139,1/26/2011,4546,9.33,6.92,42414.18,31458.32,10955.86 -Central America and the Caribbean,Antigua and Barbuda ,Office Supplies,Offline,M,2/22/2015,363329732,2/22/2015,6197,651.21,524.96,4035548.37,3253177.12,782371.25 -Middle East and North Africa,Jordan,Fruits,Online,C,5/15/2017,521787345,6/25/2017,7325,9.33,6.92,68342.25,50689.00,17653.25 -Sub-Saharan Africa,Mali,Meat,Online,L,7/14/2012,286014306,8/15/2012,6844,421.89,364.69,2887415.16,2495938.36,391476.80 -Middle East and North Africa,Somalia,Cereal,Offline,C,6/25/2015,215434443,6/30/2015,694,205.70,117.11,142755.80,81274.34,61481.46 -Middle East and North Africa,Kuwait,Snacks,Online,L,10/26/2011,489784085,11/1/2011,6850,152.58,97.44,1045173.00,667464.00,377709.00 -Sub-Saharan Africa,Liberia,Office Supplies,Offline,C,9/24/2014,459112060,10/12/2014,316,651.21,524.96,205782.36,165887.36,39895.00 -Asia,China,Office Supplies,Online,C,9/30/2015,893779695,11/7/2015,8128,651.21,524.96,5293034.88,4266874.88,1026160.00 -Europe,Andorra,Meat,Offline,M,3/31/2011,834460818,3/31/2011,4355,421.89,364.69,1837330.95,1588224.95,249106.00 -Sub-Saharan Africa,Niger,Beverages,Online,C,10/25/2013,742141759,10/28/2013,5093,47.45,31.79,241662.85,161906.47,79756.38 -Europe,Hungary,Vegetables,Offline,M,8/12/2010,248121345,9/14/2010,3475,154.06,90.93,535358.50,315981.75,219376.75 -Europe,Monaco,Clothes,Offline,M,7/26/2012,404010903,9/4/2012,4659,109.28,35.84,509135.52,166978.56,342156.96 -Australia and Oceania,Tuvalu,Household,Online,L,9/30/2012,531734263,10/12/2012,840,668.27,502.54,561346.80,422133.60,139213.20 -Sub-Saharan Africa,South Sudan,Baby Food,Online,C,11/9/2012,473527753,12/29/2012,6240,255.28,159.42,1592947.20,994780.80,598166.40 -Europe,Cyprus,Cereal,Offline,M,11/19/2011,141940200,1/2/2012,2114,205.70,117.11,434849.80,247570.54,187279.26 -Europe,Poland,Household,Offline,M,6/9/2017,869832932,7/25/2017,1749,668.27,502.54,1168804.23,878942.46,289861.77 -Sub-Saharan Africa,Liberia,Snacks,Online,H,9/17/2011,460379779,11/4/2011,5462,152.58,97.44,833391.96,532217.28,301174.68 -Sub-Saharan Africa,Cote d'Ivoire,Vegetables,Online,C,10/23/2015,837067067,10/26/2015,5602,154.06,90.93,863044.12,509389.86,353654.26 -Asia,Kyrgyzstan,Beverages,Online,C,4/3/2010,393693625,4/9/2010,1547,47.45,31.79,73405.15,49179.13,24226.02 -Europe,Slovakia,Vegetables,Offline,L,7/3/2014,744370782,7/14/2014,4711,154.06,90.93,725776.66,428371.23,297405.43 -Asia,Malaysia,Cosmetics,Offline,M,12/30/2014,873522365,1/13/2015,3534,437.20,263.33,1545064.80,930608.22,614456.58 -Sub-Saharan Africa,Liberia,Beverages,Online,L,5/19/2014,285884702,6/10/2014,8491,47.45,31.79,402897.95,269928.89,132969.06 -Australia and Oceania,Vanuatu,Cosmetics,Online,H,8/4/2012,356506621,9/3/2012,7086,437.20,263.33,3097999.20,1865956.38,1232042.82 -Australia and Oceania,Kiribati,Baby Food,Offline,L,8/15/2010,280749452,10/1/2010,8856,255.28,159.42,2260759.68,1411823.52,848936.16 -Middle East and North Africa,Turkey,Baby Food,Online,M,4/26/2014,224287021,5/17/2014,368,255.28,159.42,93943.04,58666.56,35276.48 -Europe,San Marino,Fruits,Offline,M,6/10/2015,873105657,6/23/2015,221,9.33,6.92,2061.93,1529.32,532.61 -Europe,Vatican City,Snacks,Offline,C,8/12/2010,283504188,9/2/2010,4044,152.58,97.44,617033.52,394047.36,222986.16 -Middle East and North Africa,Morocco,Beverages,Offline,C,8/28/2012,632093942,9/5/2012,9499,47.45,31.79,450727.55,301973.21,148754.34 -Sub-Saharan Africa,Equatorial Guinea,Meat,Offline,L,7/15/2016,565798747,8/9/2016,1277,421.89,364.69,538753.53,465709.13,73044.40 -Middle East and North Africa,Jordan,Vegetables,Online,M,9/14/2010,151854932,10/19/2010,6104,154.06,90.93,940382.24,555036.72,385345.52 -Asia,Kyrgyzstan,Vegetables,Online,H,3/7/2011,427811324,4/16/2011,7733,154.06,90.93,1191345.98,703161.69,488184.29 -Sub-Saharan Africa,Republic of the Congo,Fruits,Online,L,4/30/2012,251529252,5/5/2012,1950,9.33,6.92,18193.50,13494.00,4699.50 -Australia and Oceania,East Timor,Snacks,Offline,C,5/18/2013,351182544,6/22/2013,1574,152.58,97.44,240160.92,153370.56,86790.36 -Europe,Estonia,Meat,Offline,H,8/10/2014,175257527,9/25/2014,1452,421.89,364.69,612584.28,529529.88,83054.40 -Asia,Bangladesh,Snacks,Online,H,7/31/2013,142553031,9/11/2013,3465,152.58,97.44,528689.70,337629.60,191060.10 -Sub-Saharan Africa,Senegal,Fruits,Offline,H,7/2/2016,292180383,8/15/2016,1523,9.33,6.92,14209.59,10539.16,3670.43 -Middle East and North Africa,Pakistan,Fruits,Offline,L,9/13/2011,733563411,9/20/2011,6569,9.33,6.92,61288.77,45457.48,15831.29 -Europe,Czech Republic,Beverages,Online,H,4/18/2011,296438443,4/19/2011,1578,47.45,31.79,74876.10,50164.62,24711.48 -Sub-Saharan Africa,Ghana,Meat,Offline,C,2/9/2017,580854308,3/18/2017,6552,421.89,364.69,2764223.28,2389448.88,374774.40 -Asia,Japan,Cosmetics,Offline,H,11/20/2016,107172334,12/23/2016,3530,437.20,263.33,1543316.00,929554.90,613761.10 -Asia,Kazakhstan,Baby Food,Offline,H,10/16/2010,166066348,12/5/2010,1578,255.28,159.42,402831.84,251564.76,151267.08 -Central America and the Caribbean,The Bahamas,Snacks,Offline,H,3/15/2015,768522679,3/27/2015,1794,152.58,97.44,273728.52,174807.36,98921.16 -Sub-Saharan Africa,Ethiopia,Household,Online,M,6/25/2013,195840156,7/25/2013,2309,668.27,502.54,1543035.43,1160364.86,382670.57 -Sub-Saharan Africa,Burkina Faso,Cosmetics,Offline,L,10/11/2012,849630105,11/9/2012,3284,437.20,263.33,1435764.80,864775.72,570989.08 -Sub-Saharan Africa,Madagascar,Fruits,Offline,M,7/8/2017,701816356,7/30/2017,1910,9.33,6.92,17820.30,13217.20,4603.10 -Europe,Netherlands,Office Supplies,Online,M,6/22/2010,944635236,7/27/2010,7413,651.21,524.96,4827419.73,3891528.48,935891.25 -Europe,Greece,Vegetables,Online,L,2/17/2017,140635573,3/21/2017,6046,154.06,90.93,931446.76,549762.78,381683.98 -Middle East and North Africa,Egypt,Meat,Online,C,1/14/2011,972678697,2/25/2011,6096,421.89,364.69,2571841.44,2223150.24,348691.20 -Sub-Saharan Africa,South Sudan,Fruits,Online,M,1/9/2016,793938434,2/8/2016,2880,9.33,6.92,26870.40,19929.60,6940.80 -Europe,Kosovo,Baby Food,Online,L,7/18/2011,177901113,8/13/2011,3747,255.28,159.42,956534.16,597346.74,359187.42 -Asia,Brunei,Beverages,Online,L,3/16/2012,668365561,5/4/2012,3077,47.45,31.79,146003.65,97817.83,48185.82 -Australia and Oceania,Australia,Vegetables,Online,C,12/15/2010,729443109,1/12/2011,7281,154.06,90.93,1121710.86,662061.33,459649.53 -Sub-Saharan Africa,Cape Verde,Fruits,Offline,H,3/2/2013,695557582,4/3/2013,9800,9.33,6.92,91434.00,67816.00,23618.00 -Sub-Saharan Africa,Malawi,Household,Offline,H,2/17/2010,521445310,4/4/2010,6110,668.27,502.54,4083129.70,3070519.40,1012610.30 -Asia,Philippines,Personal Care,Online,L,2/19/2013,232155120,3/30/2013,8714,81.73,56.67,712195.22,493822.38,218372.84 -Europe,Estonia,Beverages,Online,L,10/28/2011,373048341,12/12/2011,2149,47.45,31.79,101970.05,68316.71,33653.34 -Central America and the Caribbean,Trinidad and Tobago,Office Supplies,Offline,L,10/26/2015,659798800,12/2/2015,7982,651.21,524.96,5197958.22,4190230.72,1007727.50 -Asia,Mongolia,Household,Online,C,2/5/2013,428392827,2/5/2013,9812,668.27,502.54,6557065.24,4930922.48,1626142.76 -Asia,Japan,Personal Care,Offline,M,8/25/2011,885129249,9/3/2011,8269,81.73,56.67,675825.37,468604.23,207221.14 -Sub-Saharan Africa,Niger,Meat,Online,C,12/4/2012,156619393,12/5/2012,6014,421.89,364.69,2537246.46,2193245.66,344000.80 -Middle East and North Africa,Egypt,Baby Food,Offline,M,9/8/2015,939787089,9/9/2015,2739,255.28,159.42,699211.92,436651.38,262560.54 -Central America and the Caribbean,Saint Lucia,Vegetables,Online,C,3/1/2012,151868665,4/19/2012,168,154.06,90.93,25882.08,15276.24,10605.84 -Middle East and North Africa,Qatar,Cereal,Offline,C,8/5/2014,180412948,8/24/2014,7055,205.70,117.11,1451213.50,826211.05,625002.45 -Sub-Saharan Africa,Mali,Fruits,Offline,H,7/24/2013,333281266,7/28/2013,4188,9.33,6.92,39074.04,28980.96,10093.08 -Central America and the Caribbean,Saint Lucia,Cosmetics,Online,L,1/26/2012,888647449,2/28/2012,9383,437.20,263.33,4102247.60,2470825.39,1631422.21 -Sub-Saharan Africa,Swaziland,Clothes,Offline,M,3/10/2014,844997823,4/26/2014,2488,109.28,35.84,271888.64,89169.92,182718.72 -Asia,Mongolia,Fruits,Online,M,9/12/2013,171131217,10/8/2013,385,9.33,6.92,3592.05,2664.20,927.85 -Sub-Saharan Africa,Botswana,Office Supplies,Online,C,1/5/2013,256158959,1/18/2013,1983,651.21,524.96,1291349.43,1040995.68,250353.75 -Europe,San Marino,Cosmetics,Online,H,10/28/2011,759504878,12/8/2011,3226,437.20,263.33,1410407.20,849502.58,560904.62 -Middle East and North Africa,Oman,Fruits,Online,C,11/21/2010,960905301,11/25/2010,2087,9.33,6.92,19471.71,14442.04,5029.67 -Asia,Bangladesh,Office Supplies,Offline,C,10/28/2015,210409057,12/4/2015,3570,651.21,524.96,2324819.70,1874107.20,450712.50 -Sub-Saharan Africa,Namibia,Cosmetics,Offline,C,7/29/2010,178377473,9/1/2010,4713,437.20,263.33,2060523.60,1241074.29,819449.31 -Asia,Mongolia,Fruits,Online,M,3/30/2014,805484378,5/1/2014,9582,9.33,6.92,89400.06,66307.44,23092.62 -Asia,North Korea,Beverages,Online,C,9/14/2016,752716100,10/12/2016,4276,47.45,31.79,202896.20,135934.04,66962.16 -Europe,Latvia,Clothes,Online,M,9/6/2012,551371467,9/15/2012,1925,109.28,35.84,210364.00,68992.00,141372.00 -Sub-Saharan Africa,Burundi,Snacks,Offline,M,2/8/2013,353061807,3/5/2013,7689,152.58,97.44,1173187.62,749216.16,423971.46 -Sub-Saharan Africa,Seychelles ,Personal Care,Online,C,1/17/2011,379710948,1/30/2011,3762,81.73,56.67,307468.26,213192.54,94275.72 -Sub-Saharan Africa,Kenya,Cereal,Online,H,10/11/2015,473555219,11/6/2015,4368,205.70,117.11,898497.60,511536.48,386961.12 -Sub-Saharan Africa,Benin,Office Supplies,Online,C,2/21/2011,547143447,2/23/2011,760,651.21,524.96,494919.60,398969.60,95950.00 -Central America and the Caribbean,Saint Lucia,Personal Care,Online,C,4/29/2012,133336961,6/13/2012,6225,81.73,56.67,508769.25,352770.75,155998.50 -Middle East and North Africa,Qatar,Meat,Online,H,8/30/2016,635309588,10/14/2016,1080,421.89,364.69,455641.20,393865.20,61776.00 -Sub-Saharan Africa,Mozambique,Beverages,Online,C,12/20/2014,376547658,12/26/2014,7675,47.45,31.79,364178.75,243988.25,120190.50 -Middle East and North Africa,Pakistan,Clothes,Offline,M,6/28/2010,450849997,7/21/2010,5388,109.28,35.84,588800.64,193105.92,395694.72 -Asia,Taiwan,Personal Care,Online,M,2/6/2015,672327935,2/6/2015,5631,81.73,56.67,460221.63,319108.77,141112.86 -Central America and the Caribbean,Cuba,Cereal,Offline,L,3/30/2015,925405299,5/1/2015,6847,205.70,117.11,1408427.90,801852.17,606575.73 -Central America and the Caribbean,Cuba,Household,Offline,H,7/28/2013,714818418,8/24/2013,9509,668.27,502.54,6354579.43,4778652.86,1575926.57 -Europe,Russia,Beverages,Offline,C,1/6/2010,515616118,2/5/2010,1122,47.45,31.79,53238.90,35668.38,17570.52 -Europe,Switzerland,Cereal,Offline,C,2/20/2013,423159730,4/11/2013,1222,205.70,117.11,251365.40,143108.42,108256.98 -Europe,Czech Republic,Personal Care,Offline,H,8/25/2013,603123080,9/29/2013,6377,81.73,56.67,521192.21,361384.59,159807.62 -Europe,Poland,Meat,Offline,C,11/16/2010,841492497,12/31/2010,5185,421.89,364.69,2187499.65,1890917.65,296582.00 -Sub-Saharan Africa,Mauritius ,Cereal,Offline,L,8/2/2016,994566810,9/1/2016,3275,205.70,117.11,673667.50,383535.25,290132.25 -Middle East and North Africa,Pakistan,Vegetables,Offline,M,4/25/2013,538957345,4/25/2013,8310,154.06,90.93,1280238.60,755628.30,524610.30 -Sub-Saharan Africa,South Africa,Fruits,Offline,L,3/2/2011,821587932,3/11/2011,4981,9.33,6.92,46472.73,34468.52,12004.21 -Sub-Saharan Africa,Seychelles ,Household,Online,C,9/28/2013,109694898,10/16/2013,13,668.27,502.54,8687.51,6533.02,2154.49 -Sub-Saharan Africa,Benin,Meat,Offline,M,5/5/2014,340827071,6/5/2014,7159,421.89,364.69,3020310.51,2610815.71,409494.80 -Sub-Saharan Africa,Benin,Meat,Offline,L,11/28/2014,372845780,12/9/2014,2207,421.89,364.69,931111.23,804870.83,126240.40 -Central America and the Caribbean,Nicaragua,Fruits,Online,M,8/30/2014,933924853,9/13/2014,7973,9.33,6.92,74388.09,55173.16,19214.93 -Middle East and North Africa,Lebanon,Office Supplies,Online,L,11/20/2013,572550618,11/25/2013,9306,651.21,524.96,6060160.26,4885277.76,1174882.50 -Europe,Moldova ,Meat,Online,M,2/23/2010,607521903,4/5/2010,8086,421.89,364.69,3411402.54,2948883.34,462519.20 -Middle East and North Africa,Tunisia ,Snacks,Online,H,3/20/2017,177950036,4/29/2017,8225,152.58,97.44,1254970.50,801444.00,453526.50 -Australia and Oceania,Vanuatu,Beverages,Offline,M,11/8/2015,293258845,11/14/2015,664,47.45,31.79,31506.80,21108.56,10398.24 -Sub-Saharan Africa,South Sudan,Beverages,Online,C,8/9/2010,683184659,8/23/2010,8377,47.45,31.79,397488.65,266304.83,131183.82 -Europe,Sweden,Cereal,Online,L,11/12/2010,247776305,11/30/2010,1370,205.70,117.11,281809.00,160440.70,121368.30 -Europe,Ireland,Meat,Offline,C,12/14/2011,207395112,1/26/2012,1677,421.89,364.69,707509.53,611585.13,95924.40 -Europe,Italy,Vegetables,Offline,L,1/10/2014,952714908,2/25/2014,8367,154.06,90.93,1289020.02,760811.31,528208.71 -Europe,Bosnia and Herzegovina,Vegetables,Online,C,10/3/2010,694722020,10/3/2010,2539,154.06,90.93,391158.34,230871.27,160287.07 -Europe,Bosnia and Herzegovina,Household,Online,H,10/15/2015,414715278,11/4/2015,2321,668.27,502.54,1551054.67,1166395.34,384659.33 -Europe,Poland,Snacks,Offline,M,7/20/2013,714306008,8/17/2013,7876,152.58,97.44,1201720.08,767437.44,434282.64 -Middle East and North Africa,Kuwait,Snacks,Online,H,1/19/2016,465418040,2/26/2016,6396,152.58,97.44,975901.68,623226.24,352675.44 -Sub-Saharan Africa,Sudan,Cereal,Online,M,8/17/2013,860287702,9/11/2013,7103,205.70,117.11,1461087.10,831832.33,629254.77 -Middle East and North Africa,Saudi Arabia,Vegetables,Online,C,8/16/2016,461463820,8/20/2016,6254,154.06,90.93,963491.24,568676.22,394815.02 -Sub-Saharan Africa,Swaziland,Baby Food,Offline,M,9/25/2013,151807725,9/29/2013,2134,255.28,159.42,544767.52,340202.28,204565.24 -Sub-Saharan Africa,Rwanda,Meat,Offline,C,8/21/2013,884493243,10/2/2013,61,421.89,364.69,25735.29,22246.09,3489.20 -Asia,Cambodia,Cosmetics,Offline,M,12/10/2010,533006703,1/23/2011,7383,437.20,263.33,3227847.60,1944165.39,1283682.21 -Sub-Saharan Africa,Central African Republic,Vegetables,Online,C,9/4/2012,641146934,10/4/2012,8480,154.06,90.93,1306428.80,771086.40,535342.40 -Asia,Maldives,Cosmetics,Offline,M,10/15/2011,573025262,11/14/2011,9764,437.20,263.33,4268820.80,2571154.12,1697666.68 -Sub-Saharan Africa,Djibouti,Household,Offline,C,8/26/2013,663065516,9/9/2013,4676,668.27,502.54,3124830.52,2349877.04,774953.48 -Asia,Tajikistan,Beverages,Online,M,2/17/2017,866004025,3/4/2017,8691,47.45,31.79,412387.95,276286.89,136101.06 -Asia,Sri Lanka,Baby Food,Online,H,10/19/2010,306889617,10/21/2010,4312,255.28,159.42,1100767.36,687419.04,413348.32 -Europe,Montenegro,Personal Care,Online,M,7/30/2014,431083619,8/10/2014,6077,81.73,56.67,496673.21,344383.59,152289.62 -Middle East and North Africa,United Arab Emirates,Personal Care,Online,H,5/21/2015,954259860,6/4/2015,5553,81.73,56.67,453846.69,314688.51,139158.18 -Central America and the Caribbean,Dominican Republic,Personal Care,Offline,C,5/5/2016,312404668,6/21/2016,6338,81.73,56.67,518004.74,359174.46,158830.28 -Sub-Saharan Africa,Seychelles ,Office Supplies,Offline,C,4/14/2010,611816871,5/16/2010,9063,651.21,524.96,5901916.23,4757712.48,1144203.75 -Europe,Iceland,Office Supplies,Online,C,10/26/2013,879107797,11/2/2013,6388,651.21,524.96,4159929.48,3353444.48,806485.00 -Sub-Saharan Africa,Nigeria,Vegetables,Offline,C,7/21/2010,211201274,9/9/2010,8005,154.06,90.93,1233250.30,727894.65,505355.65 -Sub-Saharan Africa,Rwanda,Fruits,Online,H,6/9/2015,925333631,7/25/2015,5639,9.33,6.92,52611.87,39021.88,13589.99 -Europe,Hungary,Snacks,Offline,C,6/3/2010,909053695,6/27/2010,8044,152.58,97.44,1227353.52,783807.36,443546.16 -Europe,Belarus,Baby Food,Online,L,5/17/2016,370222795,6/11/2016,6007,255.28,159.42,1533466.96,957635.94,575831.02 -Sub-Saharan Africa,South Sudan,Cosmetics,Offline,H,8/3/2013,487014758,8/30/2013,7344,437.20,263.33,3210796.80,1933895.52,1276901.28 -Europe,Andorra,Vegetables,Online,M,9/15/2013,257915914,10/6/2013,1905,154.06,90.93,293484.30,173221.65,120262.65 -Asia,Japan,Meat,Offline,M,7/2/2010,551725089,8/10/2010,6569,421.89,364.69,2771395.41,2395648.61,375746.80 -Central America and the Caribbean,El Salvador,Meat,Offline,L,12/18/2013,957553613,1/10/2014,248,421.89,364.69,104628.72,90443.12,14185.60 -Sub-Saharan Africa,Kenya,Office Supplies,Offline,L,3/19/2016,234825313,3/23/2016,8883,651.21,524.96,5784698.43,4663219.68,1121478.75 -Europe,Bosnia and Herzegovina,Snacks,Online,M,6/9/2010,363276517,7/9/2010,449,152.58,97.44,68508.42,43750.56,24757.86 -Europe,Andorra,Personal Care,Online,M,5/21/2017,692956054,6/23/2017,9950,81.73,56.67,813213.50,563866.50,249347.00 -Sub-Saharan Africa,Cape Verde,Cosmetics,Online,H,6/12/2013,194225251,6/19/2013,4423,437.20,263.33,1933735.60,1164708.59,769027.01 -Australia and Oceania,Nauru,Fruits,Online,L,2/22/2010,607757937,4/5/2010,7934,9.33,6.92,74024.22,54903.28,19120.94 -Europe,Czech Republic,Cereal,Offline,H,6/29/2012,594540441,7/30/2012,6583,205.70,117.11,1354123.10,770935.13,583187.97 -Europe,Serbia,Vegetables,Online,L,3/23/2015,685871589,4/5/2015,3500,154.06,90.93,539210.00,318255.00,220955.00 -Australia and Oceania,Tuvalu,Cereal,Offline,C,2/12/2014,133362710,3/23/2014,3844,205.70,117.11,790710.80,450170.84,340539.96 -Sub-Saharan Africa,Madagascar,Clothes,Offline,H,5/22/2017,958937633,7/5/2017,9810,109.28,35.84,1072036.80,351590.40,720446.40 -Sub-Saharan Africa,Ethiopia,Vegetables,Online,C,8/6/2011,304832684,9/6/2011,5620,154.06,90.93,865817.20,511026.60,354790.60 -Asia,Malaysia,Baby Food,Offline,L,11/14/2010,783596694,12/24/2010,2530,255.28,159.42,645858.40,403332.60,242525.80 -Sub-Saharan Africa,Tanzania,Household,Offline,C,4/5/2015,128090989,4/27/2015,3825,668.27,502.54,2556132.75,1922215.50,633917.25 -Sub-Saharan Africa,Cote d'Ivoire,Vegetables,Offline,M,7/8/2014,641489398,7/28/2014,9823,154.06,90.93,1513331.38,893205.39,620125.99 -Australia and Oceania,Solomon Islands,Clothes,Offline,M,8/9/2014,647278249,9/16/2014,2873,109.28,35.84,313961.44,102968.32,210993.12 -Europe,Netherlands,Clothes,Online,H,3/13/2011,339256370,3/31/2011,2354,109.28,35.84,257245.12,84367.36,172877.76 -Sub-Saharan Africa,Mali,Baby Food,Offline,M,3/2/2016,431535089,3/19/2016,9677,255.28,159.42,2470344.56,1542707.34,927637.22 -Middle East and North Africa,Afghanistan,Cereal,Offline,C,12/19/2015,808538234,1/16/2016,3286,205.70,117.11,675930.20,384823.46,291106.74 -Europe,Moldova ,Personal Care,Online,C,3/28/2013,975002133,4/7/2013,3653,81.73,56.67,298559.69,207015.51,91544.18 -Asia,Bhutan,Snacks,Online,H,6/27/2015,505975615,7/4/2015,8283,152.58,97.44,1263820.14,807095.52,456724.62 -Asia,Vietnam,Vegetables,Offline,M,2/18/2016,396820008,3/20/2016,6714,154.06,90.93,1034358.84,610504.02,423854.82 -Europe,Portugal,Vegetables,Online,H,6/14/2013,813209140,7/10/2013,5511,154.06,90.93,849024.66,501115.23,347909.43 -Europe,Spain,Baby Food,Online,M,5/10/2014,641129338,5/14/2014,3273,255.28,159.42,835531.44,521781.66,313749.78 -Middle East and North Africa,Egypt,Meat,Offline,C,6/17/2015,636879432,7/3/2015,5632,421.89,364.69,2376084.48,2053934.08,322150.40 -Europe,Belgium,Snacks,Online,C,6/11/2014,277070748,7/2/2014,246,152.58,97.44,37534.68,23970.24,13564.44 -Asia,Malaysia,Cosmetics,Offline,H,11/3/2013,908627116,11/24/2013,1810,437.20,263.33,791332.00,476627.30,314704.70 -Central America and the Caribbean,Dominican Republic,Cosmetics,Offline,C,4/2/2017,798784863,5/2/2017,7047,437.20,263.33,3080948.40,1855686.51,1225261.89 -Europe,Estonia,Beverages,Offline,H,5/28/2010,985092818,7/17/2010,9711,47.45,31.79,460786.95,308712.69,152074.26 -Sub-Saharan Africa,Burundi,Snacks,Offline,C,5/22/2010,325412309,7/7/2010,5588,152.58,97.44,852617.04,544494.72,308122.32 -Europe,Latvia,Beverages,Online,M,6/2/2016,447917163,6/24/2016,7497,47.45,31.79,355732.65,238329.63,117403.02 -Asia,Tajikistan,Meat,Offline,M,8/22/2013,801093709,10/5/2013,285,421.89,364.69,120238.65,103936.65,16302.00 -Sub-Saharan Africa,Zimbabwe,Fruits,Offline,H,10/5/2014,903740775,10/23/2014,5833,9.33,6.92,54421.89,40364.36,14057.53 -Sub-Saharan Africa,Comoros,Meat,Offline,L,10/31/2010,794969689,11/13/2010,8052,421.89,364.69,3397058.28,2936483.88,460574.40 -Sub-Saharan Africa,Namibia,Clothes,Online,L,11/27/2012,584204280,1/1/2013,7884,109.28,35.84,861563.52,282562.56,579000.96 -Europe,Slovenia,Cereal,Offline,H,5/22/2010,901180875,5/26/2010,8302,205.70,117.11,1707721.40,972247.22,735474.18 -Europe,Bulgaria,Snacks,Offline,L,8/31/2012,645948302,9/29/2012,9312,152.58,97.44,1420824.96,907361.28,513463.68 -Sub-Saharan Africa,Guinea-Bissau,Cereal,Online,L,1/23/2015,138867890,2/22/2015,2950,205.70,117.11,606815.00,345474.50,261340.50 -Sub-Saharan Africa,Lesotho,Beverages,Offline,L,3/2/2010,670613467,3/21/2010,8282,47.45,31.79,392980.90,263284.78,129696.12 -Asia,Sri Lanka,Cosmetics,Offline,L,5/9/2014,452171361,5/27/2014,6409,437.20,263.33,2802014.80,1687681.97,1114332.83 -Australia and Oceania,East Timor,Snacks,Online,H,12/28/2010,464840400,2/5/2011,5459,152.58,97.44,832934.22,531924.96,301009.26 -Europe,Belarus,Household,Online,M,10/19/2014,410231912,10/24/2014,5594,668.27,502.54,3738302.38,2811208.76,927093.62 -Sub-Saharan Africa,Benin,Meat,Offline,H,1/21/2015,960269725,2/22/2015,4006,421.89,364.69,1690091.34,1460948.14,229143.20 -Europe,Ireland,Beverages,Offline,L,4/4/2017,607190167,5/18/2017,9919,47.45,31.79,470656.55,315325.01,155331.54 -Middle East and North Africa,Iran,Meat,Offline,H,8/5/2016,613542068,8/11/2016,9587,421.89,364.69,4044659.43,3496283.03,548376.40 -Sub-Saharan Africa,Benin,Household,Offline,C,11/26/2016,962186753,1/12/2017,1297,668.27,502.54,866746.19,651794.38,214951.81 -Sub-Saharan Africa,South Sudan,Beverages,Online,L,9/23/2011,806298053,10/24/2011,366,47.45,31.79,17366.70,11635.14,5731.56 -Sub-Saharan Africa,Comoros,Personal Care,Online,L,10/24/2010,719362294,12/3/2010,4144,81.73,56.67,338689.12,234840.48,103848.64 -Europe,Poland,Baby Food,Online,H,8/14/2013,445178306,9/22/2013,7008,255.28,159.42,1789002.24,1117215.36,671786.88 -Europe,Bosnia and Herzegovina,Cosmetics,Offline,C,2/4/2013,247857415,2/15/2013,5372,437.20,263.33,2348638.40,1414608.76,934029.64 -Sub-Saharan Africa,Namibia,Vegetables,Offline,C,8/11/2014,461823451,9/4/2014,2677,154.06,90.93,412418.62,243419.61,168999.01 -Europe,Spain,Office Supplies,Offline,C,1/12/2017,141812741,1/24/2017,4396,651.21,524.96,2862719.16,2307724.16,554995.00 -Middle East and North Africa,Iran,Meat,Online,C,7/3/2016,212874114,8/17/2016,3036,421.89,364.69,1280858.04,1107198.84,173659.20 -Central America and the Caribbean,Guatemala,Office Supplies,Offline,C,3/27/2010,320368897,4/2/2010,3131,651.21,524.96,2038938.51,1643649.76,395288.75 -Australia and Oceania,East Timor,Beverages,Online,C,6/5/2015,179970920,6/25/2015,6249,47.45,31.79,296515.05,198655.71,97859.34 -Middle East and North Africa,Bahrain,Household,Online,H,6/27/2012,927666509,7/17/2012,5990,668.27,502.54,4002937.30,3010214.60,992722.70 -Sub-Saharan Africa,Ethiopia,Office Supplies,Online,L,12/19/2016,169754493,1/20/2017,2982,651.21,524.96,1941908.22,1565430.72,376477.50 -Australia and Oceania,Solomon Islands,Personal Care,Offline,M,3/9/2015,532846200,4/20/2015,9886,81.73,56.67,807982.78,560239.62,247743.16 -Central America and the Caribbean,Belize,Snacks,Online,C,6/18/2013,213865458,7/13/2013,6397,152.58,97.44,976054.26,623323.68,352730.58 -Asia,Sri Lanka,Office Supplies,Online,C,8/12/2011,630048596,9/3/2011,4236,651.21,524.96,2758525.56,2223730.56,534795.00 -Central America and the Caribbean,Costa Rica,Clothes,Offline,H,4/17/2014,568944442,4/24/2014,2158,109.28,35.84,235826.24,77342.72,158483.52 -Sub-Saharan Africa,Nigeria,Baby Food,Online,L,2/3/2012,238414323,2/27/2012,951,255.28,159.42,242771.28,151608.42,91162.86 -Middle East and North Africa,Iran,Office Supplies,Online,L,8/1/2015,816632068,9/19/2015,8431,651.21,524.96,5490351.51,4425937.76,1064413.75 -Sub-Saharan Africa,Djibouti,Baby Food,Online,C,9/11/2013,402084004,10/5/2013,4447,255.28,159.42,1135230.16,708940.74,426289.42 -Asia,South Korea,Snacks,Online,L,5/8/2015,763568961,6/7/2015,5879,152.58,97.44,897017.82,572849.76,324168.06 -Central America and the Caribbean,Dominica,Snacks,Offline,L,5/22/2015,590198266,6/1/2015,1637,152.58,97.44,249773.46,159509.28,90264.18 -Asia,Vietnam,Snacks,Online,L,7/3/2013,441395747,8/19/2013,7665,152.58,97.44,1169525.70,746877.60,422648.10 -Europe,Norway,Personal Care,Offline,H,6/16/2010,496897733,7/21/2010,1936,81.73,56.67,158229.28,109713.12,48516.16 -Central America and the Caribbean,Haiti,Beverages,Online,C,11/8/2011,106753051,11/14/2011,9455,47.45,31.79,448639.75,300574.45,148065.30 -Central America and the Caribbean,Jamaica,Fruits,Offline,L,10/17/2016,941323029,10/27/2016,7258,9.33,6.92,67717.14,50225.36,17491.78 -Sub-Saharan Africa,Sudan,Vegetables,Offline,M,2/2/2014,241281497,3/3/2014,9412,154.06,90.93,1450012.72,855833.16,594179.56 -Sub-Saharan Africa,Angola,Meat,Offline,L,4/30/2016,267614781,5/12/2016,2016,421.89,364.69,850530.24,735215.04,115315.20 -Central America and the Caribbean,Panama,Cosmetics,Offline,M,8/31/2010,651621711,10/16/2010,8200,437.20,263.33,3585040.00,2159306.00,1425734.00 -Europe,Greece,Personal Care,Online,M,8/8/2015,644913613,9/7/2015,3124,81.73,56.67,255324.52,177037.08,78287.44 -Sub-Saharan Africa,Madagascar,Cereal,Offline,H,8/18/2016,469414317,8/19/2016,8983,205.70,117.11,1847803.10,1051999.13,795803.97 -Sub-Saharan Africa,Guinea-Bissau,Clothes,Online,L,6/18/2015,867360150,7/1/2015,9998,109.28,35.84,1092581.44,358328.32,734253.12 -North America,Greenland,Clothes,Online,L,1/28/2011,851299941,2/1/2011,7425,109.28,35.84,811404.00,266112.00,545292.00 -Middle East and North Africa,Libya,Beverages,Offline,H,2/4/2011,854095017,3/4/2011,4550,47.45,31.79,215897.50,144644.50,71253.00 -Europe,Belarus,Vegetables,Offline,C,11/3/2012,478919208,11/27/2012,1691,154.06,90.93,260515.46,153762.63,106752.83 -Middle East and North Africa,Lebanon,Clothes,Offline,H,9/18/2014,749258840,11/5/2014,1196,109.28,35.84,130698.88,42864.64,87834.24 -Sub-Saharan Africa,Djibouti,Baby Food,Offline,H,5/17/2012,958912742,6/28/2012,2444,255.28,159.42,623904.32,389622.48,234281.84 -Central America and the Caribbean,Barbados,Personal Care,Online,C,2/20/2010,921992242,3/4/2010,6848,81.73,56.67,559687.04,388076.16,171610.88 -Sub-Saharan Africa,Guinea-Bissau,Vegetables,Online,L,2/28/2017,522921168,3/2/2017,2849,154.06,90.93,438916.94,259059.57,179857.37 -Europe,Finland,Personal Care,Offline,C,5/17/2013,166435849,6/7/2013,921,81.73,56.67,75273.33,52193.07,23080.26 -Central America and the Caribbean,Haiti,Baby Food,Offline,L,11/9/2013,327585113,11/23/2013,8569,255.28,159.42,2187494.32,1366069.98,821424.34 -Sub-Saharan Africa,Niger,Clothes,Offline,M,1/10/2012,201730287,2/19/2012,5330,109.28,35.84,582462.40,191027.20,391435.20 -Central America and the Caribbean,Trinidad and Tobago,Fruits,Offline,L,9/24/2013,854545199,11/9/2013,7769,9.33,6.92,72484.77,53761.48,18723.29 -Central America and the Caribbean,Grenada,Personal Care,Online,M,9/26/2010,272016179,11/8/2010,4487,81.73,56.67,366722.51,254278.29,112444.22 -Central America and the Caribbean,Dominican Republic,Cereal,Offline,H,10/21/2014,110442054,11/20/2014,1113,205.70,117.11,228944.10,130343.43,98600.67 -Europe,Monaco,Household,Offline,C,1/17/2016,746434152,2/5/2016,5308,668.27,502.54,3547177.16,2667482.32,879694.84 -Europe,Estonia,Vegetables,Online,L,12/27/2016,826916301,1/7/2017,1764,154.06,90.93,271761.84,160400.52,111361.32 -Europe,Italy,Beverages,Offline,H,8/30/2013,419124829,9/19/2013,7206,47.45,31.79,341924.70,229078.74,112845.96 -Asia,Malaysia,Office Supplies,Online,C,7/7/2014,560608565,8/24/2014,5387,651.21,524.96,3508068.27,2827959.52,680108.75 -Sub-Saharan Africa,Ghana,Office Supplies,Offline,L,11/29/2013,109228837,12/7/2013,2095,651.21,524.96,1364284.95,1099791.20,264493.75 -Middle East and North Africa,Pakistan,Clothes,Offline,C,1/29/2011,693159472,2/5/2011,146,109.28,35.84,15954.88,5232.64,10722.24 -Asia,Sri Lanka,Snacks,Offline,L,11/13/2013,860886800,11/23/2013,4390,152.58,97.44,669826.20,427761.60,242064.60 -Europe,Romania,Fruits,Offline,C,4/9/2012,131209647,5/3/2012,6705,9.33,6.92,62557.65,46398.60,16159.05 -Middle East and North Africa,Qatar,Office Supplies,Online,H,6/28/2012,343239343,7/13/2012,1004,651.21,524.96,653814.84,527059.84,126755.00 -Sub-Saharan Africa,Cote d'Ivoire,Clothes,Online,H,6/8/2010,706399714,7/19/2010,8228,109.28,35.84,899155.84,294891.52,604264.32 -Middle East and North Africa,Egypt,Office Supplies,Online,M,8/23/2010,950427091,9/14/2010,1352,651.21,524.96,880435.92,709745.92,170690.00 -Middle East and North Africa,Iran,Snacks,Offline,H,12/11/2014,875370299,12/28/2014,379,152.58,97.44,57827.82,36929.76,20898.06 -Middle East and North Africa,Somalia,Clothes,Online,C,1/27/2011,801590669,3/15/2011,7347,109.28,35.84,802880.16,263316.48,539563.68 -Middle East and North Africa,Syria,Personal Care,Offline,C,5/7/2014,219762027,5/28/2014,1322,81.73,56.67,108047.06,74917.74,33129.32 -Australia and Oceania,Solomon Islands,Cereal,Offline,C,11/8/2010,940870702,11/21/2010,3404,205.70,117.11,700202.80,398642.44,301560.36 -Central America and the Caribbean,Guatemala,Fruits,Online,M,3/30/2014,346215522,5/4/2014,1721,9.33,6.92,16056.93,11909.32,4147.61 -Middle East and North Africa,Kuwait,Clothes,Offline,C,7/9/2016,837407815,7/20/2016,6436,109.28,35.84,703326.08,230666.24,472659.84 -Middle East and North Africa,Jordan,Meat,Online,L,7/15/2014,386371409,7/19/2014,4741,421.89,364.69,2000180.49,1728995.29,271185.20 -Australia and Oceania,Marshall Islands,Beverages,Offline,H,10/14/2013,185342633,11/24/2013,5859,47.45,31.79,278009.55,186257.61,91751.94 -Middle East and North Africa,Egypt,Snacks,Offline,C,1/13/2017,596870315,2/18/2017,6045,152.58,97.44,922346.10,589024.80,333321.30 -Europe,Switzerland,Meat,Online,C,12/22/2012,703815782,1/7/2013,3585,421.89,364.69,1512475.65,1307413.65,205062.00 -Australia and Oceania,Samoa ,Personal Care,Online,C,4/16/2010,559352862,6/4/2010,3797,81.73,56.67,310328.81,215175.99,95152.82 -Europe,Portugal,Cosmetics,Offline,C,2/27/2011,736967885,3/12/2011,4029,437.20,263.33,1761478.80,1060956.57,700522.23 -Europe,Albania,Clothes,Offline,C,1/14/2015,980459678,2/9/2015,8661,109.28,35.84,946474.08,310410.24,636063.84 -Central America and the Caribbean,Dominica,Vegetables,Offline,C,11/16/2014,653939568,12/6/2014,4105,154.06,90.93,632416.30,373267.65,259148.65 -Australia and Oceania,Tuvalu,Cosmetics,Online,H,1/17/2016,991831386,1/29/2016,3803,437.20,263.33,1662671.60,1001443.99,661227.61 -Australia and Oceania,Marshall Islands,Cereal,Online,L,5/29/2017,148871457,7/6/2017,3227,205.70,117.11,663793.90,377913.97,285879.93 -Europe,Bulgaria,Fruits,Online,H,2/10/2015,850108611,2/25/2015,4884,9.33,6.92,45567.72,33797.28,11770.44 -Sub-Saharan Africa,Niger,Office Supplies,Offline,M,12/8/2013,940904176,1/7/2014,3309,651.21,524.96,2154853.89,1737092.64,417761.25 -Central America and the Caribbean,Saint Vincent and the Grenadines,Office Supplies,Offline,H,12/10/2015,136931979,12/13/2015,70,651.21,524.96,45584.70,36747.20,8837.50 -Sub-Saharan Africa,Malawi,Beverages,Offline,L,9/4/2016,474178349,9/26/2016,8766,47.45,31.79,415946.70,278671.14,137275.56 -Sub-Saharan Africa,Cape Verde,Personal Care,Offline,L,7/19/2016,458942115,7/29/2016,25,81.73,56.67,2043.25,1416.75,626.50 -Central America and the Caribbean,Saint Vincent and the Grenadines,Beverages,Offline,C,1/9/2017,917834603,1/13/2017,6510,47.45,31.79,308899.50,206952.90,101946.60 -Europe,Greece,Personal Care,Offline,H,11/5/2016,947779643,12/5/2016,7913,81.73,56.67,646729.49,448429.71,198299.78 -Europe,Monaco,Clothes,Online,L,10/31/2015,166013562,11/26/2015,5957,109.28,35.84,650980.96,213498.88,437482.08 -Sub-Saharan Africa,Nigeria,Beverages,Online,L,1/25/2011,960085189,2/13/2011,9397,47.45,31.79,445887.65,298730.63,147157.02 -Europe,Norway,Cosmetics,Offline,C,11/8/2015,837855851,11/8/2015,9020,437.20,263.33,3943544.00,2375236.60,1568307.40 -North America,Greenland,Snacks,Offline,L,6/24/2010,977499377,8/12/2010,2643,152.58,97.44,403268.94,257533.92,145735.02 -Middle East and North Africa,Tunisia ,Beverages,Online,L,2/27/2014,377502095,3/3/2014,114,47.45,31.79,5409.30,3624.06,1785.24 -Asia,Uzbekistan,Meat,Offline,H,2/5/2013,806662833,3/27/2013,8313,421.89,364.69,3507171.57,3031667.97,475503.60 -Central America and the Caribbean,Saint Kitts and Nevis ,Vegetables,Online,H,4/15/2017,954092919,5/11/2017,6152,154.06,90.93,947777.12,559401.36,388375.76 -Central America and the Caribbean,Belize,Meat,Online,L,4/9/2011,479216182,4/26/2011,9572,421.89,364.69,4038331.08,3490812.68,547518.40 -Sub-Saharan Africa,Angola,Personal Care,Online,H,12/13/2010,461768949,12/30/2010,6548,81.73,56.67,535168.04,371075.16,164092.88 -Asia,Bhutan,Meat,Online,C,5/13/2014,251800048,5/22/2014,2085,421.89,364.69,879640.65,760378.65,119262.00 -Central America and the Caribbean,Honduras,Personal Care,Offline,L,1/16/2013,619670808,2/25/2013,3217,81.73,56.67,262925.41,182307.39,80618.02 -Sub-Saharan Africa,South Sudan,Household,Offline,H,12/9/2010,606055057,1/23/2011,4014,668.27,502.54,2682435.78,2017195.56,665240.22 -Asia,Kyrgyzstan,Baby Food,Online,L,1/24/2013,671939122,2/14/2013,573,255.28,159.42,146275.44,91347.66,54927.78 -Sub-Saharan Africa,Sao Tome and Principe,Cosmetics,Offline,M,2/25/2014,448621833,3/3/2014,6025,437.20,263.33,2634130.00,1586563.25,1047566.75 -Sub-Saharan Africa,Madagascar,Fruits,Online,M,7/23/2017,987714517,9/11/2017,5530,9.33,6.92,51594.90,38267.60,13327.30 -Sub-Saharan Africa,Senegal,Household,Online,H,5/7/2016,711141002,6/14/2016,1280,668.27,502.54,855385.60,643251.20,212134.40 -Sub-Saharan Africa,Sierra Leone,Office Supplies,Online,C,3/24/2012,361137616,4/18/2012,7501,651.21,524.96,4884726.21,3937724.96,947001.25 -Asia,Malaysia,Household,Offline,H,10/3/2011,750253188,11/21/2011,5446,668.27,502.54,3639398.42,2736832.84,902565.58 -Central America and the Caribbean,Cuba,Office Supplies,Online,C,12/22/2014,511349046,1/2/2015,8401,651.21,524.96,5470815.21,4410188.96,1060626.25 -Sub-Saharan Africa,Zimbabwe,Personal Care,Offline,L,8/23/2011,147599017,8/28/2011,6684,81.73,56.67,546283.32,378782.28,167501.04 -Europe,Serbia,Beverages,Online,H,4/18/2015,682489430,5/23/2015,2644,47.45,31.79,125457.80,84052.76,41405.04 -Asia,Maldives,Vegetables,Offline,M,1/11/2014,509819114,2/23/2014,5660,154.06,90.93,871979.60,514663.80,357315.80 -Europe,Ireland,Office Supplies,Offline,M,2/27/2012,343699395,4/2/2012,7144,651.21,524.96,4652244.24,3750314.24,901930.00 -Europe,Romania,Clothes,Offline,L,4/4/2011,968554103,4/8/2011,5537,109.28,35.84,605083.36,198446.08,406637.28 -Europe,Croatia,Beverages,Online,M,12/26/2013,989119565,1/6/2014,1315,47.45,31.79,62396.75,41803.85,20592.90 -Europe,Albania,Vegetables,Offline,M,9/12/2012,880444610,10/31/2012,1980,154.06,90.93,305038.80,180041.40,124997.40 -Central America and the Caribbean,Dominican Republic,Vegetables,Offline,L,12/19/2015,737890565,1/15/2016,7071,154.06,90.93,1089358.26,642966.03,446392.23 -Sub-Saharan Africa,Zimbabwe,Vegetables,Online,M,6/26/2014,727131259,8/9/2014,3153,154.06,90.93,485751.18,286702.29,199048.89 -Sub-Saharan Africa,Ghana,Office Supplies,Offline,L,3/2/2015,634153020,3/11/2015,8826,651.21,524.96,5747579.46,4633296.96,1114282.50 -Asia,Laos,Beverages,Online,H,8/17/2014,315254676,9/8/2014,9719,47.45,31.79,461166.55,308967.01,152199.54 -Central America and the Caribbean,Panama,Personal Care,Offline,M,7/19/2010,147047555,9/3/2010,3494,81.73,56.67,285564.62,198004.98,87559.64 -Sub-Saharan Africa,Angola,Household,Online,L,1/14/2013,576455485,2/13/2013,4843,668.27,502.54,3236431.61,2433801.22,802630.39 -Middle East and North Africa,Syria,Snacks,Offline,L,7/19/2010,770714795,8/26/2010,490,152.58,97.44,74764.20,47745.60,27018.60 -Sub-Saharan Africa,Sierra Leone,Cosmetics,Offline,H,7/11/2011,867374312,8/3/2011,4189,437.20,263.33,1831430.80,1103089.37,728341.43 -Sub-Saharan Africa,Uganda,Fruits,Online,L,5/4/2010,624295365,6/23/2010,1727,9.33,6.92,16112.91,11950.84,4162.07 -Asia,Taiwan,Clothes,Offline,M,10/13/2013,769651782,11/3/2013,5921,109.28,35.84,647046.88,212208.64,434838.24 -Middle East and North Africa,Azerbaijan,Vegetables,Online,C,7/27/2014,751929891,8/1/2014,1619,154.06,90.93,249423.14,147215.67,102207.47 -Asia,Maldives,Office Supplies,Online,H,4/4/2010,989928519,4/11/2010,702,651.21,524.96,457149.42,368521.92,88627.50 -Sub-Saharan Africa,Mauritania,Meat,Offline,H,8/17/2014,622758996,10/1/2014,7081,421.89,364.69,2987403.09,2582369.89,405033.20 -Sub-Saharan Africa,Burundi,Baby Food,Online,H,1/4/2016,659845149,1/29/2016,1698,255.28,159.42,433465.44,270695.16,162770.28 -Sub-Saharan Africa,Zambia,Baby Food,Offline,H,5/17/2011,830923306,6/5/2011,7526,255.28,159.42,1921237.28,1199794.92,721442.36 -Asia,Singapore,Beverages,Offline,L,2/12/2010,936042296,3/17/2010,4571,47.45,31.79,216893.95,145312.09,71581.86 -Sub-Saharan Africa,Ghana,Household,Online,L,2/17/2015,395563447,3/30/2015,4869,668.27,502.54,3253806.63,2446867.26,806939.37 -Sub-Saharan Africa,Guinea,Meat,Offline,M,6/7/2011,500160586,6/7/2011,7487,421.89,364.69,3158690.43,2730434.03,428256.40 -Sub-Saharan Africa,Zambia,Fruits,Online,L,5/26/2015,360820043,7/2/2015,3524,9.33,6.92,32878.92,24386.08,8492.84 -Europe,Georgia,Snacks,Online,C,5/24/2010,958840644,6/2/2010,1109,152.58,97.44,169211.22,108060.96,61150.26 -Middle East and North Africa,Bahrain,Baby Food,Online,M,2/21/2011,195833718,4/7/2011,404,255.28,159.42,103133.12,64405.68,38727.44 -Sub-Saharan Africa,Lesotho,Personal Care,Offline,M,6/28/2014,543723094,7/2/2014,8601,81.73,56.67,702959.73,487418.67,215541.06 -Central America and the Caribbean,Barbados,Cosmetics,Offline,H,10/15/2010,494745099,10/30/2010,4924,437.20,263.33,2152772.80,1296636.92,856135.88 -Middle East and North Africa,Saudi Arabia,Vegetables,Online,H,5/18/2010,411448562,6/30/2010,5628,154.06,90.93,867049.68,511754.04,355295.64 -Europe,Macedonia,Personal Care,Offline,H,2/2/2017,276694810,2/16/2017,8998,81.73,56.67,735406.54,509916.66,225489.88 -Asia,Turkmenistan,Office Supplies,Offline,M,11/24/2016,143657672,1/8/2017,352,651.21,524.96,229225.92,184785.92,44440.00 -Europe,Albania,Baby Food,Online,L,12/23/2011,585823476,1/6/2012,7040,255.28,159.42,1797171.20,1122316.80,674854.40 -Middle East and North Africa,Afghanistan,Clothes,Online,C,12/5/2016,446991050,1/16/2017,3440,109.28,35.84,375923.20,123289.60,252633.60 -Australia and Oceania,Kiribati,Clothes,Offline,M,2/16/2017,891271722,2/22/2017,5963,109.28,35.84,651636.64,213713.92,437922.72 -Middle East and North Africa,Morocco,Cosmetics,Online,C,5/18/2010,453089320,6/16/2010,8053,437.20,263.33,3520771.60,2120596.49,1400175.11 -Europe,Norway,Baby Food,Offline,L,9/7/2010,887180173,10/18/2010,5183,255.28,159.42,1323116.24,826273.86,496842.38 -Europe,Sweden,Cosmetics,Online,L,3/12/2014,418593108,3/25/2014,9858,437.20,263.33,4309917.60,2595907.14,1714010.46 -Asia,Tajikistan,Personal Care,Online,M,7/16/2010,492689454,8/16/2010,6613,81.73,56.67,540480.49,374758.71,165721.78 -Europe,Netherlands,Cosmetics,Online,M,12/5/2016,825143039,12/20/2016,7017,437.20,263.33,3067832.40,1847786.61,1220045.79 -Europe,Spain,Vegetables,Online,L,10/8/2013,751940190,10/10/2013,4667,154.06,90.93,718998.02,424370.31,294627.71 -Sub-Saharan Africa,Chad,Baby Food,Offline,H,8/9/2016,579379737,8/26/2016,194,255.28,159.42,49524.32,30927.48,18596.84 -Europe,Ireland,Meat,Online,C,10/6/2011,234073007,11/20/2011,6259,421.89,364.69,2640609.51,2282594.71,358014.80 -Middle East and North Africa,Pakistan,Meat,Online,C,2/17/2013,612943828,3/1/2013,2554,421.89,364.69,1077507.06,931418.26,146088.80 -Sub-Saharan Africa,Mozambique,Fruits,Online,C,12/14/2012,433228528,12/21/2012,804,9.33,6.92,7501.32,5563.68,1937.64 -Middle East and North Africa,Bahrain,Fruits,Online,L,11/20/2015,282475936,11/28/2015,9762,9.33,6.92,91079.46,67553.04,23526.42 -Asia,Tajikistan,Meat,Online,M,7/7/2012,368547379,7/12/2012,214,421.89,364.69,90284.46,78043.66,12240.80 -Australia and Oceania,New Zealand,Meat,Offline,H,6/2/2013,969616687,6/28/2013,9980,421.89,364.69,4210462.20,3639606.20,570856.00 -Sub-Saharan Africa,Niger,Baby Food,Online,L,2/4/2015,184170186,2/17/2015,8906,255.28,159.42,2273523.68,1419794.52,853729.16 -Europe,Armenia,Fruits,Online,C,4/28/2011,681006705,6/14/2011,3872,9.33,6.92,36125.76,26794.24,9331.52 -Sub-Saharan Africa,Gabon,Baby Food,Online,L,2/1/2012,249237573,2/21/2012,3791,255.28,159.42,967766.48,604361.22,363405.26 -Asia,Kyrgyzstan,Vegetables,Offline,H,1/29/2017,348286616,2/13/2017,4604,154.06,90.93,709292.24,418641.72,290650.52 -Australia and Oceania,Fiji,Clothes,Offline,L,12/1/2011,257890164,12/29/2011,4285,109.28,35.84,468264.80,153574.40,314690.40 -Europe,Romania,Cosmetics,Online,H,5/8/2017,228097045,6/17/2017,7839,437.20,263.33,3427210.80,2064243.87,1362966.93 -Sub-Saharan Africa,Botswana,Cereal,Online,C,5/3/2017,129268586,6/21/2017,2302,205.70,117.11,473521.40,269587.22,203934.18 -Australia and Oceania,Fiji,Cosmetics,Online,M,10/31/2015,802078616,12/9/2015,1741,437.20,263.33,761165.20,458457.53,302707.67 -Europe,Vatican City,Clothes,Offline,C,4/11/2010,907513463,4/19/2010,2256,109.28,35.84,246535.68,80855.04,165680.64 -Asia,Thailand,Vegetables,Online,L,7/17/2010,976871955,8/31/2010,6975,154.06,90.93,1074568.50,634236.75,440331.75 -Europe,Belarus,Cereal,Offline,C,5/31/2012,261765420,7/17/2012,1060,205.70,117.11,218042.00,124136.60,93905.40 -Australia and Oceania,Solomon Islands,Vegetables,Offline,L,7/15/2016,784117686,7/17/2016,6703,154.06,90.93,1032664.18,609503.79,423160.39 -Asia,China,Cosmetics,Offline,M,1/14/2017,586165082,1/27/2017,8128,437.20,263.33,3553561.60,2140346.24,1413215.36 -Sub-Saharan Africa,Angola,Snacks,Online,C,11/26/2012,480456435,12/16/2012,6591,152.58,97.44,1005654.78,642227.04,363427.74 -Asia,Cambodia,Cereal,Online,L,10/3/2011,899853074,10/26/2011,5376,205.70,117.11,1105843.20,629583.36,476259.84 -Central America and the Caribbean,Guatemala,Baby Food,Offline,L,11/30/2010,547528827,12/15/2010,4802,255.28,159.42,1225854.56,765534.84,460319.72 -Sub-Saharan Africa,Namibia,Vegetables,Online,L,5/8/2016,446970021,5/9/2016,7217,154.06,90.93,1111851.02,656241.81,455609.21 -Europe,Serbia,Beverages,Offline,H,2/27/2016,791975486,3/20/2016,2001,47.45,31.79,94947.45,63611.79,31335.66 -Middle East and North Africa,Turkey,Vegetables,Offline,M,8/24/2014,496656548,9/29/2014,564,154.06,90.93,86889.84,51284.52,35605.32 -Middle East and North Africa,Pakistan,Vegetables,Offline,C,5/26/2013,345437037,6/30/2013,1351,154.06,90.93,208135.06,122846.43,85288.63 -Europe,Georgia,Vegetables,Offline,H,1/26/2015,743053281,2/23/2015,4833,154.06,90.93,744571.98,439464.69,305107.29 -Australia and Oceania,Vanuatu,Snacks,Offline,L,1/7/2012,364554107,1/18/2012,8516,152.58,97.44,1299371.28,829799.04,469572.24 -Europe,Luxembourg,Cosmetics,Online,H,10/21/2012,205300843,12/3/2012,1937,437.20,263.33,846856.40,510070.21,336786.19 -Middle East and North Africa,Saudi Arabia,Household,Online,M,9/16/2015,430967319,10/5/2015,1661,668.27,502.54,1109996.47,834718.94,275277.53 -Australia and Oceania,Vanuatu,Meat,Offline,H,6/28/2012,827539861,7/1/2012,6289,421.89,364.69,2653266.21,2293535.41,359730.80 -Central America and the Caribbean,Haiti,Snacks,Offline,H,12/2/2014,351317298,1/14/2015,1450,152.58,97.44,221241.00,141288.00,79953.00 -Sub-Saharan Africa,Tanzania,Household,Offline,C,2/4/2013,278910958,2/4/2013,4805,668.27,502.54,3211037.35,2414704.70,796332.65 -Asia,North Korea,Cosmetics,Offline,C,2/17/2017,157244670,3/15/2017,1047,437.20,263.33,457748.40,275706.51,182041.89 -Middle East and North Africa,Bahrain,Beverages,Online,L,6/24/2015,953554761,7/28/2015,6899,47.45,31.79,327357.55,219319.21,108038.34 -Sub-Saharan Africa,Cote d'Ivoire,Cereal,Online,L,7/30/2016,105390059,8/25/2016,6115,205.70,117.11,1257855.50,716127.65,541727.85 -Asia,Singapore,Cosmetics,Offline,L,10/23/2014,970611894,11/10/2014,4483,437.20,263.33,1959967.60,1180508.39,779459.21 -Asia,Malaysia,Baby Food,Offline,M,12/16/2016,677394092,12/29/2016,4820,255.28,159.42,1230449.60,768404.40,462045.20 -Europe,Albania,Baby Food,Online,L,9/28/2015,474222981,10/26/2015,1973,255.28,159.42,503667.44,314535.66,189131.78 -Sub-Saharan Africa,Gabon,Snacks,Online,L,4/16/2016,779897391,5/5/2016,7824,152.58,97.44,1193785.92,762370.56,431415.36 -Europe,Poland,Snacks,Offline,L,3/27/2017,733528649,3/30/2017,6283,152.58,97.44,958660.14,612215.52,346444.62 -Sub-Saharan Africa,Chad,Office Supplies,Online,H,6/25/2014,444540584,8/2/2014,8292,651.21,524.96,5399833.32,4352968.32,1046865.00 -Sub-Saharan Africa,Republic of the Congo,Clothes,Online,H,7/29/2012,542669522,9/11/2012,6826,109.28,35.84,745945.28,244643.84,501301.44 -Asia,Philippines,Fruits,Offline,L,5/4/2013,827964293,6/1/2013,1888,9.33,6.92,17615.04,13064.96,4550.08 -Europe,France,Snacks,Offline,M,2/2/2012,720786225,2/15/2012,5516,152.58,97.44,841631.28,537479.04,304152.24 -Europe,Germany,Household,Offline,H,7/24/2016,611809146,8/1/2016,6777,668.27,502.54,4528865.79,3405713.58,1123152.21 -Sub-Saharan Africa,Uganda,Personal Care,Online,M,11/4/2012,512019383,12/12/2012,6769,81.73,56.67,553230.37,383599.23,169631.14 -Middle East and North Africa,Bahrain,Personal Care,Online,C,8/5/2014,502715766,8/17/2014,3621,81.73,56.67,295944.33,205202.07,90742.26 -Middle East and North Africa,Jordan,Office Supplies,Offline,M,10/22/2013,285509622,10/28/2013,7497,651.21,524.96,4882121.37,3935625.12,946496.25 -Europe,Montenegro,Beverages,Offline,L,12/1/2014,532324779,1/3/2015,5586,47.45,31.79,265055.70,177578.94,87476.76 -Middle East and North Africa,Tunisia ,Personal Care,Offline,H,11/2/2015,635397565,11/21/2015,7114,81.73,56.67,581427.22,403150.38,178276.84 -Europe,Germany,Cereal,Offline,M,10/7/2011,957276809,11/4/2011,8335,205.70,117.11,1714509.50,976111.85,738397.65 -Europe,Italy,Snacks,Online,L,2/9/2014,580823838,3/21/2014,7536,152.58,97.44,1149842.88,734307.84,415535.04 -Europe,France,Office Supplies,Offline,H,5/29/2016,459212481,6/16/2016,33,651.21,524.96,21489.93,17323.68,4166.25 -Middle East and North Africa,Algeria,Baby Food,Online,L,4/8/2013,265929067,5/23/2013,3175,255.28,159.42,810514.00,506158.50,304355.50 -Asia,Myanmar,Beverages,Online,H,9/20/2011,644772422,10/26/2011,1343,47.45,31.79,63725.35,42693.97,21031.38 -Europe,France,Vegetables,Offline,C,4/12/2012,959853875,5/4/2012,947,154.06,90.93,145894.82,86110.71,59784.11 -Europe,Spain,Vegetables,Online,C,10/2/2012,645597255,10/25/2012,5429,154.06,90.93,836391.74,493658.97,342732.77 -Asia,Cambodia,Baby Food,Offline,C,1/2/2012,556738889,1/25/2012,264,255.28,159.42,67393.92,42086.88,25307.04 -Sub-Saharan Africa,The Gambia,Vegetables,Online,M,9/30/2013,718327605,11/10/2013,7956,154.06,90.93,1225701.36,723439.08,502262.28 -Europe,Russia,Baby Food,Offline,L,3/10/2015,775724732,3/20/2015,3041,255.28,159.42,776306.48,484796.22,291510.26 -Europe,Belarus,Baby Food,Offline,H,10/26/2010,444604098,10/31/2010,7088,255.28,159.42,1809424.64,1129968.96,679455.68 -Middle East and North Africa,Turkey,Beverages,Online,C,5/2/2011,860952031,5/13/2011,3693,47.45,31.79,175232.85,117400.47,57832.38 -Sub-Saharan Africa,Kenya,Meat,Offline,C,2/19/2017,531067359,2/20/2017,3488,421.89,364.69,1471552.32,1272038.72,199513.60 -Middle East and North Africa,Iran,Cosmetics,Offline,M,7/20/2014,281561410,8/2/2014,9133,437.20,263.33,3992947.60,2404992.89,1587954.71 -Asia,Vietnam,Personal Care,Offline,L,6/18/2017,109358012,7/10/2017,321,81.73,56.67,26235.33,18191.07,8044.26 -Europe,Albania,Beverages,Online,L,7/19/2010,531693494,8/6/2010,8775,47.45,31.79,416373.75,278957.25,137416.50 -Central America and the Caribbean,Antigua and Barbuda ,Clothes,Offline,C,8/9/2013,336116683,9/4/2013,3251,109.28,35.84,355269.28,116515.84,238753.44 -Sub-Saharan Africa,Senegal,Cereal,Offline,M,3/23/2017,630488908,4/30/2017,4534,205.70,117.11,932643.80,530976.74,401667.06 -Europe,Netherlands,Fruits,Online,L,10/31/2016,792983996,12/2/2016,441,9.33,6.92,4114.53,3051.72,1062.81 -Europe,Russia,Fruits,Online,C,7/3/2016,722088277,7/3/2016,822,9.33,6.92,7669.26,5688.24,1981.02 -Europe,Slovakia,Cosmetics,Online,H,1/7/2010,386600577,1/29/2010,2557,437.20,263.33,1117920.40,673334.81,444585.59 -Australia and Oceania,East Timor,Beverages,Offline,L,12/6/2014,275632226,1/18/2015,4556,47.45,31.79,216182.20,144835.24,71346.96 -Central America and the Caribbean,Haiti,Vegetables,Offline,H,10/16/2015,948607051,11/27/2015,2761,154.06,90.93,425359.66,251057.73,174301.93 -Middle East and North Africa,Yemen,Cereal,Online,H,5/10/2013,785261380,5/26/2013,5147,205.70,117.11,1058737.90,602765.17,455972.73 -Australia and Oceania,Tuvalu,Cereal,Online,C,3/27/2013,935644042,5/15/2013,6719,205.70,117.11,1382098.30,786862.09,595236.21 -Sub-Saharan Africa,Liberia,Snacks,Offline,M,7/13/2014,370116364,8/17/2014,4512,152.58,97.44,688440.96,439649.28,248791.68 -Asia,North Korea,Beverages,Online,C,8/16/2013,829352176,8/26/2013,2594,47.45,31.79,123085.30,82463.26,40622.04 -Asia,North Korea,Household,Online,M,7/14/2015,974337804,8/7/2015,7063,668.27,502.54,4719991.01,3549440.02,1170550.99 -Europe,Romania,Household,Online,H,12/23/2014,436372077,1/3/2015,1050,668.27,502.54,701683.50,527667.00,174016.50 -Sub-Saharan Africa,Sao Tome and Principe,Cereal,Offline,M,4/27/2015,267066323,5/19/2015,9715,205.70,117.11,1998375.50,1137723.65,860651.85 -Middle East and North Africa,Bahrain,Fruits,Online,M,3/14/2017,688344371,4/28/2017,5251,9.33,6.92,48991.83,36336.92,12654.91 -Middle East and North Africa,Somalia,Cosmetics,Offline,M,10/2/2014,642442548,11/2/2014,1881,437.20,263.33,822373.20,495323.73,327049.47 -Europe,Cyprus,Cereal,Online,C,7/13/2014,941909682,8/1/2014,861,205.70,117.11,177107.70,100831.71,76275.99 -Europe,United Kingdom,Beverages,Offline,C,7/31/2016,219607102,8/13/2016,5477,47.45,31.79,259883.65,174113.83,85769.82 -Europe,Germany,Personal Care,Offline,H,8/30/2010,778708636,9/2/2010,6045,81.73,56.67,494057.85,342570.15,151487.70 -Middle East and North Africa,Somalia,Beverages,Online,M,4/22/2010,942700612,6/6/2010,4915,47.45,31.79,233216.75,156247.85,76968.90 -Australia and Oceania,New Zealand,Household,Offline,H,3/9/2011,905381858,4/8/2011,1466,668.27,502.54,979683.82,736723.64,242960.18 -Middle East and North Africa,Kuwait,Meat,Online,C,1/13/2010,480863702,1/28/2010,7110,421.89,364.69,2999637.90,2592945.90,406692.00 -Asia,Japan,Cosmetics,Online,L,1/6/2016,453569972,2/19/2016,289,437.20,263.33,126350.80,76102.37,50248.43 -Europe,Norway,Baby Food,Offline,H,8/17/2016,328236997,9/10/2016,1476,255.28,159.42,376793.28,235303.92,141489.36 -Sub-Saharan Africa,Lesotho,Personal Care,Offline,C,10/22/2011,579913604,10/23/2011,8177,81.73,56.67,668306.21,463390.59,204915.62 -Europe,Belgium,Cosmetics,Online,H,2/12/2010,403961122,3/20/2010,9928,437.20,263.33,4340521.60,2614340.24,1726181.36 -Central America and the Caribbean,Honduras,Cosmetics,Offline,L,5/29/2017,866053378,6/22/2017,3295,437.20,263.33,1440574.00,867672.35,572901.65 -Europe,Austria,Household,Offline,C,4/17/2010,852176702,5/13/2010,6878,668.27,502.54,4596361.06,3456470.12,1139890.94 -Middle East and North Africa,Oman,Baby Food,Online,M,9/8/2015,218629920,10/20/2015,6307,255.28,159.42,1610050.96,1005461.94,604589.02 -Middle East and North Africa,Oman,Baby Food,Offline,C,2/13/2016,242024362,3/17/2016,9242,255.28,159.42,2359297.76,1473359.64,885938.12 -Europe,Spain,Snacks,Offline,M,2/16/2014,469283854,2/16/2014,376,152.58,97.44,57370.08,36637.44,20732.64 -Middle East and North Africa,Afghanistan,Fruits,Online,C,4/22/2013,967644727,4/30/2013,6433,9.33,6.92,60019.89,44516.36,15503.53 -Central America and the Caribbean,Saint Vincent and the Grenadines,Cosmetics,Offline,L,7/15/2014,974655807,7/23/2014,1167,437.20,263.33,510212.40,307306.11,202906.29 -Europe,Iceland,Vegetables,Online,M,3/7/2012,248178422,3/22/2012,365,154.06,90.93,56231.90,33189.45,23042.45 -Asia,Myanmar,Vegetables,Offline,L,1/14/2013,416386401,2/16/2013,6844,154.06,90.93,1054386.64,622324.92,432061.72 -Europe,Netherlands,Snacks,Offline,L,5/22/2017,927766072,6/20/2017,5453,152.58,97.44,832018.74,531340.32,300678.42 -Europe,Slovakia,Vegetables,Online,M,3/23/2015,401116263,3/31/2015,8071,154.06,90.93,1243418.26,733896.03,509522.23 -Middle East and North Africa,Bahrain,Fruits,Offline,H,9/28/2012,675548303,11/6/2012,8610,9.33,6.92,80331.30,59581.20,20750.10 -Sub-Saharan Africa,Lesotho,Baby Food,Online,L,6/6/2013,960486018,7/4/2013,8012,255.28,159.42,2045303.36,1277273.04,768030.32 -Central America and the Caribbean,Cuba,Clothes,Offline,L,4/2/2014,985665738,5/19/2014,9250,109.28,35.84,1010840.00,331520.00,679320.00 -Middle East and North Africa,Afghanistan,Clothes,Offline,C,1/13/2017,551136291,1/13/2017,2331,109.28,35.84,254731.68,83543.04,171188.64 -Australia and Oceania,Vanuatu,Cereal,Online,L,2/3/2017,877259004,2/16/2017,9289,205.70,117.11,1910747.30,1087834.79,822912.51 -Asia,Bhutan,Beverages,Offline,M,8/5/2014,554707705,9/19/2014,9192,47.45,31.79,436160.40,292213.68,143946.72 -Australia and Oceania,Palau,Cereal,Offline,L,10/6/2010,494468724,10/23/2010,3139,205.70,117.11,645692.30,367608.29,278084.01 -Asia,Indonesia,Personal Care,Online,H,9/10/2011,777840888,10/23/2011,9259,81.73,56.67,756738.07,524707.53,232030.54 -Europe,Andorra,Baby Food,Offline,C,12/12/2016,206435525,1/27/2017,7714,255.28,159.42,1969229.92,1229765.88,739464.04 -Middle East and North Africa,Algeria,Office Supplies,Online,C,10/26/2015,352176463,12/5/2015,5696,651.21,524.96,3709292.16,2990172.16,719120.00 -Australia and Oceania,Vanuatu,Cosmetics,Offline,C,10/14/2013,607300031,10/14/2013,2429,437.20,263.33,1061958.80,639628.57,422330.23 -North America,Mexico,Baby Food,Online,H,8/17/2013,434355056,9/28/2013,4168,255.28,159.42,1064007.04,664462.56,399544.48 -Europe,Macedonia,Fruits,Offline,M,8/7/2011,716202867,9/20/2011,9199,9.33,6.92,85826.67,63657.08,22169.59 -Central America and the Caribbean,Panama,Personal Care,Online,H,5/22/2016,606017291,6/12/2016,2838,81.73,56.67,231949.74,160829.46,71120.28 -Asia,Nepal,Cereal,Offline,H,1/13/2015,677284657,1/15/2015,2436,205.70,117.11,501085.20,285279.96,215805.24 -Asia,Nepal,Fruits,Online,C,7/22/2014,673803794,7/29/2014,2371,9.33,6.92,22121.43,16407.32,5714.11 -Sub-Saharan Africa,Mauritius ,Cereal,Offline,C,6/25/2015,859686028,7/10/2015,9055,205.70,117.11,1862613.50,1060431.05,802182.45 -Sub-Saharan Africa,Sao Tome and Principe,Clothes,Online,H,8/10/2015,669355189,9/26/2015,5930,109.28,35.84,648030.40,212531.20,435499.20 -Central America and the Caribbean,Saint Vincent and the Grenadines,Fruits,Offline,L,10/19/2013,957547605,11/21/2013,8470,9.33,6.92,79025.10,58612.40,20412.70 -Asia,Maldives,Personal Care,Online,M,10/9/2013,849312102,11/23/2013,9180,81.73,56.67,750281.40,520230.60,230050.80 -Sub-Saharan Africa,Swaziland,Personal Care,Offline,H,9/26/2012,890010011,10/14/2012,2595,81.73,56.67,212089.35,147058.65,65030.70 -Middle East and North Africa,Morocco,Cereal,Online,H,10/2/2012,795315158,10/26/2012,284,205.70,117.11,58418.80,33259.24,25159.56 -Asia,Maldives,Clothes,Offline,M,12/11/2016,801213872,1/28/2017,5844,109.28,35.84,638632.32,209448.96,429183.36 -Sub-Saharan Africa,Zimbabwe,Fruits,Offline,C,7/26/2010,314004981,8/9/2010,9907,9.33,6.92,92432.31,68556.44,23875.87 -Asia,India,Cereal,Online,C,3/27/2010,160299813,4/6/2010,5132,205.70,117.11,1055652.40,601008.52,454643.88 -Asia,Tajikistan,Beverages,Offline,C,9/11/2014,337022197,9/22/2014,1212,47.45,31.79,57509.40,38529.48,18979.92 -Sub-Saharan Africa,Lesotho,Snacks,Offline,M,3/9/2016,461408460,3/15/2016,9872,152.58,97.44,1506269.76,961927.68,544342.08 -Asia,Bhutan,Office Supplies,Offline,M,10/19/2011,221007430,11/10/2011,9865,651.21,524.96,6424186.65,5178730.40,1245456.25 -Central America and the Caribbean,Trinidad and Tobago,Snacks,Offline,L,10/31/2014,723680436,12/20/2014,1978,152.58,97.44,301803.24,192736.32,109066.92 -Australia and Oceania,Tuvalu,Fruits,Offline,L,2/23/2013,447601306,3/11/2013,4028,9.33,6.92,37581.24,27873.76,9707.48 -Middle East and North Africa,Iraq,Clothes,Offline,L,10/25/2010,191256368,11/9/2010,5864,109.28,35.84,640817.92,210165.76,430652.16 -Sub-Saharan Africa,The Gambia,Vegetables,Offline,L,10/4/2016,823444449,10/30/2016,4366,154.06,90.93,672625.96,397000.38,275625.58 -Middle East and North Africa,Bahrain,Beverages,Online,C,9/4/2010,133276879,10/17/2010,8445,47.45,31.79,400715.25,268466.55,132248.70 -Middle East and North Africa,Qatar,Meat,Online,H,12/22/2014,480177485,2/7/2015,4043,421.89,364.69,1705701.27,1474441.67,231259.60 -Sub-Saharan Africa,Angola,Household,Offline,H,4/8/2015,243882596,5/11/2015,9135,668.27,502.54,6104646.45,4590702.90,1513943.55 -Central America and the Caribbean,Costa Rica,Cosmetics,Online,L,3/2/2017,574441039,4/6/2017,8724,437.20,263.33,3814132.80,2297290.92,1516841.88 -Australia and Oceania,Papua New Guinea,Household,Online,M,3/14/2012,442214143,5/3/2012,9847,668.27,502.54,6580454.69,4948511.38,1631943.31 -Middle East and North Africa,Qatar,Clothes,Offline,C,11/22/2011,687875735,12/2/2011,6571,109.28,35.84,718078.88,235504.64,482574.24 -Central America and the Caribbean,Saint Kitts and Nevis ,Clothes,Offline,H,9/8/2013,872412145,9/25/2013,4995,109.28,35.84,545853.60,179020.80,366832.80 -Sub-Saharan Africa,Sierra Leone,Fruits,Offline,C,4/23/2012,627122199,4/29/2012,8250,9.33,6.92,76972.50,57090.00,19882.50 -Europe,Russia,Fruits,Online,M,2/14/2011,103617227,3/12/2011,1495,9.33,6.92,13948.35,10345.40,3602.95 -Europe,Lithuania,Vegetables,Offline,M,10/6/2010,423821055,10/22/2010,6923,154.06,90.93,1066557.38,629508.39,437048.99 -Europe,United Kingdom,Vegetables,Online,L,12/8/2012,529970014,1/3/2013,8759,154.06,90.93,1349411.54,796455.87,552955.67 -Asia,Indonesia,Personal Care,Offline,H,8/17/2016,334612929,10/3/2016,8256,81.73,56.67,674762.88,467867.52,206895.36 -Asia,Mongolia,Beverages,Offline,M,4/23/2014,270611131,5/24/2014,8702,47.45,31.79,412909.90,276636.58,136273.32 -Middle East and North Africa,Egypt,Office Supplies,Online,C,11/18/2010,841138446,12/8/2010,413,651.21,524.96,268949.73,216808.48,52141.25 -Sub-Saharan Africa,Comoros,Household,Online,M,4/22/2012,369681203,5/9/2012,5738,668.27,502.54,3834533.26,2883574.52,950958.74 -Europe,Slovenia,Household,Offline,M,4/5/2014,850038230,4/21/2014,4057,668.27,502.54,2711171.39,2038804.78,672366.61 -Middle East and North Africa,Lebanon,Beverages,Online,M,6/21/2013,296320855,7/13/2013,6781,47.45,31.79,321758.45,215567.99,106190.46 -Australia and Oceania,Australia,Cosmetics,Offline,L,7/13/2011,392952907,8/13/2011,2352,437.20,263.33,1028294.40,619352.16,408942.24 -Central America and the Caribbean,Haiti,Snacks,Online,M,2/1/2011,644670712,3/21/2011,1245,152.58,97.44,189962.10,121312.80,68649.30 -Central America and the Caribbean,Saint Kitts and Nevis ,Meat,Online,L,1/27/2012,626523101,2/16/2012,963,421.89,364.69,406280.07,351196.47,55083.60 -Middle East and North Africa,Syria,Vegetables,Offline,M,6/24/2015,433871400,7/1/2015,1044,154.06,90.93,160838.64,94930.92,65907.72 -Asia,Laos,Snacks,Offline,M,1/3/2012,232389438,1/8/2012,8054,152.58,97.44,1228879.32,784781.76,444097.56 -Central America and the Caribbean,Saint Kitts and Nevis ,Cereal,Offline,H,2/21/2016,708063542,3/19/2016,592,205.70,117.11,121774.40,69329.12,52445.28 -Sub-Saharan Africa,Sudan,Vegetables,Offline,H,12/4/2016,817192542,12/22/2016,4288,154.06,90.93,660609.28,389907.84,270701.44 -Central America and the Caribbean,Guatemala,Meat,Offline,H,1/16/2012,936387765,2/29/2012,6803,421.89,364.69,2870117.67,2480986.07,389131.60 -Asia,Brunei,Clothes,Offline,H,8/6/2011,612573039,8/9/2011,2830,109.28,35.84,309262.40,101427.20,207835.20 -Middle East and North Africa,Jordan,Clothes,Online,M,8/12/2011,812984693,8/22/2011,9092,109.28,35.84,993573.76,325857.28,667716.48 -Central America and the Caribbean,Panama,Meat,Offline,C,12/18/2012,775171554,1/5/2013,9344,421.89,364.69,3942140.16,3407663.36,534476.80 -Sub-Saharan Africa,Central African Republic,Household,Online,H,1/10/2010,256994950,2/19/2010,9372,668.27,502.54,6263026.44,4709804.88,1553221.56 -Middle East and North Africa,Bahrain,Beverages,Offline,M,2/28/2017,886628711,3/31/2017,1993,47.45,31.79,94567.85,63357.47,31210.38 -Sub-Saharan Africa,Burundi,Beverages,Online,C,12/8/2011,312559163,12/16/2011,2057,47.45,31.79,97604.65,65392.03,32212.62 -Europe,Austria,Cereal,Online,L,8/18/2014,753585135,9/13/2014,1443,205.70,117.11,296825.10,168989.73,127835.37 -Australia and Oceania,Fiji,Beverages,Offline,H,4/19/2016,448817956,4/22/2016,4062,47.45,31.79,192741.90,129130.98,63610.92 -Australia and Oceania,Fiji,Clothes,Offline,M,11/6/2012,407681453,12/24/2012,856,109.28,35.84,93543.68,30679.04,62864.64 -Europe,Switzerland,Snacks,Online,H,5/27/2016,359911954,6/23/2016,4800,152.58,97.44,732384.00,467712.00,264672.00 -Middle East and North Africa,Yemen,Office Supplies,Offline,M,8/18/2013,105558288,8/19/2013,5898,651.21,524.96,3840836.58,3096214.08,744622.50 -Sub-Saharan Africa,Comoros,Personal Care,Offline,H,12/31/2014,864981782,2/11/2015,6186,81.73,56.67,505581.78,350560.62,155021.16 -Sub-Saharan Africa,Democratic Republic of the Congo,Office Supplies,Online,C,2/4/2013,328856265,2/12/2013,4732,651.21,524.96,3081525.72,2484110.72,597415.00 -Asia,Mongolia,Clothes,Offline,H,9/23/2016,308168065,10/18/2016,2633,109.28,35.84,287734.24,94366.72,193367.52 -Australia and Oceania,Palau,Household,Offline,L,11/1/2016,884216010,11/2/2016,8021,668.27,502.54,5360193.67,4030873.34,1329320.33 -Europe,Monaco,Snacks,Offline,M,12/27/2012,858611428,1/9/2013,1057,152.58,97.44,161277.06,102994.08,58282.98 -Australia and Oceania,Fiji,Cereal,Online,L,3/10/2017,903278148,4/3/2017,8932,205.70,117.11,1837312.40,1046026.52,791285.88 -Sub-Saharan Africa,Mali,Beverages,Online,L,3/17/2012,410452497,3/26/2012,870,47.45,31.79,41281.50,27657.30,13624.20 -Sub-Saharan Africa,Liberia,Cereal,Offline,H,12/17/2015,642683303,1/20/2016,3126,205.70,117.11,643018.20,366085.86,276932.34 -Europe,Switzerland,Beverages,Offline,L,2/18/2017,682831895,3/16/2017,3987,47.45,31.79,189183.15,126746.73,62436.42 -Australia and Oceania,Samoa ,Baby Food,Online,L,11/5/2016,584072101,11/5/2016,8769,255.28,159.42,2238550.32,1397953.98,840596.34 -Asia,Nepal,Meat,Offline,C,4/9/2017,919890248,5/18/2017,4821,421.89,364.69,2033931.69,1758170.49,275761.20 -Middle East and North Africa,Azerbaijan,Snacks,Offline,C,4/18/2010,534085166,4/25/2010,6524,152.58,97.44,995431.92,635698.56,359733.36 -Europe,Georgia,Baby Food,Offline,H,8/1/2011,590768182,9/7/2011,288,255.28,159.42,73520.64,45912.96,27607.68 -Middle East and North Africa,United Arab Emirates,Vegetables,Online,C,5/12/2011,524363124,6/28/2011,9556,154.06,90.93,1472197.36,868927.08,603270.28 -Europe,Finland,Household,Offline,L,1/25/2016,289606320,2/14/2016,9801,668.27,502.54,6549714.27,4925394.54,1624319.73 -Europe,Portugal,Cereal,Offline,C,4/10/2014,811546599,5/8/2014,3528,205.70,117.11,725709.60,413164.08,312545.52`, - input: '使用折线图展示' -}; - -export const gmvData = { - csv: `top10热门城市列表,对应GMV(元),对应核销金额(元),GMV同比增长率 -上海市,1200000000,700000000,1.7 -北京市,470000000,250000000,2 -成都市,350000000,160000000,2 -海口市,320000000,180000000,21.2 -郑州市,300000000,140000000,2.2 -广州市,280000000,130000000,1.6 -杭州市,260000000,240000000,2 -武汉市,220000000,110000000,1.3 -深圳市,220000000,110000000,1.9 -西安市,200000000,180000000,2.9`, - input: '帮我绘制按城市的gmv和增长率,使用双轴图' -}; - -export const bubbleCirclePackingData = { - csv: `industry,gross product -第一产业,88345.1 -第二产业,483164.5 -第三产业,638697.6 -农林牧渔业,92582.4 -工业,401644.3 -建筑业,83383.1 -批发和零售业,114517.7 -交通运输、仓储和邮政业,49673.7 -住宿和餐饮业,17855.3 -金融业,96811.0 -房地产业,73821.3 -其他,279918.4 -`, - input: '请使用气泡圈图帮我绘制' -}; - -export const mapChartData = { - csv: `name,value -Russia,17234034 -Canada,9984670 -China,9596960 -United States of America,9525067 -Brazil,8515167 -`, - input: '请将数据渲染到地图图表中' -}; - -export const rangeColumnChartData = { - csv: `categories,min,max -Category One,76,100 -Category Two,56,108 -Category Three,38,129 -Category Four,58,155 -Category Five,45,120 -Category Six,23,99 -Category Seven,18,56 -Category Eight,18,34 -`, - input: '请使用区间柱图渲染数据' -}; - -export const sunburstChartData = { - csv: `Category0,Category1,Category2,Value -Country A,Region1,Office Supplies,824 -Country A,Region1,Furniture,920 -Country A,Region1,Electronic equipment,936 -Country A,Region2,Office Supplies,1270 -Country A,Region2,Furniture,1399 -Country A,Region2,Electronic equipment,1466 -Country A,Region3,Office Supplies,1408 -Country A,Region3,Furniture,1676 -Country A,Region3,Electronic equipment,1559 -Country A,Region4,Office Supplies,745 -Country A,Region4,Furniture,919 -Country A,Region4,Electronic equipment,781 -Country A,Region5,Office Supplies,267 -Country A,Region5,Furniture,316 -Country A,Region5,Electronic equipment,230 -Country A,Region6,Office Supplies,347 -Country A,Region6,Furniture,501 -Country A,Region6,Electronic equipment,453 -Country B,Region1,Office Supplies,824 -Country B,Region1,Furniture,920 -Country B,Region1,Electronic equipment,936 -Country B,Region2,Office Supplies,1270 -Country B,Region2,Furniture,1399 -Country B,Region2,Electronic equipment,1466 -Country B,Region3,Office Supplies,1408 -Country B,Region3,Furniture,1676 -Country B,Region3,Electronic equipment,1559 -Country B,Region4,Office Supplies,745 -Country B,Region4,Furniture,919 -Country B,Region4,Electronic equipment,781 -Country B,Region5,Office Supplies,267 -Country B,Region5,Furniture,316 -Country B,Region5,Electronic equipment,230 -Country B,Region6,Office Supplies,347 -Country B,Region6,Furniture,501 -Country B,Region6,Electronic equipment,453 -Country C,Region1,Office Supplies,824 -Country C,Region1,Furniture,920 -Country C,Region1,Electronic equipment,936 -Country C,Region2,Office Supplies,1270 -Country C,Region2,Furniture,1399 -Country C,Region2,Electronic equipment,1466 -Country C,Region3,Office Supplies,1408 -Country C,Region3,Furniture,1676 -Country C,Region3,Electronic equipment,1559 -Country C,Region4,Office Supplies,745 -Country C,Region4,Furniture,919 -Country C,Region4,Electronic equipment,781 -Country C,Region5,Office Supplies,267 -Country C,Region5,Furniture,316 -Country C,Region5,Electronic equipment,230 -Country C,Region6,Office Supplies,347 -Country C,Region6,Furniture,501 -Country C,Region6,Electronic equipment,453 -`, - input: '请使用旭日图来渲染数据' -}; - -export const treemapChartData = { - csv: `Category-0,Category-1,Category-2,Category-3,value -query,methods,add,,593 -query,methods,and,,330 -query,methods,average,,287 -query,methods,count,,277 -query,methods,distinct,,292 -query,methods,div,,595 -query,methods,eq,,594 -query,methods,fn,,460 -query,methods,gt,,603 -query,methods,gte,,625 -query,methods,iff,,748 -query,methods,isa,,461 -query,methods,lt,,597 -query,methods,lte,,619 -query,methods,max,,283 -query,methods,min,,283 -query,methods,mod,,591 -query,methods,mul,,603 -query,methods,neq,,599 -query,methods,not,,386 -query,methods,or,,323 -query,methods,orderby,,307 -query,methods,range,,772 -query,methods,select,,296 -query,methods,stddev,,363 -query,methods,sub,,600 -query,methods,sum,,280 -query,methods,update,,307 -query,methods,variance,,335 -query,methods,where,,299 -query,methods,xor,,354 -query,methods,_,,264 -query,AggregateExpression,,,1616 -query,And,,,1027 -query,Arithmetic,,,3891 -query,Average,,,891 -query,BinaryExpression,,,2893 -query,Comparison,,,5103 -query,CompositeExpression,,,3677 -query,Count,,,781 -query,DateUtil,,,4141 -query,Distinct,,,933 -query,Expression,,,5130 -query,ExpressionIterator,,,3617 -query,Fn,,,3240 -query,If,,,2732 -query,IsA,,,2039 -query,Literal,,,1214 -query,Match,,,3748 -query,Maximum,,,843 -query,Minimum,,,843 -query,Not,,,1554 -query,Or,,,970 -query,Query,,,13896 -query,Range,,,1594 -query,StringUtil,,,4130 -query,Sum,,,791 -query,Variable,,,1124 -query,Variance,,,1876 -query,Xor,,,1101 -util,palette,ColorPalette,,6367 -util,palette,Palette,,1229 -util,palette,ShapePalette,,2059 -util,palette,valuePalette,,2291 -util,math,DenseMatrix,,3165 -util,math,IMatrix,,2815 -util,math,SparseMatrix,,3366 -util,heap,FibonacciHeap,,9354 -util,heap,HeapNode,,1233 -util,Arrays,,,8258 -util,Colors,,,10001 -util,Dates,,,8217 -util,Displays,,,12555 -util,Filter,,,2324 -util,Geometry,,,10993 -util,IEvaluable,,,335 -util,IPredicate,,,383 -util,IValueProxy,,,874 -util,Maths,,,17705 -util,Orientation,,,1486 -util,Property,,,5559 -util,Shapes,,,19118 -util,Sort,,,6887 -util,Stats,,,6557 -util,Strings,,,22026 -animate,interpolate,ArrayInterpolator,,1983 -animate,interpolate,ColorInterpolator,,2047 -animate,interpolate,DateInterpolator,,1375 -animate,interpolate,Interpolator,,8746 -animate,interpolate,MatrixInterpolator,,2202 -animate,interpolate,NumberInterpolator,,1382 -animate,interpolate,ObjectInterpolator,,1629 -animate,interpolate,PointInterpolator,,1675 -animate,interpolate,RectangleInterpolator,,2042 -animate,Easing,,,17010 -animate,FunctionSequence,,,5842 -animate,ISchedulable,,,1041 -animate,Parallel,,,5176 -animate,Pause,,,449 -animate,Scheduler,,,5593 -animate,Sequence,,,5534 -animate,Transition,,,9201 -animate,Transitioner,,,19975 -animate,TransitionEvent,,,1116 -animate,Tween,,,6006 -scale,IScaleMap,,,2105 -scale,LinearScale,,,1316 -scale,LogScale,,,3151 -scale,OrdinalScale,,,3770 -scale,QuantileScale,,,2435 -scale,QuantitativeScale,,,4839 -scale,RootScale,,,1756 -scale,Scale,,,4268 -scale,ScaleType,,,1821 -scale,TimeScale,,,5833 -physics,DragForce,,,1082 -physics,GravityForce,,,1336 -physics,IForce,,,319 -physics,NBodyForce,,,10498 -physics,Particle,,,2822 -physics,Simulation,,,9983 -physics,Spring,,,2213 -physics,SpringForce,,,1681 -data,converters,Converters,,721 -data,converters,DelimitedTextConverter,,4294 -data,converters,GraphMLConverter,,9800 -data,converters,IDataConverter,,1314 -data,converters,JSONConverter,,2220 -data,DataField,,,1759 -data,DataSchema,,,2165 -data,DataSet,,,586 -data,DataSource,,,3331 -data,DataTable,,,772 -data,DataUtil,,,3322 -vis,controls,AnchorControl,,2138 -vis,controls,ClickControl,,3824 -vis,controls,Control,,1353 -vis,controls,ControlList,,4665 -vis,controls,DragControl,,2649 -vis,controls,ExpandControl,,2832 -vis,controls,HoverControl,,4896 -vis,controls,IControl,,763 -vis,controls,PanZoomControl,,5222 -vis,controls,SelectionControl,,7862 -vis,controls,TooltipControl,,8435 -vis,operator,layout,AxisLayout,6725 -vis,operator,layout,BundledEdgeRouter,3727 -vis,operator,layout,CircleLayout,9317 -vis,operator,layout,CirclePackingLayout,12003 -vis,operator,layout,DendrogramLayout,4853 -vis,operator,layout,ForceDirectedLayout,8411 -vis,operator,layout,IcicleTreeLayout,4864 -vis,operator,layout,IndentedTreeLayout,3174 -vis,operator,layout,Layout,7881 -vis,operator,layout,NodeLinkTreeLayout,12870 -vis,operator,layout,PieLayout,2728 -vis,operator,layout,RadialTreeLayout,12348 -vis,operator,layout,RandomLayout,870 -vis,operator,layout,StackedAreaLayout,9121 -vis,operator,layout,TreeMapLayout,9191 -vis,operator,encoder,ColorEncoder,3179 -vis,operator,encoder,Encoder,4060 -vis,operator,encoder,PropertyEncoder,4138 -vis,operator,encoder,ShapeEncoder,1690 -vis,operator,encoder,valueEncoder,1830 -vis,operator,distortion,BifocalDistortion,4461 -vis,operator,distortion,Distortion,6314 -vis,operator,distortion,FisheyeDistortion,3444 -vis,operator,filter,FisheyeTreeFilter,5219 -vis,operator,filter,GraphDistanceFilter,3165 -vis,operator,filter,VisibilityFilter,3509 -vis,operator,label,Labeler,9956 -vis,operator,label,RadialLabeler,3899 -vis,operator,label,StackedAreaLabeler,3202 -vis,operator,IOperator,,1286 -vis,operator,Operator,,2490 -vis,operator,OperatorList,,5248 -vis,operator,OperatorSequence,,4190 -vis,operator,OperatorSwitch,,2581 -vis,operator,SortOperator,,2023 -vis,data,render,ArrowType,698 -vis,data,render,EdgeRenderer,5569 -vis,data,render,IRenderer,353 -vis,data,render,ShapeRenderer,2247 -vis,data,Data,,20544 -vis,data,DataList,,19788 -vis,data,DataSprite,,10349 -vis,data,EdgeSprite,,3301 -vis,data,NodeSprite,,19382 -vis,data,ScaleBinding,,11275 -vis,data,Tree,,7147 -vis,data,TreeBuilder,,9930 -vis,axis,Axes,,1302 -vis,axis,Axis,,24593 -vis,axis,AxisGridLine,,652 -vis,axis,AxisLabel,,636 -vis,axis,CartesianAxes,,6703 -vis,events,DataEvent,,2313 -vis,events,SelectionEvent,,1880 -vis,events,TooltipEvent,,1701 -vis,events,VisualizationEvent,,1117 -vis,legend,Legend,,20859 -vis,legend,LegendItem,,4614 -vis,legend,LegendRange,,10530 -vis,Visualization,,,16540 -display,DirtySprite,,,8833 -display,LineSprite,,,1732 -display,RectSprite,,,3623 -display,TextSprite,,,10066 -analytics,graph,BetweennessCentrality,,3534 -analytics,graph,LinkDistance,,5731 -analytics,graph,MaxFlowMinCut,,7840 -analytics,graph,ShortestPaths,,5914 -analytics,graph,SpanningTree,,3416 -analytics,cluster,AgglomerativeCluster,,3938 -analytics,cluster,CommunityStructure,,3812 -analytics,cluster,HierarchicalCluster,,6714 -analytics,cluster,MergeEdge,,743 -analytics,optimization,AspectRatioBanker,,7074 -flex,FlareVis,,,4116`, - input: '请使用矩形树图渲染数据的层次结构' -}; - -export const gaugeChartData = { - csv: `name,value,description - 目标A,0.6,目标A的描述`, - input: '请使用仪表盘来完成数据渲染' -}; - -export const linearProgressChartData = { - csv: `type,value,text -Tradition Industries,0.795,79.5% -Business Companies,0.25,25% -Customer-facing Companies,0.065,6.5%`, - input: '请使用线形进度图来完成数据渲染' -}; - -export const basicHeatMapChartData = { - csv: `Financial Ratio Indicator,Comparison Metric,Correlation Coefficient -Asset Liability Ratio,Asset Liability Ratio,1 -Asset Liability Ratio,Asset Liability Ratio (Deducting Advance Payments),0.594527 -Asset Liability Ratio,Debt-to-long Capital Ratio,0.492963 -Asset Liability Ratio,Long Term Asset Suitability Ratio,-0.160995 -Asset Liability Ratio,Equity Multiplier,0.723664 -Asset Liability Ratio,Equity Ratio of Current Liability,0.658646 -Asset Liability Ratio,Interest Bearing Debt / Fully Invested Capital,-0.857474 -Asset Liability Ratio,Current Liability / Total Liabilities,0.320706 -Asset Liability Ratio,Capital Fixation Ratio,-0.284634 -Asset Liability Ratio,Expected Default Frequency,-0.091423 -Asset Liability Ratio (Deducting Advance Payments),Asset Liability Ratio,0.594527 -Asset Liability Ratio (Deducting Advance Payments),Asset Liability Ratio (Deducting Advance Payments),1 -Asset Liability Ratio (Deducting Advance Payments),Debt-to-long Capital Ratio,0.724546 -Asset Liability Ratio (Deducting Advance Payments),Long Term Asset Suitability Ratio,-0.099318 -Asset Liability Ratio (Deducting Advance Payments),Equity Multiplier,0.540639 -Asset Liability Ratio (Deducting Advance Payments),Equity Ratio of Current Liability,0.49214 -Asset Liability Ratio (Deducting Advance Payments),Interest Bearing Debt / Fully Invested Capital,-0.554039 -Asset Liability Ratio (Deducting Advance Payments),Current Liability / Total Liabilities,0.17127 -Asset Liability Ratio (Deducting Advance Payments),Capital Fixation Ratio,-0.265259 -Asset Liability Ratio (Deducting Advance Payments),Expected Default Frequency,0.068577 -Debt-to-long Capital Ratio,Asset Liability Ratio,0.492963 -Debt-to-long Capital Ratio,Asset Liability Ratio (Deducting Advance Payments),0.724546 -Debt-to-long Capital Ratio,Debt-to-long Capital Ratio,1 -Debt-to-long Capital Ratio,Long Term Asset Suitability Ratio,-0.091338 -Debt-to-long Capital Ratio,Equity Multiplier,0.450542 -Debt-to-long Capital Ratio,Equity Ratio of Current Liability,0.375839 -Debt-to-long Capital Ratio,Interest Bearing Debt / Fully Invested Capital,-0.524955 -Debt-to-long Capital Ratio,Current Liability / Total Liabilities,0.300627 -Debt-to-long Capital Ratio,Capital Fixation Ratio,-0.198362 -Debt-to-long Capital Ratio,Expected Default Frequency,0.033209 -Long Term Asset Suitability Ratio,Asset Liability Ratio,-0.160995 -Long Term Asset Suitability Ratio,Asset Liability Ratio (Deducting Advance Payments),-0.099318 -Long Term Asset Suitability Ratio,Debt-to-long Capital Ratio,-0.091338 -Long Term Asset Suitability Ratio,Long Term Asset Suitability Ratio,1 -Long Term Asset Suitability Ratio,Equity Multiplier,-0.049872 -Long Term Asset Suitability Ratio,Equity Ratio of Current Liability,-0.028452 -Long Term Asset Suitability Ratio,Interest Bearing Debt / Fully Invested Capital,0.157157 -Long Term Asset Suitability Ratio,Current Liability / Total Liabilities,0.009742 -Long Term Asset Suitability Ratio,Capital Fixation Ratio,-0.162374 -Long Term Asset Suitability Ratio,Expected Default Frequency,0.155095 -Equity Multiplier,Asset Liability Ratio,0.723664 -Equity Multiplier,Asset Liability Ratio (Deducting Advance Payments),0.540639 -Equity Multiplier,Debt-to-long Capital Ratio,0.450542 -Equity Multiplier,Long Term Asset Suitability Ratio,-0.049872 -Equity Multiplier,Equity Multiplier,1 -Equity Multiplier,Equity Ratio of Current Liability,0.951933 -Equity Multiplier,Interest Bearing Debt / Fully Invested Capital,-0.651767 -Equity Multiplier,Current Liability / Total Liabilities,0.079052 -Equity Multiplier,Capital Fixation Ratio,-0.535984 -Equity Multiplier,Expected Default Frequency,0.00798 -Equity Ratio of Current Liability,Asset Liability Ratio,0.658646 -Equity Ratio of Current Liability,Asset Liability Ratio (Deducting Advance Payments),0.49214 -Equity Ratio of Current Liability,Debt-to-long Capital Ratio,0.375839 -Equity Ratio of Current Liability,Long Term Asset Suitability Ratio,-0.028452 -Equity Ratio of Current Liability,Equity Multiplier,0.951933 -Equity Ratio of Current Liability,Equity Ratio of Current Liability,1 -Equity Ratio of Current Liability,Interest Bearing Debt / Fully Invested Capital,-0.543147 -Equity Ratio of Current Liability,Current Liability / Total Liabilities,-0.106139 -Equity Ratio of Current Liability,Capital Fixation Ratio,-0.52232 -Equity Ratio of Current Liability,Expected Default Frequency,0.011466 -Interest Bearing Debt / Fully Invested Capital,Asset Liability Ratio,-0.857474 -Interest Bearing Debt / Fully Invested Capital,Asset Liability Ratio (Deducting Advance Payments),-0.554039 -Interest Bearing Debt / Fully Invested Capital,Debt-to-long Capital Ratio,-0.524955 -Interest Bearing Debt / Fully Invested Capital,Long Term Asset Suitability Ratio,0.157157 -Interest Bearing Debt / Fully Invested Capital,Equity Multiplier,-0.651767 -Interest Bearing Debt / Fully Invested Capital,Equity Ratio of Current Liability,-0.543147 -Interest Bearing Debt / Fully Invested Capital,Interest Bearing Debt / Fully Invested Capital,1 -Interest Bearing Debt / Fully Invested Capital,Current Liability / Total Liabilities,-0.595016 -Interest Bearing Debt / Fully Invested Capital,Capital Fixation Ratio,0.310521 -Interest Bearing Debt / Fully Invested Capital,Expected Default Frequency,0.066397 -Current Liability / Total Liabilities,Asset Liability Ratio,0.320706 -Current Liability / Total Liabilities,Asset Liability Ratio (Deducting Advance Payments),0.17127 -Current Liability / Total Liabilities,Debt-to-long Capital Ratio,0.300627 -Current Liability / Total Liabilities,Long Term Asset Suitability Ratio,0.009742 -Current Liability / Total Liabilities,Equity Multiplier,0.079052 -Current Liability / Total Liabilities,Equity Ratio of Current Liability,-0.106139 -Current Liability / Total Liabilities,Interest Bearing Debt / Fully Invested Capital,-0.595016 -Current Liability / Total Liabilities,Current Liability / Total Liabilities,1 -Current Liability / Total Liabilities,Capital Fixation Ratio,-0.105199 -Current Liability / Total Liabilities,Expected Default Frequency,-0.064886 -Capital Fixation Ratio,Asset Liability Ratio,-0.284634 -Capital Fixation Ratio,Asset Liability Ratio (Deducting Advance Payments),-0.265259 -Capital Fixation Ratio,Debt-to-long Capital Ratio,-0.198362 -Capital Fixation Ratio,Long Term Asset Suitability Ratio,-0.162374 -Capital Fixation Ratio,Equity Multiplier,-0.535984 -Capital Fixation Ratio,Equity Ratio of Current Liability,-0.52232 -Capital Fixation Ratio,Interest Bearing Debt / Fully Invested Capital,0.310521 -Capital Fixation Ratio,Current Liability / Total Liabilities,-0.105199 -Capital Fixation Ratio,Capital Fixation Ratio,1 -Capital Fixation Ratio,Expected Default Frequency,-0.080153 -Expected Default Frequency,Asset Liability Ratio,-0.091423 -Expected Default Frequency,Asset Liability Ratio (Deducting Advance Payments),0.068577 -Expected Default Frequency,Debt-to-long Capital Ratio,0.033209 -Expected Default Frequency,Long Term Asset Suitability Ratio,0.155095 -Expected Default Frequency,Equity Multiplier,0.00798 -Expected Default Frequency,Equity Ratio of Current Liability,0.011466 -Expected Default Frequency,Interest Bearing Debt / Fully Invested Capital,0.066397 -Expected Default Frequency,Current Liability / Total Liabilities,-0.064886 -Expected Default Frequency,Capital Fixation Ratio,-0.080153 -Expected Default Frequency,Expected Default Frequency,1`, - input: '请使用热图帮我展示各财务比率指标的相关系数' -}; - -export const vennChartData = { - csv: `sets,name,value -0,A,8 -1,D,8 -2,B,10 -3,C,12 -4,A,4 -4,B,4 -5,A,4 -5,C,4 -6,B,4 -6,C,4 -7,A,2 -7,B,2 -7,C,2`, - input: '帮我展示各元素集合重叠区域,以及分布情况。请使用数据中的sets字段来划分不同集合。' -}; - -export const singleColumnLineCombinationChartData = { - csv: `date,Social Penetration,Engagement - Socialization,Penetration of Private Messages,Number of Private Messages per User -2022-03-08,1.2020804451630671,0.7782279444864411,0.21493020207806002,0.26002007727513005 -2022-03-09,1.911162758594358,0.6970763116149991,0.31807068769079905,1.791161354352144 -2022-03-10,0.919293523406533,0.6754510401577041,0.9774597853017851,1.410289280738493 -2022-03-11,1.613617931982911,4.391274420824463,0.662196540154462,2.374084690062705 -2022-03-12,1.121445896148114,0.5827973501093221,1.547704220622789,0.42545370377775604 -2022-03-13,0.527369749651032,0.321443063009525,0.52384329811226,0.45119753243186805 -2022-03-14,0.07991167814791,0.9838146243033221,1.242674929077965,1.276345431333586 -2022-03-15,0.29341332300751205,0.225492098355163,1.133076821811672,0.22045142924559902 -2022-03-16,1.103150404211427,0.580792120371675,1.261446251860683,0.061775812702848 -2022-03-17,0.38285701953593604,0.510579334822959,0.908573021920086,0.429194248082692 -2022-03-18,0.8908005339482421,1.656998380732747,2.003638269088651,1.194511111230195 -2022-03-19,0.8379933951719881,1.372238730132033,1.285574252451237,0.659056833995271 -2022-03-20,2.913059895355856,3.375041306488803,1.683935730207101,0.40361011204949004 -2022-03-21,1.245523794769467,0.5770535812918991,0.518960506573594,0.8441533797310441 -2022-03-22,1.801955367373218,2.562767955961243,2.076490748024919,1.8682050366367142 -2022-03-23,30.25170429439274,60.10096481599735,31.918470633985613,70.34237647545662 -2022-03-24,2.084831170978463,2.824195229461953,1.735738814795219,3.854924132202267 -2022-03-25,0.8300684679922911,0.37108301055861304,1.072942910906809,0.868965201778456 -2022-03-26,5.057522939533747,6.8131452572139555,10.31725741409195,0.6724835487477681 -2022-03-27,1.364245041731511,0.993289299105189,1.288157916081268,1.290710012048575 -2022-03-28,0.429699282814745,0.27225365805664004,0.24488975421611903,0.944202324553962 -2022-03-29,8.636960050981939,2.663368864789215,3.030888929145336,2.191548298261417 -2022-03-30,0.31233481070398905,1.136502929086737,1.4304534277803231,0.9398051933719991 -2022-03-31,0.8979576483673781,0.8268293005130081,1.32475784490384,0.212383798504713 -2022-04-01,1.187326287404249,1.2824253532703072,0.9289553576582981,1.328758303758777 -2022-04-02,0.013251966153457001,1.580091614771022,0.8470948142995741,1.061518688804395 -2022-04-03,0.150440921215681,0.7793382242254321,0.5908683646183901,1.021428732507816 -2022-04-04,1.437865757864698,0.34207119701235905,1.006103497118929,0.8496566144677861 -2022-04-05,19.70534531285437,4.144335050792541,13.880860231019398,19.78289952089912 -2022-04-06,1.068708512330189,1.336025709304907,7.121018094960213,0.032847589287524 -2022-04-07,3.239083103313066,0.9037359185383671,2.010136943230478,2.758258304057329 -2022-04-08,3.609669038457516,13.698767079174356,14.457401852798982,11.6964360828172 -2022-04-09,0.8581543303200471,1.11771091972957,0.9593788300193951,1.121066838670219 -2022-04-10,1.235338424517758,0.5546236200208831,1.138776207683746,0.5694312841615821 -2022-04-11,0.615560300356359,0.133505664394376,0.575680679073131,0.502679162912634 -2022-04-12,3.5445165395901572,8.458105165611851,2.90160000840929,3.084080663501847 -2022-04-13,1.037776502324676,1.412321112593621,1.416876192652653,0.270647644667579 -2022-04-14,0.534866532613768,0.577163861285873,0.034172330313952004,0.268470350264293 -2022-04-15,3.225952049483959,5.112791338669762,3.745099757241069,2.612195295941399 -2022-04-16,12.278592894400722,13.301401633991011,6.202762040985617,18.098567324029407 -2022-04-17,0.411460847135642,0.8194099242420241,0.6882380919620981,0.645388563624089 -2022-04-18,0.304818623987116,0.601409275693432,0.07904084882979401,0.16144847919011002 -2022-04-19,0.8929797309154061,0.932019259560644,0.013117573233606001,0.36918835535862005 -2022-04-20,4.074891060179412,3.6166710941152713,3.143179675624189,5.283666616893828 -2022-04-21,0.902423656543305,2.682237126638688,0.6180860661837431,1.631115014312209 -2022-04-22,0.868968791964932,0.329339479566271,0.001536382167654,0.807551152019862 -2022-04-23,0.598986391584271,0.923756524041317,0.27081187550692803,0.22998130489182 -2022-04-24,0.27570721725353503,0.6601580208066361,0.7774852739576821,1.107108162852159 -2022-04-25,0.38518667923696703,2.037027697748363,0.859959904015784,0.641738277028276 -2022-04-26,0.622049495688147,0.803863499657206,0.22244045641286703,1.320954321806144 -2022-04-27,3.540727101774814,0.651469202290988,0.509144429951741,0.20073460039620403 -2022-04-28,2.742513433824975,2.6893975459595643,0.13894846116144902,0.7415989059349031 -2022-04-29,1.621566806821747,0.9147556633717211,0.19686640023465302,1.66475441380813 -2022-04-30,2.352493741253538,3.463127996997362,2.931184732430775,1.792534569741266 -2022-05-01,0.023487873849160002,0.5573480476128151,0.544054544143018,0.35016352980012605 -2022-05-02,9.85187760463177,35.95040240058573,10.530894431942714,4.323328789531124 -2022-05-03,6.3835439206943,5.577920982650984,4.483541728043783,3.7796731596206943 -2022-05-04,2.897597920598689,5.106082630695584,8.400221891051206,8.018922971992662 -2022-05-05,0.147546385656207,0.040771286126692,0.6862921980279431,0.44745062012103404 -2022-05-06,4.668438202775402,0.23681078820699203,4.557825514906153,3.46073691075845 -2022-05-07,1.868897716467347,1.727448921279463,0.527497153125138,0.120868915583745 -2022-05-08,1.356875902669512,1.434740383567053,1.25226701190186,0.42909048781311704 -2022-05-09,1.029882775112869,0.9377192673786531,0.643077700672811,0.539461571476962 -2022-05-10,1.079419585437788,0.5840348488590831,0.031193331319320002,0.341612265371036 -2022-05-11,0.43374835866466704,0.01643698693241,0.39325414355653304,0.918926460102595 -2022-05-12,0.6884004244125861,1.538028843999251,0.863652647240271,1.249717355592488 -2022-05-13,0.5513219132650721,1.063801968030616,0.65309749602536,1.244646630025216 -2022-05-14,0.26075436773203503,0.16980099784180802,0.502507081730036,0.026734770744615003 -2022-05-15,3.534068370760441,2.144086432206532,1.989727381483406,1.510725845099207 -2022-05-16,1.051684273070894,1.152664833294427,0.747391405264186,0.283792059973869 -2022-05-17,0.8574030868970931,0.8751363341872681,0.901758308356248,0.41795473321335 -2022-05-18,0.515497463894879,0.8615187586650901,0.43634054682577406,1.895212820019219 -2022-05-19,0.9592457438221671,0.126354125202296,2.8539304550226543,0.77105240170235 -2022-05-20,0.069882250377393,0.7098481312166951,0.5071020864029481,2.543277547025898 -2022-05-21,10.360352568974609,17.706030110118455,2.848137759152337,1.260088014509166 -2022-05-22,1.112796751785197,0.9176470910577301,0.43003615544265306,0.910155627802492 -2022-05-23,4.891916669440483,16.47452431770853,2.744192036280677,1.124249996351633 -2022-05-24,0.09534096170855301,0.7854768368577231,0.6263662592501831,0.19409864063613502 -2022-05-25,17.21160548866725,34.373177238596014,7.564216276703391,17.06769270843336 -2022-05-26,0.9890377076819251,0.789535076533531,0.8798790088553111,0.592040366427117 -2022-05-27,1.207578684423282,0.5312851260232421,1.055373428020675,0.84736634769268 -2022-05-28,15.265265813052475,12.028735185645875,14.171624745847268,35.787490090751945 -2022-05-29,1.667919015486645,1.439873268216485,1.078931580631559,0.9907508552960291 -2022-05-30,2.232083847244808,3.827653889831506,1.429842282923971,3.76351508114206 -2022-05-31,1.113011174076138,1.4295696272440521,1.141933003322777,1.22202135537901 -2022-06-01,0.9839213173080511,1.325995589464272,2.006909504383298,1.7803529363753632 -2022-06-02,3.618368394111176,0.627748977148721,1.176985400742372,1.267728131617331 -2022-06-03,1.5240830060491182,0.83151391784571,1.356692075891955,3.227340286052029 -2022-06-04,0.7108355579615261,0.011530713721830002,0.52485737802621,0.661668615725415 -2022-06-05,1.842738679408876,1.130871471288951,1.189107233207374,3.246025623322408 -2022-06-06,2.968986726243696,2.9958102236757282,0.47619309340284505,1.3335764819663671 -2022-06-07,0.30957106038382504,0.44026116440941004,0.42982954277120905,1.741430660250139 -2022-06-08,3.077870353397237,4.156128784010092,1.021512025143279,4.351094223144934 -2022-06-09,0.460474051903736,1.2828566287818242,0.22198861960947303,0.085629074470341 -2022-06-10,0.9248894668614721,0.23152297348937,0.18500236928827601,0.5925681882904861 -2022-06-11,0.5170229174882011,1.344093064443273,0.6923204827335401,1.013151233597585 -2022-06-12,1.343310704782682,0.42108731154009404,1.547163500435265,0.999128791000602 -2022-06-13,4.213284444567541,2.448703044357372,0.13900479867391702,1.556248326348268 -2022-06-14,0.718083714760927,1.912454128957958,0.24702549770442003,2.037101388253879 -2022-06-15,2.443370806389791,0.010368540480550002,0.133167401519793,2.42241572339565 -2022-06-16,3.594231845735735,0.6677966564200211,4.009094569074379,5.5253640045926335 -2022-06-17,1.113951398490715,0.11111864432229301,0.9730098334869651,0.9908309309721931 -2022-06-18,0.5614439322266921,0.806546956486733,0.32013564834811403,0.8486918887953661 -2022-06-19,1.243458727745012,1.135192118212662,5.021267051723119,4.233329079605447 -2022-06-20,1.31005897849395,1.045144309632654,4.014478741193049,2.239616259510069 -2022-06-21,0.572744269459053,1.076475248295982,0.7240389412682761,0.10908279405984601 -2022-06-22,24.581669047338767,24.02021682920061,37.05462241129788,23.51884099646193 -2022-06-23,0.47413969565051606,0.027051327125384002,0.16824850993617801,0.41568301223291604 -2022-06-24,0.43416765009011604,2.878601660092219,1.9317197675603461,1.840590020030168 -2022-06-25,0.943163264857342,0.019465090936308,0.285177476177572,0.5532414004550751 -2022-06-26,0.233205152479134,1.2557471231721191,1.260075716991639,2.715172232506665 -2022-06-27,3.9663605369632933,0.5849212901405391,3.452510757244162,2.679757899115613 -2022-06-28,0.016605232459512002,0.280224773927022,0.729523367081325,1.105137522496868 -2022-06-29,1.374134760412724,0.751739223993092,0.7538963415227941,1.347929408272255 -2022-06-30,0.715486103147415,0.555444809676618,0.08646395240381301,0.5491110504617991 -2022-07-01,0.747532331413809,1.043273887199711,0.49779032149353303,0.885618995495125 -2022-07-02,0.8670766655477491,1.8724388596735242,0.391981409036455,1.040394051716164 -2022-07-03,0.392542368674532,1.204834846410795,1.103562611606201,0.387838034146796 -2022-07-04,2.354765436840968,0.147183599628016,1.798064276315111,0.33504623462675404 -2022-07-05,0.25059554847566,0.259954349350673,0.407469349519874,3.278091213717644 -2022-07-06,4.720665637767317,2.071271452074246,4.502139668053687,5.134166854414464 -2022-07-07,0.646476205877439,0.186466306558064,0.499133613586184,0.15787863433545202 -2022-07-08,4.428354777598469,7.997827905255312,5.845195208267132,3.695856221993309 -2022-07-09,1.502467804494858,0.33362085354833704,1.26505092951483,0.9204718402028381 -2022-07-10,11.706734521216822,36.550441521853145,19.095991246701065,12.292686689327372 -2022-07-11,1.153083534578196,0.337559642243531,1.154651513638781,0.22569823789057203 -2022-07-12,1.4863362021332551,0.48307852351030106,1.5365158530965122,0.057003071478754004 -2022-07-13,1.61896686341972,0.9387594299650791,1.092431878065284,1.886305858547745 -2022-07-14,49.60818750100216,22.940238837323303,13.579325095732914,38.67416013838181 -2022-07-15,1.785205883890873,0.631304013521069,0.62869350368483,0.34417591219448 -2022-07-16,0.715594243310775,0.984028805544615,0.967817534607272,0.153576028704162 -2022-07-17,0.8147430610328651,0.26284189122074103,2.154865858339681,1.283391109459497 -2022-07-18,1.24545618431753,1.082826448671828,0.45266260254768803,0.084950117524903 -2022-07-19,0.083915091025848,0.5880718113215341,1.007179376918947,0.865719136965563 -2022-07-20,0.32701962372413,0.17041520446782002,1.773905435681336,1.104677623595627 -2022-07-21,0.722041044814348,0.822598941600809,0.9593067917284711,0.41221237294221 -2022-07-22,10.662811760936936,0.183634003906628,13.34157103707886,12.159275730149757 -2022-07-23,0.364677770561312,0.559247300094862,0.40653075149155804,0.9694788164354201 -2022-07-24,0.9157754804402811,1.091835974661574,0.8199135063617131,1.062993342271482 -2022-07-25,0.67849525511577,3.048531280160542,1.471231045142114,0.591416124923933 -2022-07-26,1.330066578741473,1.582638082613582,1.789945856913414,2.192979954983851 -2022-07-27,5.686664774275858,6.436173309221049,4.7854634352690155,1.63427958962943 -2022-07-28,0.22324041916141402,1.428578028660132,1.458686942176205,1.311736714260567 -2022-07-29,2.476037411183793,0.7249411790805861,0.42039676295059203,2.995565219170837 -2022-07-30,0.773637653847835,0.9265499876312321,0.32494629315872703,0.324341917122049 -2022-07-31,0.169152723468269,0.9014047551998651,0.46982772647431204,0.5534444716525361 -2022-08-01,1.519627178758216,1.610068186750942,3.309159861747862,0.529330910775445 -2022-08-02,3.545652606242915,2.330031081649702,3.9640154638953513,3.856552869039815 -2022-08-03,1.3404062798488199,0.462815961543229,0.9670138622828691,1.234951845374218 -2022-08-04,0.6530263834012761,0.08597037675761801,0.9707805498085981,0.16192153323070702 -2022-08-05,0.708729075421144,3.581243043200601,2.651870015387795,2.173110201699371 -2022-08-06,11.986631123295103,10.930286916614767,22.78182877052594,11.135752238663327 -2022-08-07,1.232939713701664,1.8029857915415932,1.476317514220094,0.958792084262276 -2022-08-08,0.530813431405317,2.014631665755229,2.7977280500624433,2.039075329513739 -2022-08-09,2.510188659097596,2.983415297830412,0.126105493389976,2.121594836643942 -2022-08-10,1.622456744339298,1.289582374551249,2.5475660513369442,3.282862603860423 -2022-08-11,0.25962103068208003,0.37516694909806303,0.5828588359439041,0.139231895746797 -2022-08-12,0.884113805589634,1.603259620438238,1.8751590471743,0.24122279792940302 -2022-08-13,8.624685230360152,3.3791466219930433,9.375119750363103,0.7506624109540441 -2022-08-14,1.6498217904306332,2.627126072551769,0.57102589263998,2.4024472876658223 -2022-08-15,5.840124155766275,3.354483317899366,1.075590808840468,2.3650336028113492 -2022-08-16,2.405030143824614,1.444879535922397,0.942851527789979,1.423465983705226 -2022-08-17,1.034391306438299,0.6369673400603011,0.473080126014195,0.8585472144660361 -2022-08-18,4.703412413763946,0.5990722583580821,0.911179769434693,1.189643421133775 -2022-08-19,0.22138733877979702,0.24079634787311602,0.045592515857608006,0.9837464357223601 -2022-08-20,0.14621922149563202,0.096627004274573,0.7910843611370051,0.059870034265504 -2022-08-21,5.702011116768989,11.782408392531364,4.022381962144387,12.55656527594101 -2022-08-22,2.289251748782675,1.846139752930779,1.302218066447416,1.195140815195466 -2022-08-23,0.40156922050687605,2.44670175499675,2.701336009126233,2.5846045653914143 -2022-08-24,16.368686321533847,9.285256494681935,14.17816605948454,6.813674272547164 -2022-08-25,17.325634435909638,40.63547963350666,52.36627420733006,22.12581500864155 -2022-08-26,2.771994472181008,1.432898057334553,0.500652317272802,0.29065103217099203 -2022-08-27,2.705080627435551,1.140228551443707,2.535947091285437,2.068004826572326 -2022-08-28,0.366184071525715,0.37561791103581305,1.087399555743408,1.3431857507096732 -2022-08-29,0.192969279119436,1.203078886727172,0.8966719923838661,1.07779591413233 -2022-08-30,0.248116517168076,0.901524977902984,0.9660257636136701,0.13247782324235202 -2022-08-31,0.7172605174280461,0.22721632248943202,0.9247009404760361,0.28572976740870504 -2022-09-01,0.259653267575217,2.040817156148029,2.19857288799284,2.229208371156883 -2022-09-02,1.398428414171018,0.071469482611002,0.9048807067534731,0.0022491420541680004 -2022-09-03,1.7166677805176591,1.903668070163285,1.866568462888393,1.8648831840830011`, - input: '请使用四个独立的折线的组合图展示不同类别的权重随着时间的变化' -}; - -export const singleColumnLineCombinationChartData1 = { - csv: `date,Social Penetration,Engagement - Socialization,Penetration of Private Messages,Number of Private Messages per User -2022-03-08,1.2020804451630671,0.7782279444864411,0.21493020207806002,0.26002007727513005 -2022-03-09,1.911162758594358,0.6970763116149991,0.31807068769079905,1.791161354352144 -2022-03-10,0.919293523406533,0.6754510401577041,0.9774597853017851,1.410289280738493 -2022-03-11,1.613617931982911,4.391274420824463,0.662196540154462,2.374084690062705 -2022-03-12,1.121445896148114,0.5827973501093221,1.547704220622789,0.42545370377775604 -2022-03-13,0.527369749651032,0.321443063009525,0.52384329811226,0.45119753243186805 -2022-03-14,0.07991167814791,0.9838146243033221,1.242674929077965,1.276345431333586 -2022-03-15,0.29341332300751205,0.225492098355163,1.133076821811672,0.22045142924559902 -2022-03-16,1.103150404211427,0.580792120371675,1.261446251860683,0.061775812702848 -2022-03-17,0.38285701953593604,0.510579334822959,0.908573021920086,0.429194248082692 -2022-03-18,0.8908005339482421,1.656998380732747,2.003638269088651,1.194511111230195 -2022-03-19,0.8379933951719881,1.372238730132033,1.285574252451237,0.659056833995271 -2022-03-20,2.913059895355856,3.375041306488803,1.683935730207101,0.40361011204949004 -2022-03-21,1.245523794769467,0.5770535812918991,0.518960506573594,0.8441533797310441 -2022-03-22,1.801955367373218,2.562767955961243,2.076490748024919,1.8682050366367142 -2022-03-23,30.25170429439274,60.10096481599735,31.918470633985613,70.34237647545662 -2022-03-24,2.084831170978463,2.824195229461953,1.735738814795219,3.854924132202267 -2022-03-25,0.8300684679922911,0.37108301055861304,1.072942910906809,0.868965201778456 -2022-03-26,5.057522939533747,6.8131452572139555,10.31725741409195,0.6724835487477681 -2022-03-27,1.364245041731511,0.993289299105189,1.288157916081268,1.290710012048575 -2022-03-28,0.429699282814745,0.27225365805664004,0.24488975421611903,0.944202324553962 -2022-03-29,8.636960050981939,2.663368864789215,3.030888929145336,2.191548298261417 -2022-03-30,0.31233481070398905,1.136502929086737,1.4304534277803231,0.9398051933719991 -2022-03-31,0.8979576483673781,0.8268293005130081,1.32475784490384,0.212383798504713 -2022-04-01,1.187326287404249,1.2824253532703072,0.9289553576582981,1.328758303758777 -2022-04-02,0.013251966153457001,1.580091614771022,0.8470948142995741,1.061518688804395 -2022-04-03,0.150440921215681,0.7793382242254321,0.5908683646183901,1.021428732507816 -2022-04-04,1.437865757864698,0.34207119701235905,1.006103497118929,0.8496566144677861 -2022-04-05,19.70534531285437,4.144335050792541,13.880860231019398,19.78289952089912 -2022-04-06,1.068708512330189,1.336025709304907,7.121018094960213,0.032847589287524 -2022-04-07,3.239083103313066,0.9037359185383671,2.010136943230478,2.758258304057329 -2022-04-08,3.609669038457516,13.698767079174356,14.457401852798982,11.6964360828172 -2022-04-09,0.8581543303200471,1.11771091972957,0.9593788300193951,1.121066838670219 -2022-04-10,1.235338424517758,0.5546236200208831,1.138776207683746,0.5694312841615821 -2022-04-11,0.615560300356359,0.133505664394376,0.575680679073131,0.502679162912634 -2022-04-12,3.5445165395901572,8.458105165611851,2.90160000840929,3.084080663501847 -2022-04-13,1.037776502324676,1.412321112593621,1.416876192652653,0.270647644667579 -2022-04-14,0.534866532613768,0.577163861285873,0.034172330313952004,0.268470350264293 -2022-04-15,3.225952049483959,5.112791338669762,3.745099757241069,2.612195295941399 -2022-04-16,12.278592894400722,13.301401633991011,6.202762040985617,18.098567324029407 -2022-04-17,0.411460847135642,0.8194099242420241,0.6882380919620981,0.645388563624089 -2022-04-18,0.304818623987116,0.601409275693432,0.07904084882979401,0.16144847919011002 -2022-04-19,0.8929797309154061,0.932019259560644,0.013117573233606001,0.36918835535862005 -2022-04-20,4.074891060179412,3.6166710941152713,3.143179675624189,5.283666616893828 -2022-04-21,0.902423656543305,2.682237126638688,0.6180860661837431,1.631115014312209 -2022-04-22,0.868968791964932,0.329339479566271,0.001536382167654,0.807551152019862 -2022-04-23,0.598986391584271,0.923756524041317,0.27081187550692803,0.22998130489182 -2022-04-24,0.27570721725353503,0.6601580208066361,0.7774852739576821,1.107108162852159 -2022-04-25,0.38518667923696703,2.037027697748363,0.859959904015784,0.641738277028276 -2022-04-26,0.622049495688147,0.803863499657206,0.22244045641286703,1.320954321806144 -2022-04-27,3.540727101774814,0.651469202290988,0.509144429951741,0.20073460039620403 -2022-04-28,2.742513433824975,2.6893975459595643,0.13894846116144902,0.7415989059349031 -2022-04-29,1.621566806821747,0.9147556633717211,0.19686640023465302,1.66475441380813 -2022-04-30,2.352493741253538,3.463127996997362,2.931184732430775,1.792534569741266 -2022-05-01,0.023487873849160002,0.5573480476128151,0.544054544143018,0.35016352980012605 -2022-05-02,9.85187760463177,35.95040240058573,10.530894431942714,4.323328789531124 -2022-05-03,6.3835439206943,5.577920982650984,4.483541728043783,3.7796731596206943 -2022-05-04,2.897597920598689,5.106082630695584,8.400221891051206,8.018922971992662 -2022-05-05,0.147546385656207,0.040771286126692,0.6862921980279431,0.44745062012103404 -2022-05-06,4.668438202775402,0.23681078820699203,4.557825514906153,3.46073691075845 -2022-05-07,1.868897716467347,1.727448921279463,0.527497153125138,0.120868915583745 -2022-05-08,1.356875902669512,1.434740383567053,1.25226701190186,0.42909048781311704 -2022-05-09,1.029882775112869,0.9377192673786531,0.643077700672811,0.539461571476962 -2022-05-10,1.079419585437788,0.5840348488590831,0.031193331319320002,0.341612265371036 -2022-05-11,0.43374835866466704,0.01643698693241,0.39325414355653304,0.918926460102595 -2022-05-12,0.6884004244125861,1.538028843999251,0.863652647240271,1.249717355592488 -2022-05-13,0.5513219132650721,1.063801968030616,0.65309749602536,1.244646630025216 -2022-05-14,0.26075436773203503,0.16980099784180802,0.502507081730036,0.026734770744615003 -2022-05-15,3.534068370760441,2.144086432206532,1.989727381483406,1.510725845099207 -2022-05-16,1.051684273070894,1.152664833294427,0.747391405264186,0.283792059973869 -2022-05-17,0.8574030868970931,0.8751363341872681,0.901758308356248,0.41795473321335 -2022-05-18,0.515497463894879,0.8615187586650901,0.43634054682577406,1.895212820019219 -2022-05-19,0.9592457438221671,0.126354125202296,2.8539304550226543,0.77105240170235 -2022-05-20,0.069882250377393,0.7098481312166951,0.5071020864029481,2.543277547025898 -2022-05-21,10.360352568974609,17.706030110118455,2.848137759152337,1.260088014509166 -2022-05-22,1.112796751785197,0.9176470910577301,0.43003615544265306,0.910155627802492 -2022-05-23,4.891916669440483,16.47452431770853,2.744192036280677,1.124249996351633 -2022-05-24,0.09534096170855301,0.7854768368577231,0.6263662592501831,0.19409864063613502 -2022-05-25,17.21160548866725,34.373177238596014,7.564216276703391,17.06769270843336 -2022-05-26,0.9890377076819251,0.789535076533531,0.8798790088553111,0.592040366427117 -2022-05-27,1.207578684423282,0.5312851260232421,1.055373428020675,0.84736634769268 -2022-05-28,15.265265813052475,12.028735185645875,14.171624745847268,35.787490090751945 -2022-05-29,1.667919015486645,1.439873268216485,1.078931580631559,0.9907508552960291 -2022-05-30,2.232083847244808,3.827653889831506,1.429842282923971,3.76351508114206 -2022-05-31,1.113011174076138,1.4295696272440521,1.141933003322777,1.22202135537901 -2022-06-01,0.9839213173080511,1.325995589464272,2.006909504383298,1.7803529363753632 -2022-06-02,3.618368394111176,0.627748977148721,1.176985400742372,1.267728131617331 -2022-06-03,1.5240830060491182,0.83151391784571,1.356692075891955,3.227340286052029 -2022-06-04,0.7108355579615261,0.011530713721830002,0.52485737802621,0.661668615725415 -2022-06-05,1.842738679408876,1.130871471288951,1.189107233207374,3.246025623322408 -2022-06-06,2.968986726243696,2.9958102236757282,0.47619309340284505,1.3335764819663671 -2022-06-07,0.30957106038382504,0.44026116440941004,0.42982954277120905,1.741430660250139 -2022-06-08,3.077870353397237,4.156128784010092,1.021512025143279,4.351094223144934 -2022-06-09,0.460474051903736,1.2828566287818242,0.22198861960947303,0.085629074470341 -2022-06-10,0.9248894668614721,0.23152297348937,0.18500236928827601,0.5925681882904861 -2022-06-11,0.5170229174882011,1.344093064443273,0.6923204827335401,1.013151233597585 -2022-06-12,1.343310704782682,0.42108731154009404,1.547163500435265,0.999128791000602 -2022-06-13,4.213284444567541,2.448703044357372,0.13900479867391702,1.556248326348268 -2022-06-14,0.718083714760927,1.912454128957958,0.24702549770442003,2.037101388253879 -2022-06-15,2.443370806389791,0.010368540480550002,0.133167401519793,2.42241572339565 -2022-06-16,3.594231845735735,0.6677966564200211,4.009094569074379,5.5253640045926335 -2022-06-17,1.113951398490715,0.11111864432229301,0.9730098334869651,0.9908309309721931 -2022-06-18,0.5614439322266921,0.806546956486733,0.32013564834811403,0.8486918887953661 -2022-06-19,1.243458727745012,1.135192118212662,5.021267051723119,4.233329079605447 -2022-06-20,1.31005897849395,1.045144309632654,4.014478741193049,2.239616259510069 -2022-06-21,0.572744269459053,1.076475248295982,0.7240389412682761,0.10908279405984601 -2022-06-22,24.581669047338767,24.02021682920061,37.05462241129788,23.51884099646193 -2022-06-23,0.47413969565051606,0.027051327125384002,0.16824850993617801,0.41568301223291604 -2022-06-24,0.43416765009011604,2.878601660092219,1.9317197675603461,1.840590020030168 -2022-06-25,0.943163264857342,0.019465090936308,0.285177476177572,0.5532414004550751 -2022-06-26,0.233205152479134,1.2557471231721191,1.260075716991639,2.715172232506665 -2022-06-27,3.9663605369632933,0.5849212901405391,3.452510757244162,2.679757899115613 -2022-06-28,0.016605232459512002,0.280224773927022,0.729523367081325,1.105137522496868 -2022-06-29,1.374134760412724,0.751739223993092,0.7538963415227941,1.347929408272255 -2022-06-30,0.715486103147415,0.555444809676618,0.08646395240381301,0.5491110504617991 -2022-07-01,0.747532331413809,1.043273887199711,0.49779032149353303,0.885618995495125 -2022-07-02,0.8670766655477491,1.8724388596735242,0.391981409036455,1.040394051716164 -2022-07-03,0.392542368674532,1.204834846410795,1.103562611606201,0.387838034146796 -2022-07-04,2.354765436840968,0.147183599628016,1.798064276315111,0.33504623462675404 -2022-07-05,0.25059554847566,0.259954349350673,0.407469349519874,3.278091213717644 -2022-07-06,4.720665637767317,2.071271452074246,4.502139668053687,5.134166854414464 -2022-07-07,0.646476205877439,0.186466306558064,0.499133613586184,0.15787863433545202 -2022-07-08,4.428354777598469,7.997827905255312,5.845195208267132,3.695856221993309 -2022-07-09,1.502467804494858,0.33362085354833704,1.26505092951483,0.9204718402028381 -2022-07-10,11.706734521216822,36.550441521853145,19.095991246701065,12.292686689327372 -2022-07-11,1.153083534578196,0.337559642243531,1.154651513638781,0.22569823789057203 -2022-07-12,1.4863362021332551,0.48307852351030106,1.5365158530965122,0.057003071478754004 -2022-07-13,1.61896686341972,0.9387594299650791,1.092431878065284,1.886305858547745 -2022-07-14,49.60818750100216,22.940238837323303,13.579325095732914,38.67416013838181 -2022-07-15,1.785205883890873,0.631304013521069,0.62869350368483,0.34417591219448 -2022-07-16,0.715594243310775,0.984028805544615,0.967817534607272,0.153576028704162 -2022-07-17,0.8147430610328651,0.26284189122074103,2.154865858339681,1.283391109459497 -2022-07-18,1.24545618431753,1.082826448671828,0.45266260254768803,0.084950117524903 -2022-07-19,0.083915091025848,0.5880718113215341,1.007179376918947,0.865719136965563 -2022-07-20,0.32701962372413,0.17041520446782002,1.773905435681336,1.104677623595627 -2022-07-21,0.722041044814348,0.822598941600809,0.9593067917284711,0.41221237294221 -2022-07-22,10.662811760936936,0.183634003906628,13.34157103707886,12.159275730149757 -2022-07-23,0.364677770561312,0.559247300094862,0.40653075149155804,0.9694788164354201 -2022-07-24,0.9157754804402811,1.091835974661574,0.8199135063617131,1.062993342271482 -2022-07-25,0.67849525511577,3.048531280160542,1.471231045142114,0.591416124923933 -2022-07-26,1.330066578741473,1.582638082613582,1.789945856913414,2.192979954983851 -2022-07-27,5.686664774275858,6.436173309221049,4.7854634352690155,1.63427958962943 -2022-07-28,0.22324041916141402,1.428578028660132,1.458686942176205,1.311736714260567 -2022-07-29,2.476037411183793,0.7249411790805861,0.42039676295059203,2.995565219170837 -2022-07-30,0.773637653847835,0.9265499876312321,0.32494629315872703,0.324341917122049 -2022-07-31,0.169152723468269,0.9014047551998651,0.46982772647431204,0.5534444716525361 -2022-08-01,1.519627178758216,1.610068186750942,3.309159861747862,0.529330910775445 -2022-08-02,3.545652606242915,2.330031081649702,3.9640154638953513,3.856552869039815 -2022-08-03,1.3404062798488199,0.462815961543229,0.9670138622828691,1.234951845374218 -2022-08-04,0.6530263834012761,0.08597037675761801,0.9707805498085981,0.16192153323070702 -2022-08-05,0.708729075421144,3.581243043200601,2.651870015387795,2.173110201699371 -2022-08-06,11.986631123295103,10.930286916614767,22.78182877052594,11.135752238663327 -2022-08-07,1.232939713701664,1.8029857915415932,1.476317514220094,0.958792084262276 -2022-08-08,0.530813431405317,2.014631665755229,2.7977280500624433,2.039075329513739 -2022-08-09,2.510188659097596,2.983415297830412,0.126105493389976,2.121594836643942 -2022-08-10,1.622456744339298,1.289582374551249,2.5475660513369442,3.282862603860423 -2022-08-11,0.25962103068208003,0.37516694909806303,0.5828588359439041,0.139231895746797 -2022-08-12,0.884113805589634,1.603259620438238,1.8751590471743,0.24122279792940302 -2022-08-13,8.624685230360152,3.3791466219930433,9.375119750363103,0.7506624109540441 -2022-08-14,1.6498217904306332,2.627126072551769,0.57102589263998,2.4024472876658223 -2022-08-15,5.840124155766275,3.354483317899366,1.075590808840468,2.3650336028113492 -2022-08-16,2.405030143824614,1.444879535922397,0.942851527789979,1.423465983705226 -2022-08-17,1.034391306438299,0.6369673400603011,0.473080126014195,0.8585472144660361 -2022-08-18,4.703412413763946,0.5990722583580821,0.911179769434693,1.189643421133775 -2022-08-19,0.22138733877979702,0.24079634787311602,0.045592515857608006,0.9837464357223601 -2022-08-20,0.14621922149563202,0.096627004274573,0.7910843611370051,0.059870034265504 -2022-08-21,5.702011116768989,11.782408392531364,4.022381962144387,12.55656527594101 -2022-08-22,2.289251748782675,1.846139752930779,1.302218066447416,1.195140815195466 -2022-08-23,0.40156922050687605,2.44670175499675,2.701336009126233,2.5846045653914143 -2022-08-24,16.368686321533847,9.285256494681935,14.17816605948454,6.813674272547164 -2022-08-25,17.325634435909638,40.63547963350666,52.36627420733006,22.12581500864155 -2022-08-26,2.771994472181008,1.432898057334553,0.500652317272802,0.29065103217099203 -2022-08-27,2.705080627435551,1.140228551443707,2.535947091285437,2.068004826572326 -2022-08-28,0.366184071525715,0.37561791103581305,1.087399555743408,1.3431857507096732 -2022-08-29,0.192969279119436,1.203078886727172,0.8966719923838661,1.07779591413233 -2022-08-30,0.248116517168076,0.901524977902984,0.9660257636136701,0.13247782324235202 -2022-08-31,0.7172605174280461,0.22721632248943202,0.9247009404760361,0.28572976740870504 -2022-09-01,0.259653267575217,2.040817156148029,2.19857288799284,2.229208371156883 -2022-09-02,1.398428414171018,0.071469482611002,0.9048807067534731,0.0022491420541680004 -2022-09-03,1.7166677805176591,1.903668070163285,1.866568462888393,1.8648831840830011`, - input: - '请使用组合图分别展示Social Penetration和Engagement - Socialization类别的权重随着时间的变化,以及Penetration of Private Messages和Number of Private Messages per User类别的权重随着时间的变化' -}; - -export const singleColumnBarCombinationChartData = { - csv: `region,可乐销售额,雪碧销售额,芬达销售额,醒目销售额 -south,2350,215,345,1476 -east,1027,654,654,830 -west,1027,159,2100,532 -north,1027,28,1679,498 -`, - input: '帮我使用四个不同柱图的组合展示四个区域上不同商品销售额' -}; - -export const singleColumnBarCombinationChartData1 = { - csv: `date,Social Penetration,Engagement - Socialization,Penetration of Private Messages,Number of Private Messages per User -2022-03-08,1.2020804451630671,0.7782279444864411,0.21493020207806002,0.26002007727513005 -2022-03-09,1.911162758594358,0.6970763116149991,0.31807068769079905,1.791161354352144 -2022-03-10,0.919293523406533,0.6754510401577041,0.9774597853017851,1.410289280738493 -2022-03-11,1.613617931982911,4.391274420824463,0.662196540154462,2.374084690062705 -2022-03-12,1.121445896148114,0.5827973501093221,1.547704220622789,0.42545370377775604 -2022-03-13,0.527369749651032,0.321443063009525,0.52384329811226,0.45119753243186805 -2022-03-14,0.07991167814791,0.9838146243033221,1.242674929077965,1.276345431333586 -2022-03-15,0.29341332300751205,0.225492098355163,1.133076821811672,0.22045142924559902 -2022-03-16,1.103150404211427,0.580792120371675,1.261446251860683,0.061775812702848 -2022-03-17,0.38285701953593604,0.510579334822959,0.908573021920086,0.429194248082692 -2022-03-18,0.8908005339482421,1.656998380732747,2.003638269088651,1.194511111230195 -2022-03-19,0.8379933951719881,1.372238730132033,1.285574252451237,0.659056833995271 -2022-03-20,2.913059895355856,3.375041306488803,1.683935730207101,0.40361011204949004 -2022-03-21,1.245523794769467,0.5770535812918991,0.518960506573594,0.8441533797310441 -2022-03-22,1.801955367373218,2.562767955961243,2.076490748024919,1.8682050366367142 -2022-03-23,30.25170429439274,60.10096481599735,31.918470633985613,70.34237647545662 -2022-03-24,2.084831170978463,2.824195229461953,1.735738814795219,3.854924132202267 -2022-03-25,0.8300684679922911,0.37108301055861304,1.072942910906809,0.868965201778456 -2022-03-26,5.057522939533747,6.8131452572139555,10.31725741409195,0.6724835487477681 -2022-03-27,1.364245041731511,0.993289299105189,1.288157916081268,1.290710012048575 -2022-03-28,0.429699282814745,0.27225365805664004,0.24488975421611903,0.944202324553962 -2022-03-29,8.636960050981939,2.663368864789215,3.030888929145336,2.191548298261417 -2022-03-30,0.31233481070398905,1.136502929086737,1.4304534277803231,0.9398051933719991 -2022-03-31,0.8979576483673781,0.8268293005130081,1.32475784490384,0.212383798504713 -2022-04-01,1.187326287404249,1.2824253532703072,0.9289553576582981,1.328758303758777 -2022-04-02,0.013251966153457001,1.580091614771022,0.8470948142995741,1.061518688804395 -2022-04-03,0.150440921215681,0.7793382242254321,0.5908683646183901,1.021428732507816 -2022-04-04,1.437865757864698,0.34207119701235905,1.006103497118929,0.8496566144677861 -2022-04-05,19.70534531285437,4.144335050792541,13.880860231019398,19.78289952089912 -2022-04-06,1.068708512330189,1.336025709304907,7.121018094960213,0.032847589287524 -2022-04-07,3.239083103313066,0.9037359185383671,2.010136943230478,2.758258304057329 -2022-04-08,3.609669038457516,13.698767079174356,14.457401852798982,11.6964360828172 -2022-04-09,0.8581543303200471,1.11771091972957,0.9593788300193951,1.121066838670219 -2022-04-10,1.235338424517758,0.5546236200208831,1.138776207683746,0.5694312841615821 -2022-04-11,0.615560300356359,0.133505664394376,0.575680679073131,0.502679162912634 -2022-04-12,3.5445165395901572,8.458105165611851,2.90160000840929,3.084080663501847 -2022-04-13,1.037776502324676,1.412321112593621,1.416876192652653,0.270647644667579 -2022-04-14,0.534866532613768,0.577163861285873,0.034172330313952004,0.268470350264293 -2022-04-15,3.225952049483959,5.112791338669762,3.745099757241069,2.612195295941399 -2022-04-16,12.278592894400722,13.301401633991011,6.202762040985617,18.098567324029407 -2022-04-17,0.411460847135642,0.8194099242420241,0.6882380919620981,0.645388563624089 -2022-04-18,0.304818623987116,0.601409275693432,0.07904084882979401,0.16144847919011002 -2022-04-19,0.8929797309154061,0.932019259560644,0.013117573233606001,0.36918835535862005 -2022-04-20,4.074891060179412,3.6166710941152713,3.143179675624189,5.283666616893828 -2022-04-21,0.902423656543305,2.682237126638688,0.6180860661837431,1.631115014312209 -2022-04-22,0.868968791964932,0.329339479566271,0.001536382167654,0.807551152019862 -2022-04-23,0.598986391584271,0.923756524041317,0.27081187550692803,0.22998130489182 -2022-04-24,0.27570721725353503,0.6601580208066361,0.7774852739576821,1.107108162852159 -2022-04-25,0.38518667923696703,2.037027697748363,0.859959904015784,0.641738277028276 -2022-04-26,0.622049495688147,0.803863499657206,0.22244045641286703,1.320954321806144 -2022-04-27,3.540727101774814,0.651469202290988,0.509144429951741,0.20073460039620403 -2022-04-28,2.742513433824975,2.6893975459595643,0.13894846116144902,0.7415989059349031 -2022-04-29,1.621566806821747,0.9147556633717211,0.19686640023465302,1.66475441380813 -2022-04-30,2.352493741253538,3.463127996997362,2.931184732430775,1.792534569741266 -2022-05-01,0.023487873849160002,0.5573480476128151,0.544054544143018,0.35016352980012605 -2022-05-02,9.85187760463177,35.95040240058573,10.530894431942714,4.323328789531124 -2022-05-03,6.3835439206943,5.577920982650984,4.483541728043783,3.7796731596206943 -2022-05-04,2.897597920598689,5.106082630695584,8.400221891051206,8.018922971992662 -2022-05-05,0.147546385656207,0.040771286126692,0.6862921980279431,0.44745062012103404 -2022-05-06,4.668438202775402,0.23681078820699203,4.557825514906153,3.46073691075845 -2022-05-07,1.868897716467347,1.727448921279463,0.527497153125138,0.120868915583745 -2022-05-08,1.356875902669512,1.434740383567053,1.25226701190186,0.42909048781311704 -2022-05-09,1.029882775112869,0.9377192673786531,0.643077700672811,0.539461571476962 -2022-05-10,1.079419585437788,0.5840348488590831,0.031193331319320002,0.341612265371036 -2022-05-11,0.43374835866466704,0.01643698693241,0.39325414355653304,0.918926460102595 -2022-05-12,0.6884004244125861,1.538028843999251,0.863652647240271,1.249717355592488 -2022-05-13,0.5513219132650721,1.063801968030616,0.65309749602536,1.244646630025216 -2022-05-14,0.26075436773203503,0.16980099784180802,0.502507081730036,0.026734770744615003 -2022-05-15,3.534068370760441,2.144086432206532,1.989727381483406,1.510725845099207 -2022-05-16,1.051684273070894,1.152664833294427,0.747391405264186,0.283792059973869 -2022-05-17,0.8574030868970931,0.8751363341872681,0.901758308356248,0.41795473321335 -2022-05-18,0.515497463894879,0.8615187586650901,0.43634054682577406,1.895212820019219 -2022-05-19,0.9592457438221671,0.126354125202296,2.8539304550226543,0.77105240170235 -2022-05-20,0.069882250377393,0.7098481312166951,0.5071020864029481,2.543277547025898 -2022-05-21,10.360352568974609,17.706030110118455,2.848137759152337,1.260088014509166 -2022-05-22,1.112796751785197,0.9176470910577301,0.43003615544265306,0.910155627802492 -2022-05-23,4.891916669440483,16.47452431770853,2.744192036280677,1.124249996351633 -2022-05-24,0.09534096170855301,0.7854768368577231,0.6263662592501831,0.19409864063613502 -2022-05-25,17.21160548866725,34.373177238596014,7.564216276703391,17.06769270843336 -2022-05-26,0.9890377076819251,0.789535076533531,0.8798790088553111,0.592040366427117 -2022-05-27,1.207578684423282,0.5312851260232421,1.055373428020675,0.84736634769268 -2022-05-28,15.265265813052475,12.028735185645875,14.171624745847268,35.787490090751945 -2022-05-29,1.667919015486645,1.439873268216485,1.078931580631559,0.9907508552960291 -2022-05-30,2.232083847244808,3.827653889831506,1.429842282923971,3.76351508114206 -2022-05-31,1.113011174076138,1.4295696272440521,1.141933003322777,1.22202135537901 -2022-06-01,0.9839213173080511,1.325995589464272,2.006909504383298,1.7803529363753632 -2022-06-02,3.618368394111176,0.627748977148721,1.176985400742372,1.267728131617331 -2022-06-03,1.5240830060491182,0.83151391784571,1.356692075891955,3.227340286052029 -2022-06-04,0.7108355579615261,0.011530713721830002,0.52485737802621,0.661668615725415 -2022-06-05,1.842738679408876,1.130871471288951,1.189107233207374,3.246025623322408 -2022-06-06,2.968986726243696,2.9958102236757282,0.47619309340284505,1.3335764819663671 -2022-06-07,0.30957106038382504,0.44026116440941004,0.42982954277120905,1.741430660250139 -2022-06-08,3.077870353397237,4.156128784010092,1.021512025143279,4.351094223144934 -2022-06-09,0.460474051903736,1.2828566287818242,0.22198861960947303,0.085629074470341 -2022-06-10,0.9248894668614721,0.23152297348937,0.18500236928827601,0.5925681882904861 -2022-06-11,0.5170229174882011,1.344093064443273,0.6923204827335401,1.013151233597585 -2022-06-12,1.343310704782682,0.42108731154009404,1.547163500435265,0.999128791000602 -2022-06-13,4.213284444567541,2.448703044357372,0.13900479867391702,1.556248326348268 -2022-06-14,0.718083714760927,1.912454128957958,0.24702549770442003,2.037101388253879 -2022-06-15,2.443370806389791,0.010368540480550002,0.133167401519793,2.42241572339565 -2022-06-16,3.594231845735735,0.6677966564200211,4.009094569074379,5.5253640045926335 -2022-06-17,1.113951398490715,0.11111864432229301,0.9730098334869651,0.9908309309721931 -2022-06-18,0.5614439322266921,0.806546956486733,0.32013564834811403,0.8486918887953661 -2022-06-19,1.243458727745012,1.135192118212662,5.021267051723119,4.233329079605447 -2022-06-20,1.31005897849395,1.045144309632654,4.014478741193049,2.239616259510069 -2022-06-21,0.572744269459053,1.076475248295982,0.7240389412682761,0.10908279405984601 -2022-06-22,24.581669047338767,24.02021682920061,37.05462241129788,23.51884099646193 -2022-06-23,0.47413969565051606,0.027051327125384002,0.16824850993617801,0.41568301223291604 -2022-06-24,0.43416765009011604,2.878601660092219,1.9317197675603461,1.840590020030168 -2022-06-25,0.943163264857342,0.019465090936308,0.285177476177572,0.5532414004550751 -2022-06-26,0.233205152479134,1.2557471231721191,1.260075716991639,2.715172232506665 -2022-06-27,3.9663605369632933,0.5849212901405391,3.452510757244162,2.679757899115613 -2022-06-28,0.016605232459512002,0.280224773927022,0.729523367081325,1.105137522496868 -2022-06-29,1.374134760412724,0.751739223993092,0.7538963415227941,1.347929408272255 -2022-06-30,0.715486103147415,0.555444809676618,0.08646395240381301,0.5491110504617991 -2022-07-01,0.747532331413809,1.043273887199711,0.49779032149353303,0.885618995495125 -2022-07-02,0.8670766655477491,1.8724388596735242,0.391981409036455,1.040394051716164 -2022-07-03,0.392542368674532,1.204834846410795,1.103562611606201,0.387838034146796 -2022-07-04,2.354765436840968,0.147183599628016,1.798064276315111,0.33504623462675404 -2022-07-05,0.25059554847566,0.259954349350673,0.407469349519874,3.278091213717644 -2022-07-06,4.720665637767317,2.071271452074246,4.502139668053687,5.134166854414464 -2022-07-07,0.646476205877439,0.186466306558064,0.499133613586184,0.15787863433545202 -2022-07-08,4.428354777598469,7.997827905255312,5.845195208267132,3.695856221993309 -2022-07-09,1.502467804494858,0.33362085354833704,1.26505092951483,0.9204718402028381 -2022-07-10,11.706734521216822,36.550441521853145,19.095991246701065,12.292686689327372 -2022-07-11,1.153083534578196,0.337559642243531,1.154651513638781,0.22569823789057203 -2022-07-12,1.4863362021332551,0.48307852351030106,1.5365158530965122,0.057003071478754004 -2022-07-13,1.61896686341972,0.9387594299650791,1.092431878065284,1.886305858547745 -2022-07-14,49.60818750100216,22.940238837323303,13.579325095732914,38.67416013838181 -2022-07-15,1.785205883890873,0.631304013521069,0.62869350368483,0.34417591219448 -2022-07-16,0.715594243310775,0.984028805544615,0.967817534607272,0.153576028704162 -2022-07-17,0.8147430610328651,0.26284189122074103,2.154865858339681,1.283391109459497 -2022-07-18,1.24545618431753,1.082826448671828,0.45266260254768803,0.084950117524903 -2022-07-19,0.083915091025848,0.5880718113215341,1.007179376918947,0.865719136965563 -2022-07-20,0.32701962372413,0.17041520446782002,1.773905435681336,1.104677623595627 -2022-07-21,0.722041044814348,0.822598941600809,0.9593067917284711,0.41221237294221 -2022-07-22,10.662811760936936,0.183634003906628,13.34157103707886,12.159275730149757 -2022-07-23,0.364677770561312,0.559247300094862,0.40653075149155804,0.9694788164354201 -2022-07-24,0.9157754804402811,1.091835974661574,0.8199135063617131,1.062993342271482 -2022-07-25,0.67849525511577,3.048531280160542,1.471231045142114,0.591416124923933 -2022-07-26,1.330066578741473,1.582638082613582,1.789945856913414,2.192979954983851 -2022-07-27,5.686664774275858,6.436173309221049,4.7854634352690155,1.63427958962943 -2022-07-28,0.22324041916141402,1.428578028660132,1.458686942176205,1.311736714260567 -2022-07-29,2.476037411183793,0.7249411790805861,0.42039676295059203,2.995565219170837 -2022-07-30,0.773637653847835,0.9265499876312321,0.32494629315872703,0.324341917122049 -2022-07-31,0.169152723468269,0.9014047551998651,0.46982772647431204,0.5534444716525361 -2022-08-01,1.519627178758216,1.610068186750942,3.309159861747862,0.529330910775445 -2022-08-02,3.545652606242915,2.330031081649702,3.9640154638953513,3.856552869039815 -2022-08-03,1.3404062798488199,0.462815961543229,0.9670138622828691,1.234951845374218 -2022-08-04,0.6530263834012761,0.08597037675761801,0.9707805498085981,0.16192153323070702 -2022-08-05,0.708729075421144,3.581243043200601,2.651870015387795,2.173110201699371 -2022-08-06,11.986631123295103,10.930286916614767,22.78182877052594,11.135752238663327 -2022-08-07,1.232939713701664,1.8029857915415932,1.476317514220094,0.958792084262276 -2022-08-08,0.530813431405317,2.014631665755229,2.7977280500624433,2.039075329513739 -2022-08-09,2.510188659097596,2.983415297830412,0.126105493389976,2.121594836643942 -2022-08-10,1.622456744339298,1.289582374551249,2.5475660513369442,3.282862603860423 -2022-08-11,0.25962103068208003,0.37516694909806303,0.5828588359439041,0.139231895746797 -2022-08-12,0.884113805589634,1.603259620438238,1.8751590471743,0.24122279792940302 -2022-08-13,8.624685230360152,3.3791466219930433,9.375119750363103,0.7506624109540441 -2022-08-14,1.6498217904306332,2.627126072551769,0.57102589263998,2.4024472876658223 -2022-08-15,5.840124155766275,3.354483317899366,1.075590808840468,2.3650336028113492 -2022-08-16,2.405030143824614,1.444879535922397,0.942851527789979,1.423465983705226 -2022-08-17,1.034391306438299,0.6369673400603011,0.473080126014195,0.8585472144660361 -2022-08-18,4.703412413763946,0.5990722583580821,0.911179769434693,1.189643421133775 -2022-08-19,0.22138733877979702,0.24079634787311602,0.045592515857608006,0.9837464357223601 -2022-08-20,0.14621922149563202,0.096627004274573,0.7910843611370051,0.059870034265504 -2022-08-21,5.702011116768989,11.782408392531364,4.022381962144387,12.55656527594101 -2022-08-22,2.289251748782675,1.846139752930779,1.302218066447416,1.195140815195466 -2022-08-23,0.40156922050687605,2.44670175499675,2.701336009126233,2.5846045653914143 -2022-08-24,16.368686321533847,9.285256494681935,14.17816605948454,6.813674272547164 -2022-08-25,17.325634435909638,40.63547963350666,52.36627420733006,22.12581500864155 -2022-08-26,2.771994472181008,1.432898057334553,0.500652317272802,0.29065103217099203 -2022-08-27,2.705080627435551,1.140228551443707,2.535947091285437,2.068004826572326 -2022-08-28,0.366184071525715,0.37561791103581305,1.087399555743408,1.3431857507096732 -2022-08-29,0.192969279119436,1.203078886727172,0.8966719923838661,1.07779591413233 -2022-08-30,0.248116517168076,0.901524977902984,0.9660257636136701,0.13247782324235202 -2022-08-31,0.7172605174280461,0.22721632248943202,0.9247009404760361,0.28572976740870504 -2022-09-01,0.259653267575217,2.040817156148029,2.19857288799284,2.229208371156883 -2022-09-02,1.398428414171018,0.071469482611002,0.9048807067534731,0.0022491420541680004 -2022-09-03,1.7166677805176591,1.903668070163285,1.866568462888393,1.8648831840830011`, - input: '请使用四个独立柱图的组合图展示前十天不同类别的权重随着时间的变化。' -}; - -export const dynamicScatterPlotData = { - csv: `年度收益率,净现金流,市值,公司,年份 -50,28,726,公司0,1950 -9,63,301,公司1,1950 -41,8,795,公司2,1950 -93,92,545,公司3,1950 -11,93,798,公司4,1950 -50,11,652,公司5,1950 -35,96,688,公司6,1950 -94,72,795,公司7,1950 -4,4,149,公司8,1950 -4,93,919,公司9,1950 -71,7,976,公司10,1950 -75,7,349,公司11,1950 -93,89,810,公司12,1950 -28,73,602,公司13,1950 -11,73,497,公司14,1950 -87,73,509,公司15,1950 -58,53,256,公司16,1950 -56,69,144,公司17,1950 -49,45,237,公司18,1950 -46,74,387,公司19,1950 -92,42,742,公司20,1950 -45,64,933,公司21,1950 -68,42,284,公司22,1950 -9,46,325,公司23,1950 -70,6,194,公司24,1950 -25,84,552,公司25,1950 -82,87,716,公司26,1950 -5,64,958,公司27,1950 -15,86,593,公司28,1950 -44,11,219,公司29,1950 -46,75,72,公司30,1950 -76,56,530,公司31,1950 -14,8,483,公司32,1950 -82,30,639,公司33,1950 -58,23,876,公司34,1950 -0,28,748,公司35,1950 -55,25,845,公司36,1950 -35,54,185,公司37,1950 -60,1,931,公司38,1950 -64,30,300,公司39,1950 -83,29,510,公司40,1950 -5,77,915,公司41,1950 -23,61,821,公司42,1950 -16,42,22,公司43,1950 -50,73,800,公司44,1950 -93,71,829,公司45,1950 -31,0,293,公司46,1950 -17,75,89,公司47,1950 -8,25,319,公司48,1950 -81,37,851,公司49,1950 -51,31,723,公司0,1951 -10,65,287,公司1,1951 -42,7,813,公司2,1951 -92,90,525,公司3,1951 -12,96,761,公司4,1951 -50,10,681,公司5,1951 -37,96,738,公司6,1951 -97,73,752,公司7,1951 -5,7,189,公司8,1951 -7,93,908,公司9,1951 -72,9,975,公司10,1951 -77,7,309,公司11,1951 -94,89,777,公司12,1951 -31,76,568,公司13,1951 -11,75,523,公司14,1951 -86,73,563,公司15,1951 -58,52,219,公司16,1951 -59,70,176,公司17,1951 -51,48,192,公司18,1951 -49,76,418,公司19,1951 -92,45,747,公司20,1951 -48,67,924,公司21,1951 -71,41,321,公司22,1951 -11,46,304,公司23,1951 -73,8,158,公司24,1951 -25,86,595,公司25,1951 -82,87,673,公司26,1951 -5,67,998,公司27,1951 -18,89,622,公司28,1951 -46,13,247,公司29,1951 -45,74,121,公司30,1951 -79,58,525,公司31,1951 -14,12,439,公司32,1951 -84,30,617,公司33,1951 -61,23,854,公司34,1951 -0,30,765,公司35,1951 -58,25,834,公司36,1951 -37,53,229,公司37,1951 -61,0,955,公司38,1951 -63,30,346,公司39,1951 -84,29,492,公司40,1951 -9,77,916,公司41,1951 -25,64,874,公司42,1951 -18,43,18,公司43,1951 -51,75,755,公司44,1951 -94,71,866,公司45,1951 -32,0,293,公司46,1951 -18,76,111,公司47,1951 -7,25,307,公司48,1951 -83,36,834,公司49,1951 -50,31,710,公司0,1952 -13,65,271,公司1,1952 -41,10,792,公司2,1952 -91,92,552,公司3,1952 -10,94,762,公司4,1952 -50,13,732,公司5,1952 -36,97,782,公司6,1952 -98,72,753,公司7,1952 -5,6,177,公司8,1952 -6,96,924,公司9,1952 -72,10,951,公司10,1952 -80,5,305,公司11,1952 -95,88,827,公司12,1952 -34,77,600,公司13,1952 -11,75,568,公司14,1952 -85,76,562,公司15,1952 -59,55,214,公司16,1952 -61,70,173,公司17,1952 -53,51,156,公司18,1952 -50,79,455,公司19,1952 -95,48,773,公司20,1952 -49,68,927,公司21,1952 -71,43,324,公司22,1952 -10,45,327,公司23,1952 -75,7,166,公司24,1952 -25,86,618,公司25,1952 -81,88,675,公司26,1952 -8,69,1028,公司27,1952 -19,89,636,公司28,1952 -48,15,242,公司29,1952 -44,76,136,公司30,1952 -81,61,531,公司31,1952 -15,14,407,公司32,1952 -87,30,672,公司33,1952 -63,22,881,公司34,1952 -0,30,790,公司35,1952 -59,28,839,公司36,1952 -36,56,257,公司37,1952 -63,0,954,公司38,1952 -66,30,376,公司39,1952 -85,30,496,公司40,1952 -9,77,892,公司41,1952 -26,66,900,公司42,1952 -17,45,21,公司43,1952 -53,77,789,公司44,1952 -96,72,835,公司45,1952 -31,-1,284,公司46,1952 -18,78,103,公司47,1952 -7,25,289,公司48,1952 -86,38,873,公司49,1952 -50,30,672,公司0,1953 -16,64,277,公司1,1953 -44,11,835,公司2,1953 -92,91,561,公司3,1953 -12,94,724,公司4,1953 -50,14,739,公司5,1953 -38,100,767,公司6,1953 -100,72,802,公司7,1953 -5,5,143,公司8,1953 -8,98,894,公司9,1953 -72,10,937,公司10,1953 -79,4,305,公司11,1953 -98,89,873,公司12,1953 -35,79,628,公司13,1953 -12,76,611,公司14,1953 -84,78,545,公司15,1953 -58,57,199,公司16,1953 -63,73,185,公司17,1953 -52,52,117,公司18,1953 -49,78,434,公司19,1953 -94,51,765,公司20,1953 -50,67,899,公司21,1953 -71,45,343,公司22,1953 -13,48,318,公司23,1953 -75,7,185,公司24,1953 -27,89,574,公司25,1953 -84,90,688,公司26,1953 -7,69,991,公司27,1953 -20,90,606,公司28,1953 -51,15,251,公司29,1953 -47,75,154,公司30,1953 -83,63,555,公司31,1953 -14,18,455,公司32,1953 -89,33,709,公司33,1953 -64,22,874,公司34,1953 --1,33,753,公司35,1953 -61,27,837,公司36,1953 -35,59,280,公司37,1953 -63,3,975,公司38,1953 -67,31,341,公司39,1953 -87,31,471,公司40,1953 -9,76,936,公司41,1953 -28,65,940,公司42,1953 -18,46,59,公司43,1953 -55,76,757,公司44,1953 -96,72,827,公司45,1953 -34,-2,287,公司46,1953 -22,78,107,公司47,1953 -9,25,258,公司48,1953 -87,39,877,公司49,1953 -50,29,645,公司0,1954 -16,64,312,公司1,1954 -47,11,790,公司2,1954 -94,90,553,公司3,1954 -13,93,692,公司4,1954 -48,13,714,公司5,1954 -38,99,725,公司6,1954 -103,72,842,公司7,1954 -6,4,136,公司8,1954 -10,100,894,公司9,1954 -75,9,925,公司10,1954 -79,6,346,公司11,1954 -100,89,878,公司12,1954 -36,80,590,公司13,1954 -14,78,643,公司14,1954 -83,77,575,公司15,1954 -61,59,224,公司16,1954 -62,76,234,公司17,1954 -52,52,161,公司18,1954 -49,79,441,公司19,1954 -96,51,800,公司20,1954 -52,67,931,公司21,1954 -74,48,337,公司22,1954 -14,51,349,公司23,1954 -78,9,238,公司24,1954 -30,91,554,公司25,1954 -83,92,658,公司26,1954 -8,72,967,公司27,1954 -22,89,607,公司28,1954 -52,14,217,公司29,1954 -50,78,156,公司30,1954 -85,63,604,公司31,1954 -16,21,473,公司32,1954 -92,34,753,公司33,1954 -66,22,881,公司34,1954 -1,33,725,公司35,1954 -61,30,797,公司36,1954 -35,63,333,公司37,1954 -63,3,1016,公司38,1954 -69,30,337,公司39,1954 -91,34,445,公司40,1954 -9,78,960,公司41,1954 -27,66,949,公司42,1954 -18,46,113,公司43,1954 -56,79,731,公司44,1954 -98,72,855,公司45,1954 -33,-3,259,公司46,1954 -21,79,109,公司47,1954 -12,26,285,公司48,1954 -91,40,845,公司49,1954 -52,28,667,公司0,1955 -18,65,324,公司1,1955 -50,10,781,公司2,1955 -95,90,581,公司3,1955 -15,95,669,公司4,1955 -46,13,733,公司5,1955 -39,98,759,公司6,1955 -102,74,801,公司7,1955 -8,3,108,公司8,1955 -12,101,882,公司9,1955 -78,7,966,公司10,1955 -80,9,395,公司11,1955 -103,89,847,公司12,1955 -38,81,628,公司13,1955 -14,79,610,公司14,1955 -86,79,625,公司15,1955 -61,60,209,公司16,1955 -62,78,281,公司17,1955 -54,54,186,公司18,1955 -51,82,478,公司19,1955 -95,52,842,公司20,1955 -54,69,886,公司21,1955 -74,51,361,公司22,1955 -17,54,362,公司23,1955 -81,8,212,公司24,1955 -31,94,546,公司25,1955 -82,95,707,公司26,1955 -9,72,929,公司27,1955 -24,90,610,公司28,1955 -54,13,244,公司29,1955 -51,80,208,公司30,1955 -86,67,646,公司31,1955 -20,22,428,公司32,1955 -95,37,758,公司33,1955 -65,25,887,公司34,1955 -4,35,717,公司35,1955 -63,30,819,公司36,1955 -35,65,322,公司37,1955 -65,5,1015,公司38,1955 -71,30,336,公司39,1955 -93,34,472,公司40,1955 -9,81,1001,公司41,1955 -28,67,922,公司42,1955 -18,47,125,公司43,1955 -59,79,778,公司44,1955 -101,75,879,公司45,1955 -32,-1,311,公司46,1955 -23,81,151,公司47,1955 -12,29,285,公司48,1955 -92,42,858,公司49,1955 -50,30,696,公司0,1956 -20,68,327,公司1,1956 -51,8,793,公司2,1956 -98,90,554,公司3,1956 -16,95,689,公司4,1956 -47,15,745,公司5,1956 -39,100,797,公司6,1956 -100,77,765,公司7,1956 -6,4,152,公司8,1956 -14,102,860,公司9,1956 -81,10,1000,公司10,1956 -83,7,412,公司11,1956 -102,91,822,公司12,1956 -37,84,599,公司13,1956 -13,81,584,公司14,1956 -86,81,663,公司15,1956 -63,60,169,公司16,1956 -61,78,309,公司17,1956 -56,56,215,公司18,1956 -52,81,533,公司19,1956 -98,55,882,公司20,1956 -53,69,897,公司21,1956 -73,53,321,公司22,1956 -18,55,399,公司23,1956 -84,7,208,公司24,1956 -30,97,555,公司25,1956 -82,94,687,公司26,1956 -8,74,980,公司27,1956 -24,89,603,公司28,1956 -57,14,255,公司29,1956 -53,81,197,公司30,1956 -88,69,697,公司31,1956 -19,21,454,公司32,1956 -95,38,805,公司33,1956 -67,25,939,公司34,1956 -6,37,714,公司35,1956 -62,32,839,公司36,1956 -34,67,334,公司37,1956 -68,4,983,公司38,1956 -73,29,336,公司39,1956 -94,37,502,公司40,1956 -9,83,969,公司41,1956 -31,69,974,公司42,1956 -19,50,127,公司43,1956 -62,78,743,公司44,1956 -105,75,875,公司45,1956 -36,2,267,公司46,1956 -27,81,116,公司47,1956 -15,29,267,公司48,1956 -92,45,860,公司49,1956 -51,29,675,公司0,1957 -20,66,318,公司1,1957 -50,10,808,公司2,1957 -99,91,593,公司3,1957 -16,97,653,公司4,1957 -46,14,785,公司5,1957 -40,101,838,公司6,1957 -99,77,764,公司7,1957 -5,6,117,公司8,1957 -13,104,852,公司9,1957 -81,12,983,公司10,1957 -82,5,430,公司11,1957 -104,93,835,公司12,1957 -37,82,571,公司13,1957 -14,79,542,公司14,1957 -85,81,692,公司15,1957 -65,61,135,公司16,1957 -60,79,274,公司17,1957 -58,58,219,公司18,1957 -54,83,537,公司19,1957 -97,54,863,公司20,1957 -54,70,885,公司21,1957 -72,55,362,公司22,1957 -18,58,403,公司23,1957 -86,7,166,公司24,1957 -33,96,525,公司25,1957 -84,96,687,公司26,1957 -9,77,963,公司27,1957 -25,91,579,公司28,1957 -57,13,230,公司29,1957 -56,84,185,公司30,1957 -91,71,731,公司31,1957 -20,22,487,公司32,1957 -94,41,834,公司33,1957 -66,27,903,公司34,1957 -8,37,755,公司35,1957 -65,34,861,公司36,1957 -36,66,298,公司37,1957 -71,5,1004,公司38,1957 -75,31,345,公司39,1957 -96,39,512,公司40,1957 -12,87,948,公司41,1957 -34,69,987,公司42,1957 -18,53,150,公司43,1957 -63,77,715,公司44,1957 -109,78,857,公司45,1957 -39,5,237,公司46,1957 -29,84,161,公司47,1957 -19,31,260,公司48,1957 -93,47,857,公司49,1957 -54,30,690,公司0,1958 -23,67,301,公司1,1958 -50,10,816,公司2,1958 -101,91,642,公司3,1958 -18,97,641,公司4,1958 -47,12,750,公司5,1958 -42,102,842,公司6,1958 -98,77,800,公司7,1958 -7,7,117,公司8,1958 -15,105,890,公司9,1958 -84,12,950,公司10,1958 -84,7,457,公司11,1958 -102,92,829,公司12,1958 -39,81,549,公司13,1958 -16,79,578,公司14,1958 -84,83,690,公司15,1958 -63,60,96,公司16,1958 -62,80,237,公司17,1958 -56,59,244,公司18,1958 -54,83,533,公司19,1958 -100,56,859,公司20,1958 -55,72,846,公司21,1958 -72,57,346,公司22,1958 -20,57,430,公司23,1958 -87,9,212,公司24,1958 -33,95,533,公司25,1958 -87,95,658,公司26,1958 -11,80,947,公司27,1958 -27,93,621,公司28,1958 -56,12,195,公司29,1958 -56,84,198,公司30,1958 -92,72,719,公司31,1958 -20,23,466,公司32,1958 -93,43,790,公司33,1958 -68,28,941,公司34,1958 -8,38,718,公司35,1958 -67,37,862,公司36,1958 -38,67,255,公司37,1958 -74,5,967,公司38,1958 -78,32,396,公司39,1958 -96,38,486,公司40,1958 -12,89,981,公司41,1958 -34,70,943,公司42,1958 -20,56,109,公司43,1958 -67,79,745,公司44,1958 -112,82,816,公司45,1958 -43,4,244,公司46,1958 -31,85,136,公司47,1958 -22,32,222,公司48,1958 -96,50,854,公司49,1958 -57,31,709,公司0,1959 -23,69,306,公司1,1959 -51,10,853,公司2,1959 -101,90,683,公司3,1959 -21,97,603,公司4,1959 -49,14,754,公司5,1959 -45,101,860,公司6,1959 -98,78,797,公司7,1959 -10,6,144,公司8,1959 -18,104,918,公司9,1959 -87,15,955,公司10,1959 -84,9,509,公司11,1959 -105,95,803,公司12,1959 -42,82,601,公司13,1959 -19,80,553,公司14,1959 -83,82,649,公司15,1959 -66,63,144,公司16,1959 -64,82,206,公司17,1959 -56,60,200,公司18,1959 -54,86,546,公司19,1959 -101,55,881,公司20,1959 -56,71,839,公司21,1959 -71,57,382,公司22,1959 -22,56,439,公司23,1959 -88,11,242,公司24,1959 -36,95,527,公司25,1959 -86,96,641,公司26,1959 -14,83,979,公司27,1959 -30,92,663,公司28,1959 -56,12,161,公司29,1959 -57,87,234,公司30,1959 -95,75,730,公司31,1959 -22,23,435,公司32,1959 -93,42,754,公司33,1959 -69,29,945,公司34,1959 -7,37,753,公司35,1959 -71,36,853,公司36,1959 -39,66,245,公司37,1959 -75,4,959,公司38,1959 -82,36,425,公司39,1959 -96,41,469,公司40,1959 -12,91,1023,公司41,1959 -35,69,945,公司42,1959 -23,57,140,公司43,1959 -68,78,743,公司44,1959 -115,83,808,公司45,1959 -42,3,203,公司46,1959 -30,84,185,公司47,1959 -25,31,182,公司48,1959 -97,53,852,公司49,1959 -55,30,681,公司0,1960 -22,68,277,公司1,1960 -53,12,823,公司2,1960 -103,90,704,公司3,1960 -19,96,567,公司4,1960 -52,16,775,公司5,1960 -44,101,902,公司6,1960 -100,81,818,公司7,1960 -10,8,159,公司8,1960 -21,105,908,公司9,1960 -90,18,937,公司10,1960 -84,11,498,公司11,1960 -105,94,845,公司12,1960 -45,82,579,公司13,1960 -21,83,592,公司14,1960 -83,81,642,公司15,1960 -68,64,158,公司16,1960 -67,85,248,公司17,1960 -57,59,251,公司18,1960 -53,89,571,公司19,1960 -102,58,885,公司20,1960 -56,70,878,公司21,1960 -73,60,401,公司22,1960 -22,56,423,公司23,1960 -90,10,278,公司24,1960 -39,96,570,公司25,1960 -89,96,598,公司26,1960 -14,86,1003,公司27,1960 -31,95,683,公司28,1960 -59,12,126,公司29,1960 -57,86,192,公司30,1960 -96,77,783,公司31,1960 -22,26,455,公司32,1960 -93,43,787,公司33,1960 -71,31,998,公司34,1960 -8,39,751,公司35,1960 -74,40,867,公司36,1960 -40,66,200,公司37,1960 -75,6,960,公司38,1960 -81,39,391,公司39,1960 -96,41,455,公司40,1960 -12,94,1056,公司41,1960 -38,69,961,公司42,1960 -22,61,119,公司43,1960 -68,81,753,公司44,1960 -115,82,766,公司45,1960 -41,5,205,公司46,1960 -32,83,220,公司47,1960 -28,33,187,公司48,1960 -99,57,893,公司49,1960 -58,33,713,公司0,1961 -23,71,248,公司1,1961 -54,12,787,公司2,1961 -103,92,720,公司3,1961 -19,98,621,公司4,1961 -54,15,826,公司5,1961 -47,103,915,公司6,1961 -102,80,787,公司7,1961 -11,7,173,公司8,1961 -21,107,876,公司9,1961 -90,21,901,公司10,1961 -85,10,492,公司11,1961 -108,95,887,公司12,1961 -47,84,634,公司13,1961 -23,86,633,公司14,1961 -86,80,607,公司15,1961 -70,63,133,公司16,1961 -69,88,266,公司17,1961 -56,62,244,公司18,1961 -54,92,623,公司19,1961 -103,61,878,公司20,1961 -58,71,890,公司21,1961 -74,62,372,公司22,1961 -25,58,396,公司23,1961 -93,13,284,公司24,1961 -40,98,605,公司25,1961 -92,98,647,公司26,1961 -13,88,1003,公司27,1961 -32,95,718,公司28,1961 -59,16,152,公司29,1961 -59,86,215,公司30,1961 -97,80,820,公司31,1961 -21,29,474,公司32,1961 -94,42,755,公司33,1961 -71,33,958,公司34,1961 -8,38,734,公司35,1961 -77,43,878,公司36,1961 -44,67,235,公司37,1961 -75,7,977,公司38,1961 -83,38,393,公司39,1961 -95,41,484,公司40,1961 -13,95,1061,公司41,1961 -41,71,941,公司42,1961 -23,60,119,公司43,1961 -71,84,784,公司44,1961 -117,85,792,公司45,1961 -45,9,235,公司46,1961 -34,84,194,公司47,1961 -30,36,163,公司48,1961 -101,59,921,公司49,1961 -60,32,744,公司0,1962 -21,72,219,公司1,1962 -56,12,801,公司2,1962 -102,90,775,公司3,1962 -22,97,585,公司4,1962 -55,18,838,公司5,1962 -47,106,959,公司6,1962 -104,82,775,公司7,1962 -11,8,148,公司8,1962 -23,107,929,公司9,1962 -89,19,950,公司10,1962 -88,12,496,公司11,1962 -110,96,915,公司12,1962 -47,84,607,公司13,1962 -22,86,639,公司14,1962 -88,79,655,公司15,1962 -73,63,119,公司16,1962 -70,89,246,公司17,1962 -55,64,227,公司18,1962 -57,94,649,公司19,1962 -102,62,921,公司20,1962 -60,72,853,公司21,1962 -74,61,371,公司22,1962 -26,59,412,公司23,1962 -95,16,273,公司24,1962 -41,99,582,公司25,1962 -91,99,668,公司26,1962 -15,89,1047,公司27,1962 -34,94,732,公司28,1962 -59,15,177,公司29,1962 -58,86,203,公司30,1962 -99,82,870,公司31,1962 -21,31,525,公司32,1962 -93,41,725,公司33,1962 -75,34,1005,公司34,1962 -10,37,785,公司35,1962 -77,44,909,公司36,1962 -45,66,195,公司37,1962 -76,10,953,公司38,1962 -86,39,368,公司39,1962 -97,42,441,公司40,1962 -15,95,1089,公司41,1962 -41,71,922,公司42,1962 -24,61,90,公司43,1962 -74,84,758,公司44,1962 -116,85,806,公司45,1962 -46,11,260,公司46,1962 -33,85,174,公司47,1962 -29,39,206,公司48,1962 -101,59,923,公司49,1962 -59,33,766,公司0,1963 -22,75,268,公司1,1963 -56,10,768,公司2,1963 -101,90,740,公司3,1963 -25,96,637,公司4,1963 -54,19,860,公司5,1963 -50,106,978,公司6,1963 -104,81,807,公司7,1963 -10,9,188,公司8,1963 -24,108,941,公司9,1963 -90,20,958,公司10,1963 -88,11,483,公司11,1963 -113,98,872,公司12,1963 -47,87,591,公司13,1963 -21,88,691,公司14,1963 -90,78,681,公司15,1963 -72,63,78,公司16,1963 -69,91,282,公司17,1963 -54,66,197,公司18,1963 -60,97,660,公司19,1963 -101,63,889,公司20,1963 -61,71,867,公司21,1963 -75,62,351,公司22,1963 -25,62,445,公司23,1963 -97,17,250,公司24,1963 -44,99,634,公司25,1963 -91,100,719,公司26,1963 -16,91,1014,公司27,1963 -37,93,756,公司28,1963 -61,17,158,公司29,1963 -59,87,210,公司30,1963 -102,82,833,公司31,1963 -20,30,510,公司32,1963 -96,43,774,公司33,1963 -75,37,1033,公司34,1963 -9,37,793,公司35,1963 -78,44,865,公司36,1963 -44,65,238,公司37,1963 -78,10,985,公司38,1963 -88,39,415,公司39,1963 -97,42,479,公司40,1963 -14,98,1142,公司41,1963 -41,73,967,公司42,1963 -23,60,140,公司43,1963 -75,85,717,公司44,1963 -119,88,834,公司45,1963 -46,10,239,公司46,1963 -34,89,178,公司47,1963 -31,38,186,公司48,1963 -104,61,974,公司49,1963 -59,34,765,公司0,1964 -22,73,238,公司1,1964 -55,11,754,公司2,1964 -103,90,716,公司3,1964 -28,98,684,公司4,1964 -54,20,828,公司5,1964 -53,105,941,公司6,1964 -103,83,797,公司7,1964 -12,9,204,公司8,1964 -22,109,938,公司9,1964 -89,20,949,公司10,1964 -86,13,520,公司11,1964 -112,99,873,公司12,1964 -48,88,605,公司13,1964 -24,89,674,公司14,1964 -90,81,649,公司15,1964 -73,63,106,公司16,1964 -71,93,242,公司17,1964 -54,68,181,公司18,1964 -61,98,667,公司19,1964 -99,65,857,公司20,1964 -64,70,878,公司21,1964 -75,61,329,公司22,1964 -24,65,405,公司23,1964 -99,17,256,公司24,1964 -45,101,680,公司25,1964 -94,101,708,公司26,1964 -16,90,1026,公司27,1964 -40,92,759,公司28,1964 -61,17,146,公司29,1964 -63,88,238,公司30,1964 -103,81,837,公司31,1964 -22,31,474,公司32,1964 -99,46,828,公司33,1964 -76,38,1057,公司34,1964 -10,38,794,公司35,1964 -77,43,847,公司36,1964 -46,67,263,公司37,1964 -80,10,958,公司38,1964 -90,38,380,公司39,1964 -101,45,531,公司40,1964 -18,99,1154,公司41,1964 -45,73,946,公司42,1964 -26,61,144,公司43,1964 -76,85,721,公司44,1964 -119,87,814,公司45,1964 -45,10,256,公司46,1964 -36,88,223,公司47,1964 -31,42,214,公司48,1964 -106,61,987,公司49,1964 -60,34,805,公司0,1965 -21,72,264,公司1,1965 -57,9,771,公司2,1965 -103,93,755,公司3,1965 -26,99,647,公司4,1965 -57,23,857,公司5,1965 -56,107,930,公司6,1965 -106,83,767,公司7,1965 -13,12,195,公司8,1965 -23,111,937,公司9,1965 -91,20,963,公司10,1965 -87,12,561,公司11,1965 -115,102,839,公司12,1965 -51,88,563,公司13,1965 -26,91,675,公司14,1965 -89,83,657,公司15,1965 -76,66,62,公司16,1965 -74,93,274,公司17,1965 -53,70,145,公司18,1965 -60,97,653,公司19,1965 -101,67,838,公司20,1965 -66,70,888,公司21,1965 -78,61,364,公司22,1965 -27,66,439,公司23,1965 -99,16,212,公司24,1965 -45,101,718,公司25,1965 -93,103,749,公司26,1965 -18,89,1070,公司27,1965 -40,91,748,公司28,1965 -62,18,132,公司29,1965 -65,88,261,公司30,1965 -105,83,840,公司31,1965 -22,35,501,公司32,1965 -101,49,828,公司33,1965 -76,39,1050,公司34,1965 -9,37,844,公司35,1965 -77,45,871,公司36,1965 -45,67,267,公司37,1965 -79,11,955,公司38,1965 -93,39,379,公司39,1965 -101,47,508,公司40,1965 -21,100,1160,公司41,1965 -46,76,949,公司42,1965 -29,64,115,公司43,1965 -80,87,767,公司44,1965 -121,86,841,公司45,1965 -44,13,302,公司46,1965 -39,89,264,公司47,1965 -32,43,179,公司48,1965 -106,61,1019,公司49,1965 -59,32,805,公司0,1966 -23,74,274,公司1,1966 -60,8,742,公司2,1966 -102,94,749,公司3,1966 -24,100,640,公司4,1966 -55,22,846,公司5,1966 -56,108,937,公司6,1966 -109,86,769,公司7,1966 -14,12,185,公司8,1966 -26,110,961,公司9,1966 -94,22,985,公司10,1966 -86,12,540,公司11,1966 -117,102,887,公司12,1966 -50,91,613,公司13,1966 -25,93,693,公司14,1966 -89,84,678,公司15,1966 -77,66,62,公司16,1966 -77,95,254,公司17,1966 -54,71,172,公司18,1966 -61,96,677,公司19,1966 -102,67,846,公司20,1966 -69,73,940,公司21,1966 -78,64,403,公司22,1966 -30,69,455,公司23,1966 -98,15,221,公司24,1966 -48,104,704,公司25,1966 -92,102,784,公司26,1966 -21,92,1041,公司27,1966 -43,92,704,公司28,1966 -61,19,100,公司29,1966 -67,91,244,公司30,1966 -106,85,857,公司31,1966 -22,35,545,公司32,1966 -100,52,803,公司33,1966 -79,39,1090,公司34,1966 -9,39,847,公司35,1966 -77,46,865,公司36,1966 -45,69,283,公司37,1966 -80,14,921,公司38,1966 -93,39,341,公司39,1966 -102,49,549,公司40,1966 -22,100,1156,公司41,1966 -48,75,935,公司42,1966 -31,67,136,公司43,1966 -80,88,817,公司44,1966 -122,85,807,公司45,1966 -45,14,259,公司46,1966 -41,90,306,公司47,1966 -32,46,173,公司48,1966 -107,62,1068,公司49,1966 -58,32,775,公司0,1967 -21,76,280,公司1,1967 -59,10,700,公司2,1967 -101,95,788,公司3,1967 -23,100,600,公司4,1967 -55,24,809,公司5,1967 -59,108,912,公司6,1967 -112,86,790,公司7,1967 -17,11,162,公司8,1967 -27,113,940,公司9,1967 -93,21,987,公司10,1967 -88,12,554,公司11,1967 -120,105,894,公司12,1967 -51,91,662,公司13,1967 -26,94,678,公司14,1967 -88,85,694,公司15,1967 -79,65,80,公司16,1967 -80,95,290,公司17,1967 -55,72,181,公司18,1967 -64,95,678,公司19,1967 -101,69,869,公司20,1967 -68,72,993,公司21,1967 -81,67,433,公司22,1967 -31,72,488,公司23,1967 -99,17,211,公司24,1967 -47,104,740,公司25,1967 -93,101,836,公司26,1967 -23,95,1011,公司27,1967 -43,95,688,公司28,1967 -61,19,129,公司29,1967 -68,92,223,公司30,1967 -106,88,837,公司31,1967 -24,36,543,公司32,1967 -100,52,844,公司33,1967 -79,40,1092,公司34,1967 -8,40,862,公司35,1967 -76,47,842,公司36,1967 -48,72,303,公司37,1967 -82,14,965,公司38,1967 -92,40,346,公司39,1967 -101,48,540,公司40,1967 -23,101,1186,公司41,1967 -51,76,921,公司42,1967 -31,67,132,公司43,1967 -79,89,779,公司44,1967 -125,89,808,公司45,1967 -45,14,216,公司46,1967 -40,90,278,公司47,1967 -32,46,203,公司48,1967 -111,64,1115,公司49,1967 -56,31,732,公司0,1968 -20,76,299,公司1,1968 -60,12,722,公司2,1968 -101,95,802,公司3,1968 -25,103,626,公司4,1968 -53,26,786,公司5,1968 -59,108,874,公司6,1968 -112,89,755,公司7,1968 -19,14,202,公司8,1968 -25,114,938,公司9,1968 -95,21,947,公司10,1968 -91,11,558,公司11,1968 -122,108,854,公司12,1968 -52,92,656,公司13,1968 -29,96,711,公司14,1968 -87,86,746,公司15,1968 -81,68,90,公司16,1968 -82,94,319,公司17,1968 -56,72,174,公司18,1968 -64,95,710,公司19,1968 -101,69,836,公司20,1968 -70,75,965,公司21,1968 -80,69,402,公司22,1968 -30,74,485,公司23,1968 -100,17,231,公司24,1968 -50,107,795,公司25,1968 -96,100,861,公司26,1968 -22,96,1058,公司27,1968 -44,94,649,公司28,1968 -60,22,167,公司29,1968 -67,93,260,公司30,1968 -105,90,874,公司31,1968 -28,35,577,公司32,1968 -101,54,880,公司33,1968 -81,43,1145,公司34,1968 -7,42,858,公司35,1968 -77,49,893,公司36,1968 -50,73,346,公司37,1968 -85,14,944,公司38,1968 -92,42,350,公司39,1968 -103,51,526,公司40,1968 -26,104,1162,公司41,1968 -51,75,971,公司42,1968 -31,70,119,公司43,1968 -80,92,741,公司44,1968 -127,92,780,公司45,1968 -48,15,246,公司46,1968 -42,90,321,公司47,1968 -34,46,238,公司48,1968 -115,64,1147,公司49,1968 -58,31,770,公司0,1969 -19,77,284,公司1,1969 -61,10,712,公司2,1969 -100,97,799,公司3,1969 -24,101,651,公司4,1969 -52,26,840,公司5,1969 -60,106,866,公司6,1969 -114,90,771,公司7,1969 -19,13,229,公司8,1969 -25,117,922,公司9,1969 -94,20,985,公司10,1969 -92,14,546,公司11,1969 -124,110,843,公司12,1969 -55,95,615,公司13,1969 -29,99,727,公司14,1969 -86,87,710,公司15,1969 -83,68,139,公司16,1969 -81,94,337,公司17,1969 -59,74,206,公司18,1969 -63,95,685,公司19,1969 -104,69,878,公司20,1969 -73,75,956,公司21,1969 -83,72,409,公司22,1969 -29,73,447,公司23,1969 -101,17,284,公司24,1969 -50,108,821,公司25,1969 -96,101,892,公司26,1969 -24,97,1096,公司27,1969 -44,97,684,公司28,1969 -63,23,184,公司29,1969 -69,95,295,公司30,1969 -105,90,882,公司31,1969 -30,39,568,公司32,1969 -101,55,866,公司33,1969 -83,43,1179,公司34,1969 -8,46,813,公司35,1969 -80,52,872,公司36,1969 -53,72,313,公司37,1969 -86,17,969,公司38,1969 -91,42,317,公司39,1969 -103,53,526,公司40,1969 -26,104,1200,公司41,1969 -53,75,1001,公司42,1969 -32,72,122,公司43,1969 -82,91,741,公司44,1969 -131,92,816,公司45,1969 -48,16,250,公司46,1969 -43,93,357,公司47,1969 -37,45,206,公司48,1969 -114,65,1177,公司49,1969 -57,30,761,公司0,1970 -20,79,314,公司1,1970 -61,10,726,公司2,1970 -99,98,776,公司3,1970 -25,103,699,公司4,1970 -53,25,815,公司5,1970 -60,106,848,公司6,1970 -113,92,806,公司7,1970 -22,12,241,公司8,1970 -24,117,974,公司9,1970 -92,20,1010,公司10,1970 -95,13,599,公司11,1970 -124,110,840,公司12,1970 -58,98,617,公司13,1970 -31,98,781,公司14,1970 -88,85,763,公司15,1970 -81,68,179,公司16,1970 -82,96,316,公司17,1970 -60,73,206,公司18,1970 -64,95,685,公司19,1970 -103,72,889,公司20,1970 -72,77,966,公司21,1970 -84,72,401,公司22,1970 -31,73,495,公司23,1970 -101,18,329,公司24,1970 -51,108,802,公司25,1970 -98,102,892,公司26,1970 -27,97,1063,公司27,1970 -44,99,694,公司28,1970 -66,23,205,公司29,1970 -68,96,347,公司30,1970 -105,90,865,公司31,1970 -30,38,591,公司32,1970 -101,57,897,公司33,1970 -83,42,1218,公司34,1970 -8,45,827,公司35,1970 -81,54,859,公司36,1970 -55,73,347,公司37,1970 -85,17,953,公司38,1970 -93,44,324,公司39,1970 -106,52,542,公司40,1970 -27,106,1201,公司41,1970 -56,75,1011,公司42,1970 -35,72,159,公司43,1970 -86,90,769,公司44,1970 -132,94,861,公司45,1970 -49,17,257,公司46,1970 -45,94,386,公司47,1970 -39,49,180,公司48,1970 -116,65,1160,公司49,1970 -59,30,717,公司0,1971 -22,82,326,公司1,1971 -63,11,733,公司2,1971 -98,100,768,公司3,1971 -26,101,718,公司4,1971 -56,26,776,公司5,1971 -60,106,823,公司6,1971 -113,93,778,公司7,1971 -21,11,209,公司8,1971 -26,119,1000,公司9,1971 -91,21,967,公司10,1971 -94,11,638,公司11,1971 -126,110,842,公司12,1971 -60,99,633,公司13,1971 -31,97,750,公司14,1971 -87,86,793,公司15,1971 -80,71,146,公司16,1971 -83,95,323,公司17,1971 -59,73,215,公司18,1971 -63,96,671,公司19,1971 -105,75,905,公司20,1971 -72,79,964,公司21,1971 -85,73,385,公司22,1971 -30,75,537,公司23,1971 -100,17,317,公司24,1971 -50,108,818,公司25,1971 -97,104,872,公司26,1971 -28,97,1107,公司27,1971 -45,98,741,公司28,1971 -69,22,162,公司29,1971 -68,98,363,公司30,1971 -107,92,878,公司31,1971 -33,38,640,公司32,1971 -100,60,896,公司33,1971 -82,45,1189,公司34,1971 -8,47,863,公司35,1971 -84,56,880,公司36,1971 -56,75,395,公司37,1971 -86,19,1004,公司38,1971 -94,46,307,公司39,1971 -106,53,595,公司40,1971 -30,106,1206,公司41,1971 -58,76,981,公司42,1971 -39,74,184,公司43,1971 -85,93,728,公司44,1971 -134,96,895,公司45,1971 -51,20,226,公司46,1971 -48,97,406,公司47,1971 -40,51,174,公司48,1971 -118,64,1153,公司49,1971 -58,33,714,公司0,1972 -23,81,340,公司1,1972 -61,12,786,公司2,1972 -100,101,816,公司3,1972 -26,103,697,公司4,1972 -56,25,775,公司5,1972 -61,106,801,公司6,1972 -115,95,806,公司7,1972 -24,14,250,公司8,1972 -27,118,1019,公司9,1972 -92,21,959,公司10,1972 -95,11,647,公司11,1972 -126,112,803,公司12,1972 -60,101,648,公司13,1972 -33,100,750,公司14,1972 -88,85,838,公司15,1972 -81,72,158,公司16,1972 -86,97,299,公司17,1972 -61,72,216,公司18,1972 -65,96,698,公司19,1972 -104,77,955,公司20,1972 -74,81,965,公司21,1972 -88,76,434,公司22,1972 -31,77,578,公司23,1972 -103,16,334,公司24,1972 -49,109,793,公司25,1972 -100,106,874,公司26,1972 -27,97,1064,公司27,1972 -45,100,793,公司28,1972 -71,25,186,公司29,1972 -67,101,351,公司30,1972 -110,92,924,公司31,1972 -35,41,640,公司32,1972 -101,59,878,公司33,1972 -82,46,1160,公司34,1972 -10,47,822,公司35,1972 -87,57,843,公司36,1972 -56,74,430,公司37,1972 -85,22,990,公司38,1972 -95,45,344,公司39,1972 -107,54,581,公司40,1972 -31,106,1260,公司41,1972 -60,75,974,公司42,1972 -43,77,185,公司43,1972 -86,93,768,公司44,1972 -134,98,910,公司45,1972 -51,22,234,公司46,1972 -51,99,432,公司47,1972 -39,51,193,公司48,1972 -118,63,1158,公司49,1972 -56,35,728,公司0,1973 -25,83,387,公司1,1973 -64,10,818,公司2,1973 -100,102,834,公司3,1973 -28,103,658,公司4,1973 -55,27,755,公司5,1973 -64,109,824,公司6,1973 -113,98,793,公司7,1973 -26,15,268,公司8,1973 -28,117,1034,公司9,1973 -91,24,980,公司10,1973 -95,12,661,公司11,1973 -128,113,761,公司12,1973 -61,104,615,公司13,1973 -34,100,721,公司14,1973 -90,84,823,公司15,1973 -83,71,139,公司16,1973 -88,99,294,公司17,1973 -61,72,196,公司18,1973 -66,94,682,公司19,1973 -104,78,961,公司20,1973 -76,83,928,公司21,1973 -88,77,426,公司22,1973 -32,76,621,公司23,1973 -106,17,319,公司24,1973 -48,108,825,公司25,1973 -101,107,860,公司26,1973 -30,96,1084,公司27,1973 -47,102,764,公司28,1973 -70,27,147,公司29,1973 -69,100,392,公司30,1973 -110,94,893,公司31,1973 -38,42,665,公司32,1973 -100,60,877,公司33,1973 -82,45,1160,公司34,1973 -9,48,831,公司35,1973 -88,58,833,公司36,1973 -57,75,399,公司37,1973 -87,24,1019,公司38,1973 -98,47,366,公司39,1973 -106,57,597,公司40,1973 -34,109,1253,公司41,1973 -60,76,938,公司42,1973 -44,79,149,公司43,1973 -87,96,753,公司44,1973 -134,98,929,公司45,1973 -50,23,257,公司46,1973 -52,102,452,公司47,1973 -38,54,191,公司48,1973 -119,64,1135,公司49,1973 -58,38,727,公司0,1974 -26,83,405,公司1,1974 -62,11,774,公司2,1974 -101,105,874,公司3,1974 -30,102,700,公司4,1974 -56,30,723,公司5,1974 -64,110,843,公司6,1974 -112,97,756,公司7,1974 -24,18,282,公司8,1974 -26,119,1031,公司9,1974 -91,23,940,公司10,1974 -97,13,659,公司11,1974 -127,116,766,公司12,1974 -62,105,623,公司13,1974 -36,102,735,公司14,1974 -92,86,787,公司15,1974 -82,74,108,公司16,1974 -91,100,311,公司17,1974 -64,72,244,公司18,1974 -64,96,700,公司19,1974 -103,80,929,公司20,1974 -78,86,883,公司21,1974 -87,78,434,公司22,1974 -33,78,584,公司23,1974 -106,17,282,公司24,1974 -48,110,877,公司25,1974 -102,109,852,公司26,1974 -29,95,1115,公司27,1974 -47,101,745,公司28,1974 -73,30,159,公司29,1974 -71,99,440,公司30,1974 -111,93,877,公司31,1974 -39,45,709,公司32,1974 -102,60,872,公司33,1974 -84,45,1175,公司34,1974 -12,49,831,公司35,1974 -89,61,793,公司36,1974 -60,78,386,公司37,1974 -87,27,1016,公司38,1974 -101,49,352,公司39,1974 -109,58,620,公司40,1974 -34,112,1233,公司41,1974 -60,75,959,公司42,1974 -44,83,105,公司43,1974 -90,97,733,公司44,1974 -134,102,885,公司45,1974 -54,25,300,公司46,1974 -55,104,462,公司47,1974 -39,57,180,公司48,1974 -118,66,1155,公司49,1974 -57,38,687,公司0,1975 -24,82,455,公司1,1975 -62,12,826,公司2,1975 -103,107,838,公司3,1975 -32,101,701,公司4,1975 -58,32,757,公司5,1975 -65,111,885,公司6,1975 -111,95,753,公司7,1975 -23,19,262,公司8,1975 -25,122,1082,公司9,1975 -94,21,914,公司10,1975 -99,13,686,公司11,1975 -130,119,771,公司12,1975 -61,103,660,公司13,1975 -36,103,745,公司14,1975 -94,89,802,公司15,1975 -83,77,130,公司16,1975 -91,102,324,公司17,1975 -66,72,224,公司18,1975 -66,98,735,公司19,1975 -106,79,916,公司20,1975 -77,85,863,公司21,1975 -88,78,408,公司22,1975 -35,81,601,公司23,1975 -107,18,326,公司24,1975 -50,112,910,公司25,1975 -102,108,891,公司26,1975 -29,96,1100,公司27,1975 -49,104,741,公司28,1975 -73,31,205,公司29,1975 -72,101,477,公司30,1975 -114,95,900,公司31,1975 -43,48,759,公司32,1975 -104,63,870,公司33,1975 -85,44,1134,公司34,1975 -13,52,827,公司35,1975 -91,62,755,公司36,1975 -59,78,431,公司37,1975 -90,30,977,公司38,1975 -100,50,386,公司39,1975 -111,61,654,公司40,1975 -36,112,1192,公司41,1975 -61,76,925,公司42,1975 -47,83,143,公司43,1975 -92,99,708,公司44,1975 -137,103,889,公司45,1975 -54,28,354,公司46,1975 -56,107,462,公司47,1975 -39,59,194,公司48,1975 -122,66,1180,公司49,1975 -59,40,661,公司0,1976 -24,80,471,公司1,1976 -64,11,782,公司2,1976 -106,107,860,公司3,1976 -34,100,749,公司4,1976 -61,33,740,公司5,1976 -65,111,931,公司6,1976 -110,94,796,公司7,1976 -25,18,243,公司8,1976 -23,125,1110,公司9,1976 -93,22,901,公司10,1976 -99,15,690,公司11,1976 -130,122,755,公司12,1976 -60,105,650,公司13,1976 -35,101,728,公司14,1976 -97,90,824,公司15,1976 -84,80,105,公司16,1976 -90,104,283,公司17,1976 -66,71,278,公司18,1976 -69,98,779,公司19,1976 -108,79,958,公司20,1976 -76,85,833,公司21,1976 -87,81,455,公司22,1976 -36,80,559,公司23,1976 -106,21,306,公司24,1976 -49,115,940,公司25,1976 -105,109,912,公司26,1976 -30,97,1134,公司27,1976 -49,104,748,公司28,1976 -73,34,200,公司29,1976 -72,103,496,公司30,1976 -114,97,890,公司31,1976 -44,50,729,公司32,1976 -103,65,902,公司33,1976 -84,47,1143,公司34,1976 -14,55,811,公司35,1976 -93,64,768,公司36,1976 -59,79,460,公司37,1976 -89,33,972,公司38,1976 -100,50,352,公司39,1976 -113,64,624,公司40,1976 -38,112,1176,公司41,1976 -63,76,893,公司42,1976 -47,82,109,公司43,1976 -92,101,688,公司44,1976 -139,104,926,公司45,1976 -54,30,405,公司46,1976 -56,107,465,公司47,1976 -39,58,166,公司48,1976 -124,68,1218,公司49,1976 -62,41,681,公司0,1977 -23,82,482,公司1,1977 -64,12,812,公司2,1977 -107,109,846,公司3,1977 -36,101,800,公司4,1977 -63,34,786,公司5,1977 -65,111,922,公司6,1977 -109,97,773,公司7,1977 -28,20,225,公司8,1977 -25,128,1113,公司9,1977 -96,25,914,公司10,1977 -98,18,662,公司11,1977 -132,123,785,公司12,1977 -60,106,661,公司13,1977 -35,103,751,公司14,1977 -98,91,852,公司15,1977 -85,83,100,公司16,1977 -92,103,338,公司17,1977 -66,70,248,公司18,1977 -71,101,762,公司19,1977 -110,77,983,公司20,1977 -77,88,858,公司21,1977 -88,84,475,公司22,1977 -38,80,567,公司23,1977 -106,21,356,公司24,1977 -48,116,928,公司25,1977 -105,110,894,公司26,1977 -29,96,1140,公司27,1977 -51,104,731,公司28,1977 -74,35,216,公司29,1977 -72,106,470,公司30,1977 -115,97,938,公司31,1977 -48,51,753,公司32,1977 -105,66,925,公司33,1977 -86,48,1126,公司34,1977 -13,57,803,公司35,1977 -94,67,818,公司36,1977 -59,82,483,公司37,1977 -91,35,960,公司38,1977 -100,50,385,公司39,1977 -114,68,669,公司40,1977 -39,114,1204,公司41,1977 -66,76,898,公司42,1977 -49,85,98,公司43,1977 -92,102,643,公司44,1977 -140,105,915,公司45,1977 -57,30,387,公司46,1977 -57,110,442,公司47,1977 -41,58,134,公司48,1977 -127,70,1242,公司49,1977 -60,44,645,公司0,1978 -24,82,509,公司1,1978 -62,14,815,公司2,1978 -108,112,895,公司3,1978 -36,103,783,公司4,1978 -65,36,811,公司5,1978 -65,113,887,公司6,1978 -107,98,787,公司7,1978 -26,19,239,公司8,1978 -23,130,1070,公司9,1978 -96,27,940,公司10,1978 -99,17,632,公司11,1978 -132,126,797,公司12,1978 -60,108,627,公司13,1978 -37,104,718,公司14,1978 -101,91,869,公司15,1978 -87,83,134,公司16,1978 -92,104,317,公司17,1978 -68,72,277,公司18,1978 -69,104,797,公司19,1978 -110,78,988,公司20,1978 -77,91,888,公司21,1978 -87,87,482,公司22,1978 -38,82,524,公司23,1978 -108,21,326,公司24,1978 -47,118,946,公司25,1978 -105,109,890,公司26,1978 -32,99,1140,公司27,1978 -53,104,747,公司28,1978 -73,38,226,公司29,1978 -74,108,460,公司30,1978 -116,100,926,公司31,1978 -48,53,709,公司32,1978 -106,69,927,公司33,1978 -88,50,1113,公司34,1978 -15,60,817,公司35,1978 -97,69,812,公司36,1978 -60,81,450,公司37,1978 -94,36,980,公司38,1978 -104,52,429,公司39,1978 -113,67,682,公司40,1978 -39,117,1180,公司41,1978 -66,77,881,公司42,1978 -52,86,135,公司43,1978 -92,104,684,公司44,1978 -141,109,968,公司45,1978 -58,29,373,公司46,1978 -57,113,466,公司47,1978 -40,59,140,公司48,1978 -128,73,1291,公司49,1978 -63,43,642,公司0,1979 -25,84,542,公司1,1979 -65,13,787,公司2,1979 -108,115,936,公司3,1979 -38,101,835,公司4,1979 -66,36,836,公司5,1979 -66,111,924,公司6,1979 -109,101,829,公司7,1979 -29,18,258,公司8,1979 -22,133,1088,公司9,1979 -98,30,986,公司10,1979 -99,18,677,公司11,1979 -132,127,759,公司12,1979 -59,111,607,公司13,1979 -36,104,740,公司14,1979 -101,90,845,公司15,1979 -86,82,150,公司16,1979 -95,103,315,公司17,1979 -70,72,312,公司18,1979 -71,103,818,公司19,1979 -110,77,985,公司20,1979 -76,89,913,公司21,1979 -90,90,458,公司22,1979 -37,84,484,公司23,1979 -107,24,295,公司24,1979 -47,118,991,公司25,1979 -104,112,886,公司26,1979 -35,99,1181,公司27,1979 -53,105,706,公司28,1979 -74,39,248,公司29,1979 -76,109,512,公司30,1979 -117,100,979,公司31,1979 -48,55,715,公司32,1979 -107,68,925,公司33,1979 -89,54,1149,公司34,1979 -15,60,790,公司35,1979 -100,70,809,公司36,1979 -63,81,500,公司37,1979 -96,36,1010,公司38,1979 -106,52,470,公司39,1979 -114,67,698,公司40,1979 -39,117,1225,公司41,1979 -70,79,907,公司42,1979 -54,89,144,公司43,1979 -91,106,662,公司44,1979 -144,113,980,公司45,1979 -60,28,344,公司46,1979 -61,117,451,公司47,1979 -40,62,159,公司48,1979 -129,77,1289,公司49,1979 -64,44,615,公司0,1980 -27,85,514,公司1,1980 -68,11,746,公司2,1980 -109,117,944,公司3,1980 -36,99,825,公司4,1980 -67,39,847,公司5,1980 -64,109,921,公司6,1980 -111,103,818,公司7,1980 -29,19,243,公司8,1980 -23,132,1058,公司9,1980 -97,32,1041,公司10,1980 -100,19,665,公司11,1980 -132,125,729,公司12,1980 -58,113,634,公司13,1980 -37,104,776,公司14,1980 -102,92,828,公司15,1980 -85,85,184,公司16,1980 -95,105,335,公司17,1980 -70,72,275,公司18,1980 -72,103,776,公司19,1980 -110,77,998,公司20,1980 -75,91,887,公司21,1980 -92,90,509,公司22,1980 -37,84,448,公司23,1980 -109,25,304,公司24,1980 -47,120,1030,公司25,1980 -104,114,845,公司26,1980 -34,101,1144,公司27,1980 -53,105,686,公司28,1980 -76,40,225,公司29,1980 -77,109,507,公司30,1980 -118,99,955,公司31,1980 -50,55,765,公司32,1980 -109,69,921,公司33,1980 -88,56,1112,公司34,1980 -16,60,771,公司35,1980 -103,70,845,公司36,1980 -66,84,543,公司37,1980 -98,35,1052,公司38,1980 -107,52,440,公司39,1980 -115,69,676,公司40,1980 -42,118,1194,公司41,1980 -73,79,879,公司42,1980 -54,89,106,公司43,1980 -94,110,678,公司44,1980 -147,117,976,公司45,1980 -64,28,330,公司46,1980 -60,118,473,公司47,1980 -44,65,141,公司48,1980 -133,81,1287,公司49,1980 -63,46,590,公司0,1981 -29,83,555,公司1,1981 -70,11,796,公司2,1981 -112,115,971,公司3,1981 -37,100,821,公司4,1981 -67,39,875,公司5,1981 -64,109,927,公司6,1981 -113,106,841,公司7,1981 -30,18,283,公司8,1981 -26,135,1083,公司9,1981 -97,33,1067,公司10,1981 -98,22,656,公司11,1981 -134,124,690,公司12,1981 -61,115,647,公司13,1981 -37,103,767,公司14,1981 -101,91,849,公司15,1981 -87,83,188,公司16,1981 -97,104,383,公司17,1981 -71,74,265,公司18,1981 -71,102,761,公司19,1981 -110,77,1012,公司20,1981 -76,91,877,公司21,1981 -91,92,491,公司22,1981 -36,85,485,公司23,1981 -111,26,287,公司24,1981 -48,119,1045,公司25,1981 -107,117,865,公司26,1981 -33,101,1102,公司27,1981 -53,107,671,公司28,1981 -76,43,231,公司29,1981 -77,110,530,公司30,1981 -121,101,975,公司31,1981 -53,55,747,公司32,1981 -112,73,945,公司33,1981 -90,57,1077,公司34,1981 -17,60,741,公司35,1981 -106,69,897,公司36,1981 -66,84,597,公司37,1981 -100,38,1066,公司38,1981 -108,52,494,公司39,1981 -118,69,702,公司40,1981 -44,118,1150,公司41,1981 -74,79,856,公司42,1981 -56,92,141,公司43,1981 -95,109,725,公司44,1981 -147,121,991,公司45,1981 -66,31,347,公司46,1981 -60,119,501,公司47,1981 -46,66,165,公司48,1981 -134,84,1320,公司49,1981 -65,47,588,公司0,1982 -30,86,514,公司1,1982 -68,11,785,公司2,1982 -113,115,987,公司3,1982 -37,99,815,公司4,1982 -67,39,858,公司5,1982 -65,110,964,公司6,1982 -115,106,846,公司7,1982 -29,20,268,公司8,1982 -26,135,1105,公司9,1982 -98,31,1108,公司10,1982 -97,25,705,公司11,1982 -132,127,723,公司12,1982 -62,115,623,公司13,1982 -38,104,723,公司14,1982 -99,93,828,公司15,1982 -89,83,225,公司16,1982 -100,106,416,公司17,1982 -70,76,318,公司18,1982 -74,104,776,公司19,1982 -109,80,1048,公司20,1982 -79,94,878,公司21,1982 -90,95,474,公司22,1982 -38,87,472,公司23,1982 -110,25,244,公司24,1982 -51,121,1023,公司25,1982 -106,118,855,公司26,1982 -34,102,1070,公司27,1982 -56,109,647,公司28,1982 -78,45,238,公司29,1982 -78,109,544,公司30,1982 -120,102,994,公司31,1982 -54,56,764,公司32,1982 -116,73,915,公司33,1982 -90,56,1072,公司34,1982 -17,62,787,公司35,1982 -109,72,930,公司36,1982 -66,86,627,公司37,1982 -99,39,1035,公司38,1982 -111,55,465,公司39,1982 -119,70,698,公司40,1982 -44,118,1115,公司41,1982 -76,82,892,公司42,1982 -58,95,177,公司43,1982 -95,109,755,公司44,1982 -149,122,949,公司45,1982 -67,34,400,公司46,1982 -61,119,462,公司47,1982 -46,68,124,公司48,1982 -136,86,1371,公司49,1982 -65,46,585,公司0,1983 -32,86,517,公司1,1983 -71,10,748,公司2,1983 -113,115,1030,公司3,1983 -40,102,839,公司4,1983 -65,40,819,公司5,1983 -67,112,983,公司6,1983 -118,109,888,公司7,1983 -30,19,247,公司8,1983 -26,134,1134,公司9,1983 -97,34,1119,公司10,1983 -96,23,694,公司11,1983 -132,125,686,公司12,1983 -62,115,649,公司13,1983 -41,106,680,公司14,1983 -98,94,836,公司15,1983 -89,85,238,公司16,1983 -99,106,439,公司17,1983 -69,78,314,公司18,1983 -74,107,774,公司19,1983 -109,80,1036,公司20,1983 -81,93,883,公司21,1983 -90,94,448,公司22,1983 -38,89,446,公司23,1983 -113,24,235,公司24,1983 -52,124,1014,公司25,1983 -107,117,833,公司26,1983 -36,103,1088,公司27,1983 -59,110,652,公司28,1983 -79,46,251,公司29,1983 -78,112,585,公司30,1983 -121,103,1040,公司31,1983 -54,58,731,公司32,1983 -116,76,944,公司33,1983 -93,59,1036,公司34,1983 -20,65,752,公司35,1983 -112,73,979,公司36,1983 -66,87,621,公司37,1983 -101,41,1007,公司38,1983 -112,58,520,公司39,1983 -119,72,715,公司40,1983 -48,119,1086,公司41,1983 -79,85,904,公司42,1983 -60,96,145,公司43,1983 -96,108,772,公司44,1983 -149,122,970,公司45,1983 -69,37,431,公司46,1983 -61,123,421,公司47,1983 -45,68,110,公司48,1983 -137,86,1347,公司49,1983 -64,45,627,公司0,1984 -33,85,541,公司1,1984 -74,13,733,公司2,1984 -114,115,1042,公司3,1984 -39,103,835,公司4,1984 -68,39,779,公司5,1984 -68,111,1026,公司6,1984 -121,108,902,公司7,1984 -30,21,214,公司8,1984 -27,137,1137,公司9,1984 -100,35,1099,公司10,1984 -96,22,659,公司11,1984 -131,126,659,公司12,1984 -65,115,703,公司13,1984 -41,109,733,公司14,1984 -98,96,818,公司15,1984 -88,86,233,公司16,1984 -100,108,400,公司17,1984 -71,78,301,公司18,1984 -76,106,768,公司19,1984 -109,80,1009,公司20,1984 -81,94,844,公司21,1984 -93,96,459,公司22,1984 -41,91,412,公司23,1984 -116,27,240,公司24,1984 -53,126,1053,公司25,1984 -109,120,873,公司26,1984 -36,106,1076,公司27,1984 -62,111,686,公司28,1984 -81,47,249,公司29,1984 -77,112,585,公司30,1984 -120,106,1003,公司31,1984 -57,58,687,公司32,1984 -119,75,965,公司33,1984 -95,62,1066,公司34,1984 -22,66,735,公司35,1984 -113,74,1026,公司36,1984 -69,89,595,公司37,1984 -101,41,999,公司38,1984 -112,61,510,公司39,1984 -121,74,732,公司40,1984 -49,118,1066,公司41,1984 -78,87,859,公司42,1984 -61,100,143,公司43,1984 -98,108,825,公司44,1984 -153,123,1016,公司45,1984 -72,40,439,公司46,1984 -61,126,398,公司47,1984 -49,68,144,公司48,1984 -136,87,1326,公司49,1984 -63,47,672,公司0,1985 -31,87,570,公司1,1985 -76,12,759,公司2,1985 -116,118,1049,公司3,1985 -39,104,807,公司4,1985 -67,39,790,公司5,1985 -69,109,1033,公司6,1985 -122,108,945,公司7,1985 -31,21,210,公司8,1985 -26,136,1172,公司9,1985 -100,33,1070,公司10,1985 -96,21,686,公司11,1985 -133,127,654,公司12,1985 -64,117,754,公司13,1985 -41,109,698,公司14,1985 -99,97,849,公司15,1985 -91,88,252,公司16,1985 -101,110,381,公司17,1985 -70,79,352,公司18,1985 -76,108,756,公司19,1985 -108,80,965,公司20,1985 -81,94,805,公司21,1985 -92,99,485,公司22,1985 -43,92,396,公司23,1985 -115,30,294,公司24,1985 -54,125,1077,公司25,1985 -108,122,893,公司26,1985 -36,106,1070,公司27,1985 -63,111,684,公司28,1985 -80,46,288,公司29,1985 -80,115,551,公司30,1985 -121,105,1007,公司31,1985 -56,58,701,公司32,1985 -121,75,979,公司33,1985 -96,61,1116,公司34,1985 -22,67,770,公司35,1985 -114,78,1018,公司36,1985 -68,90,622,公司37,1985 -102,41,1014,公司38,1985 -115,64,479,公司39,1985 -125,73,709,公司40,1985 -50,117,1078,公司41,1985 -78,89,899,公司42,1985 -63,101,143,公司43,1985 -100,108,799,公司44,1985 -157,125,1046,公司45,1985 -72,41,445,公司46,1985 -60,126,433,公司47,1985 -49,72,188,公司48,1985 -136,89,1374,公司49,1985 -62,46,664,公司0,1986 -32,90,534,公司1,1986 -75,11,772,公司2,1986 -118,120,1047,公司3,1986 -41,104,774,公司4,1986 -67,41,826,公司5,1986 -70,110,1075,公司6,1986 -123,106,914,公司7,1986 -31,23,251,公司8,1986 -25,135,1129,公司9,1986 -100,32,1093,公司10,1986 -99,20,708,公司11,1986 -135,126,708,公司12,1986 -65,118,777,公司13,1986 -41,109,736,公司14,1986 -102,98,866,公司15,1986 -92,89,230,公司16,1986 -102,109,358,公司17,1986 -73,79,382,公司18,1986 -77,108,734,公司19,1986 -107,79,993,公司20,1986 -83,96,805,公司21,1986 -94,99,512,公司22,1986 -46,93,407,公司23,1986 -116,29,255,公司24,1986 -57,128,1106,公司25,1986 -107,122,872,公司26,1986 -38,109,1110,公司27,1986 -62,113,713,公司28,1986 -82,47,292,公司29,1986 -81,116,521,公司30,1986 -124,106,990,公司31,1986 -58,60,729,公司32,1986 -123,76,967,公司33,1986 -97,62,1109,公司34,1986 -26,66,765,公司35,1986 -113,80,1005,公司36,1986 -71,93,594,公司37,1986 -105,43,1012,公司38,1986 -114,67,485,公司39,1986 -124,75,751,公司40,1986 -49,118,1072,公司41,1986 -82,90,952,公司42,1986 -63,101,110,公司43,1986 -101,109,787,公司44,1986 -161,125,1045,公司45,1986 -72,41,426,公司46,1986 -63,126,451,公司47,1986 -51,71,172,公司48,1986 -138,90,1413,公司49,1986 -64,47,683,公司0,1987 -34,91,576,公司1,1987 -74,14,755,公司2,1987 -121,118,1063,公司3,1987 -43,103,793,公司4,1987 -65,43,875,公司5,1987 -70,108,1076,公司6,1987 -124,108,966,公司7,1987 -33,25,225,公司8,1987 -25,138,1095,公司9,1987 -101,32,1092,公司10,1987 -102,20,703,公司11,1987 -134,127,720,公司12,1987 -67,121,812,公司13,1987 -42,112,756,公司14,1987 -101,100,855,公司15,1987 -95,89,223,公司16,1987 -104,109,406,公司17,1987 -72,79,392,公司18,1987 -80,107,781,公司19,1987 -110,79,1000,公司20,1987 -86,99,779,公司21,1987 -94,99,564,公司22,1987 -49,93,397,公司23,1987 -116,32,236,公司24,1987 -60,128,1080,公司25,1987 -109,121,882,公司26,1987 -39,108,1084,公司27,1987 -65,116,728,公司28,1987 -81,48,299,公司29,1987 -83,119,536,公司30,1987 -125,108,991,公司31,1987 -61,61,745,公司32,1987 -122,77,1018,公司33,1987 -100,63,1101,公司34,1987 -26,65,723,公司35,1987 -113,81,970,公司36,1987 -72,95,597,公司37,1987 -105,44,996,公司38,1987 -116,70,450,公司39,1987 -128,75,778,公司40,1987 -51,118,1089,公司41,1987 -84,89,949,公司42,1987 -62,104,144,公司43,1987 -102,109,787,公司44,1987 -161,129,1023,公司45,1987 -76,43,402,公司46,1987 -65,130,479,公司47,1987 -51,72,138,公司48,1987 -138,92,1384,公司49,1987 -65,46,708,公司0,1988 -34,91,552,公司1,1988 -75,16,750,公司2,1988 -120,116,1093,公司3,1988 -45,101,789,公司4,1988 -68,46,832,公司5,1988 -70,111,1077,公司6,1988 -122,109,956,公司7,1988 -35,27,252,公司8,1988 -28,141,1108,公司9,1988 -104,32,1083,公司10,1988 -102,19,731,公司11,1988 -134,129,702,公司12,1988 -69,123,858,公司13,1988 -41,111,749,公司14,1988 -99,100,876,公司15,1988 -98,89,253,公司16,1988 -104,109,456,公司17,1988 -74,80,411,公司18,1988 -81,110,778,公司19,1988 -112,82,1044,公司20,1988 -86,98,819,公司21,1988 -96,101,527,公司22,1988 -49,93,354,公司23,1988 -116,32,211,公司24,1988 -60,127,1058,公司25,1988 -109,123,839,公司26,1988 -40,112,1095,公司27,1988 -66,118,698,公司28,1988 -81,49,287,公司29,1988 -84,121,589,公司30,1988 -129,111,961,公司31,1988 -62,61,749,公司32,1988 -125,76,1050,公司33,1988 -102,65,1134,公司34,1988 -28,65,745,公司35,1988 -112,84,1003,公司36,1988 -71,96,560,公司37,1988 -106,44,1030,公司38,1988 -118,72,429,公司39,1988 -131,79,756,公司40,1988 -54,120,1137,公司41,1988 -85,88,933,公司42,1988 -66,105,161,公司43,1988 -104,111,821,公司44,1988 -163,132,1066,公司45,1988 -80,43,376,公司46,1988 -68,129,448,公司47,1988 -51,73,191,公司48,1988 -137,96,1346,公司49,1988 -68,49,725,公司0,1989 -37,92,568,公司1,1989 -76,18,802,公司2,1989 -121,115,1099,公司3,1989 -47,101,810,公司4,1989 -68,45,862,公司5,1989 -69,112,1131,公司6,1989 -123,108,958,公司7,1989 -34,29,289,公司8,1989 -27,144,1129,公司9,1989 -106,33,1055,公司10,1989 -102,20,712,公司11,1989 -133,127,673,公司12,1989 -69,126,821,公司13,1989 -41,113,797,公司14,1989 -98,100,835,公司15,1989 -97,90,295,公司16,1989 -107,110,452,公司17,1989 -74,82,385,公司18,1989 -84,109,769,公司19,1989 -115,85,1060,公司20,1989 -86,99,806,公司21,1989 -96,101,512,公司22,1989 -49,95,343,公司23,1989 -118,33,238,公司24,1989 -60,130,1034,公司25,1989 -109,122,888,公司26,1989 -42,113,1091,公司27,1989 -69,118,733,公司28,1989 -82,52,314,公司29,1989 -88,121,557,公司30,1989 -129,114,1003,公司31,1989 -64,64,801,公司32,1989 -126,76,1078,公司33,1989 -106,65,1137,公司34,1989 -27,68,786,公司35,1989 -115,84,993,公司36,1989 -73,96,526,公司37,1989 -106,45,1020,公司38,1989 -121,74,404,公司39,1989 -132,79,795,公司40,1989 -56,122,1101,公司41,1989 -88,90,979,公司42,1989 -68,107,136,公司43,1989 -107,114,828,公司44,1989 -167,132,1062,公司45,1989 -79,44,409,公司46,1989 -71,130,417,公司47,1989 -51,74,242,公司48,1989 -137,95,1367,公司49,1989 -67,47,777,公司0,1990 -39,94,612,公司1,1990 -78,19,830,公司2,1990 -122,116,1110,公司3,1990 -48,102,865,公司4,1990 -67,45,825,公司5,1990 -70,115,1170,公司6,1990 -124,109,972,公司7,1990 -33,31,321,公司8,1990 -30,146,1132,公司9,1990 -107,33,1023,公司10,1990 -101,18,758,公司11,1990 -133,130,710,公司12,1990 -71,126,820,公司13,1990 -43,114,828,公司14,1990 -98,103,869,公司15,1990 -100,93,295,公司16,1990 -108,109,476,公司17,1990 -73,82,344,公司18,1990 -84,110,815,公司19,1990 -118,86,1065,公司20,1990 -89,102,811,公司21,1990 -97,101,473,公司22,1990 -51,94,392,公司23,1990 -121,34,244,公司24,1990 -60,132,1050,公司25,1990 -110,124,915,公司26,1990 -45,113,1117,公司27,1990 -71,119,735,公司28,1990 -81,52,303,公司29,1990 -90,124,547,公司30,1990 -129,114,964,公司31,1990 -66,66,840,公司32,1990 -127,79,1124,公司33,1990 -108,66,1108,公司34,1990 -27,68,747,公司35,1990 -114,85,1047,公司36,1990 -72,97,578,公司37,1990 -106,47,1059,公司38,1990 -120,77,429,公司39,1990 -132,78,790,公司40,1990 -59,124,1061,公司41,1990 -89,91,1033,公司42,1990 -71,108,172,公司43,1990 -106,114,836,公司44,1990 -169,136,1030,公司45,1990 -79,43,407,公司46,1990 -74,133,463,公司47,1990 -55,77,293,公司48,1990 -136,97,1360,公司49,1990 -70,47,768,公司0,1991 -42,95,594,公司1,1991 -79,19,872,公司2,1991 -124,117,1161,公司3,1991 -49,102,822,公司4,1991 -69,48,810,公司5,1991 -69,115,1220,公司6,1991 -122,112,954,公司7,1991 -34,32,319,公司8,1991 -31,145,1112,公司9,1991 -106,35,980,公司10,1991 -100,16,783,公司11,1991 -135,128,748,公司12,1991 -73,128,805,公司13,1991 -44,114,849,公司14,1991 -100,103,863,公司15,1991 -103,91,253,公司16,1991 -106,110,460,公司17,1991 -73,81,331,公司18,1991 -86,109,771,公司19,1991 -119,85,1095,公司20,1991 -92,104,866,公司21,1991 -96,104,495,公司22,1991 -50,94,398,公司23,1991 -123,33,252,公司24,1991 -61,132,1015,公司25,1991 -109,123,917,公司26,1991 -48,112,1096,公司27,1991 -73,121,700,公司28,1991 -82,54,311,公司29,1991 -90,127,534,公司30,1991 -130,114,995,公司31,1991 -69,69,819,公司32,1991 -130,80,1114,公司33,1991 -107,67,1117,公司34,1991 -30,69,716,公司35,1991 -116,86,1098,公司36,1991 -75,100,615,公司37,1991 -108,46,1103,公司38,1991 -122,81,407,公司39,1991 -132,80,764,公司40,1991 -61,124,1096,公司41,1991 -92,91,1032,公司42,1991 -73,109,178,公司43,1991 -106,118,880,公司44,1991 -169,135,1021,公司45,1991 -78,43,375,公司46,1991 -78,136,474,公司47,1991 -56,81,333,公司48,1991 -138,98,1342,公司49,1991 -72,48,781,公司0,1992 -41,97,640,公司1,1992 -80,19,849,公司2,1992 -123,118,1145,公司3,1992 -50,100,847,公司4,1992 -68,49,783,公司5,1992 -72,114,1220,公司6,1992 -125,112,967,公司7,1992 -33,31,336,公司8,1992 -34,143,1079,公司9,1992 -105,36,1007,公司10,1992 -102,17,783,公司11,1992 -134,129,732,公司12,1992 -71,131,825,公司13,1992 -45,116,867,公司14,1992 -99,106,891,公司15,1992 -104,92,303,公司16,1992 -109,112,459,公司17,1992 -73,79,313,公司18,1992 -87,109,745,公司19,1992 -120,87,1110,公司20,1992 -91,107,884,公司21,1992 -99,103,487,公司22,1992 -53,97,379,公司23,1992 -123,33,265,公司24,1992 -60,131,1004,公司25,1992 -111,124,926,公司26,1992 -51,113,1058,公司27,1992 -74,123,724,公司28,1992 -83,53,323,公司29,1992 -93,127,542,公司30,1992 -133,115,1001,公司31,1992 -68,68,776,公司32,1992 -132,80,1113,公司33,1992 -106,69,1126,公司34,1992 -33,71,746,公司35,1992 -116,89,1078,公司36,1992 -78,101,651,公司37,1992 -107,46,1063,公司38,1992 -121,82,372,公司39,1992 -133,81,760,公司40,1992 -60,125,1115,公司41,1992 -94,93,1045,公司42,1992 -72,110,226,公司43,1992 -109,117,849,公司44,1992 -169,138,1047,公司45,1992 -77,43,430,公司46,1992 -78,136,464,公司47,1992 -55,83,336,公司48,1992 -141,98,1375,公司49,1992 -75,49,799,公司0,1993 -42,96,661,公司1,1993 -83,19,813,公司2,1993 -125,120,1199,公司3,1993 -50,101,857,公司4,1993 -71,50,769,公司5,1993 -74,112,1178,公司6,1993 -124,112,1004,公司7,1993 -33,31,364,公司8,1993 -34,144,1063,公司9,1993 -106,39,1026,公司10,1993 -100,16,785,公司11,1993 -132,130,691,公司12,1993 -71,129,874,公司13,1993 -47,117,908,公司14,1993 -101,105,898,公司15,1993 -104,93,334,公司16,1993 -112,112,463,公司17,1993 -75,82,301,公司18,1993 -87,109,767,公司19,1993 -121,89,1136,公司20,1993 -93,105,860,公司21,1993 -102,103,479,公司22,1993 -55,100,418,公司23,1993 -124,36,308,公司24,1993 -61,131,1009,公司25,1993 -114,126,907,公司26,1993 -54,114,1089,公司27,1993 -77,126,690,公司28,1993 -85,55,347,公司29,1993 -96,127,511,公司30,1993 -134,116,1019,公司31,1993 -71,69,762,公司32,1993 -134,80,1128,公司33,1993 -107,70,1142,公司34,1993 -36,74,720,公司35,1993 -115,92,1132,公司36,1993 -78,104,632,公司37,1993 -108,49,1096,公司38,1993 -124,84,338,公司39,1993 -135,82,767,公司40,1993 -61,128,1170,公司41,1993 -93,93,1043,公司42,1993 -76,109,207,公司43,1993 -112,119,873,公司44,1993 -169,141,1049,公司45,1993 -78,43,484,公司46,1993 -82,138,513,公司47,1993 -58,86,316,公司48,1993 -142,100,1373,公司49,1993 -73,47,836,公司0,1994 -43,99,673,公司1,1994 -84,20,804,公司2,1994 -126,119,1235,公司3,1994 -52,101,835,公司4,1994 -70,50,814,公司5,1994 -74,112,1224,公司6,1994 -125,113,1033,公司7,1994 -35,34,395,公司8,1994 -34,143,1066,公司9,1994 -105,39,1025,公司10,1994 -101,16,766,公司11,1994 -132,131,714,公司12,1994 -71,131,899,公司13,1994 -47,119,944,公司14,1994 -103,106,877,公司15,1994 -105,95,319,公司16,1994 -113,115,476,公司17,1994 -77,84,270,公司18,1994 -90,111,747,公司19,1994 -124,89,1107,公司20,1994 -92,105,858,公司21,1994 -105,104,491,公司22,1994 -57,102,460,公司23,1994 -126,37,326,公司24,1994 -60,133,1001,公司25,1994 -113,128,887,公司26,1994 -55,115,1046,公司27,1994 -78,126,668,公司28,1994 -86,54,372,公司29,1994 -99,126,510,公司30,1994 -135,119,994,公司31,1994 -73,68,743,公司32,1994 -136,83,1177,公司33,1994 -107,72,1152,公司34,1994 -38,77,765,公司35,1994 -115,95,1143,公司36,1994 -77,107,671,公司37,1994 -107,50,1128,公司38,1994 -128,86,375,公司39,1994 -135,86,770,公司40,1994 -61,127,1133,公司41,1994 -95,96,1056,公司42,1994 -76,109,218,公司43,1994 -114,121,899,公司44,1994 -168,144,1074,公司45,1994 -78,43,464,公司46,1994 -82,141,545,公司47,1994 -59,86,322,公司48,1994 -144,100,1357,公司49,1994 -74,47,805,公司0,1995 -42,102,700,公司1,1995 -85,22,803,公司2,1995 -124,119,1231,公司3,1995 -53,103,821,公司4,1995 -71,50,858,公司5,1995 -75,112,1200,公司6,1995 -127,114,1013,公司7,1995 -36,34,375,公司8,1995 -36,141,1103,公司9,1995 -106,39,1073,公司10,1995 -102,15,760,公司11,1995 -131,132,749,公司12,1995 -71,133,946,公司13,1995 -47,119,992,公司14,1995 -106,106,841,公司15,1995 -108,96,365,公司16,1995 -113,115,442,公司17,1995 -80,85,287,公司18,1995 -91,113,749,公司19,1995 -125,90,1128,公司20,1995 -91,106,860,公司21,1995 -106,106,467,公司22,1995 -59,102,472,公司23,1995 -129,39,313,公司24,1995 -61,132,961,公司25,1995 -115,130,862,公司26,1995 -57,115,1068,公司27,1995 -79,125,624,公司28,1995 -87,54,418,公司29,1995 -98,129,505,公司30,1995 -138,118,961,公司31,1995 -76,67,719,公司32,1995 -138,84,1163,公司33,1995 -106,71,1149,公司34,1995 -38,78,814,公司35,1995 -115,98,1147,公司36,1995 -78,108,697,公司37,1995 -109,53,1117,公司38,1995 -131,87,347,公司39,1995 -136,89,780,公司40,1995 -61,127,1151,公司41,1995 -96,97,1012,公司42,1995 -79,111,272,公司43,1995 -115,124,909,公司44,1995 -171,146,1122,公司45,1995 -82,44,448,公司46,1995 -84,141,521,公司47,1995 -60,90,313,公司48,1995 -146,102,1372,公司49,1995 -75,47,818,公司0,1996 -45,105,754,公司1,1996 -86,23,793,公司2,1996 -124,121,1245,公司3,1996 -52,105,847,公司4,1996 -70,49,885,公司5,1996 -75,114,1199,公司6,1996 -128,117,1037,公司7,1996 -39,34,359,公司8,1996 -36,144,1061,公司9,1996 -105,41,1054,公司10,1996 -102,15,799,公司11,1996 -132,135,739,公司12,1996 -70,132,917,公司13,1996 -49,121,979,公司14,1996 -106,107,866,公司15,1996 -111,95,345,公司16,1996 -112,116,423,公司17,1996 -83,85,247,公司18,1996 -91,113,800,公司19,1996 -125,91,1130,公司20,1996 -94,106,908,公司21,1996 -108,105,480,公司22,1996 -59,102,492,公司23,1996 -131,41,335,公司24,1996 -60,131,950,公司25,1996 -116,129,874,公司26,1996 -60,116,1118,公司27,1996 -80,127,627,公司28,1996 -91,53,431,公司29,1996 -99,132,491,公司30,1996 -137,121,955,公司31,1996 -79,71,708,公司32,1996 -139,84,1183,公司33,1996 -109,71,1144,公司34,1996 -40,79,823,公司35,1996 -116,99,1142,公司36,1996 -77,111,657,公司37,1996 -113,52,1073,公司38,1996 -135,86,375,公司39,1996 -138,91,777,公司40,1996 -62,128,1127,公司41,1996 -96,100,1024,公司42,1996 -78,114,268,公司43,1996 -114,124,880,公司44,1996 -170,148,1103,公司45,1996 -85,46,436,公司46,1996 -87,144,553,公司47,1996 -59,89,331,公司48,1996 -147,102,1376,公司49,1996 -76,48,804,公司0,1997 -44,106,733,公司1,1997 -88,22,763,公司2,1997 -127,124,1220,公司3,1997 -53,104,850,公司4,1997 -69,52,840,公司5,1997 -77,114,1164,公司6,1997 -127,118,1018,公司7,1997 -41,32,315,公司8,1997 -35,143,1070,公司9,1997 -107,42,1076,公司10,1997 -103,16,851,公司11,1997 -134,137,719,公司12,1997 -71,134,916,公司13,1997 -50,124,984,公司14,1997 -109,106,848,公司15,1997 -113,93,345,公司16,1997 -115,119,476,公司17,1997 -83,85,220,公司18,1997 -93,112,855,公司19,1997 -125,90,1142,公司20,1997 -94,109,883,公司21,1997 -108,108,501,公司22,1997 -62,101,470,公司23,1997 -130,44,337,公司24,1997 -60,134,924,公司25,1997 -115,132,830,公司26,1997 -61,115,1097,公司27,1997 -81,128,629,公司28,1997 -92,56,477,公司29,1997 -102,131,488,公司30,1997 -138,120,973,公司31,1997 -81,71,679,公司32,1997 -138,87,1165,公司33,1997 -110,73,1195,公司34,1997 -39,82,818,公司35,1997 -115,102,1197,公司36,1997 -77,113,660,公司37,1997 -114,56,1048,公司38,1997 -139,87,335,公司39,1997 -141,90,761,公司40,1997 -61,127,1093,公司41,1997 -96,102,1004,公司42,1997 -77,117,302,公司43,1997 -113,127,919,公司44,1997 -171,147,1095,公司45,1997 -87,47,439,公司46,1997 -88,146,573,公司47,1997 -63,89,301,公司48,1997 -147,106,1395,公司49,1997 -79,49,790,公司0,1998 -44,106,738,公司1,1998 -86,25,768,公司2,1998 -126,123,1267,公司3,1998 -53,103,810,公司4,1998 -69,53,804,公司5,1998 -78,116,1180,公司6,1998 -127,118,984,公司7,1998 -40,32,285,公司8,1998 -36,144,1077,公司9,1998 -108,45,1040,公司10,1998 -106,17,897,公司11,1998 -136,139,716,公司12,1998 -73,134,920,公司13,1998 -50,125,989,公司14,1998 -108,107,806,公司15,1998 -114,94,386,公司16,1998 -114,119,495,公司17,1998 -86,85,246,公司18,1998 -92,113,834,公司19,1998 -127,92,1138,公司20,1998 -96,108,900,公司21,1998 -110,108,464,公司22,1998 -64,101,474,公司23,1998 -130,44,310,公司24,1998 -62,137,935,公司25,1998 -115,135,874,公司26,1998 -64,118,1125,公司27,1998 -81,129,599,公司28,1998 -93,56,529,公司29,1998 -105,133,532,公司30,1998 -139,119,928,公司31,1998 -82,73,732,公司32,1998 -137,90,1205,公司33,1998 -112,76,1168,公司34,1998 -40,83,845,公司35,1998 -117,102,1180,公司36,1998 -80,113,661,公司37,1998 -113,58,1050,公司38,1998 -142,88,325,公司39,1998 -141,91,802,公司40,1998 -62,128,1126,公司41,1998 -98,104,972,公司42,1998 -77,117,324,公司43,1998 -113,127,952,公司44,1998 -172,148,1113,公司45,1998 -87,48,396,公司46,1998 -87,148,574,公司47,1998 -62,90,328,公司48,1998 -149,110,1423,公司49,1998 -79,50,748,公司0,1999 -45,106,759,公司1,1999 -88,27,763,公司2,1999 -124,122,1296,公司3,1999 -52,102,805,公司4,1999 -68,52,765,公司5,1999 -78,118,1215,公司6,1999 -128,119,980,公司7,1999 -40,31,244,公司8,1999 -39,143,1061,公司9,1999 -110,46,1060,公司10,1999 -106,20,926,公司11,1999 -137,141,691,公司12,1999 -75,133,935,公司13,1999 -50,126,954,公司14,1999 -107,108,793,公司15,1999 -117,95,376,公司16,1999 -114,122,451,公司17,1999 -89,87,245,公司18,1999 -94,116,827,公司19,1999 -126,94,1161,公司20,1999 -97,110,869,公司21,1999 -110,109,429,公司22,1999 -67,104,474,公司23,1999 -132,45,275,公司24,1999 -61,139,939,公司25,1999 -114,138,928,公司26,1999 -67,120,1106,公司27,1999 -80,130,627,公司28,1999 -93,55,486,公司29,1999 -109,134,526,公司30,1999 -139,121,927,公司31,1999 -81,75,710,公司32,1999 -140,91,1173,公司33,1999 -114,75,1123,公司34,1999 -43,86,874,公司35,1999 -119,105,1213,公司36,1999 -82,115,709,公司37,1999 -115,57,1023,公司38,1999 -143,92,281,公司39,1999 -144,91,796,公司40,1999 -61,128,1136,公司41,1999 -101,106,1026,公司42,1999 -78,116,375,公司43,1999 -115,130,990,公司44,1999 -172,151,1161,公司45,1999 -89,49,414,公司46,1999 -88,147,550,公司47,1999 -64,90,352,公司48,1999 -152,112,1464,公司49,1999 -79,50,741,公司0,2000 -44,105,809,公司1,2000 -89,27,812,公司2,2000 -127,120,1329,公司3,2000 -54,102,831,公司4,2000 -70,55,775,公司5,2000 -80,118,1222,公司6,2000 -130,121,995,公司7,2000 -39,33,259,公司8,2000 -39,143,1114,公司9,2000 -112,46,1016,公司10,2000 -108,23,956,公司11,2000 -139,141,710,公司12,2000 -76,136,955,公司13,2000 -49,129,1008,公司14,2000 -109,108,750,公司15,2000 -117,98,358,公司16,2000 -114,123,423,公司17,2000 -90,87,215,公司18,2000 -94,119,875,公司19,2000 -126,96,1205,公司20,2000 -100,113,923,公司21,2000 -111,109,421,公司22,2000 -68,106,446,公司23,2000 -131,45,237,公司24,2000 -62,141,924,公司25,2000 -117,138,905,公司26,2000 -68,121,1088,公司27,2000 -80,130,612,公司28,2000 -93,54,522,公司29,2000 -109,135,498,公司30,2000 -142,124,897,公司31,2000 -83,75,670,公司32,2000 -141,91,1224,公司33,2000 -115,78,1142,公司34,2000 -47,88,864,公司35,2000 -120,107,1249,公司36,2000 -82,117,704,公司37,2000 -116,57,1074,公司38,2000 -144,95,314,公司39,2000 -143,90,751,公司40,2000 -61,130,1155,公司41,2000 -102,109,1065,公司42,2000 -79,115,418,公司43,2000 -116,131,952,公司44,2000 -172,151,1200,公司45,2000 -92,49,440,公司46,2000 -88,151,581,公司47,2000 -68,94,393,公司48,2000 -154,114,1470,公司49,2000 -79,52,733,公司0,2001 -44,105,834,公司1,2001 -89,29,866,公司2,2001 -128,119,1374,公司3,2001 -53,104,835,公司4,2001 -69,57,784,公司5,2001 -79,119,1209,公司6,2001 -131,120,1010,公司7,2001 -40,32,297,公司8,2001 -37,143,1155,公司9,2001 -112,48,1062,公司10,2001 -109,22,1002,公司11,2001 -141,142,751,公司12,2001 -77,136,960,公司13,2001 -51,128,983,公司14,2001 -112,110,734,公司15,2001 -117,100,403,公司16,2001 -115,122,387,公司17,2001 -91,89,208,公司18,2001 -95,122,871,公司19,2001 -128,97,1162,公司20,2001 -101,114,901,公司21,2001 -110,108,422,公司22,2001 -70,109,475,公司23,2001 -133,44,217,公司24,2001 -64,140,946,公司25,2001 -119,139,883,公司26,2001 -71,124,1071,公司27,2001 -79,133,580,公司28,2001 -95,54,479,公司29,2001 -109,139,527,公司30,2001 -142,124,929,公司31,2001 -85,77,658,公司32,2001 -143,93,1228,公司33,2001 -116,80,1178,公司34,2001 -50,91,881,公司35,2001 -121,110,1280,公司36,2001 -81,120,691,公司37,2001 -120,60,1036,公司38,2001 -146,97,325,公司39,2001 -142,90,790,公司40,2001 -62,130,1166,公司41,2001 -105,110,1097,公司42,2001 -81,116,386,公司43,2001 -117,133,1007,公司44,2001 -171,152,1182,公司45,2001 -92,49,487,公司46,2001 -88,151,605,公司47,2001 -68,98,426,公司48,2001 -158,116,1437,公司49,2001 -80,53,775,公司0,2002 -43,106,802,公司1,2002 -87,31,899,公司2,2002 -127,121,1406,公司3,2002 -54,102,813,公司4,2002 -72,55,741,公司5,2002 -80,119,1210,公司6,2002 -130,119,1006,公司7,2002 -38,32,345,公司8,2002 -35,145,1142,公司9,2002 -111,51,1042,公司10,2002 -112,24,1014,公司11,2002 -141,143,710,公司12,2002 -78,136,963,公司13,2002 -50,131,1003,公司14,2002 -114,109,767,公司15,2002 -118,99,366,公司16,2002 -116,121,409,公司17,2002 -89,90,175,公司18,2002 -94,125,894,公司19,2002 -131,100,1208,公司20,2002 -102,113,882,公司21,2002 -112,111,448,公司22,2002 -69,111,495,公司23,2002 -132,44,219,公司24,2002 -64,141,973,公司25,2002 -119,139,879,公司26,2002 -73,126,1068,公司27,2002 -82,136,542,公司28,2002 -97,53,513,公司29,2002 -110,139,512,公司30,2002 -144,126,952,公司31,2002 -87,76,699,公司32,2002 -144,92,1271,公司33,2002 -119,83,1211,公司34,2002 -52,92,849,公司35,2002 -124,109,1262,公司36,2002 -81,121,677,公司37,2002 -119,63,1031,公司38,2002 -149,100,372,公司39,2002 -143,93,805,公司40,2002 -64,131,1181,公司41,2002 -105,110,1056,公司42,2002 -84,115,420,公司43,2002 -117,133,1020,公司44,2002 -174,152,1156,公司45,2002 -94,52,445,公司46,2002 -91,155,562,公司47,2002 -70,100,429,公司48,2002 -159,118,1398,公司49,2002 -80,56,747,公司0,2003 -43,108,855,公司1,2003 -90,34,917,公司2,2003 -130,120,1413,公司3,2003 -53,101,806,公司4,2003 -72,54,742,公司5,2003 -79,118,1256,公司6,2003 -128,118,1029,公司7,2003 -38,33,388,公司8,2003 -36,146,1155,公司9,2003 -110,52,999,公司10,2003 -111,26,974,公司11,2003 -143,143,675,公司12,2003 -77,139,970,公司13,2003 -51,131,1050,公司14,2003 -117,110,790,公司15,2003 -118,101,381,公司16,2003 -119,120,439,公司17,2003 -91,90,199,公司18,2003 -96,128,928,公司19,2003 -134,101,1210,公司20,2003 -103,114,936,公司21,2003 -111,110,473,公司22,2003 -70,111,501,公司23,2003 -132,47,192,公司24,2003 -63,141,991,公司25,2003 -122,138,839,公司26,2003 -76,127,1119,公司27,2003 -84,136,529,公司28,2003 -97,52,488,公司29,2003 -112,141,559,公司30,2003 -147,128,982,公司31,2003 -89,79,671,公司32,2003 -147,92,1244,公司33,2003 -122,84,1178,公司34,2003 -52,92,855,公司35,2003 -123,113,1273,公司36,2003 -80,121,666,公司37,2003 -118,64,1008,公司38,2003 -150,101,413,公司39,2003 -144,97,837,公司40,2003 -66,131,1184,公司41,2003 -109,113,1042,公司42,2003 -84,117,465,公司43,2003 -116,133,1038,公司44,2003 -175,153,1139,公司45,2003 -98,55,484,公司46,2003 -95,158,551,公司47,2003 -74,102,431,公司48,2003 -160,120,1408,公司49,2003 -82,56,780,公司0,2004 -46,109,885,公司1,2004 -88,35,916,公司2,2004 -129,123,1443,公司3,2004 -52,102,827,公司4,2004 -71,54,728,公司5,2004 -80,119,1226,公司6,2004 -130,121,1028,公司7,2004 -37,33,416,公司8,2004 -36,145,1210,公司9,2004 -110,53,1047,公司10,2004 -110,27,929,公司11,2004 -143,142,654,公司12,2004 -78,138,1011,公司13,2004 -50,130,1053,公司14,2004 -117,110,833,公司15,2004 -118,102,418,公司16,2004 -119,122,460,公司17,2004 -91,91,228,公司18,2004 -98,131,890,公司19,2004 -137,103,1223,公司20,2004 -105,117,907,公司21,2004 -113,109,523,公司22,2004 -70,112,522,公司23,2004 -132,47,243,公司24,2004 -66,144,971,公司25,2004 -123,140,846,公司26,2004 -79,128,1152,公司27,2004 -87,137,583,公司28,2004 -97,52,473,公司29,2004 -112,142,572,公司30,2004 -147,131,1006,公司31,2004 -88,81,674,公司32,2004 -150,92,1250,公司33,2004 -125,85,1183,公司34,2004 -53,94,821,公司35,2004 -124,113,1233,公司36,2004 -81,123,643,公司37,2004 -119,64,1033,公司38,2004 -150,100,436,公司39,2004 -144,100,831,公司40,2004 -67,134,1226,公司41,2004 -108,113,1058,公司42,2004 -86,118,452,公司43,2004 -118,137,997,公司44,2004 -175,155,1168,公司45,2004 -100,57,536,公司46,2004 -96,161,532,公司47,2004 -76,103,441,公司48,2004 -163,123,1373,公司49,2004 -83,58,809,公司0,2005 -47,108,860,公司1,2005 -89,36,934,公司2,2005 -127,123,1466,公司3,2005 -52,104,843,公司4,2005 -70,52,700,公司5,2005 -80,119,1241,公司6,2005 -132,123,1059,公司7,2005 -40,33,405,公司8,2005 -36,146,1204,公司9,2005 -112,52,1036,公司10,2005 -109,26,921,公司11,2005 -145,142,674,公司12,2005 -79,139,992,公司13,2005 -52,132,1077,公司14,2005 -116,113,843,公司15,2005 -118,103,424,公司16,2005 -117,122,432,公司17,2005 -92,92,255,公司18,2005 -99,131,902,公司19,2005 -139,105,1186,公司20,2005 -105,116,935,公司21,2005 -115,108,563,公司22,2005 -72,114,538,公司23,2005 -135,46,269,公司24,2005 -69,144,976,公司25,2005 -124,141,882,公司26,2005 -80,128,1201,公司27,2005 -90,136,596,公司28,2005 -100,53,495,公司29,2005 -114,141,617,公司30,2005 -148,130,991,公司31,2005 -91,83,704,公司32,2005 -153,92,1217,公司33,2005 -125,89,1173,公司34,2005 -56,96,872,公司35,2005 -124,113,1213,公司36,2005 -82,122,664,公司37,2005 -121,67,1000,公司38,2005 -149,104,434,公司39,2005 -144,99,840,公司40,2005 -70,137,1201,公司41,2005 -111,114,1022,公司42,2005 -88,121,409,公司43,2005 -119,141,993,公司44,2005 -177,156,1126,公司45,2005 -104,60,504,公司46,2005 -95,160,499,公司47,2005 -75,102,449,公司48,2005 -162,126,1371,公司49,2005 -86,61,845,公司0,2006 -48,110,907,公司1,2006 -88,36,907,公司2,2006 -128,122,1447,公司3,2006 -54,103,848,公司4,2006 -73,51,718,公司5,2006 -82,119,1264,公司6,2006 -133,122,1070,公司7,2006 -40,35,410,公司8,2006 -35,147,1247,公司9,2006 -112,53,1025,公司10,2006 -109,27,923,公司11,2006 -148,144,667,公司12,2006 -79,140,971,公司13,2006 -51,131,1065,公司14,2006 -118,115,852,公司15,2006 -120,101,472,公司16,2006 -118,122,446,公司17,2006 -95,92,227,公司18,2006 -100,133,942,公司19,2006 -142,104,1212,公司20,2006 -106,117,938,公司21,2006 -117,111,540,公司22,2006 -72,117,552,公司23,2006 -137,48,243,公司24,2006 -69,144,965,公司25,2006 -126,140,905,公司26,2006 -81,130,1239,公司27,2006 -89,138,571,公司28,2006 -103,52,505,公司29,2006 -113,144,671,公司30,2006 -147,133,1025,公司31,2006 -90,83,701,公司32,2006 -154,94,1182,公司33,2006 -127,92,1209,公司34,2006 -55,95,912,公司35,2006 -124,114,1184,公司36,2006 -82,124,650,公司37,2006 -121,70,1004,公司38,2006 -149,106,461,公司39,2006 -143,102,859,公司40,2006 -71,139,1205,公司41,2006 -111,115,1000,公司42,2006 -88,120,376,公司43,2006 -123,140,1016,公司44,2006 -176,156,1088,公司45,2006 -104,61,500,公司46,2006 -98,162,544,公司47,2006 -79,105,485,公司48,2006 -165,126,1343,公司49,2006 -86,60,891,公司0,2007 -50,111,878,公司1,2007 -88,39,883,公司2,2007 -128,124,1469,公司3,2007 -54,104,828,公司4,2007 -73,50,768,公司5,2007 -83,120,1288,公司6,2007 -136,123,1034,公司7,2007 -43,35,425,公司8,2007 -35,148,1258,公司9,2007 -113,54,1047,公司10,2007 -108,26,948,公司11,2007 -149,144,694,公司12,2007 -77,142,1023,公司13,2007 -52,134,1049,公司14,2007 -117,116,859,公司15,2007 -122,104,473,公司16,2007 -120,124,407,公司17,2007 -96,91,187,公司18,2007 -103,135,951,公司19,2007 -141,106,1189,公司20,2007 -105,119,990,公司21,2007 -116,110,582,公司22,2007 -74,115,556,公司23,2007 -138,50,279,公司24,2007 -68,145,953,公司25,2007 -127,142,876,公司26,2007 -83,129,1236,公司27,2007 -91,137,597,公司28,2007 -106,55,471,公司29,2007 -113,143,713,公司30,2007 -149,132,997,公司31,2007 -93,84,668,公司32,2007 -153,96,1174,公司33,2007 -126,95,1180,公司34,2007 -57,97,872,公司35,2007 -126,115,1191,公司36,2007 -86,125,652,公司37,2007 -124,72,992,公司38,2007 -149,108,501,公司39,2007 -144,105,887,公司40,2007 -71,140,1246,公司41,2007 -114,118,1005,公司42,2007 -90,123,335,公司43,2007 -123,142,1015,公司44,2007 -179,157,1114,公司45,2007 -103,65,476,公司46,2007 -99,163,503,公司47,2007 -80,106,508,公司48,2007 -165,127,1300,公司49,2007 -88,60,915,公司0,2008 -51,114,933,公司1,2008 -91,39,914,公司2,2008 -127,126,1443,公司3,2008 -56,103,858,公司4,2008 -72,49,729,公司5,2008 -83,123,1302,公司6,2008 -137,123,1036,公司7,2008 -44,34,424,公司8,2008 -36,150,1261,公司9,2008 -113,52,1092,公司10,2008 -107,25,918,公司11,2008 -150,143,700,公司12,2008 -77,143,1007,公司13,2008 -51,133,1099,公司14,2008 -116,117,815,公司15,2008 -120,103,496,公司16,2008 -122,124,396,公司17,2008 -95,93,181,公司18,2008 -104,138,922,公司19,2008 -140,106,1233,公司20,2008 -105,120,975,公司21,2008 -115,110,635,公司22,2008 -76,115,552,公司23,2008 -140,49,236,公司24,2008 -68,145,986,公司25,2008 -130,143,840,公司26,2008 -85,130,1199,公司27,2008 -90,139,575,公司28,2008 -106,55,464,公司29,2008 -115,142,683,公司30,2008 -151,135,971,公司31,2008 -95,83,627,公司32,2008 -152,96,1202,公司33,2008 -128,97,1147,公司34,2008 -57,99,883,公司35,2008 -126,118,1237,公司36,2008 -89,124,687,公司37,2008 -125,73,950,公司38,2008 -152,110,555,公司39,2008 -148,105,939,公司40,2008 -71,140,1252,公司41,2008 -117,121,1051,公司42,2008 -94,122,328,公司43,2008 -124,144,995,公司44,2008 -179,160,1164,公司45,2008 -106,68,458,公司46,2008 -100,166,495,公司47,2008 -82,108,475,公司48,2008 -168,130,1316,公司49,2008 -89,61,893,公司0,2009 -53,114,913,公司1,2009 -94,40,914,公司2,2009 -128,125,1463,公司3,2009 -58,101,847,公司4,2009 -74,50,753,公司5,2009 -82,123,1338,公司6,2009 -138,125,994,公司7,2009 -46,36,408,公司8,2009 -37,151,1249,公司9,2009 -113,51,1085,公司10,2009 -106,25,901,公司11,2009 -148,143,731,公司12,2009 -76,146,1013,公司13,2009 -54,131,1078,公司14,2009 -115,116,785,公司15,2009 -122,104,541,公司16,2009 -123,122,372,公司17,2009 -98,92,225,公司18,2009 -105,140,945,公司19,2009 -139,109,1236,公司20,2009 -104,123,977,公司21,2009 -118,111,683,公司22,2009 -78,114,536,公司23,2009 -143,52,228,公司24,2009 -69,147,1003,公司25,2009 -129,146,873,公司26,2009 -85,133,1245,公司27,2009 -90,140,611,公司28,2009 -106,57,467,公司29,2009 -115,141,681,公司30,2009 -154,138,1024,公司31,2009 -95,83,587,公司32,2009 -152,99,1161,公司33,2009 -129,97,1115,公司34,2009 -58,99,932,公司35,2009 -129,118,1223,公司36,2009 -89,123,653,公司37,2009 -128,77,907,公司38,2009 -152,112,572,公司39,2009 -149,108,985,公司40,2009 -70,143,1284,公司41,2009 -120,121,1104,公司42,2009 -96,125,339,公司43,2009 -125,145,966,公司44,2009 -178,162,1122,公司45,2009 -106,70,463,公司46,2009 -104,168,515,公司47,2009 -82,108,486,公司48,2009 -171,130,1308,公司49,2009 -90,59,890,公司0,2010 -53,116,920,公司1,2010 -93,39,902,公司2,2010 -127,124,1505,公司3,2010 -58,102,880,公司4,2010 -73,51,710,公司5,2010 -85,122,1309,公司6,2010 -137,124,979,公司7,2010 -47,37,390,公司8,2010 -38,149,1271,公司9,2010 -115,53,1053,公司10,2010 -106,24,916,公司11,2010 -150,142,744,公司12,2010 -79,146,992,公司13,2010 -57,131,1054,公司14,2010 -114,115,780,公司15,2010 -125,104,564,公司16,2010 -126,121,389,公司17,2010 -101,91,182,公司18,2010 -107,143,978,公司19,2010 -142,109,1236,公司20,2010 -104,123,1021,公司21,2010 -118,110,690,公司22,2010 -78,116,534,公司23,2010 -145,55,252,公司24,2010 -72,149,1036,公司25,2010 -131,149,926,公司26,2010 -88,132,1257,公司27,2010 -90,142,577,公司28,2010 -108,57,423,公司29,2010 -114,143,658,公司30,2010 -155,141,1005,公司31,2010 -98,82,558,公司32,2010 -152,100,1150,公司33,2010 -131,98,1075,公司34,2010 -59,101,986,公司35,2010 -130,119,1226,公司36,2010 -89,126,668,公司37,2010 -128,80,938,公司38,2010 -153,115,592,公司39,2010 -151,109,959,公司40,2010 -71,147,1298,公司41,2010 -123,121,1096,公司42,2010 -95,125,392,公司43,2010 -125,144,997,公司44,2010 -180,166,1139,公司45,2010 -107,74,429,公司46,2010 -103,169,570,公司47,2010 -85,110,507,公司48,2010 -174,133,1310,公司49,2010 -93,60,850,公司0,2011 -54,117,928,公司1,2011 -93,41,863,公司2,2011 -128,125,1531,公司3,2011 -58,103,887,公司4,2011 -72,53,692,公司5,2011 -87,124,1333,公司6,2011 -139,123,966,公司7,2011 -49,39,360,公司8,2011 -41,148,1305,公司9,2011 -114,53,1080,公司10,2011 -108,25,876,公司11,2011 -150,141,719,公司12,2011 -81,147,977,公司13,2011 -58,132,1009,公司14,2011 -116,115,745,公司15,2011 -124,105,578,公司16,2011 -125,120,432,公司17,2011 -103,92,182,公司18,2011 -108,145,1032,公司19,2011 -143,108,1197,公司20,2011 -107,125,1059,公司21,2011 -117,111,681,公司22,2011 -79,118,517,公司23,2011 -144,57,297,公司24,2011 -71,150,1022,公司25,2011 -130,152,931,公司26,2011 -89,131,1251,公司27,2011 -91,141,552,公司28,2011 -109,56,444,公司29,2011 -114,143,668,公司30,2011 -154,142,1023,公司31,2011 -98,85,579,公司32,2011 -155,99,1148,公司33,2011 -134,98,1049,公司34,2011 -62,101,1016,公司35,2011 -133,119,1269,公司36,2011 -88,126,719,公司37,2011 -128,79,906,公司38,2011 -157,115,574,公司39,2011 -151,112,997,公司40,2011 -75,146,1278,公司41,2011 -125,124,1096,公司42,2011 -96,127,351,公司43,2011 -129,147,971,公司44,2011 -181,166,1161,公司45,2011 -108,73,463,公司46,2011 -103,170,527,公司47,2011 -87,112,515,公司48,2011 -173,135,1280,公司49,2011 -96,58,872,公司0,2012 -52,117,959,公司1,2012 -92,41,862,公司2,2012 -129,124,1505,公司3,2012 -58,102,843,公司4,2012 -70,55,747,公司5,2012 -87,123,1295,公司6,2012 -140,123,935,公司7,2012 -50,40,360,公司8,2012 -43,150,1274,公司9,2012 -114,54,1053,公司10,2012 -109,28,918,公司11,2012 -150,142,710,公司12,2012 -79,148,949,公司13,2012 -59,133,990,公司14,2012 -116,115,798,公司15,2012 -126,107,567,公司16,2012 -126,120,402,公司17,2012 -105,92,149,公司18,2012 -107,147,1002,公司19,2012 -145,109,1192,公司20,2012 -107,128,1046,公司21,2012 -119,113,733,公司22,2012 -81,119,492,公司23,2012 -147,56,309,公司24,2012 -73,152,1025,公司25,2012 -129,153,892,公司26,2012 -91,131,1236,公司27,2012 -92,143,558,公司28,2012 -112,59,478,公司29,2012 -115,145,720,公司30,2012 -154,142,984,公司31,2012 -99,88,574,公司32,2012 -155,101,1178,公司33,2012 -137,100,1086,公司34,2012 -63,102,973,公司35,2012 -135,121,1240,公司36,2012 -88,128,690,公司37,2012 -127,81,925,公司38,2012 -158,118,599,公司39,2012 -153,115,986,公司40,2012 -77,148,1314,公司41,2012 -126,127,1102,公司42,2012 -97,128,343,公司43,2012 -128,150,947,公司44,2012 -183,169,1188,公司45,2012 -109,75,430,公司46,2012 -105,171,573,公司47,2012 -86,115,568,公司48,2012 -174,136,1259,公司49,2012 -95,60,919,公司0,2013 -52,118,963,公司1,2013 -91,43,864,公司2,2013 -130,123,1544,公司3,2013 -60,100,852,公司4,2013 -73,56,775,公司5,2013 -90,125,1323,公司6,2013 -138,122,945,公司7,2013 -53,42,356,公司8,2013 -43,152,1294,公司9,2013 -115,55,1047,公司10,2013 -109,26,968,公司11,2013 -152,141,676,公司12,2013 -80,150,920,公司13,2013 -58,132,1029,公司14,2013 -116,114,823,公司15,2013 -127,106,537,公司16,2013 -125,122,427,公司17,2013 -104,94,141,公司18,2013 -110,150,1019,公司19,2013 -144,110,1228,公司20,2013 -110,127,1098,公司21,2013 -118,114,784,公司22,2013 -82,121,534,公司23,2013 -148,59,278,公司24,2013 -72,151,1040,公司25,2013 -132,154,897,公司26,2013 -90,133,1279,公司27,2013 -95,142,564,公司28,2013 -112,61,445,公司29,2013 -114,148,696,公司30,2013 -155,143,966,公司31,2013 -100,88,621,公司32,2013 -157,101,1174,公司33,2013 -139,101,1139,公司34,2013 -63,102,931,公司35,2013 -134,125,1213,公司36,2013 -88,129,713,公司37,2013 -129,84,916,公司38,2013 -161,119,557,公司39,2013 -152,118,966,公司40,2013 -79,147,1289,公司41,2013 -127,128,1118,公司42,2013 -100,128,337,公司43,2013 -131,151,904,公司44,2013 -185,171,1217,公司45,2013 -110,75,406,公司46,2013 -105,174,573,公司47,2013 -87,115,621,公司48,2013 -177,138,1295,公司49,2013 -97,62,885,公司0,2014 -54,120,946,公司1,2014 -89,42,866,公司2,2014 -129,126,1527,公司3,2014 -61,101,855,公司4,2014 -74,57,762,公司5,2014 -89,125,1333,公司6,2014 -138,121,906,公司7,2014 -55,42,325,公司8,2014 -44,153,1277,公司9,2014 -114,55,1049,公司10,2014 -112,26,998,公司11,2014 -153,144,698,公司12,2014 -82,148,959,公司13,2014 -59,132,1011,公司14,2014 -115,115,876,公司15,2014 -127,107,540,公司16,2014 -124,125,390,公司17,2014 -104,97,151,公司18,2014 -113,153,1020,公司19,2014 -147,113,1280,公司20,2014 -109,130,1150,公司21,2014 -119,116,802,公司22,2014 -84,123,563,公司23,2014 -148,60,287,公司24,2014 -72,150,1019,公司25,2014 -132,155,911,公司26,2014 -93,133,1291,公司27,2014 -98,145,589,公司28,2014 -112,63,401,公司29,2014 -116,149,714,公司30,2014 -157,142,991,公司31,2014 -99,87,646,公司32,2014 -158,104,1157,公司33,2014 -142,104,1185,公司34,2014 -66,101,944,公司35,2014 -136,124,1177,公司36,2014 -90,129,726,公司37,2014 -129,83,957,公司38,2014 -162,120,600,公司39,2014 -152,120,923,公司40,2014 -78,147,1339,公司41,2014 -131,129,1107,公司42,2014 -100,130,337,公司43,2014 -135,152,878,公司44,2014 -186,171,1254,公司45,2014 -113,77,399,公司46,2014 -106,174,592,公司47,2014 -89,118,584,公司48,2014 -180,138,1297,公司49,2014 -99,63,893,公司0,2015 -54,119,975,公司1,2015 -87,43,840,公司2,2015 -132,124,1574,公司3,2015 -61,101,882,公司4,2015 -73,55,746,公司5,2015 -88,124,1318,公司6,2015 -139,123,894,公司7,2015 -54,45,340,公司8,2015 -45,153,1293,公司9,2015 -116,56,1019,公司10,2015 -115,27,990,公司11,2015 -156,145,709,公司12,2015 -81,147,931,公司13,2015 -61,133,990,公司14,2015 -118,116,894,公司15,2015 -129,106,562,公司16,2015 -126,125,395,公司17,2015 -104,96,166,公司18,2015 -112,152,989,公司19,2015 -149,115,1251,公司20,2015 -109,131,1193,公司21,2015 -119,117,758,公司22,2015 -87,122,593,公司23,2015 -150,62,267,公司24,2015 -72,151,1015,公司25,2015 -132,155,931,公司26,2015 -92,133,1287,公司27,2015 -101,147,583,公司28,2015 -114,62,364,公司29,2015 -117,152,716,公司30,2015 -157,141,1022,公司31,2015 -100,90,669,公司32,2015 -158,106,1131,公司33,2015 -143,103,1154,公司34,2015 -69,103,972,公司35,2015 -136,124,1203,公司36,2015 -92,131,775,公司37,2015 -130,83,951,公司38,2015 -164,122,603,公司39,2015 -156,123,967,公司40,2015 -81,149,1319,公司41,2015 -135,131,1160,公司42,2015 -100,130,302,公司43,2015 -135,155,845,公司44,2015 -188,170,1281,公司45,2015 -116,78,436,公司46,2015 -106,173,603,公司47,2015 -89,120,545,公司48,2015 -181,139,1257,公司49,2015 -98,62,927,公司0,2016 -57,117,1012,公司1,2016 -90,42,866,公司2,2016 -132,124,1602,公司3,2016 -61,103,841,公司4,2016 -75,54,780,公司5,2016 -87,125,1321,公司6,2016 -139,124,862,公司7,2016 -57,47,355,公司8,2016 -47,155,1299,公司9,2016 -119,58,983,公司10,2016 -116,27,988,公司11,2016 -157,145,745,公司12,2016 -80,149,936,公司13,2016 -62,132,1017,公司14,2016 -119,119,892,公司15,2016 -131,109,585,公司16,2016 -125,127,408,公司17,2016 -106,98,135,公司18,2016 -112,153,945,公司19,2016 -150,115,1218,公司20,2016 -108,131,1235,公司21,2016 -121,117,727,公司22,2016 -89,124,645,公司23,2016 -152,63,276,公司24,2016 -73,154,1023,公司25,2016 -132,155,937,公司26,2016 -94,135,1279,公司27,2016 -104,148,599,公司28,2016 -117,65,396,公司29,2016 -119,154,759,公司30,2016 -157,142,993,公司31,2016 -99,89,667,公司32,2016 -161,109,1166,公司33,2016 -142,104,1128,公司34,2016 -73,102,984,公司35,2016 -135,125,1227,公司36,2016 -93,133,771,公司37,2016 -133,82,997,公司38,2016 -163,123,601,公司39,2016 -158,126,1002,公司40,2016 -81,150,1295,公司41,2016 -137,131,1200,公司42,2016 -103,133,305,公司43,2016 -138,159,809,公司44,2016 -189,169,1308,公司45,2016 -118,81,434,公司46,2016 -106,172,595,公司47,2016 -89,122,588,公司48,2016 -183,142,1255,公司49,2016 -101,61,952,公司0,2017 -57,117,987,公司1,2017 -90,42,837,公司2,2017 -134,126,1580,公司3,2017 -61,101,816,公司4,2017 -77,55,823,公司5,2017 -86,127,1350,公司6,2017 -141,123,866,公司7,2017 -59,46,408,公司8,2017 -50,158,1338,公司9,2017 -119,60,1026,公司10,2017 -115,28,1016,公司11,2017 -157,145,797,公司12,2017 -81,148,923,公司13,2017 -61,135,1017,公司14,2017 -120,119,864,公司15,2017 -133,111,629,公司16,2017 -124,129,443,公司17,2017 -107,100,165,公司18,2017 -112,154,949,公司19,2017 -151,116,1254,公司20,2017 -111,133,1248,公司21,2017 -121,117,742,公司22,2017 -89,125,663,公司23,2017 -150,66,298,公司24,2017 -75,154,1051,公司25,2017 -135,154,960,公司26,2017 -93,138,1258,公司27,2017 -104,150,642,公司28,2017 -119,64,352,公司29,2017 -119,154,775,公司30,2017 -157,143,1023,公司31,2017 -100,90,641,公司32,2017 -162,111,1217,公司33,2017 -141,104,1115,公司34,2017 -76,102,968,公司35,2017 -138,124,1245,公司36,2017 -96,135,758,公司37,2017 -136,83,1028,公司38,2017 -162,122,577,公司39,2017 -160,127,1018,公司40,2017 -83,153,1305,公司41,2017 -140,135,1238,公司42,2017 -102,137,303,公司43,2017 -141,162,789,公司44,2017 -188,173,1340,公司45,2017 -121,84,408,公司46,2017 -107,174,584,公司47,2017 -91,123,579,公司48,2017 -185,145,1240,公司49,2017 -103,63,970,公司0,2018 -55,117,1038,公司1,2018 -88,42,875,公司2,2018 -132,126,1631,公司3,2018 -62,104,791,公司4,2018 -79,56,809,公司5,2018 -85,127,1366,公司6,2018 -140,126,880,公司7,2018 -60,48,381,公司8,2018 -51,157,1298,公司9,2018 -120,59,1075,公司10,2018 -114,28,1016,公司11,2018 -159,143,793,公司12,2018 -84,146,882,公司13,2018 -64,138,1033,公司14,2018 -123,121,851,公司15,2018 -135,112,614,公司16,2018 -126,128,429,公司17,2018 -106,101,138,公司18,2018 -115,157,924,公司19,2018 -151,118,1295,公司20,2018 -114,135,1238,公司21,2018 -120,120,763,公司22,2018 -92,128,717,公司23,2018 -151,67,282,公司24,2018 -74,154,1044,公司25,2018 -138,155,928,公司26,2018 -95,139,1270,公司27,2018 -107,153,672,公司28,2018 -119,66,344,公司29,2018 -121,157,734,公司30,2018 -157,143,990,公司31,2018 -101,89,614,公司32,2018 -163,114,1239,公司33,2018 -143,105,1166,公司34,2018 -75,102,1015,公司35,2018 -137,123,1277,公司36,2018 -98,135,811,公司37,2018 -135,86,991,公司38,2018 -164,122,592,公司39,2018 -159,128,1043,公司40,2018 -82,156,1272,公司41,2018 -139,136,1200,公司42,2018 -102,139,309,公司43,2018 -144,161,829,公司44,2018 -187,176,1386,公司45,2018 -121,85,384,公司46,2018 -107,177,628,公司47,2018 -94,124,581,公司48,2018 -186,147,1236,公司49,2018 -105,64,931,公司0,2019 -55,117,1068,公司1,2019 -87,43,912,公司2,2019 -132,125,1637,公司3,2019 -64,106,766,公司4,2019 -82,55,857,公司5,2019 -84,126,1411,公司6,2019 -142,126,852,公司7,2019 -62,49,405,公司8,2019 -50,157,1267,公司9,2019 -123,61,1056,公司10,2019 -114,27,1028,公司11,2019 -158,142,804,公司12,2019 -84,149,924,公司13,2019 -65,140,1007,公司14,2019 -125,122,863,公司15,2019 -137,113,665,公司16,2019 -127,129,424,公司17,2019 -108,101,113,公司18,2019 -115,159,937,公司19,2019 -150,120,1291,公司20,2019 -115,137,1235,公司21,2019 -119,119,770,公司22,2019 -92,128,740,公司23,2019 -150,66,270,公司24,2019 -75,156,1096,公司25,2019 -140,156,920,公司26,2019 -97,138,1256,公司27,2019 -109,154,689,公司28,2019 -120,67,389,公司29,2019 -122,160,764,公司30,2019 -160,142,1034,公司31,2019 -103,90,627,公司32,2019 -163,116,1253,公司33,2019 -143,104,1142,公司34,2019 -78,105,1020,公司35,2019 -141,122,1271,公司36,2019 -99,135,859,公司37,2019 -138,87,952,公司38,2019 -164,121,555,公司39,2019 -162,130,1081,公司40,2019 -83,159,1229,公司41,2019 -138,137,1211,公司42,2019 -105,138,355,公司43,2019 -147,160,788,公司44,2019 -187,175,1438,公司45,2019 -123,85,366,公司46,2019 -110,181,646,公司47,2019 -94,123,589,公司48,2019 -186,146,1262,公司49,2019 -107,65,910,公司0,2020 -57,120,1094,公司1,2020 -86,45,914,公司2,2020 -133,123,1653,公司3,2020 -66,106,818,公司4,2020 -81,57,857,公司5,2020 -86,126,1413,公司6,2020 -142,129,829,公司7,2020 -63,51,445,公司8,2020 -49,157,1278,公司9,2020 -124,61,1099,公司10,2020 -115,27,999,公司11,2020 -161,141,836,公司12,2020 -83,147,892,公司13,2020 -65,139,974,公司14,2020 -126,121,889,公司15,2020 -140,115,630,公司16,2020 -130,132,458,公司17,2020 -107,104,105,公司18,2020 -117,159,949,公司19,2020 -150,122,1319,公司20,2020 -118,136,1284,公司21,2020 -121,122,809,公司22,2020 -93,129,746,公司23,2020 -152,66,267,公司24,2020 -74,156,1065,公司25,2020 -139,156,928,公司26,2020 -100,141,1286,公司27,2020 -110,154,715,公司28,2020 -119,67,383,公司29,2020 -122,159,816,公司30,2020 -161,143,1082,公司31,2020 -105,92,661,公司32,2020 -163,116,1222,公司33,2020 -147,107,1106,公司34,2020 -81,107,992,公司35,2020 -144,123,1247,公司36,2020 -98,138,861,公司37,2020 -139,90,932,公司38,2020 -164,124,513,公司39,2020 -165,130,1105,公司40,2020 -83,159,1192,公司41,2020 -139,140,1178,公司42,2020 -105,138,384,公司43,2020 -148,161,793,公司44,2020 -190,179,1464,公司45,2020 -124,86,381,公司46,2020 -111,182,629,公司47,2020 -98,122,575,公司48,2020 -188,145,1235,公司49,2020 -106,66,941,公司0,2021 -58,121,1117,公司1,2021 -87,46,883,公司2,2021 -133,125,1618,公司3,2021 -69,108,852,公司4,2021 -82,59,890,公司5,2021 -84,128,1421,公司6,2021 -141,130,788,公司7,2021 -63,51,440,公司8,2021 -49,159,1306,公司9,2021 -123,63,1064,公司10,2021 -117,27,1030,公司11,2021 -160,144,842,公司12,2021 -82,146,879,公司13,2021 -67,138,986,公司14,2021 -127,121,914,公司15,2021 -140,117,587,公司16,2021 -130,132,418,公司17,2021 -105,104,132,公司18,2021 -120,160,934,公司19,2021 -153,121,1283,公司20,2021 -119,139,1250,公司21,2021 -120,124,846,公司22,2021 -93,131,758,公司23,2021 -151,66,259,公司24,2021 -76,159,1057,公司25,2021 -140,159,965,公司26,2021 -103,140,1263,公司27,2021 -110,156,759,公司28,2021 -118,68,346,公司29,2021 -123,162,834,公司30,2021 -164,142,1129,公司31,2021 -104,93,696,公司32,2021 -162,116,1257,公司33,2021 -150,109,1124,公司34,2021 -81,106,971,公司35,2021 -143,126,1235,公司36,2021 -101,139,877,公司37,2021 -139,90,930,公司38,2021 -165,123,500,公司39,2021 -167,130,1124,公司40,2021 -83,162,1226,公司41,2021 -138,140,1164,公司42,2021 -108,138,429,公司43,2021 -147,161,774,公司44,2021 -192,180,1510,公司45,2021 -125,89,381,公司46,2021 -113,185,633,公司47,2021 -102,122,626,公司48,2021 -188,147,1222,公司49,2021 -107,67,989,公司0,2022 -56,120,1120,公司1,2022 -87,48,865,公司2,2022 -133,124,1611,公司3,2022 -70,106,881,公司4,2022 -81,60,894,公司5,2022 -83,131,1399,公司6,2022 -141,130,778,公司7,2022 -64,51,411,公司8,2022 -48,161,1339,公司9,2022 -125,62,1054,公司10,2022 -118,30,1056,公司11,2022 -158,146,842,公司12,2022 -80,149,901,公司13,2022 -65,139,988,公司14,2022 -130,121,958,公司15,2022 -140,120,580,公司16,2022 -133,134,436,公司17,2022 -107,103,125,公司18,2022 -118,162,898,公司19,2022 -152,122,1284,公司20,2022 -119,141,1211,公司21,2022 -121,123,830,公司22,2022 -95,131,730,公司23,2022 -151,67,244,公司24,2022 -75,162,1085,公司25,2022 -142,158,998,公司26,2022 -103,141,1290,公司27,2022 -112,157,771,公司28,2022 -120,69,327,公司29,2022 -123,163,846,公司30,2022 -167,143,1183,公司31,2022 -105,96,664,公司32,2022 -164,116,1281,公司33,2022 -152,112,1124,公司34,2022 -83,105,955,公司35,2022 -143,130,1287,公司36,2022 -105,142,869,公司37,2022 -139,89,902,公司38,2022 -167,126,496,公司39,2022 -166,129,1112,公司40,2022 -86,165,1245,公司41,2022 -137,140,1197,公司42,2022 -112,138,464,公司43,2022 -150,164,731,公司44,2022 -194,182,1557,公司45,2022 -125,93,378,公司46,2022 -114,187,649,公司47,2022 -105,122,593,公司48,2022 -192,148,1244,公司49,2022 -106,69,1036,公司0,2023 -59,119,1118,公司1,2023 -89,49,822,公司2,2023 -133,125,1594,公司3,2023 -72,106,860,公司4,2023 -81,60,858,公司5,2023 -82,130,1395,公司6,2023 -140,132,765,公司7,2023 -66,51,387,公司8,2023 -50,163,1392,公司9,2023 -125,60,1086,公司10,2023 -118,29,1052,公司11,2023 -159,146,816,公司12,2023 -83,147,945,公司13,2023 -66,137,1036,公司14,2023 -132,120,954,公司15,2023 -141,122,607,公司16,2023 -132,136,397,公司17,2023 -107,105,109,公司18,2023 -117,165,899,公司19,2023 -151,122,1322,公司20,2023 -120,143,1222,公司21,2023 -121,126,833,公司22,2023 -95,134,746,公司23,2023 -152,70,287,公司24,2023 -75,165,1106,公司25,2023 -141,160,1019,公司26,2023 -105,140,1274,公司27,2023 -115,159,763,公司28,2023 -121,68,363,公司29,2023 -124,162,836,公司30,2023 -166,144,1230,公司31,2023 -105,96,715,公司32,2023 -167,117,1329,公司33,2023 -154,115,1172,公司34,2023 -82,105,962,公司35,2023 -144,131,1274,公司36,2023 -107,144,869,公司37,2023 -140,89,937,公司38,2023 -167,129,542,公司39,2023 -169,132,1136,公司40,2023 -88,165,1232,公司41,2023 -141,142,1217,公司42,2023 -114,141,507,公司43,2023 -154,168,740,公司44,2023 -193,185,1528,公司45,2023 -128,94,341,公司46,2023 -114,191,652,公司47,2023 -108,123,647,公司48,2023 -192,147,1227,公司49,2023`, - input: '使用动态散点图帮我展示各公司年度收益率、净现金流和市值逐年的变化。' -}; - -export const dynamicRoseData = { - csv: `country,continent,GDP,year -美国,美洲,239270,1973 -印度,亚洲,22960,1973 -韩国,亚洲,7870,1973 -土耳其,亚洲,17240,1973 -印度尼西亚,亚洲,10980,1973 -沙特阿拉伯,亚洲,23760,1973 -泰国,亚洲,4130,1973 -菲律宾,亚洲,5660,1973 -马来西亚,亚洲,2780,1973 -英国,欧洲,114750,1973 -意大利,欧洲,107570,1973 -西班牙,欧洲,55990,1973 -荷兰,欧洲,36410,1973 -瑞士,欧洲,33920,1973 -芬兰,欧洲,9930,1973 -瑞典,欧洲,23020,1973 -比利时,欧洲,22280,1973 -挪威,欧洲,14540,1973 -美国,美洲,278390,1978 -印度,亚洲,29220,1978 -韩国,亚洲,13120,1978 -土耳其,亚洲,22620,1978 -印度尼西亚,亚洲,15390,1978 -沙特阿拉伯,亚洲,30080,1978 -泰国,亚洲,6000,1978 -菲律宾,亚洲,7480,1978 -马来西亚,亚洲,3900,1978 -英国,欧洲,121140,1978 -意大利,欧洲,126030,1978 -西班牙,欧洲,64080,1978 -荷兰,欧洲,41420,1978 -瑞士,欧洲,32360,1978 -芬兰,欧洲,10800,1978 -瑞典,欧洲,24650,1978 -比利时,欧洲,24970,1978 -挪威,欧洲,18160,1978 -美国,美洲,336520,1983 -印度,亚洲,34790,1983 -韩国,亚洲,18480,1983 -土耳其,亚洲,25000,1983 -印度尼西亚,亚洲,20870,1983 -沙特阿拉伯,亚洲,24130,1983 -泰国,亚洲,7840,1983 -菲律宾,亚洲,9070,1983 -马来西亚,亚洲,5510,1983 -英国,欧洲,129860.00000000001,1983 -意大利,欧洲,141500,1983 -西班牙,欧洲,67430,1983 -荷兰,欧洲,42830,1983 -瑞士,欧洲,35000,1983 -芬兰,欧洲,13130,1983 -瑞典,欧洲,26980,1983 -比利时,欧洲,26860,1983 -挪威,欧洲,20980,1983 -美国,美洲,427650,1988 -印度,亚洲,45400,1988 -韩国,亚洲,30960,1988 -土耳其,亚洲,33340,1988 -印度尼西亚,亚洲,26890,1988 -沙特阿拉伯,亚洲,25640,1988 -泰国,亚洲,11350,1988 -菲律宾,亚洲,8970,1988 -马来西亚,亚洲,6880,1988 -英国,欧洲,158980,1988 -意大利,欧洲,166060,1988 -西班牙,欧洲,80430,1988 -荷兰,欧洲,49070,1988 -瑞士,欧洲,39950,1988 -芬兰,欧洲,15720,1988 -瑞典,欧洲,31270,1988 -比利时,欧洲,30520,1988 -挪威,欧洲,24800,1988 -美国,美洲,488020,1993 -印度,亚洲,56680,1993 -韩国,亚洲,45790,1993 -土耳其,亚洲,41600,1993 -印度尼西亚,亚洲,37570,1993 -沙特阿拉伯,亚洲,34670,1993 -泰国,亚洲,17990,1993 -菲律宾,亚洲,10000,1993 -马来西亚,亚洲,10720,1993 -英国,欧洲,167180,1993 -意大利,欧洲,177750,1993 -西班牙,欧洲,89630,1993 -荷兰,欧洲,56320,1993 -瑞士,欧洲,42740,1993 -芬兰,欧洲,15040,1993 -瑞典,欧洲,30950,1993 -比利时,欧洲,33350,1993 -挪威,欧洲,28050,1993 -美国,美洲,521740,1998 -印度,亚洲,77270,1998 -韩国,亚洲,59600,1998 -土耳其,亚洲,50560,1998 -印度尼西亚,亚洲,42880,1998 -沙特阿拉伯,亚洲,37310,1998 -泰国,亚洲,19930,1998 -菲律宾,亚洲,12090,1998 -马来西亚,亚洲,14070,1998 -英国,欧洲,196370,1998 -意大利,欧洲,196130,1998 -西班牙,欧洲,104800,1998 -荷兰,欧洲,67570,1998 -瑞士,欧洲,46090,1998 -芬兰,欧洲,18940,1998 -瑞典,欧洲,36510,1998 -比利时,欧洲,37790,1998 -挪威,欧洲,34830,1998 -美国,美洲,545920,2003 -印度,亚洲,102500,2003 -韩国,亚洲,84420,2003 -土耳其,亚洲,55060,2003 -印度尼西亚,亚洲,51460,2003 -沙特阿拉伯,亚洲,40500,2003 -泰国,亚洲,25620,2003 -菲律宾,亚洲,14620,2003 -马来西亚,亚洲,18210,2003 -英国,欧洲,228640,2003 -意大利,欧洲,211730,2003 -西班牙,欧洲,126720,2003 -荷兰,欧洲,75950,2003 -瑞士,欧洲,49450,2003 -芬兰,欧洲,22260,2003 -瑞典,欧洲,42290,2003 -比利时,欧洲,42160,2003 -挪威,欧洲,38320,2003 -美国,美洲,578410,2008 -印度,亚洲,143180,2008 -韩国,亚洲,106280,2008 -土耳其,亚洲,74660,2008 -印度尼西亚,亚洲,67940,2008 -沙特阿拉伯,亚洲,51340,2008 -泰国,亚洲,31950,2008 -菲律宾,亚洲,19140,2008 -马来西亚,亚洲,24100,2008 -英国,欧洲,253560,2008 -意大利,欧洲,221500,2008 -西班牙,欧洲,147390,2008 -荷兰,欧洲,86710,2008 -瑞士,欧洲,57960,2008 -芬兰,欧洲,26270,2008 -瑞典,欧洲,48920,2008 -比利时,欧洲,47720,2008 -挪威,欧洲,43330,2008 -美国,美洲,589420,2013 -印度,亚洲,197840,2013 -韩国,亚洲,125320,2013 -土耳其,亚洲,97510,2013 -印度尼西亚,亚洲,89730,2013 -沙特阿拉伯,亚洲,62900,2013 -泰国,亚洲,37880,2013 -菲律宾,亚洲,24700,2013 -马来西亚,亚洲,29650,2013 -英国,欧洲,260510,2013 -意大利,欧洲,204670,2013 -西班牙,欧洲,134780,2013 -荷兰,欧洲,84970,2013 -瑞士,欧洲,61070,2013 -芬兰,欧洲,24970,2013 -瑞典,欧洲,51470,2013 -比利时,欧洲,49500,2013 -挪威,欧洲,44930,2013 -美国,美洲,617030,2018 -印度,亚洲,282220,2018 -韩国,亚洲,144970,2018 -土耳其,亚洲,124050,2018 -印度尼西亚,亚洲,114690,2018 -沙特阿拉伯,亚洲,70160,2018 -泰国,亚洲,44230,2018 -菲律宾,亚洲,34030,2018 -马来西亚,亚洲,38210,2018 -英国,欧洲,287930,2018 -意大利,欧洲,214100,2018 -西班牙,欧洲,153950,2018 -荷兰,欧洲,94810,2018 -瑞士,欧洲,67460,2018 -芬兰,欧洲,26920,2018 -瑞典,欧洲,58930,2018 -比利时,欧洲,53840,2018 -挪威,欧洲,48930,2018 -`, - input: '使用动态玫瑰图帮我展示各国GDP排名变化' -}; -export const dynamicRoseData1 = { - csv: `country,GDP,year -USA,37,2000 -Russia,32,2000 -China,28,2000 -Australia,16,2000 -Germany,13,2000 -France,13,2000 -Italy,13,2000 -Netherlands,12,2000 -Cuba,11,2000 -U.K.,11,2000 -USA,36,2004 -China,32,2004 -Russia,28,2004 -Australia,17,2004 -Japan,16,2004 -Germany,13,2004 -France,11,2004 -Italy,10,2004 -South Korea,9,2004 -U.K.,9,2004 -China,48,2008 -USA,36,2008 -Russia,24,2008 -U.K.,19,2008 -Germany,16,2008 -Australia,14,2008 -South Korea,13,2008 -Japan,9,2008 -Italy,8,2008 -France,7,2008 -USA,46,2012 -China,39,2012 -U.K.,29,2012 -Russia,19,2012 -South Korea,13,2012 -Germany,11,2012 -France,11,2012 -Australia,8,2012 -Italy,8,2012 -Hungary,8,2012 -USA,46,2016 -U.K.,27,2016 -China,26,2016 -Russia,19,2016 -Germany,17,2016 -Japan,12,2016 -France,10,2016 -South Korea,9,2016 -Italy,8,2016 -Australia,8,2016 -USA,39,2020 -China,38,2020 -Japan,27,2020 -U.K.,22,2020 -Russian Olympic Committee,20,2020 -Australia,17,2020 -Netherlands,10,2020 -France,10,2020 -Germany,10,2020 -Italy,10,2020`, - input: '使用动态玫瑰图帮我展示各国GDP排名变化' -}; - -export const sequenceData = { - csv: `playName,time,eventType -Deandre Ayton,-2209017943000,start -Deandre Ayton,-2209017476000,end -Deandre Ayton,-2209016998000,start -Deandre Ayton,-2209016057000,end -Deandre Ayton,-2209015551000,start -Deandre Ayton,-2209015127000,end -Deandre Ayton,-2209015116000,start -Deandre Ayton,-2209015063000,end -Devin Booker,-2209017943000,start -Devin Booker,-2209017293000,end -Devin Booker,-2209016892000,start -Devin Booker,-2209015783000,end -Devin Booker,-2209015380000,start -Devin Booker,-2209015063000,end -Kyle Lowry,-2209017943000,start -Kyle Lowry,-2209017476000,end -Kyle Lowry,-2209017223000,start -Kyle Lowry,-2209016762000,end -Kyle Lowry,-2209016614000,start -Kyle Lowry,-2209016057000,end -Kyle Lowry,-2209015884000,start -Kyle Lowry,-2209015063000,end -Jae Crowder,-2209017943000,start -Jae Crowder,-2209017293000,end -Jae Crowder,-2209016998000,start -Jae Crowder,-2209016139000,end -Jae Crowder,-2209015651000,start -Jae Crowder,-2209015063000,end -Aron Baynes,-2209017943000,start -Aron Baynes,-2209017476000,end -Aron Baynes,-2209016503000,start -Aron Baynes,-2209016166000,end -Pascal Siakam,-2209016892000,start -Pascal Siakam,-2209015788000,end -Pascal Siakam,-2209015528000,start -Pascal Siakam,-2209015063000,end -Pascal Siakam,-2209017943000,start -Pascal Siakam,-2209017223000,end -Mikal Bridges,-2209017943000,start -Mikal Bridges,-2209017650000,end -Mikal Bridges,-2209016998000,start -Mikal Bridges,-2209016762000,end -Mikal Bridges,-2209016503000,start -Mikal Bridges,-2209016003000,end -Mikal Bridges,-2209015783000,start -Mikal Bridges,-2209015063000,end -Chris Paul,-2209017943000,start -Chris Paul,-2209017476000,end -Chris Paul,-2209016998000,start -Chris Paul,-2209016057000,end -Chris Paul,-2209015551000,start -Chris Paul,-2209015063000,end -OG Anunoby,-2209017943000,start -OG Anunoby,-2209017476000,end -OG Anunoby,-2209017223000,start -OG Anunoby,-2209016614000,end -OG Anunoby,-2209016503000,start -OG Anunoby,-2209016021000,end -OG Anunoby,-2209015788000,start -OG Anunoby,-2209015063000,end -Fred VanVleet,-2209016892000,start -Fred VanVleet,-2209015884000,end -Fred VanVleet,-2209015651000,start -Fred VanVleet,-2209015063000,end -Fred VanVleet,-2209017943000,start -Fred VanVleet,-2209017223000,end -Cameron Johnson,-2209017650000,start -Cameron Johnson,-2209016998000,end -Cameron Johnson,-2209016762000,start -Cameron Johnson,-2209016503000,end -Cameron Johnson,-2209016139000,start -Cameron Johnson,-2209015651000,end -Yuta Watanabe,-2209017476000,start -Yuta Watanabe,-2209016892000,end -Yuta Watanabe,-2209016021000,start -Yuta Watanabe,-2209015651000,end -Dario Saric,-2209017476000,start -Dario Saric,-2209016998000,end -Dario Saric,-2209016057000,start -Dario Saric,-2209015551000,end -Dario Saric,-2209015127000,start -Dario Saric,-2209015116000,end -Chris Boucher,-2209017476000,start -Chris Boucher,-2209016998000,end -Chris Boucher,-2209015962000,start -Chris Boucher,-2209015528000,end -Norman Powell,-2209017476000,start -Norman Powell,-2209017119000,end -Norman Powell,-2209016762000,start -Norman Powell,-2209016547000,end -Norman Powell,-2209016057000,start -Norman Powell,-2209015063000,end -Cameron Payne,-2209017476000,start -Cameron Payne,-2209016998000,end -Cameron Payne,-2209016057000,start -Cameron Payne,-2209015551000,end -Langston Galloway,-2209017293000,start -Langston Galloway,-2209016998000,end -Jevon Carter,-2209017293000,start -Jevon Carter,-2209016892000,end -Jevon Carter,-2209016003000,start -Jevon Carter,-2209015380000,end -Malachi Flynn,-2209017119000,start -Malachi Flynn,-2209016892000,end -Alex Len,-2209016998000,start -Alex Len,-2209016503000,end -Alex Len,-2209016166000,start -Alex Len,-2209015962000,end -DeAndre' Bembry,-2209016547000,start -DeAndre' Bembry,-2209015783000,end`, - input: '使用时序图帮我展示各运动员在比赛中的行动记录。' -}; -export const mockUserTextInput0 = { - text: `快手消失了。快手上市后,市值一度超过2000亿美元,现在只剩200多亿美元。去年快手的营收破了千亿,公司也赚钱了,但市场不买账了。 -滴滴也不见了。滴滴去年营收接近2000亿元,并首次实现年度盈利,不过滴滴从美股退市后,一直没在港股上市,所以没有市值参考。`, - input: '' -}; -export const mockUserTextInput1 = { - text: - '全国人口[2]中,拥有大学(指大专及以上)文化程度的人口为218360767人;拥有高中(含中专)文化程度的人口为213005258人;' + - '拥有初中文化程度的人口为487163489人;拥有小学文化程度的人口为349658828人(以上各种受教育程度的人包括各类学校的毕业生、肄业生和在校生)。', - input: '对比本次人口普查各文化程度的人口比重。' -}; - -export const mockUserTextInput2 = { - text: '人口增长较多的5个省份依次为:广东、浙江、江苏、山东、河南,分别增加21709378人、10140697人、6088113人、5734388人、5341952人。', - input: '对比这五个城市的人口增长幅度。' -}; - -export const mockUserTextInput3 = { - text: `阿里2023年收入9275亿元,仅次于京东。这其中有大约一半来自电商,剩下的来自阿里云、菜鸟、优酷、饿了么等业务。 -腾讯的收入主要来自游戏和广告,2023年营收6090亿元,排名第三。相比阿里和京东,腾讯的模式要更轻一些,也更稳定。阿里和京东在线下做了很多布局,建快递仓库、开生鲜超市,前些年阿里甚至在线下买了一堆实体,现在“新零售”退潮,有些资产就砸手里了,外界都在猜测阿里会不会卖掉盒马和大润发。 -而腾讯这些年的主营业务一直没有变,微信始终是全民应用,游戏一直是现金奶牛。至于腾讯视频、腾讯云等业务,也都是线上模式。 -靠售卖虚拟商品和服务,一年做到6000多亿营收,目前只有腾讯有这个实力。 -京东、阿里、腾讯之外,其他公司自动被归入下一个档次——营收3000亿元以下。无论是卖手机的小米,卖车的理想,还是卖广告的百度,送外卖的美团,年营收都没超过3000亿元。 -不过这条线很快会被突破。拼多多2023年营收2476亿元,而2022年只有1306亿元,以这个增速没有任何悬念;美团2023年营收2767亿元,今年突破3000亿元问题不大;小米因为有了造车业务,应该也会突破。 -小米比较特殊。手机市场已经饱和了,过去几年全球手机销量一直在下滑,小米的营收连降两年,从2021年的3283亿元降到2023年的2710亿元。不过小米汽车开始交付了,拿了超过10万台订单。如果按每台车25万元的价格算,这10万台也能带来250亿元增量收入,让小米重回增长轨道,所以这就是为什么雷军一定要造车。 -这个前十的名单,有一条隐形门槛——营收千亿。 -排在第十位的快手,2023年营收1135亿元,这是它首次跨过千亿营收。2023年也是网易首次营收过千亿,不过它只有1035亿元,排在快手之后,没进前十。`, - input: '' -}; - -export const mockUserTextInput4 = { - text: `其次是员工规模。 - -2019年底的时候,腾讯不到6.3万人,2020年招了2.3万人,2021年又增加了2.7万人,总人数超过11万人。这是腾讯历史上员工规模最庞大的一年。 - -阿里在2019年有11.7万人,2020年合并高鑫零售,总人数翻了一倍多到25.2万人,2021年又增加了7200多人。 - -京东是所有互联网公司中人数最多的。2019年京东有22.8万人,2020年增加8.7万人,2021年增加7万人,2022年又增加6.5万人,总人数超过45万人。不过,这其中有30万是快递小哥。 - -其他互联网大厂,人员扩张的脉络基本类似:2020年、2021年疯狂招人,2021年达到历史顶峰,2022年、2023年开始收缩,进行不同程度裁员。 - -降本增效成为互联网大厂的关键词。前几年扩张太猛,招人太多,现在业务增速放缓,用不了那么多人了。`, - input: '' -}; - -export const mockUserTextInput5 = { - text: `阿里的变现能力不如腾讯,且波动较大,2023年盈利924亿元。不过阿里是中国拥有现金最多的互联网公司,从2020年开始,它每年都在储备现金,2022年超过5000亿元,2023年更是达到6530亿元。 -账上现金变多,一方面说明阿里前些年赚得多,家底厚,另一方面也说明这些资金没有更好的投资渠道,阿里在新业务上的探索变慢了。 -可能会让一些人感到意外的是,拼多多的变现能力现在仅次于腾讯、阿里。2023年拼多多的净利润为600亿元,相比2022年几乎翻倍,而2021年之前它还是亏损。从一台烧钱机器到赚钱机器,拼多多只用了三年时间,它账上的现金储备也比网易、小米、京东等公司都多。 -需要注意的是,拼多多还处在投资扩张期。600亿元的净利润,是在大力推动新业务的前提下实现的,它的海外业务TEMU正在全球范围跑马圈地,还没到变现阶段。这意味着拼多多的净利润还有很大提升空间。 -拼多多跟其他巨头很不一样的一个点是,虽然公司赚钱了,账上钱很多,但既不回购也不分红,而是要继续投资,官方说法是“投资于长期价值”。 -其他的互联网巨头,近两年也基本都赚钱了,2023年的盈利在100亿-300亿元之间。理想赚了118亿元,美团139亿元,小米175亿元,百度215亿元,京东233亿元,网易294亿元。快手和滴滴,也在2023年首次扭亏为盈。 -这其中有两家公司值得关注。 -网易是唯一一个跟BAT属于同时代,每年都很赚钱,市值还排在前五的互联网巨头。2023年网易的净利润是294亿元,虽然比不上腾讯、阿里、拼多多,但盈利很稳定。把网易过去五年的净利润数据拉出来,平均数是200亿元。` -}; - -export const mockUserTextInput6 = { - text: `2019年腾讯收入3773亿元,2020年增长了1048亿元,2021年又增长780亿元,但2022年是负增长,2023年只增长了545亿元。看增长率更明显,2020年高达27.8%,2023年只有9.8%。 -阿里的趋势也类似。2020年、2021年的营收增速为31.8%、29.8%,2022年降至3.4%,2023年是7.3%。 -网易从2020年到2023年,营收增速逐年下滑,2023年降至个位数的7.2%;小米2020年、2021年的增速高达19.4%、33.5%,随后两年都是负增长。` -}; - -export const mockUserTextInput7 = { - text: `目前,小红书的广告客户主要集中在消费品行业。有分析师向36氪表示,2023年,小红书广告收入占比最高的是个护美妆(18%),其次为时尚穿搭(12.5%)、美食饮品(10%)、家居家装(8.7%)、母婴(7%)、黄金珠宝(6%)、汽车(5.3%)、日化百货(5.1%)。` -}; - -export const mockUserTextInput8 = { - text: `| 排名 | 城市 | GDP | -|------|------|----------| -| 1 | 上海 | 47219亿 | -| 2 | 北京 | 43761亿 | -| 3 | 深圳 | 34606亿 | -| 4 | 广州 | 30356亿 | -| 5 | 重庆 | 30146亿 | -| 6 | 苏州 | 24653亿 | -| 7 | 成都 | 21257亿 | -| 8 | 杭州 | 18867亿 | -| 9 | 武汉 | 17600亿 | -` -}; - -export const mockUserTextInput9 = { - text: `| 年份 | 杭州GDP (亿元) | 南京GDP (亿元) | -|------|----------------|----------------| -| 2013 | 8343.95 | 8000.81 | -| 2014 | 9201.16 | 8867.93 | -| 2015 | 9600.17 | 9500.02 | -| 2016 | 10003.58 | 10450.08 | -| 2017 | 11700.94 | 11715.09 | -| 2018 | 13509.27 | 12820.40 | -| 2019 | 15373.05 | 14050.15 | -| 2020 | 16106.00 | 14817.95 | -| 2021 | 18109.00 | 16355.00 |` -}; - -export const mockUserTextInput10 = { - text: `你好,我没有找到最新的股市指数波动数据。不过,可以为你提供5月28日A股三大指数的波动情况,数据如下: - -上证指数跌0.46%,为3109.57点; -深证成指跌1.23%,为9391.05点; -创业板指跌1.35%,为1806.25点。 - -如果你需要了解更多股市指数波动信息,可以访问财经新闻网站或咨询专业的投资顾问。` -}; - -export const mockProgressData = { - csv: `年份,进度 - 2024年,0.56`, - input: '请使用环形进度图帮我展示今年的进度数据' -}; - -export const liquidData = { - csv: `进度 - 0.56`, - input: '请使用水波图展示进度数据' -}; diff --git a/packages/vmind/__tests__/browser/src/constants/mockResponse.ts b/packages/vmind/__tests__/browser/src/constants/mockResponse.ts deleted file mode 100644 index c23b5144..00000000 --- a/packages/vmind/__tests__/browser/src/constants/mockResponse.ts +++ /dev/null @@ -1,76 +0,0 @@ -export const mockGPTResponseLineChart = { - THOUGHT: - "The user wants to show the sales trend of each product, and the user wants to use a line chart. The data contains the date field, product type, and sales value, which can be used to draw a line chart. The 'date' field is used as the x-axis because it's a date, and the 'value' field is used as the y-axis because it's a number. The 'type' field is used to distinguish different products.", - CHART_TYPE: 'Line Chart', - FIELD_MAP: { - x: 'date', - y: 'value', - color: 'type' - }, - REASON: - "The line chart is suitable for displaying data that changes over time and can show the change trend, which can meet the user's intent. Line Chart is in the list of supported charts. The visual mapping result meets the user's intent. All fields in the data are used in the visual mapping. The keys in FIELD_MAP are all available visual channels.", - DOUBLE_CHECK: - "The line chart is suitable for displaying data that changes over time and can show the change trend, which can meet the user's intent. Line Chart is in the list of supported charts. The visual mapping result meets the user's intent. All fields in the data are used in the visual mapping. The keys in FIELD_MAP are all available visual channels. The reply content can be directly parsed by JSON.parse() in JavaScript.", - VIDEO_DURATION: 10 -}; - -export const mockGPTResponseBarChart = { - VIDEO_DURATION: 20, - THOUGHT: - "The user wants to show the sales of different products in different regions, which is suitable for displaying with a bar chart. The 'region' field can be used as the x-axis to show the sales of different regions, and the '销售额' field can be used as the y-axis to show the sales of different products. The '商品名称' field can be used as the color to distinguish different products. Since the user wants a business style, a Bar Chart is chosen.", - CHART_TYPE: 'Bar Chart', - FIELD_MAP: { - x: 'region', - y: '销售额', - color: '商品名称' - }, - REASON: - "The user wants to show the sales of different products in different regions, which is suitable for displaying with a bar chart. The 'region' field can be used as the x-axis to show the sales of different regions, and the '销售额' field can be used as the y-axis to show the sales of different products. The '商品名称' field can be used as the color to distinguish different products. Since the user wants a business style, a Bar Chart is chosen.", - DOUBLE_CHECK: - "The Bar Chart is suitable for displaying the sales of different products in different regions, which can meet the user's intent. Bar Chart is in the list of supported charts. The visual mapping result meets the user's intent. All fields in the data are used in the visual mapping. The keys in FIELD_MAP are all available visual channels. The reply content can be directly parsed by JSON.parse() in JavaScript." -}; - -export const mockGPTResponsePieChart = { - VIDEO_DURATION: 10, - THOUGHT: - "The user wants to show the market share of different mobile phone brands, and the user prefers a Chinese style. The data has two fields, one is the brand name, and the other is the market share, which is a percentage. The user's intention is to show the proportion of market share of different brands, which is suitable for a pie chart. The '品牌名称' field is used as the color to distinguish different brands, and the '市场份额' field is used as the angle of the pie chart to show the market share of each brand.", - CHART_TYPE: 'Pie Chart', - FIELD_MAP: { - angle: '市场份额', - color: '品牌名称' - }, - REASON: - 'The data contains the market share, and the user wants to show percentage data, which is suitable for displaying with a pie chart. The 市场份额 is used as the angle of the pie chart to show the market share of each brand. The 品牌名称 is used as the color to distinguish different brands. The Chinese style is not related to the chart type or visual mapping.', - DOUBLE_CHECK: - "The pie chart is suitable for displaying percentage data such as market share, which can meet the user's intent. Pie Chart is in the list of supported charts. The visual mapping result meets the user's intent. All fields in the data are used in the visual mapping. The keys in FIELD_MAP are all available visual channels. The reply content can be directly parsed by JSON.parse() in JavaScript.", - COLOR_PALETTE: ['#FF6000', '#FFE6C7', '#FFA559', '#454545', '#B70404', '#DB005B', '#F79327', '#FFE569'] -}; - -export const mockGPTResponseFunnelChart = { - THOUGHT: - "The user wants to show the proportion of conversion rate between different processes, which is suitable for displaying with a funnel chart. The data contains the conversion rate, process name, and month, and the user wants to show the data in a forest style. The '流程' field is used as the x-axis of the funnel chart to show the name of each process. The '转化率' field is used as the y-axis of the funnel chart to show the proportion of conversion rate between different processes. The 'Month' field is not used in the visual mapping because it's not necessary for the funnel chart.", - CHART_TYPE: 'Funnel Chart', - FIELD_MAP: { - x: '流程', - y: '转化率' - }, - REASON: - "The user wants to show the proportion of conversion rate between different processes, which is suitable for displaying with a funnel chart. The data contains the conversion rate, process name, and month, and the user wants to show the data in a forest style. The '流程' field is used as the x-axis of the funnel chart to show the name of each process. The '转化率' field is used as the y-axis of the funnel chart to show the proportion of conversion rate between different processes. The 'Month' field is not used in the visual mapping because it's not necessary for the funnel chart.", - DOUBLE_CHECK: - "The funnel chart is suitable for displaying the proportion of conversion rate between different processes, which can meet the user's intent. Funnel Chart is in the list of supported charts. The visual mapping result meets the user's intent. All fields in the data are used in the visual mapping. The keys in FIELD_MAP are all available visual channels. The reply content can be directly parsed by JSON.parse() in JavaScript." -}; - -export const mockGPTResponseDualAxisChart = { - THOUGHT: - 'The user wants to compare the breakfast consumption of male and female students, which is suitable for displaying with a bar chart. The data contains the breakfast consumption of male and female students and the day of the week, and the user wants to show the data in a forest style.', - CHART_TYPE: 'Bar Chart', - FIELD_MAP: { - x: '时间', - y: ['男-早餐', '女-早餐'], - color: '性别' - }, - REASON: - "The user wants to compare the breakfast consumption of male and female students, which is suitable for displaying with a bar chart. The '时间' field is used as the x-axis of the bar chart to show the day of the week. The '男-早餐' and '女-早餐' fields are used as the y-axis of the bar chart to show the breakfast consumption of male and female students. The '性别' field is used as the color to distinguish between male and female students. The forest style is used to make the chart more visually appealing.", - DOUBLE_CHECK: - "The bar chart is suitable for comparing data between different categories, which can meet the user's intent. Bar Chart is in the list of supported charts. The visual mapping result meets the user's intent. All fields in the data are used in the visual mapping. The keys in FIELD_MAP are all available visual channels. The reply content can be directly parsed by JSON.parse() in JavaScript." -}; diff --git a/packages/vmind/__tests__/browser/src/index.scss b/packages/vmind/__tests__/browser/src/index.scss deleted file mode 100644 index c022b4ff..00000000 --- a/packages/vmind/__tests__/browser/src/index.scss +++ /dev/null @@ -1,17 +0,0 @@ -#root { - height: 100vh; -} - -.flex-text-area { - display: flex; - flex: 1; - flex-direction: column; - - textarea { - flex: 1; - } -} - -.flex-1 { - flex: 1; -} \ No newline at end of file diff --git a/packages/vmind/__tests__/browser/src/index.tsx b/packages/vmind/__tests__/browser/src/index.tsx deleted file mode 100644 index 39f0670e..00000000 --- a/packages/vmind/__tests__/browser/src/index.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import App from './App'; -import '@arco-design/web-react/dist/css/arco.min.css'; - -ReactDOM.createRoot(document.getElementById('root')!).render( - - - -); diff --git a/packages/vmind/__tests__/browser/src/pages/ChartGeneration/ChartGeneration.tsx b/packages/vmind/__tests__/browser/src/pages/ChartGeneration/ChartGeneration.tsx deleted file mode 100644 index 6f2eb8e7..00000000 --- a/packages/vmind/__tests__/browser/src/pages/ChartGeneration/ChartGeneration.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import React, { useState } from 'react'; -import { Layout } from '@arco-design/web-react'; -import { DataInput } from './DataInput'; -import { ChartPreview } from './ChartPreview'; -const Sider = Layout.Sider; -const Content = Layout.Content; - -export function ChartGenerationPage() { - const [spec, setSpec] = useState(''); - const [specList, setSpecList] = useState([]); - - const [time, setTime] = useState<{ - totalTime: number; - frameArr: any[]; - }>(); - const [costTime, setCostTime] = useState(0); - return ( - - - { - setSpec(spec); - setSpecList([]); - setTime(time); - setCostTime(costTime); - }} - onSpecListGenerate={(specList: any[], time: any, costTime: number) => { - setSpec(undefined); - setSpecList(specList); - setTime(time); - setCostTime(costTime); - }} - /> - - - - - - ); -} diff --git a/packages/vmind/__tests__/browser/src/pages/ChartGeneration/ChartPreview.tsx b/packages/vmind/__tests__/browser/src/pages/ChartGeneration/ChartPreview.tsx deleted file mode 100644 index ca7e02b8..00000000 --- a/packages/vmind/__tests__/browser/src/pages/ChartGeneration/ChartPreview.tsx +++ /dev/null @@ -1,212 +0,0 @@ -import React, { useState, useCallback, useEffect, useRef } from 'react'; -import '../index.scss'; -import { Button, Input, Card, Space, Modal, Spin } from '@arco-design/web-react'; -import VChart, { registerLiquidChart } from '@visactor/vchart'; -import { ManualTicker, defaultTimeline } from '@visactor/vrender-core'; -import VMind from '../../../../../src'; -import { createFFmpeg, fetchFile } from '@ffmpeg/ffmpeg'; -import { createCanvas } from 'canvas'; -import { isNil } from '@visactor/vutils'; - -const TextArea = Input.TextArea; - -type IPropsType = { - spec: any; - specList?: any; - time: - | { - totalTime: number; - frameArr: any[]; - } - | undefined; - costTime: number; - style?: any; -}; - -function downloadGif(link: string, filename = 'out') { - const a = document.createElement('a'); - a.href = link; - a.download = `${filename}.gif`; - a.dispatchEvent(new MouseEvent('click')); -} - -function downloadVideo(link: string, filename = 'out') { - const a = document.createElement('a'); - a.href = link; - a.download = `${filename}.mp4`; - a.dispatchEvent(new MouseEvent('click')); -} - -registerLiquidChart(); - -export function ChartPreview(props: IPropsType) { - const [generating, setGenerating] = useState(false); - const [outType, setOutType] = useState<'gif' | 'video' | ''>(''); - const [src, setSrc] = useState(''); - const vchartRef = useRef(null); - - const vmind = new VMind({}); - // const [describe, setDescribe] = useState(mockUserInput6.input); - // const [csv, setCsv] = useState(mockUserInput6.csv); - // const [loading, setLoading] = useState(false); - - // const askGPT = useCallback(async () => { - // setLoading(true); - // const spec = await(NLToChartPipe(csv, describe)); - // props.onSpecGenerate(spec, 3000); - // setLoading(false); - // }, [describe, csv]); - const generateVideo = useCallback(async () => { - const { spec, time } = props; - if (!time || !spec) { - return; - } - setGenerating(true); - const ffmpeg = createFFmpeg({ - log: true - }); - await ffmpeg.load(); - const data = await vmind.exportVideo(spec, time, { - VChart, - FFmpeg: ffmpeg, - fetchFile, - ManualTicker, - defaultTimeline, - createCanvas - } as any); - const src = URL.createObjectURL(new Blob([data], { type: 'video/mp4' })); - setSrc(src); - setOutType('video'); - setGenerating(false); - }, [props, vmind]); - - const generateGif = useCallback(async () => { - const { spec, time } = props; - if (!time || !spec) { - return; - } - setGenerating(true); - const ffmpeg = createFFmpeg({ - log: true - }); - await ffmpeg.load(); - const data = await vmind.exportGIF(spec, time, { - VChart, - FFmpeg: ffmpeg, - fetchFile, - ManualTicker, - defaultTimeline, - createCanvas - }); - const src = URL.createObjectURL(new Blob([data], { type: 'video/mp4' })); - setSrc(src); - setOutType('gif'); - setGenerating(false); - // downloadVideo(src); - }, [props, vmind]); - - useEffect(() => { - //defaultTicker.mode = 'raf'; - const { spec, time } = props; - if (!time || !spec) { - vchartRef.current = null; - return; - } - //spec.animation = false; - if (isNil(vchartRef.current)) { - const cs = new VChart(spec, { - dom: 'chart', - mode: 'desktop-browser', - dpr: 2, - disableDirtyBounds: true - }); - vchartRef.current = cs; - vchartRef.current.renderAsync(); - } else { - vchartRef.current.updateSpec(props.spec); - } - }, [props]); - - useEffect(() => { - //defaultTicker.mode = 'raf'; - const { specList } = props; - specList.forEach((spec: any, index: number) => { - (document.getElementById(`chart-${index}`) as any).innerHTML = ''; - const cs = new VChart(spec, { - dom: `chart-${index}`, - mode: 'desktop-browser', - dpr: 2, - disableDirtyBounds: true - }); - cs.renderAsync(); - }); - }, [props]); - - return ( -
- { - setOutType(''); - if (outType === 'gif') { - downloadGif(src); - } else { - downloadVideo(src); - } - }} - onCancel={() => setOutType('')} - > - {outType === 'gif' ? : - - -
- - - - -
-
- {props.spec ?
: null} -
- {(props.specList ?? []).map((spec, index: number) => ( -
- ))} -
-
- {props.spec ? ( -
-

Total Time: {props.costTime / 1000} s

-

spec:

- - {/*
{JSON.stringify(props.spec, null, 4)}
*/} -
- ) : null} -
-
-
- ); -} diff --git a/packages/vmind/__tests__/browser/src/pages/ChartGeneration/DataInput.tsx b/packages/vmind/__tests__/browser/src/pages/ChartGeneration/DataInput.tsx deleted file mode 100644 index 03f21615..00000000 --- a/packages/vmind/__tests__/browser/src/pages/ChartGeneration/DataInput.tsx +++ /dev/null @@ -1,461 +0,0 @@ -/* eslint-disable no-console */ -import React, { useState, useCallback, useMemo } from 'react'; -import '../index.scss'; -import { - Avatar, - Input, - Divider, - Button, - InputNumber, - Upload, - Message, - Select, - Radio, - Checkbox, - Modal -} from '@arco-design/web-react'; -import { - mockUserInput10, - mockUserInput2, - mockUserInput3, - mockUserInput3Eng, - mockUserInput6, - mockUserInput6Eng, - mockUserInput8, - carSaleMockData, - mockUserInput15, - acceptRatioData, - mallSalesData, - hotWordsData, - mockUserInput4, - mockUserInput5, - mockUserInput9, - mockUserInput11, - mockUserInput12, - mockUserInput13, - mockUserInput14, - mockUserInput16, - mockUserInput17, - mockUserInput18, - SalesRecordsData, - gmvData, - mockProgressData, - liquidData, - bubbleCirclePackingData, - rangeColumnChartData, - sunburstChartData, - treemapChartData, - gaugeChartData, - linearProgressChartData, - basicHeatMapChartData, - vennChartData, - mapChartData - // singleColumnLineCombinationChartData, - // singleColumnLineCombinationChartData1, - // singleColumnBarCombinationChartData1, - // singleColumnBarCombinationChartData, - // dynamicScatterPlotData, - // dynamicRoseData, - // dynamicRoseData1, - // sequenceData -} from '../../constants/mockData'; -import VMind, { ArcoTheme } from '../../../../../src/index'; -import { Model } from '../../../../../src/index'; -import VChart from '@visactor/vchart'; -import axios from 'axios'; - -const TextArea = Input.TextArea; -const Option = Select.Option; -const RadioGroup = Radio.Group; - -type IPropsType = { - onSpecGenerate: ( - spec: any, - time: { - totalTime: number; - frameArr: any[]; - }, - costTime: number - ) => void; - onSpecListGenerate: any; -}; -const demoDataList: { [key: string]: any } = { - pie: mockUserInput2, - 'dynamic bar zh_cn': mockUserInput6, - line: mockUserInput8, - column: mockUserInput3, - column2: mockUserInput10, - wordcloud: hotWordsData, - wordcloud2: mockUserInput5, - 'scatter plot': mockUserInput4, - funnel: mockUserInput9, - 'dual-axis': mockUserInput11, - waterfall: mockUserInput12, - rose: mockUserInput13, - radar: mockUserInput14, - sankey: mockUserInput15, - 'box-plot': mockUserInput16, - gmv: gmvData, - 'Electric vehicle sales': carSaleMockData, - 'College entrance examination': acceptRatioData, - 'Shopping Mall Sales Performance': mallSalesData, - 'Global GDP': mockUserInput6Eng, - 'Sales of different drinkings': mockUserInput3Eng, - 'Multi measure': mockUserInput17, - DataQuery: mockUserInput18, - salesData: SalesRecordsData, - progress: mockProgressData, - liquid: liquidData, - BubbleCirclePacking: bubbleCirclePackingData, - Map: mapChartData, - RangeColumn: rangeColumnChartData, - Sunburst: sunburstChartData, - TreeMap: treemapChartData, - Gauge: gaugeChartData, - LinearProgress: linearProgressChartData, - BasicHeatMap: basicHeatMapChartData, - Venn: vennChartData - // SingleColumnLineCommon: singleColumnLineCombinationChartData, - // SingleColumnLineCommon1: singleColumnLineCombinationChartData1, - // SingleColumnBarCommon: singleColumnBarCombinationChartData, - // SingleColumnBarCommon1: singleColumnBarCombinationChartData1, - // dynamicScatterPlotData: dynamicScatterPlotData, - // dynamicRoseData: dynamicRoseData, - // dynamicRoseData1: dynamicRoseData1, - // sequenceData: sequenceData -}; - -const globalVariables = (import.meta as any).env; -const ModelConfigMap: Record = { - [Model.GPT3_5]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, - [Model.GPT4]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, - [Model.GPT_4o]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY }, - [Model.DEEPSEEK_R1]: { url: globalVariables.VITE_DEEPSEEK_URL, key: globalVariables.VITE_DEEPSEEK_KEY }, - [Model.DEEPSEEK_V3]: { url: globalVariables.VITE_DEEPSEEK_URL, key: globalVariables.VITE_DEEPSEEK_KEY }, - [globalVariables.VITE_CUSTOM_MODEL || 'Custom']: { - url: globalVariables.VITE_CUSTOM_URL, - key: globalVariables.VITE_CUSTOM_KEY - } -}; -const OPENAI_API_URL = 'https://api.openai.com/v1/chat/completions'; - -const MAP_CHART_BASEMAP = 'https://lf9-dp-fe-cms-tos.byteorg.com/obj/bit-cloud/geojson/world.json'; -const specTemplateTest = false; -export function DataInput(props: IPropsType) { - const defaultDataKey = Object.keys(demoDataList)[3]; - const [image, setImage] = useState(); - const [describe, setDescribe] = useState(demoDataList[defaultDataKey].input); - const [csv, setCsv] = useState(demoDataList[defaultDataKey].csv); - //const [spec, setSpec] = useState(''); - //const [time, setTime] = useState(1000); - const [model, setModel] = useState(Model.GPT_4o); - const [useDataQuery, setUseDataQuery] = useState(false); - const [showThoughts, setShowThoughts] = useState(false); - const [visible, setVisible] = React.useState(false); - const [url, setUrl] = React.useState(ModelConfigMap[model]?.url ?? OPENAI_API_URL); - const [apiKey, setApiKey] = React.useState(ModelConfigMap[model]?.key); - - const [loading, setLoading] = useState(false); - - const vmind: VMind = useMemo(() => { - if (!url || !apiKey) { - Message.error('Please set your LLM URL and API Key!!!'); - return null as unknown as VMind; - } - return new VMind({ - url, - model, - showThoughts: showThoughts, - headers: { - //must has Authorization: `Bearer ${openAIKey}` if use openai api - Authorization: `Bearer ${apiKey}`, - 'api-key': apiKey - } - // custom request test - // customRequestFunc: { - // chartAdvisor: async (messages, tools, options) => { - // return await axios(url, { - // method: 'POST', - // headers: options!.headers as any, - // data: { - // model: Model.DOUBAO_PRO_32K, - // messages, - // tools, - // stream: false - // } - // }).then(response => response.data); - // }, - // chartCommand: async (messages, tools, options) => { - // return { - // logId: '111', - // id: '111', - // choices: [ - // { - // index: 0, - // message: { - // role: 'assistant', - // content: '' - // }, - // finish_reason: 'stop' - // } - // ], - // usage: { - // prompt_tokens: 1, - // completion_tokens: 1, - // total_tokens: 2 - // } - // }; - // } - // } - }); - }, [apiKey, model, showThoughts, url]); - - const askGPT = useCallback(async () => { - //setLoading(true); - //const { fieldInfo: fieldInfoQuery, dataset: datasetQuery } = await vmind?.dataQuery(describe, fieldInfo, dataset); - //const dataset = mockData4; - //const fieldInfo = vmind?.getFieldInfo(dataset); - const dataset = image ? undefined : vmind.parseCSVData(csv).dataset; - - const finalDataset = specTemplateTest && model !== Model.CHART_ADVISOR ? undefined : dataset; - - const startTime = new Date().getTime(); - - // The map chart requires the user to register a base map named map in advance using VChart.registerMap - if (csv === demoDataList.Map.csv) { - const response = await fetch(MAP_CHART_BASEMAP); - const geoJson = await response.json(); - VChart.registerMap('map', geoJson); - } - const { - spec, - chartAdvistorRes, - time = { - totalTime: 2000, - frameArr: [] - } - } = await vmind.generateChart(describe, undefined, finalDataset, { - image, - enableDataQuery: useDataQuery, - //chartTypeList: [ChartType.BarChart, ChartType.LineChart], - // colorPalette: ArcoTheme.colorScheme, - theme: 'light' - }); - const endTime = new Date().getTime(); - console.log((vmind as any).data2ChartSchedule.getContext()); - if (chartAdvistorRes?.length) { - props.onSpecListGenerate( - chartAdvistorRes.map(v => (specTemplateTest ? vmind.fillSpecWithData(v.spec, dataset) : v.spec)) - ); - } else { - const finalSpec = specTemplateTest ? vmind.fillSpecWithData(spec, dataset) : spec; - - const costTime = endTime - startTime; - props.onSpecGenerate(finalSpec, time as any, costTime); - } - - setLoading(false); - }, [vmind, csv, model, describe, useDataQuery, props, image]); - - return ( -
-
-
- -
-
-
-

- - 0 - - Select Demo Data or image (optional) -

- - - { - const uploadFile = e.dataTransfer.files[0]; - if (!uploadFile.type.startsWith('image/')) { - Message.info('Please upload image files only'); - return; - } - }} - onRemove={(a, b) => { - setImage(undefined); - }} - fileList={image ? [{ url: image, uid: url }] : []} - customRequest={option => { - const { file, onError, onSuccess } = option; - const reader = new FileReader(); - reader.readAsDataURL(file); - reader.addEventListener('load', () => { - const result = reader.result; - if (!result) { - onError?.(); - return; - } - - setImage(result as string); - // Handle the image data as needed - onSuccess?.(); - }); - }} - tip="Only images can be uploaded" - /> -
- -
-
-

- - 1 - - What would you like to visualize? -

- - - {/*
{JSON.stringify(props.spec, null, 4)}
*/} -
- ) : null} - - -
- ); -} diff --git a/packages/vmind/__tests__/browser/src/pages/NewChartGeneration/DataInput.tsx b/packages/vmind/__tests__/browser/src/pages/NewChartGeneration/DataInput.tsx deleted file mode 100644 index 7d68567f..00000000 --- a/packages/vmind/__tests__/browser/src/pages/NewChartGeneration/DataInput.tsx +++ /dev/null @@ -1,275 +0,0 @@ -import React, { useState, useCallback, useMemo } from 'react'; -import '../index.scss'; -import { Avatar, Input, Divider, Button, Message, Select, Radio, Modal } from '@arco-design/web-react'; -import { chartGenerationMockData } from '../../constants/chartGeneratorData'; -import type { DataTable, FieldInfo } from '../../../../../src/index'; -import VMind from '../../../../../src/index'; -import { Model, AtomName, Schedule, LLMManage, DataType } from '../../../../../src/index'; - -const TextArea = Input.TextArea; -const Option = Select.Option; -const RadioGroup = Radio.Group; - -type IPropsType = { - onSpecGenerate: (spec: any, command: string, costTime: number) => void; - onSpecListGenerate?: any; -}; - -const globalVariables = (import.meta as any).env; -const ModelConfigMap: any = { - [Model.DOUBAO_PRO]: { url: globalVariables.VITE_DOUBAO_URL, key: globalVariables.VITE_DOUBAO_KEY }, - [Model.GPT_4o]: { url: globalVariables.VITE_GPT_URL, key: globalVariables.VITE_GPT_KEY } -}; -const OPENAI_API_URL = 'https://api.openai.com/v1/chat/completions'; - -const specTemplateTest = false; - -function dataTypeTransfer(dataType: string): DataType { - switch (dataType) { - case 'date': - case 'time': - return DataType.DATE; - case 'count': - return DataType.INT; - case 'numerical': - case 'ratio': - return DataType.FLOAT; - default: - return DataType.STRING; - } -} - -function transferFieldInfoInSimpleFieldInfo(fieldInfo: FieldInfo[]): FieldInfo[] { - return fieldInfo.map(item => ({ - fieldName: item.fieldName, - description: item.description, - type: dataTypeTransfer(item.type), - role: item.role - })); -} - -export function DataInput(props: IPropsType) { - const [dataTableIndex, setdataTableIndex] = useState(0); - const [query, setQuery] = useState(''); - const [model, setModel] = useState(Model.GPT_4o); - const mockData = React.useMemo(() => { - const llmData = chartGenerationMockData.find(item => item.llm === model) ?? chartGenerationMockData[0]; - return llmData.result; - }, [model]); - const [dataTable, setDataTable] = useState(mockData[dataTableIndex].context.dataTable as any); - const [fieldInfo, setFieldInfo] = useState(mockData[dataTableIndex].context.fieldInfo as any); - const [visible, setVisible] = React.useState(false); - const [url, setUrl] = React.useState(ModelConfigMap[model]?.url ?? OPENAI_API_URL); - const [apiKey, setApiKey] = React.useState(ModelConfigMap[model]?.key); - - const [loading, setLoading] = useState(false); - - React.useEffect(() => { - setDataTable(mockData[dataTableIndex].context.dataTable as any); - setFieldInfo(mockData[dataTableIndex].context.fieldInfo as any); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [model]); - - const llm = React.useRef( - new LLMManage({ - url, - headers: { - 'api-key': apiKey, - Authorization: `Bearer ${apiKey}` - }, - model, - maxTokens: 2048 - }) - ); - const schedule = React.useRef>( - new Schedule([AtomName.DATA_CLEAN, AtomName.CHART_COMMAND], { - base: { llm: llm.current }, - chartCommand: { useDataTable: true } - }) - ); - - React.useEffect(() => { - llm.current.updateOptions({ - url, - headers: { - 'api-key': apiKey, - Authorization: `Bearer ${apiKey}` - }, - model - }); - }, [url, model, apiKey]); - - const vmind: VMind = useMemo(() => { - if (!url || !apiKey) { - Message.error('Please set your LLM URL and API Key!!!'); - return null as unknown as VMind; - } - return new VMind({ - url, - model, - headers: { - //must has Authorization: `Bearer ${openAIKey}` if use openai api - Authorization: `Bearer ${apiKey}`, - 'api-key': apiKey - } - }); - }, [apiKey, model, url]); - - const askGPT = useCallback(async () => { - let finalDataTable = specTemplateTest && model !== Model.CHART_ADVISOR ? undefined : dataTable; - let finalFieldInfo = fieldInfo; - const startTime = new Date().getTime(); - - setLoading(true); - schedule.current.setNewTask({ - ...mockData[dataTableIndex].context - }); - const ctx = await schedule.current.run(query); - const finalDescribe = ctx.command; - finalDataTable = ctx.dataTable; - finalFieldInfo = ctx.fieldInfo || fieldInfo; - const chartGenerationRes = finalDescribe - ? await vmind.generateChart(finalDescribe, transferFieldInfoInSimpleFieldInfo(finalFieldInfo), finalDataTable, { - theme: 'light' - }) - : { spec: null }; - const endTime = new Date().getTime(); - const { spec } = chartGenerationRes; - - const finalSpec = specTemplateTest ? vmind.fillSpecWithData(spec, dataTable) : spec; - - const costTime = endTime - startTime; - props.onSpecGenerate(finalSpec, finalDescribe, costTime); - - setLoading(false); - }, [model, dataTable, fieldInfo, mockData, dataTableIndex, query, vmind, props]); - - return ( -
-
-
- -
-
-
-

- - 0 - - Select Demo Data (optional) -

- -
-
-

- - 1 - - Query to adjust result? -

- -