diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 46b5327ed20..00000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,329 +0,0 @@ -version: 2.1 -orbs: - browser-tools: circleci/browser-tools@1.2.4 -aliases: - - &save_git_cache - save_cache: - paths: - - .git - key: v3-git-{{ .Revision }} - - &restore_git_cache - restore_cache: - keys: - - v3-git-{{ .Revision }} - - v3-git- - - &save_build_cache - save_cache: - paths: - - build - key: v3-build-{{ .Revision }} - - &restore_build_cache - restore_cache: - keys: - - v3-build-{{ .Revision }} - - &save_dist_cache - save_cache: - paths: - - dist - key: v3-dist-{{ .Revision }} - - &restore_dist_cache - restore_cache: - keys: - - v3-dist-{{ .Revision }} - - &save_npm_cache - save_cache: - paths: - - node_modules - key: v3-npm-{{ checksum "package-lock.json" }} - - &restore_npm_cache - restore_cache: - keys: - - v3-npm-{{ checksum "package-lock.json" }} - - v3-npm- - - &defaults - docker: - - image: cimg/node:12.22.11-browsers - auth: - username: $DOCKERHUB_USERNAME - password: $DOCKERHUB_PASSWORD - working_directory: ~/repo - -jobs: - build-test-no-cache: - <<: *defaults - environment: - JEST_JUNIT_OUTPUT_DIR: test-results - NODE_OPTIONS: --max-old-space-size=4000 - steps: - - *restore_git_cache - - checkout - - run: npm ci - - run: - name: Lint - command: npm run test:lint -- --quiet --output-file test-results/eslint-results.xml --format junit - - run: - name: Unit - environment: - JEST_JUNIT_OUTPUT_NAME: unit-results.xml - command: npm run test:unit -- --reporters="default" --reporters="jest-junit" --coverage --coverageReporters=text --coverageReporters=lcov --maxWorkers="2" - - run: - name: Build - environment: - NODE_ENV: production - command: npm run build - - browser-tools/install-chrome - - browser-tools/install-chromedriver - - run: - name: Integration - environment: - JEST_JUNIT_OUTPUT_NAME: integration-results.xml - command: | - google-chrome --version - chromedriver --version - npm run test:integration -- --reporters="default" --reporters="jest-junit" - - store_artifacts: - path: coverage - - store_test_results: - path: test-results - setup: - <<: *defaults - steps: - - *restore_git_cache - - checkout - - run: npm ci - - *save_git_cache - - *save_npm_cache - lint: - <<: *defaults - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - run: - name: Lint - command: npm run test:lint -- --quiet --output-file test-results/eslint/results.xml --format junit - - store_test_results: - path: test-results - unit: - <<: *defaults - environment: - JEST_JUNIT_OUTPUT_NAME: results.xml - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - run: - name: Unit - environment: - JEST_JUNIT_OUTPUT_DIR: test-results/unit - command: npm run test:unit -- --reporters="default" --reporters="jest-junit" --coverage --coverageReporters=text --coverageReporters=lcov --maxWorkers="2" - - store_artifacts: - path: coverage - - store_test_results: - path: test-results - build: - <<: *defaults - environment: - NODE_ENV: production - NODE_OPTIONS: --max-old-space-size=4000 - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - run: - name: Build - command: npm run build - - *save_build_cache - - *save_dist_cache - store_build: - <<: *defaults - steps: - - *restore_build_cache - - store_artifacts: - path: build - store_dist: - <<: *defaults - steps: - - *restore_dist_cache - - store_artifacts: - path: dist - integration: - <<: *defaults - parallelism: 2 - environment: - JEST_JUNIT_OUTPUT_NAME: results.txt - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - *restore_build_cache - - browser-tools/install-chrome - - browser-tools/install-chromedriver - - run: - name: Integration - environment: - JEST_JUNIT_OUTPUT_DIR: test-results/integration - command: | - google-chrome --version - chromedriver --version - export TESTFILES=$(circleci tests glob "test/integration/*.test.js" | circleci tests split --split-by=timings) - $(npm bin)/jest ${TESTFILES} --reporters="default" --reporters="jest-junit" --runInBand - - store_test_results: - path: test-results - - deploy-npm: - <<: *defaults - environment: - NODE_OPTIONS: --max-old-space-size=4000 - steps: - - *restore_git_cache - - *restore_dist_cache - - checkout - - run: | - echo export RELEASE_VERSION="0.1.0-prerelease.$(date +'%Y%m%d%H%M%S')" >> $BASH_ENV - echo export NPM_TAG=latest >> $BASH_ENV - if [ "$CIRCLE_BRANCH" == "master" ] - then echo export NPM_TAG=stable >> $BASH_ENV - fi - if [[ "$CIRCLE_BRANCH" == hotfix/* ]] # double brackets are important for matching the wildcard - then echo export NPM_TAG=hotfix >> $BASH_ENV - fi - - run: npm version --no-git-tag-version $RELEASE_VERSION - - run: | - npm set //registry.npmjs.org/:_authToken=$NPM_TOKEN - npm publish --tag $NPM_TAG - - run: git tag $RELEASE_VERSION - - run: git push $CIRCLE_REPOSITORY_URL $RELEASE_VERSION - - deploy-gh-pages: - <<: *defaults - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - *restore_build_cache - - run: | - git config --global user.email $(git log --pretty=format:"%ae" -n1) - git config --global user.name $(git log --pretty=format:"%an" -n1) - - run: npm run deploy -- -e $CIRCLE_BRANCH - push-translations: - <<: *defaults - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - run: npm run i18n:src - - run: npm run i18n:push - -workflows: - version: 2 - push-translations: - triggers: - - schedule: - cron: 0 0 * * * # daily at 12 UTC, 8 ET - filters: - branches: - only: - - develop - jobs: - - setup: - context: - - dockerhub-credentials - - push-translations: - context: - - dockerhub-credentials - requires: - - setup - - build-test-no-deploy: - jobs: - - build-test-no-cache: - context: - - dockerhub-credentials - filters: - branches: - ignore: - - master - - develop - - /^hotfix\/.*/ - build-test-deploy: - jobs: - - setup: - context: - - dockerhub-credentials - filters: - branches: - only: - - master - - develop - - /^hotfix\/.*/ - - lint: - context: - - dockerhub-credentials - requires: - - setup - - unit: - context: - - dockerhub-credentials - requires: - - setup - - build: - context: - - dockerhub-credentials - requires: - - setup - - integration: - context: - - dockerhub-credentials - requires: - - build - - store_build: - context: - - dockerhub-credentials - requires: - - build - filters: - branches: - only: - - master - - develop - - /^hotfix\/.*/ - - store_dist: - context: - - dockerhub-credentials - requires: - - build - filters: - branches: - only: - - master - - develop - - /^hotfix\/.*/ - - deploy-npm: - context: - - dockerhub-credentials - requires: - - lint - - unit - - integration - - build - filters: - branches: - only: - - master - - develop - - /^hotfix\/.*/ - - deploy-gh-pages: - context: - - dockerhub-credentials - requires: - - lint - - unit - - integration - - build - filters: - branches: - ignore: - - /^dependabot/.*/ - - /^renovate/.*/ - - /^pull/.*/ # don't deploy to gh pages on PRs. diff --git a/.eslintignore b/.eslintignore index 7150f3c6ff7..6f5f5f9d79b 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,7 +1,10 @@ node_modules/* build/* dist/* -# Files imported from upstream +test/* +src/examples/* + +# Files vendored from upstreams src/addons/addons src/addons/libraries src/addons/api-libraries diff --git a/.eslintrc.js b/.eslintrc.js index 36ff570d9d3..3010f60d3f1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,3 +1,3 @@ module.exports = { - extends: ['scratch', 'scratch/node'] + extends: ['scratch', 'scratch/node', 'scratch/es6'] }; diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 3530816bac6..f44e80bdd52 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,10 +5,9 @@ updates: schedule: interval: "daily" allow: + - dependency-name: "@turbowarp/*" + - dependency-name: "scratch-audio" - dependency-name: "scratch-render" - dependency-name: "scratch-vm" - dependency-name: "scratch-paint" - - dependency-name: "scratch-svg-renderer" - dependency-name: "scratch-blocks" - - dependency-name: "scratch-storage" - - dependency-name: "@turbowarp/scratch-l10n" diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 9b8d8242b7b..5d3b156b396 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -1,22 +1,22 @@ -name: Node.js CI +name: CI on: push: - branches: [ develop ] pull_request: - branches: [ develop ] jobs: build: - runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Use Node.js - uses: actions/setup-node@v1 + - uses: actions/checkout@v4 + with: + persist-credentials: false + - name: Install Node.js + uses: actions/setup-node@v4 with: - node-version: 10.x + node-version: 22 + cache: npm - run: npm ci - run: npm run build - run: npm run test:unit diff --git a/.gitignore b/.gitignore index 14a056e0df1..93a492d7795 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,12 @@ npm-* # Generated translation files /translations /locale + +# Other generated source +/src/generated + +# Downloaded during "npm install" +/static/microbit + +# for act +.secrets diff --git a/.npmignore b/.npmignore index dee8a6a5d92..61247064a40 100644 --- a/.npmignore +++ b/.npmignore @@ -5,9 +5,6 @@ /node_modules npm-* -# Double copies of all the static assets and tutorial gifs -/src - # Testing /.nyc_output /coverage diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000000..6f7f377bf51 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v16 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000000..43f82aa6950 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,4966 @@ +We don't use this file + + diff --git a/README.md b/README.md index dc339fe9aba..755fb7ad9ae 100644 --- a/README.md +++ b/README.md @@ -162,6 +162,12 @@ If you want to watch the browser as it runs the test, rather than running headle USE_HEADLESS=no $(npm bin)/jest --runInBand test/integration/backpack.test.js ``` +_Note: If you are seeing failed tests related to `chromedriver` being incompatible with your version of Chrome, you may need to update `chromedriver` with:_ + +```bash +npm install chromedriver@{version} +``` + ## Troubleshooting ### Ignoring optional dependencies @@ -289,6 +295,5 @@ Here's what will happen in the project state machine: 7. The `SHOWING_WITH_ID` state. Now the project appears normally and is playable and editable. ## Donate -We provide [Scratch](https://scratch.mit.edu) free of charge, and want to keep it that way! Please consider making a [donation](https://secure.donationpay.org/scratchfoundation/) to support our continued engineering, design, community, and resource development efforts. Donations of any size are appreciated. Thank you! - +We provide [Scratch](https://scratch.mit.edu) free of charge, and want to keep it that way! Please consider making a [donation](https://www.scratchfoundation.org/donate) to support our continued engineering, design, community, and resource development efforts. Donations of any size are appreciated. Thank you! --> diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 00000000000..d89185ea291 --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,4 @@ +module.exports = { + extends: ['@commitlint/config-conventional'], + ignores: [message => message.startsWith('chore(release):')] +}; diff --git a/package-lock.json b/package-lock.json index 409697a7e5a..8bd3162290c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,700 +1,332 @@ { "name": "scratch-gui", - "version": "0.1.0", - "lockfileVersion": 1, + "version": "3.2.37", + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/cli": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.14.8.tgz", - "integrity": "sha512-lcy6Lymft9Rpfqmrqdd4oTDdUx9ZwaAhAfywVrHG4771Pa6PPT0danJ1kDHBXYqh4HHSmIdA+nlmfxfxSDPtBg==", - "requires": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.2", - "chokidar": "^3.4.0", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.2", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.2.tgz", - "integrity": "sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg==", - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^5.1.2", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "optional": true, - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "optional": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "optional": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" + "packages": { + "": { + "name": "scratch-gui", + "version": "3.2.37", + "license": "GPL-3.0", + "dependencies": { + "@microbit/microbit-universal-hex": "0.2.2", + "@turbowarp/jszip": "^3.11.1", + "@turbowarp/nanolog": "^1.0.1", + "@turbowarp/scratch-l10n": "^3.1001.0-202401241456-994097a5", + "@turbowarp/scratch-storage": "^0.0.202505311821", + "@turbowarp/scratch-svg-renderer": "^1.0.0-202312242305-12c360b", + "@turbowarp/startaudiocontext": "^1.0.0", + "arraybuffer-loader": "^1.0.6", + "autoprefixer": "^9.0.1", + "balance-text": "3.3.1", + "base64-loader": "1.0.0", + "bowser": "1.9.4", + "classnames": "2.2.6", + "computed-style-to-inline-style": "3.0.0", + "cookie": "0.5.0", + "copy-webpack-plugin": "6.4.1", + "core-js": "2.5.7", + "css-loader": "^1.0.0", + "dapjs": "2.3.0", + "es6-object-assign": "1.1.0", + "get-float-time-domain-data": "0.1.0", + "get-user-media-promise": "1.1.4", + "intl": "1.2.5", + "intl-messageformat": "^2.2.0", + "js-base64": "2.4.9", + "keymirror": "0.1.1", + "lodash.bindall": "4.4.0", + "lodash.debounce": "4.0.8", + "lodash.defaultsdeep": "4.6.1", + "lodash.omit": "4.5.0", + "lodash.throttle": "4.0.1", + "omggif": "1.0.9", + "papaparse": "5.3.0", + "postcss-import": "^12.0.0", + "postcss-loader": "^3.0.0", + "postcss-simple-vars": "^5.0.1", + "prop-types": "^15.5.10", + "query-string": "^5.1.1", + "raw-loader": "^0.5.1", + "react": "^16.0.0", + "react-contextmenu": "2.9.4", + "react-dom": "^16.0.0", + "react-draggable": "3.0.5", + "react-ga": "2.5.3", + "react-intl": "2.9.0", + "react-modal": "3.9.1", + "react-popover": "0.5.10", + "react-redux": "5.0.7", + "react-responsive": "5.0.0", + "react-string-replace": "^0.4.4", + "react-style-proptype": "3.2.2", + "react-tabs": "2.3.0", + "react-tooltip": "3.8.0", + "react-virtualized": "9.20.1", + "redux": "3.7.2", + "redux-throttle": "0.1.1", + "scratch-audio": "github:TurboWarp/scratch-audio#develop", + "scratch-blocks": "github:TurboWarp/scratch-blocks#develop-builds", + "scratch-paint": "github:TurboWarp/scratch-paint#develop", + "scratch-render": "github:TurboWarp/scratch-render#develop", + "scratch-vm": "github:TurboWarp/scratch-vm#develop", + "style-loader": "^0.23.0", + "text-encoding": "0.7.0", + "to-style": "1.3.3", + "wav-encoder": "1.3.0", + "xhr": "2.5.0" + }, + "devDependencies": { + "@babel/cli": "^7.26.4", + "@babel/core": "^7.26.9", + "@babel/plugin-proposal-object-rest-spread": "7.14.7", + "@babel/plugin-syntax-dynamic-import": "7.2.0", + "@babel/plugin-transform-async-to-generator": "7.14.5", + "@babel/preset-env": "7.14.8", + "@babel/preset-react": "7.14.5", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "10.1.0", + "babel-loader": "8.3.0", + "chromedriver": "117.0.3", + "enzyme": "3.10.0", + "enzyme-adapter-react-16": "1.15.7", + "eslint": "8.55.0", + "eslint-config-scratch": "9.0.3", + "eslint-import-resolver-webpack": "0.11.1", + "eslint-plugin-import": "2.29.1", + "eslint-plugin-jest": "22.17.0", + "eslint-plugin-react": "7.33.2", + "file-loader": "6.2.0", + "gh-pages": "3.2.3", + "html-webpack-plugin": "^4.2.0", + "jest": "^29.7.0", + "jest-junit": "7.0.0", + "mkdirp": "1.0.3", + "raf": "3.4.1", + "react-test-renderer": "16.14.0", + "redux-mock-store": "1.5.3", + "rimraf": "2.7.1", + "selenium-webdriver": "3.6.0", + "uglifyjs-webpack-plugin": "1.3.0", + "url-loader": "4.1.1", + "web-audio-test-api": "0.5.2", + "webpack": "4.47.0", + "webpack-cli": "3.3.12", + "webpack-dev-server": "3.11.2", + "yauzl": "2.10.0" + }, + "peerDependencies": { + "react": "^16.0.0", + "react-dom": "^16.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/compat-data": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", - "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==" - }, - "@babel/core": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz", - "integrity": "sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.8", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.8", - "@babel/helpers": "^7.14.8", - "@babel/parser": "^7.14.8", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.8", - "@babel/types": "^7.14.8", - "convert-source-map": "^1.7.0", + "node_modules/@babel/cli": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.27.2.tgz", + "integrity": "sha512-cfd7DnGlhH6OIyuPSSj3vcfIdnbXukhAyKY8NaZrFadC7pXyL9mOL5WgjcptiEJLi5k3j8aYvLIVCzezrWTaiA==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "commander": "^6.2.0", + "convert-source-map": "^2.0.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.6.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/generator": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", - "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==", - "requires": { - "@babel/types": "^7.14.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz", - "integrity": "sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==", - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.8", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.8", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.8", - "@babel/types": "^7.14.8" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==" - } - } - }, - "@babel/helper-simple-access": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", - "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", - "requires": { - "@babel/types": "^7.14.8" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz", - "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==" - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.8.tgz", - "integrity": "sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.8", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.8", - "@babel/types": "^7.14.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==" - } - } - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", - "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", + "node_modules/@babel/eslint-parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.5.tgz", + "integrity": "sha512-HLkYQfRICudzcOtjGwkPvGc5nF1b4ljLZh1IRDj50lRZ718NAKVgQpIAUX8bfg6u/yuSKY3L7E0YzIV+OxrB8Q==", "dev": true, - "requires": { - "@babel/types": "^7.6.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" + "license": "MIT", + "peer": true, + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, - "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - }, + "node_modules/@babel/generator": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", - "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.14.5", - "@babel/types": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", - "requires": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", "dependencies": { - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "caniuse-lite": { - "version": "1.0.30001239", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz", - "integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==" - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" - }, - "electron-to-chromium": { - "version": "1.3.753", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.753.tgz", - "integrity": "sha512-LBJJ4qnuveWMqnwP0fP+bSl+QIxeToqBH8Bb0qVkz6YnfOZQpOW/FlkxuPn0u/zh+py6Y7x6L4qsl5aBjE9Djw==" - }, - "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-create-class-features-plugin": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.8.tgz", - "integrity": "sha512-bpYvH8zJBWzeqi1o+co8qOrw+EXzQ/0c74gVmY205AWXy9nifHrOg77y+1zwxX5lXE7Icq4sPlSQ4O2kWBrteQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.7", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz", - "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==", - "dev": true - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", - "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz", + "integrity": "sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", "@babel/helper-plugin-utils": "^7.13.0", @@ -704,2504 +336,1411 @@ "resolve": "^1.14.2", "semver": "^6.1.2" }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/generator": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", - "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz", - "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==", - "dev": true - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.8.tgz", - "integrity": "sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.8", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.8", - "@babel/types": "^7.14.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - } - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.4.0-0" } }, - "@babel/helper-explode-assignable-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", - "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, - "requires": { - "@babel/types": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", - "requires": { - "@babel/types": "^7.14.5" + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==" - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", - "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", - "requires": { - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - } + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", - "requires": { - "@babel/types": "^7.14.5" + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==" - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", - "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", - "dev": true - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", - "requires": { - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - } + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-remap-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", - "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-wrap-function": "^7.14.5", - "@babel/types": "^7.14.5" + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", - "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==" - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "node_modules/@babel/parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", - "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - } + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", - "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "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.", "dev": true, - "requires": { - "@babel/types": "^7.14.5" + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "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.", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "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.", "dev": true, - "requires": { - "@babel/types": "^7.4.4" + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==" + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "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.", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" + "node_modules/@babel/plugin-proposal-dynamic-import/node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "@babel/helper-wrap-function": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", - "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/generator": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", - "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz", - "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==", - "dev": true - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.8.tgz", - "integrity": "sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.8", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.8", - "@babel/types": "^7.14.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/helpers": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.8.tgz", - "integrity": "sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw==", - "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.8", - "@babel/types": "^7.14.8" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/generator": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", - "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==", - "requires": { - "@babel/types": "^7.14.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz", - "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==" - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.8.tgz", - "integrity": "sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.8", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.8", - "@babel/types": "^7.14.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==" - } - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "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.", "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", - "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==" - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", - "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "engines": { + "node": ">=6.9.0" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz", - "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==", + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "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.", "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", - "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - } - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", - "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "engines": { + "node": ">=6.9.0" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-json-strings": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", - "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "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.", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", - "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "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.", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", - "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "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.", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-object-rest-spread": { + "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.14.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", + "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.", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.14.5" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", - "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "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.", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "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.", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", - "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "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.", "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "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.", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", - "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "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.", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-async-generators": { + "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-properties": { + "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-static-block": { + "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-dynamic-import": { + "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-export-namespace-from": { + "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-json-strings": { + "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", - "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-logical-assignment-operators": { + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-numeric-separator": { + "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-object-rest-spread": { + "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-catch-binding": { + "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-chaining": { + "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-private-property-in-object": { + "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-top-level-await": { + "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", - "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-async-to-generator": { + "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-module-imports": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.14.5" }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", - "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-wrap-function": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", - "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.5.tgz", - "integrity": "sha512-TM8C+xtH/9n1qzX+JNHi7AN2zHMTiPUtspO0ZdHflW8KaskkALhMmuMHb4bCmNdv9VAPzJX3/bXqkVLnAvsPfg==", - "dev": true - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", - "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", - "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", + "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-classes": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz", - "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", + "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.27.1", "globals": "^11.1.0" }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz", - "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==", - "dev": true - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", - "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", + "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", - "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", - "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", - "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", - "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-for-of": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", - "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", - "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz", - "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==", - "dev": true - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", - "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", - "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", - "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz", - "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz", - "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-umd": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", - "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz", - "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-new-target": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", - "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-object-super": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", - "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-parameters": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", - "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", + "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", - "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-display-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.5.tgz", - "integrity": "sha512-07aqY1ChoPgIxsuDviptRpVkWCSbXWmzQqcgy65C6YSFOfPFvb/DX3bBRHh7pCd/PMEEYHYWUTSVkCbkVainYQ==", + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", + "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-jsx": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.5.tgz", - "integrity": "sha512-7RylxNeDnxc1OleDm0F5Q/BSL+whYRbOAR+bwgCxIr0L32v7UFh/pz1DLMZideAUxKT6eMoS2zQH6fyODLEi8Q==", + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", - "dev": true - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - } + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz", - "integrity": "sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ==", + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", "dev": true, - "requires": { - "@babel/plugin-transform-react-jsx": "^7.14.5" + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz", - "integrity": "sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g==", + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", - "dev": true - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", - "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", + "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-reserved-words": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", - "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", - "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", - "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", - "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", - "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", - "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", - "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - } + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-env": { + "node_modules/@babel/preset-env": { "version": "7.14.8", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.8.tgz", "integrity": "sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", @@ -3276,65 +1815,50 @@ "core-js-compat": "^3.15.0", "semver": "^6.3.0" }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "node_modules/@babel/preset-modules": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "@babel/preset-react": { + "node_modules/@babel/preset-react": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.14.5.tgz", "integrity": "sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-transform-react-display-name": "^7.14.5", @@ -3342,16193 +1866,22300 @@ "@babel/plugin-transform-react-jsx-development": "^7.14.5", "@babel/plugin-transform-react-pure-annotations": "^7.14.5" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/runtime": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz", - "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==", - "requires": { - "regenerator-runtime": "^0.13.2" - }, + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "license": "MIT", "dependencies": { - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" - } + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/template": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", - "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.0" - } - }, - "@babel/traverse": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", - "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.3", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.6.3", - "@babel/types": "^7.6.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "license": "MIT", "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "node_modules/@babel/types": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", - "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - } + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@scratch/paper": { - "version": "0.11.20200728195508", - "resolved": "https://registry.npmjs.org/@scratch/paper/-/paper-0.11.20200728195508.tgz", - "integrity": "sha512-cphYw/y/l36UJ8fv/LXyK+lHlxMXtoydJUsgA4u5QnaUaSZYepuSHik6PewJGT4qvaPwT5ImvHWwX2kElWXvoQ==" - }, - "@testim/chrome-version": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.2.tgz", - "integrity": "sha512-1c4ZOETSRpI0iBfIFUqU4KqwBAB2lHUAlBjZz/YqOHqwM9dTTzjV6Km0ZkiEiSCx/tLr1BtESIKyWWMww+RUqw==", - "dev": true - }, - "@turbowarp/json": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@turbowarp/json/-/json-0.1.1.tgz", - "integrity": "sha512-6APLbD+TGNdVKUu2UlWM1cgHbwrStWIwpvDVdiqS/SJ/i0OfjtqeAhnK5EjqNazXGWI+p68ZNxMJe2+UtZZSzA==" - }, - "@turbowarp/scratch-l10n": { - "version": "3.999.20220825224513", - "resolved": "https://registry.npmjs.org/@turbowarp/scratch-l10n/-/scratch-l10n-3.999.20220825224513.tgz", - "integrity": "sha512-oOseLy/nwLvZ58bkg7xlNKToSCW95n27IDVYsIUKk5odC92p/9WJlqqbQk7phpjjZ1T8bZqYyM0lqxwh/aGmmQ==", - "requires": { - "babel-plugin-react-intl": "^3.0.1" + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@types/anymatch": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", - "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "node_modules/@eslint/js": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "requires": { - "@babel/types": "^7.0.0" - } + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "license": "MIT" }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "@types/babel__traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz", - "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==", - "requires": { - "@babel/types": "^7.3.0" + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "@types/html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "@types/istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "@types/json-schema": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz", - "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==", - "dev": true + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } }, - "@types/node": { - "version": "12.7.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.12.tgz", - "integrity": "sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==", - "dev": true + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } }, - "@types/tapable": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", - "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==", - "dev": true + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "@types/uglify-js": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz", - "integrity": "sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@types/webpack": { - "version": "4.41.26", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz", - "integrity": "sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==", + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, - "requires": { - "@types/anymatch": "*", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", "@types/node": "*", - "@types/tapable": "*", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "source-map": "^0.6.0" + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@types/webpack-sources": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz", - "integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==", + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - }, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@types/yargs": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz", - "integrity": "sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ==", + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "@types/yargs-parser": "*" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@types/yargs-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz", - "integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==", - "dev": true - }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "optional": true, - "requires": { - "@types/node": "*" + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "@typescript-eslint/experimental-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", - "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", + "node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "1.13.0", - "eslint-scope": "^4.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@typescript-eslint/typescript-estree": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", - "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "lodash.unescape": "4.0.1", - "semver": "5.5.0" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", "dependencies": { - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } } }, - "@vernier/godirect": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vernier/godirect/-/godirect-1.5.0.tgz", - "integrity": "sha512-vMS0fQubI3WSSLg1Ry3aey/qWCl9XoCsFzgwOWYkeJs45YxjPel+42pLh5pO7uP6oF47sjZUKx8kGOoTiiiirA==" - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "node_modules/@jest/core/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "node_modules/@jest/core/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true + "node_modules/@jest/core/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, - "requires": { - "@xtuc/long": "4.2.2" + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "node_modules/@jest/reporters/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abab": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", - "dev": true - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "acorn": "^4.0.4" - }, + "license": "MIT", "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "acorn-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz", - "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==", - "dev": true + "node_modules/@jest/reporters/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@jest/reporters/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "debug": "4" - }, + "license": "MIT", "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "airbnb-prop-types": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz", - "integrity": "sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "requires": { - "array.prototype.find": "^2.1.0", - "function.prototype.name": "^1.1.1", - "has": "^1.0.3", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object.assign": "^4.1.0", - "object.entries": "^1.1.0", - "prop-types": "^15.7.2", - "prop-types-exact": "^1.2.0", - "react-is": "^16.9.0" + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==" + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true + "node_modules/@jest/test-sequencer/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "node_modules/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "default-require-extensions": "^1.0.0" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } }, - "array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" }, - "array-find": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", - "dev": true + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true + "node_modules/@microbit/microbit-universal-hex": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@microbit/microbit-universal-hex/-/microbit-universal-hex-0.2.2.tgz", + "integrity": "sha512-qyFt8ATgxAyPkNz9Yado4HXEeCctwP/8L1/v2hFLeVUqw/HFqVqV4piJbqRMmyOefMcQ9OyVPhLXjtbKn9063Q==", + "license": "MIT", + "engines": { + "node": ">=8.5", + "npm": ">=6.0", + "yarn": "^1.0" + }, + "peerDependencies": { + "tslib": ">=1.11.1" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "license": "MIT", + "optional": true }, - "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - } + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "eslint-scope": "5.1.1" } }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } }, - "array.prototype.find": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.0.tgz", - "integrity": "sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.13.0" + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" } }, - "array.prototype.flat": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz", - "integrity": "sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.10.0", - "function-bind": "^1.1.1" + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - } + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" } }, - "arraybuffer-loader": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer-loader/-/arraybuffer-loader-1.0.7.tgz", - "integrity": "sha512-8FPjFP26OF723Oiaj5E208WW2tAgE0noCsrtQZ20TwdHt6qs5iuAaKqX5WY/C3wYdF/2cRUiuIXj98qy/2NB7g==", - "requires": { - "loader-utils": "^1.1.0" + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" + "node_modules/@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" } }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, + "license": "BSD-3-Clause", "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } + "@sinonjs/commons": "^3.0.0" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "node_modules/@testim/chrome-version": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.4.tgz", + "integrity": "sha512-kIhULpw9TrGYnHp/8VfdcneIcxKnLixmADtukQRtJUmsVlMg0niMkwV0xZmi8hqa57xqilIHjWFA0GKvEjVU5g==", + "dev": true, + "license": "MIT" }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true + "node_modules/@transifex/api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@transifex/api/-/api-4.3.0.tgz", + "integrity": "sha512-RCpqAqxZlrHDo7rfam8tLSoT02wvF8LQeNRC0VZG5IGrH+wv+G6fB8PWLLHrvUuaqO6XCwkMmYlJ/X9U9TLTHw==", + "license": "Apache-2.0", + "dependencies": { + "core-js": "^3.22.4" + }, + "engines": { + "node": ">=14.0.0" + } }, - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "requires": { - "lodash": "^4.17.14" + "node_modules/@transifex/api/node_modules/core-js": { + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz", + "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + "node_modules/@turbowarp/ancient-hull.js": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/@turbowarp/ancient-hull.js/-/ancient-hull.js-0.2.13.tgz", + "integrity": "sha512-lpVDr18qRjOLWcPtw9H+nlFhY7hbdgQlLU1b6nJfEn2pMYRnOEtzFXZbprG5JgmUCIzGx/H9WPajbkjRdvUC+Q==", + "license": "BSD" + }, + "node_modules/@turbowarp/json": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@turbowarp/json/-/json-0.1.2.tgz", + "integrity": "sha512-9nWywp+0SH7ROVzQPQQO9gMWBikahsqyMWp1Ku8VV0q+q6bnx6dS0aNPTjqTtF2GHAY55hcREsqKzaoUdWBSwg==", + "license": "MIT" + }, + "node_modules/@turbowarp/jszip": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@turbowarp/jszip/-/jszip-3.12.0.tgz", + "integrity": "sha512-nTKFFc1rUToxTdxUKPIou3YKUsSelgEoyx4TAPzK/0BkGPntkenp9zoJOSnxnGWNchVXYVZv01+3aZwlS1K8hw==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } }, - "async-limiter": { + "node_modules/@turbowarp/nanolog": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true + "resolved": "https://registry.npmjs.org/@turbowarp/nanolog/-/nanolog-1.0.1.tgz", + "integrity": "sha512-jdkH5MMdEo81Z9CJDDKsUqnTD5W3oeVt9SWyRSPLT3Q5NPGD6E4SnffD5pXWIZbjF052u2SamDxp/awW7W7cVQ==", + "license": "MIT" }, - "asynckit": { + "node_modules/@turbowarp/paper": { + "version": "0.12.202505131813", + "resolved": "https://registry.npmjs.org/@turbowarp/paper/-/paper-0.12.202505131813.tgz", + "integrity": "sha512-phLfQ9oJvXZvrnATbxRDB80reaS1BJiBO4QFGfOPkIIJzn41RR+TUxwNZdCQBkoTpnMA+jfr6o1LMu6ZvW2R9Q==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@turbowarp/sb3fix": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "resolved": "https://registry.npmjs.org/@turbowarp/sb3fix/-/sb3fix-0.4.0.tgz", + "integrity": "sha512-DC1u1B2nugkANEzQyioPFEYPYtZvr8NFvZkpYlxkoBOsn+LPJP1F486vNzvkGu2MAGTfWR0QmsBTRdanrppCrg==", + "license": "MPL-2.0", + "dependencies": { + "@turbowarp/jszip": "^3.12.0" + } }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "node_modules/@turbowarp/scratch-l10n": { + "version": "3.1001.202405101234", + "resolved": "https://registry.npmjs.org/@turbowarp/scratch-l10n/-/scratch-l10n-3.1001.202405101234.tgz", + "integrity": "sha512-a0JTugOunBFQqAKtjdkViUSmLxuDWwtdNi+1gbqnbDQyGfHOBdOe1xVkmQekw/CzR2HgsBAlL8aS4rsuVXzR3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "@transifex/api": "4.3.0", + "babel-plugin-react-intl": "^3.0.1", + "download": "^8.0.0", + "transifex": "1.6.6" + }, + "bin": { + "build-i18n-src": "scripts/build-i18n-src.js", + "tx-push-src": "scripts/tx-push-src.js" + } }, - "audio-context": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/audio-context/-/audio-context-1.0.1.tgz", - "integrity": "sha1-zsTbis5u9KrL8Q7vCXekVxRo1Ks=", - "requires": { - "global": "^4.3.1" + "node_modules/@turbowarp/scratch-storage": { + "version": "0.0.202505311821", + "resolved": "https://registry.npmjs.org/@turbowarp/scratch-storage/-/scratch-storage-0.0.202505311821.tgz", + "integrity": "sha512-Q1lYZjZspPrimODclXe4hgYuqoxitKnWAqBPv50Z5GBUdIM6Yu3+lNtrHQbEQxJTbeuTDpHJYKzwbpvCPUK8iA==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "7.21.0", + "@turbowarp/nanolog": "^0.2.0", + "arraybuffer-loader": "^1.0.3", + "base64-js": "1.3.0", + "cross-fetch": "3.1.5", + "js-md5": "0.7.3", + "worker-loader": "^2.0.0" } }, - "autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, + "node_modules/@turbowarp/scratch-storage/node_modules/@turbowarp/nanolog": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@turbowarp/nanolog/-/nanolog-0.2.0.tgz", + "integrity": "sha512-texcM9oxfEsADVlVDR5UhLkYclPKsV9mytJh+9pHHonNcUrxRVGF6FkJTzWO/Hl5NafU1crSdw737nqKE3atSA==", + "license": "MIT" + }, + "node_modules/@turbowarp/scratch-svg-renderer": { + "version": "1.0.202505311824", + "resolved": "https://registry.npmjs.org/@turbowarp/scratch-svg-renderer/-/scratch-svg-renderer-1.0.202505311824.tgz", + "integrity": "sha512-EaKVqIuEwrr4SzQGOVyr8GBE+DGzUbbn38qiV6DMWFzb++/HgWl1qdlKA/j+mOK+GDwYydMFP0FuWYvWBkt6sA==", + "license": "MPL-2.0", "dependencies": { - "caniuse-lite": { - "version": "1.0.30001109", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001109.tgz", - "integrity": "sha512-4JIXRodHzdS3HdK8nSgIqXYLExOvG+D2/EenSvcub2Kp3QEADjo2v2oUn5g0n0D+UNwG9BtwKOyGcSq2qvQXvQ==" - }, - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } + "@turbowarp/nanolog": "^0.2.0", + "base64-js": "1.2.1", + "base64-loader": "1.0.0", + "dompurify": "^2.5.6", + "transformation-matrix": "1.15.0" + }, + "peerDependencies": { + "scratch-render-fonts": "github:TurboWarp/scratch-render-fonts#master" } }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "node_modules/@turbowarp/scratch-svg-renderer/node_modules/@turbowarp/nanolog": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@turbowarp/nanolog/-/nanolog-0.2.0.tgz", + "integrity": "sha512-texcM9oxfEsADVlVDR5UhLkYclPKsV9mytJh+9pHHonNcUrxRVGF6FkJTzWO/Hl5NafU1crSdw737nqKE3atSA==", + "license": "MIT" }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "node_modules/@turbowarp/scratch-svg-renderer/node_modules/base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "license": "MIT" }, - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dev": true, - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - }, + "node_modules/@turbowarp/startaudiocontext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@turbowarp/startaudiocontext/-/startaudiocontext-1.0.0.tgz", + "integrity": "sha512-BJ7EVYVwuTH/Tr6tEaLaXA5TCi8qKxNWsxohNqxIEDzykN+FscgOALhEMUlNc6vgcmOi7yQFJ82Prx9bnY5DgA==", + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "license": "MIT", "dependencies": { - "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } + "@babel/types": "^7.0.0" } }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "babel-core": { - "version": "7.0.0-bridge.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "dev": true + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } }, - "babel-eslint": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz", - "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==", + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, + "license": "MIT", "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - } + "@types/node": "*" } }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "node_modules/@types/html-minifier-terser": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "license": "MIT" }, - "babel-jest": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", - "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true, - "requires": { - "babel-plugin-istanbul": "^4.0.0", - "babel-preset-jest": "^21.2.0" - } + "license": "MIT" }, - "babel-loader": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", - "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, + "license": "MIT", "dependencies": { - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@types/istanbul-lib-coverage": "*" } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true, - "requires": { - "object.assign": "^4.1.0" - } + "license": "MIT" }, - "babel-plugin-istanbul": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", - "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "find-up": "^2.1.0", - "istanbul-lib-instrument": "^1.10.1", - "test-exclude": "^4.2.1" - }, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.0.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.1.tgz", + "integrity": "sha512-MX4Zioh39chHlDJbKmEgydJDS3tspMP/lnQC67G3SWsTnb9NeYVWOjkxpOSy4oMfPs4StcWHwBrvUb4ybfnuaw==", + "license": "MIT", "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - } + "undici-types": "~7.8.0" } }, - "babel-plugin-jest-hoist": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", - "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", - "dev": true - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", - "semver": "^6.1.1" - }, + "node_modules/@types/node-hid": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/node-hid/-/node-hid-1.3.4.tgz", + "integrity": "sha512-0ootpsYetN9vjqkDSwm/cA4fk/9yGM/PO0X8SLPE/BzXlUaBelImMWMymtF9QEoEzxY0pnhcROIJM0CNSUqO8w==", + "license": "MIT", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@types/node": "*" } }, - "babel-plugin-polyfill-corejs3": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz", - "integrity": "sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==", + "node_modules/@types/source-list-map": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", + "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" - } + "license": "MIT" }, - "babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tapable": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz", + "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/uglify-js": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", + "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2" + "license": "MIT", + "dependencies": { + "source-map": "^0.6.1" } }, - "babel-plugin-react-intl": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-3.5.1.tgz", - "integrity": "sha512-1jlEJCSmLaJM4tjIKpu64UZ833COCHmwR77bFJDOye+zlwf80uR1b8p41l4tClx1QsrfI+qV6w/5AiPYQgaMUQ==", - "requires": { - "@babel/core": "^7.4.5", - "@babel/helper-plugin-utils": "^7.0.0", - "@types/babel__core": "^7.1.2", - "fs-extra": "^8.0.1", - "intl-messageformat-parser": "^1.8.1" - }, + "node_modules/@types/usb": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/usb/-/usb-1.5.4.tgz", + "integrity": "sha512-NOUza/8yuswu6RoECQyPHEjA34qpDaeONQ72fm+bCnnN2DJjDePAY+NsmV17H88oIlq4JlJ2mD5Kh5d6R2MwTQ==", + "license": "MIT", "dependencies": { - "intl-messageformat-parser": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", - "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==" - } + "@types/node": "*" } }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true + "node_modules/@types/w3c-web-usb": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@types/w3c-web-usb/-/w3c-web-usb-1.0.10.tgz", + "integrity": "sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ==", + "license": "MIT" }, - "babel-preset-jest": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", - "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", + "node_modules/@types/webpack": { + "version": "4.41.40", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.40.tgz", + "integrity": "sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==", "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^21.2.0", - "babel-plugin-syntax-object-rest-spread": "^6.13.0" + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" } }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "node_modules/@types/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - }, - "dependencies": { - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" } }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" } }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - } + "@types/node": "*" } }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "node_modules/@typescript-eslint/experimental-utils": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", + "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, + "license": "MIT", "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "1.13.0", + "eslint-scope": "^4.0.0" + }, + "engines": { + "node": "^6.14.0 || ^8.10.0 || >=9.10.0" + }, + "peerDependencies": { + "eslint": "*" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "base64-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64-loader/-/base64-loader-1.0.0.tgz", - "integrity": "sha1-5TC62I6QbdKh+tCvLZ5oP6i9kqg=" + "node_modules/@typescript-eslint/experimental-utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true + "node_modules/@typescript-eslint/typescript-estree": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", + "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "lodash.unescape": "4.0.1", + "semver": "5.5.0" + }, + "engines": { + "node": ">=6.14.0" + } }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true + "node_modules/@vernier/godirect": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vernier/godirect/-/godirect-1.5.0.tgz", + "integrity": "sha512-vMS0fQubI3WSSLg1Ry3aey/qWCl9XoCsFzgwOWYkeJs45YxjPel+42pLh5pO7uP6oF47sjZUKx8kGOoTiiiirA==", + "license": "BSD-3-Clause" }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "bluebird": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz", - "integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==", - "dev": true + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "license": "MIT" }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "license": "MIT" }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "license": "MIT", "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } + "@webassemblyjs/wast-printer": "1.9.0" } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "license": "ISC" }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } }, - "bowser": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", - "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==" + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "license": "MIT" }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "license": "MIT", "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "@xtuc/ieee754": "^1.2.0" } }, - "brfs": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", - "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", - "requires": { - "quote-stream": "^1.0.1", - "resolve": "^1.1.5", - "static-module": "^2.2.0", - "through2": "^2.0.0" + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "license": "MIT", + "dependencies": { + "@xtuc/long": "4.2.2" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "license": "MIT" }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "license": "MIT", "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, - "browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" } }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, - "requires": { - "pako": "~1.0.5" + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", - "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "bser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz", - "integrity": "sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "requires": { - "node-int64": "^0.4.0" + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "buffer": { - "version": "4.9.1", - "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "node_modules/airbnb-prop-types": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz", + "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", + "deprecated": "This package has been renamed to 'prop-types-tools'", "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" + "license": "MIT", + "dependencies": { + "array.prototype.find": "^2.1.1", + "function.prototype.name": "^1.1.2", + "is-regex": "^1.1.0", + "object-is": "^1.1.2", + "object.assign": "^4.1.0", + "object.entries": "^1.1.2", + "prop-types": "^15.7.2", + "prop-types-exact": "^1.2.0", + "react-is": "^16.13.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" }, + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0-alpha" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "cache-base": { + "node_modules/ajv-errors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "license": "MIT", + "peerDependencies": { + "ajv": ">=5.0.0" } }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "requires": { - "callsites": "^2.0.0" - }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - } + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "requires": { - "caller-callsite": "^2.0.0" + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "devOptional": true, + "license": "ISC", "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true, + "license": "ISC" }, - "caniuse-lite": { - "version": "1.0.30001085", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001085.tgz", - "integrity": "sha512-x0YRFRE0pmOD90z+9Xk7jwO58p4feVNXP+U8kWV+Uo/HADyrgESlepzIkUqPgaXkpyceZU6siM1gsK7sHgplqA==" + "node_modules/archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==", + "license": "MIT", + "dependencies": { + "file-type": "^4.2.0" + }, + "engines": { + "node": ">=4" + } }, - "canvas-toBlob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz", - "integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==" + "node_modules/archive-type/node_modules/file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "capture-exit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", - "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "requires": { - "rsvp": "^3.3.3" - } + "license": "Python-2.0" }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "node_modules/array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==", "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } + "license": "MIT" }, - "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", - "dev": true + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true, + "license": "MIT" }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, - "requires": { - "tslib": "^1.9.0" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "chromedriver": { - "version": "103.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-103.0.0.tgz", - "integrity": "sha512-7BHf6HWt0PeOHCzWO8qlnD13sARzr5AKTtG8Csn+czsuAsajwPxdLNtry5GPh8HYFyl+i0M+yg3bT43AGfgU9w==", + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, - "requires": { - "@testim/chrome-version": "^1.1.2", - "axios": "^0.27.2", - "del": "^6.0.0", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.1.0", - "tcp-port-used": "^1.0.1" - }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "cipher-base": { + "node_modules/array.prototype.filter": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz", + "integrity": "sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, + "node_modules/array.prototype.find": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.3.tgz", + "integrity": "sha512-fO/ORdOELvjbbeIfZfzrXFMhYHGofRGqd+am9zm3tZ4GlJINj/pA2eITyfd65Vg6+ZbHd/Cys7stpoRSWtQFdA==", + "dev": true, + "license": "MIT", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, - "requires": { - "source-map": "~0.6.0" - }, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, - "requires": { - "restore-cursor": "^2.0.0" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "node_modules/array.prototype.reduce": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz", + "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==", "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "is-string": "^1.1.1" }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "node_modules/arraybuffer-loader": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/arraybuffer-loader/-/arraybuffer-loader-1.0.8.tgz", + "integrity": "sha512-CwUVCcxCgcgZUu2w741OV6Xj1tvRVQebq22RCyGXiLgJOJ4e4M/59EPYdtK2MLfIN28t1TDvuh2ojstNq3Kh5g==", + "license": "MIT", + "dependencies": { + "loader-utils": "^1.1.0" + }, + "engines": { + "node": ">= 4.0.0" + } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" }, - "colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==" + "node_modules/assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "license": "MIT", + "dependencies": { + "object.assign": "^4.1.4", + "util": "^0.10.4" + } }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "license": "MIT", + "engines": { + "node": ">=0.8" } }, - "commander": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz", - "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==" + "node_modules/assert/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "node_modules/assert/node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" + } }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - }, + "license": "MIT", "dependencies": { - "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "dev": true - } + "lodash": "^4.17.14" } }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "devOptional": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "computed-style-to-inline-style": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/computed-style-to-inline-style/-/computed-style-to-inline-style-3.0.0.tgz", - "integrity": "sha1-klECRGPFVcfhdo13oZ66m49Bivw=" + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true, + "license": "MIT" }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" } }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" + "node_modules/autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" } }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true + "node_modules/autoprefixer/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, - "requires": { - "safe-buffer": "5.1.2" + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "content-type-parser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", - "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", - "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "requires": { - "safe-buffer": "~5.1.1" + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "license": "Apache-2.0", + "engines": { + "node": "*" } }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "license": "MIT" }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "node_modules/axios": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", + "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, + "license": "MIT", "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "license": "MIT", + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } }, - "copy-webpack-plugin": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz", - "integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==", - "requires": { - "cacache": "^15.0.5", - "fast-glob": "^3.2.4", - "find-cache-dir": "^3.3.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.1", - "loader-utils": "^2.0.0", - "normalize-path": "^3.0.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "dependencies": { - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - } - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "requires": { - "find-up": "^4.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "requires": { - "minipass": "^3.1.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } + "node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "license": "MIT" }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" - }, - "core-js-compat": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.2.tgz", - "integrity": "sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "semver": "7.0.0" - }, - "dependencies": { - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "caniuse-lite": { - "version": "1.0.30001245", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz", - "integrity": "sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==", - "dev": true - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.780", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.780.tgz", - "integrity": "sha512-2KQ9OYm9WMUNpAPA/4aerURl3hwRc9tNlpsiEj3Y8Gf7LVf26NzyLIX2v0hSagQwrS9+cWab+28A2GPKDoVNRA==", - "dev": true - }, - "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", - "dev": true - }, - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, + "node_modules/babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", + "dev": true, + "license": "MIT", "dependencies": { - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "eslint": ">= 4.12.1" } }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "node_modules/babel-eslint/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "license": "Apache-2.0", + "engines": { + "node": ">=4" } }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", - "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", - "requires": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash": "^4.17.11", - "postcss": "^6.0.23", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - }, + "license": "MIT", "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "css-mediaquery": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", - "integrity": "sha1-aiw3NEkoYYYxxUvTPO3TAdoYvqA=" - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "node_modules/babel-jest/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", - "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "~0.5.0" - } - } + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "css-vendor": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", - "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=", - "requires": { - "is-in-browser": "^1.0.2" + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" } }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true - }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=" - }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, - "requires": { - "cssom": "0.3.x" + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" + "node_modules/babel-loader/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-html": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz", - "integrity": "sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, + "license": "MIT", "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz", + "integrity": "sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA==", "dev": true, - "requires": { - "strip-bom": "^2.0.0" - }, + "license": "MIT", "dependencies": { - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.4", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.2.2", + "core-js-compat": "^3.16.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz", + "integrity": "sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g==", + "dev": true, + "license": "MIT", "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "@babel/helper-define-polyfill-provider": "^0.2.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" + "node_modules/babel-plugin-react-intl": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-3.5.1.tgz", + "integrity": "sha512-1jlEJCSmLaJM4tjIKpu64UZ833COCHmwR77bFJDOye+zlwf80uR1b8p41l4tClx1QsrfI+qV6w/5AiPYQgaMUQ==", + "deprecated": "this package has been renamed to babel-plugin-formatjs", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.4.5", + "@babel/helper-plugin-utils": "^7.0.0", + "@types/babel__core": "^7.1.2", + "fs-extra": "^8.0.1", + "intl-messageformat-parser": "^1.8.1" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, - "requires": { - "repeating": "^2.0.0" + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "license": "MIT", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "license": "MIT" }, - "diff-match-patch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.4.tgz", - "integrity": "sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==" + "node_modules/balance-text": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/balance-text/-/balance-text-3.3.1.tgz", + "integrity": "sha512-tpnHvo1w0rJ5rbu+jZKf7NLKKg6XZ6eAwREP/9jEDJ+ZTBi6jQFqn/UGARL3/oqD8SgQbyTwBXBjhKDdTgoPRw==" }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "license": "MIT", "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - } + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "discontinuous-range": { + "node_modules/base/node_modules/define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=", - "dev": true + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "license": "MIT" }, - "dns-equal": { + "node_modules/base64-loader": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true + "resolved": "https://registry.npmjs.org/base64-loader/-/base64-loader-1.0.0.tgz", + "integrity": "sha512-p32+F8dg+ANGx7s8QsZS74ZPHfIycmC2yZcoerzFgbersIYWitPbbF39G6SBx3gyvzyLH5nt1ooocxr0IHuWKA==", + "license": "MIT" }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } + "license": "MIT" }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" } }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "requires": { - "utila": "~0.4" + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "requires": { - "@babel/runtime": "^7.1.2" + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" } }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" + "node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" } }, - "dom-walk": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - } + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" }, - "dompurify": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.2.7.tgz", - "integrity": "sha512-jdtDffdGNY+C76jvodNTu9jt5yYj59vuTUyx+wXdzcSwAGTYZDAQkQ7Iwx9zcGrA4ixC1syU4H3RZROqRxokxg==" + "node_modules/bn.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", + "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", + "license": "MIT" }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, + "license": "MIT", "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } + "ms": "2.0.0" } }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "requires": { - "readable-stream": "^2.0.2" + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } + "license": "MIT" }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.480", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.480.tgz", - "integrity": "sha512-wnuUfQCBMAdzu5Xe+F4FjaRK+6ToG6WvwG72s8k/3E6b+hoGVYGiQE7JD1NhiCMcqF3+wV+c2vAnaLGRSSWVqA==" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, + "license": "MIT", "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" } }, - "email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "node_modules/bowser": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", + "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==", + "license": "MIT" }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "~0.4.13" + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" } }, - "enhanced-resolve": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.2.0", - "tapable": "^0.1.8" + "node_modules/brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "license": "MIT", + "dependencies": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" + }, + "bin": { + "brfs": "bin/cmd.js" } }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" }, - "enzyme": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.10.0.tgz", - "integrity": "sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg==", - "dev": true, - "requires": { - "array.prototype.flat": "^1.2.1", - "cheerio": "^1.0.0-rc.2", - "function.prototype.name": "^1.1.0", - "has": "^1.0.3", - "html-element-map": "^1.0.0", - "is-boolean-object": "^1.0.0", - "is-callable": "^1.1.4", - "is-number-object": "^1.0.3", - "is-regex": "^1.0.4", - "is-string": "^1.0.4", - "is-subset": "^0.1.1", - "lodash.escape": "^4.0.1", - "lodash.isequal": "^4.5.0", - "object-inspect": "^1.6.0", - "object-is": "^1.0.1", - "object.assign": "^4.1.0", - "object.entries": "^1.0.4", - "object.values": "^1.0.4", - "raf": "^3.4.0", - "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.1.2" + "node_modules/browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==", + "license": "ISC" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "enzyme-adapter-react-16": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.3.0.tgz", - "integrity": "sha512-TRX+Y5QPreGmqfFU3bPsJUmqNZX9paQCmQ93kj7hnfQoZzufO/pahGN/OviWn60YcgaQojhf0AWv3PxrIDARbA==", - "dev": true, - "requires": { - "enzyme-adapter-utils": "^1.6.0", - "function.prototype.name": "^1.1.0", - "object.assign": "^4.1.0", - "object.values": "^1.0.4", - "prop-types": "^15.6.2", - "react-is": "^16.4.2", - "react-test-renderer": "^16.0.0-0" + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "license": "MIT", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "enzyme-adapter-utils": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.0.tgz", - "integrity": "sha512-wkZvE0VxcFx/8ZsBw0iAbk3gR1d9hK447ebnSYBf95+r32ezBq+XDSAvRErkc4LZosgH8J7et7H7/7CtUuQfBA==", - "dev": true, - "requires": { - "airbnb-prop-types": "^2.13.2", - "function.prototype.name": "^1.1.0", - "object.assign": "^4.1.0", - "object.fromentries": "^2.0.0", - "prop-types": "^15.7.2", - "semver": "^5.6.0" + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "node_modules/browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "license": "MIT", + "dependencies": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "license": "ISC", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "license": "MIT", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "requires": { - "prr": "~1.0.1" + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "license": "(MIT OR Apache-2.0)", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" } }, - "es-abstract": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz", - "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==", - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", - "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, - "es-to-primitive": { + "node_modules/buffer-alloc": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "license": "MIT", + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" } }, - "es6-object-assign": { + "node_modules/buffer-alloc-unsafe": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "license": "MIT" }, - "es6-promise": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", - "integrity": "sha512-CUD62/uqeE0L+EJeypOKuFfM56CFaH4vo+++J76bff0NkeQ2bBmWVCTNxL2hj9HeCYPkof6Gqea0BSeK17gBzA==" + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "license": "MIT" }, - "escape-html": { + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer-xor": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "license": "MIT" }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "license": "MIT" }, - "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - } + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" - }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" } }, - "eslint-config-scratch": { + "node_modules/cacache/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-scratch/-/eslint-config-scratch-6.0.0.tgz", - "integrity": "sha512-2aW7EVWhjTrwaM54hjAZeRETh/habWeQ5xzTbPO2dG//RtixBztUAmdxqAHKH8MEtmAMsUhf3mRjO1BstO4dGg==", - "dev": true, - "requires": { - "eslint-plugin-react": ">=7.14.2" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, + "node_modules/cacache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "eslint-import-resolver-webpack": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.11.1.tgz", - "integrity": "sha512-eK3zR7xVQR/MaoBWwGuD+CULYVuqe5QFlDukman71aI6IboCGzggDUohHNfu1ZeBnbHcUHJc0ywWoXUBNB6qdg==", - "dev": true, - "requires": { - "array-find": "^1.0.0", - "debug": "^2.6.8", - "enhanced-resolve": "~0.9.0", - "find-root": "^1.1.0", - "has": "^1.0.1", - "interpret": "^1.0.0", - "lodash": "^4.17.4", - "node-libs-browser": "^1.0.0 || ^2.0.0", - "resolve": "^1.10.0", - "semver": "^5.3.0" - } + "node_modules/cacache/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, - "eslint-module-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", - "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", + "license": "MIT", "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" } }, - "eslint-plugin-import": { - "version": "2.23.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", - "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", - "dev": true, - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.1", - "find-up": "^2.0.0", - "has": "^1.0.3", - "is-core-module": "^2.4.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.3", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" - } - }, - "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - } + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "eslint-plugin-jest": { - "version": "22.17.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.17.0.tgz", - "integrity": "sha512-WT4DP4RoGBhIQjv+5D0FM20fAdAUstfYAf/mkufLNTojsfgzc5/IYW22cIg/Q4QBavAZsROQlqppiWDpFZDS8Q==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^1.13.0" + "node_modules/cacheable-request/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "license": "MIT" + }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" } }, - "eslint-plugin-react": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz", - "integrity": "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==", - "dev": true, - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flatmap": "^1.2.4", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.4", - "object.fromentries": "^2.0.4", - "object.values": "^1.1.4", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "string.prototype.matchall": "^4.0.5" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - } - }, - "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - } + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "eslint-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz", - "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.0.0" + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", - "dev": true + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", - "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "license": "MIT", + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "license": "MIT", + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "requires": { - "estraverse": "^4.1.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "node_modules/caniuse-lite": { + "version": "1.0.30001722", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz", + "integrity": "sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "node_modules/canvas-toBlob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz", + "integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==", + "license": "MIT" }, - "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", - "dev": true + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "license": "Apache-2.0" }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "requires": { - "original": "^1.0.0" + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "license": "MIT", + "engines": { + "node": ">=10" } }, - "exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "node_modules/cheerio": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.0.tgz", + "integrity": "sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==", "dev": true, - "requires": { - "merge": "^1.2.0" + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^10.0.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^7.10.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=18.17" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "optional": true, "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "node_modules/chromedriver": { + "version": "117.0.3", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-117.0.3.tgz", + "integrity": "sha512-c2rk2eGK5zZFBJMdviUlAJfQEBuPNIKfal4+rTFVYAmrWbMPYAqPozB+rIkc1lDP/Ryw44lPiqKglrI01ILhTQ==", "dev": true, - "requires": { - "fill-range": "^2.1.0" - }, + "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "@testim/chrome-version": "^1.1.3", + "axios": "^1.4.0", + "compare-versions": "^6.0.0", + "extract-zip": "^2.0.1", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^1.1.0", + "tcp-port-used": "^1.0.1" + }, + "bin": { + "chromedriver": "bin/chromedriver" + }, + "engines": { + "node": ">=18" } }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" } }, - "expect": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", - "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "jest-diff": "^21.2.1", - "jest-get-type": "^21.2.0", - "jest-matcher-utils": "^21.2.1", - "jest-message-util": "^21.2.1", - "jest-regex-util": "^21.2.0" + "node_modules/cipher-base": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, - "exports-loader": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.3.tgz", - "integrity": "sha512-vBQgTnvmEB7qWmr7gzAzJRWptzYhkhvdXeH8sRnS//mIai6MgLZe1crlQ+VWTjCCXLlnhGuiuVMq0YfjA5AUOw==", - "requires": { - "loader-utils": "0.2.x", - "source-map": "0.1.x" - }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "license": "MIT", "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==" - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", - "requires": { - "amdefine": ">=0.0.4" - } - } + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "license": "MIT", "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "node_modules/classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", + "license": "MIT" }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, + "node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "license": "MIT", "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" } }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } + "license": "MIT", + "engines": { + "node": ">=8" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "falafel": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", - "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", - "requires": { - "acorn": "^7.1.1", - "isarray": "^2.0.1" - }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-glob": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", - "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "ansi-regex": "^5.0.1" }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - } + "engines": { + "node": ">=8" } }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fastestsmallesttextencoderdecoder": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", - "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==" - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" - }, - "fastq": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", - "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", - "requires": { - "reusify": "^1.0.4" + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" } }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "fb-watchman": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", - "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true, - "requires": { - "bser": "^2.0.0" - } + "license": "MIT" }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "license": "MIT", "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - } - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true + "node_modules/color-convert": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "integrity": "sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==" }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } + "license": "MIT" }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" + "node_modules/colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==", + "engines": { + "node": ">=0.1.90" } }, - "file-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", - "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true + "node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } }, - "filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", - "dev": true + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" }, - "filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", "dev": true, - "requires": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - } + "license": "MIT" }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "requires": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "license": "MIT", "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "node_modules/compression": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, - "find-up": { + "node_modules/computed-style-to-inline-style": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/computed-style-to-inline-style/-/computed-style-to-inline-style-3.0.0.tgz", + "integrity": "sha512-6XAOG2ZZkpCfbM9AhRN4/wjMgQujtH/2q/eowZON190oAASUjEb3jwcodjmRlR8HNDMahJdBQwchuDftOtF7eg==", + "license": "MIT" }, - "findup": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", - "integrity": "sha512-Udxo3C9A6alt2GZ2MNsgnIvX7De0V3VGxeP/x98NSVgSlizcDHdmJza61LI7zJy4OEtSiJyE72s0/+tBl5/ZxA==", - "requires": { - "colors": "~0.6.0-1", - "commander": "~2.1.0" - }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", "dependencies": { - "commander": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", - "integrity": "sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ==" - } + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" + "license": "MIT", + "engines": { + "node": ">=0.8" } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" }, - "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", - "dev": true + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "license": "MIT" }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "follow-redirects": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", - "dev": true + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "deprecated": "This package is no longer supported.", "dev": true, - "requires": { - "for-in": "^1.0.1" + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "node_modules/copy-concurrently/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "format-message": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/format-message/-/format-message-6.2.1.tgz", - "integrity": "sha512-6gBXI+MOE9pu9QNeZf95V87GKYiLCdUvhisjts75xonaPAshtBu20NTZt2l8kbYcoMtxNyH9E9af+aieIRfVmw==", - "requires": { - "format-message-formats": "^6.2.0", - "format-message-interpret": "^6.2.0", - "format-message-parse": "^6.2.0", - "lookup-closest-locale": "^6.2.0" + "node_modules/copy-webpack-plugin": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz", + "integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==", + "license": "MIT", + "dependencies": { + "cacache": "^15.0.5", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" } }, - "format-message-formats": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/format-message-formats/-/format-message-formats-6.2.4.tgz", - "integrity": "sha512-smT/fAqBLqusWfWCKRAx6QBDAAbmYznWsIyTyk66COmvwt2Byiqd7SJe2ma9a5oV0kwRaOJpN/F4lr4YK/n6qQ==" + "node_modules/copy-webpack-plugin/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } }, - "format-message-interpret": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/format-message-interpret/-/format-message-interpret-6.2.4.tgz", - "integrity": "sha512-dRvz9mXhITApyOtfuFEb/XqvCe1u6RMkQW49UJHXS8w2S8cAHCqq5LNDFK+QK6XVzcofROycLb/k1uybTAKt2w==", - "requires": { - "format-message-formats": "^6.2.4", - "lookup-closest-locale": "^6.2.0" + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "format-message-parse": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.4.tgz", - "integrity": "sha512-k7WqXkEzgXkW4wkHdS6Cv2Ou0rIFtiDelZjgoe1saW4p7FT7zS8OeAUpAekhormqzpeecR97e4vBft1zMsfFOQ==" + "node_modules/core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "license": "MIT" }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true + "node_modules/core-js-compat": { + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", + "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.25.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { + "node_modules/cosmiconfig/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "license": "MIT", + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "from2-array": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", - "integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==", - "requires": { - "from2": "^2.0.3" + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "license": "MIT", + "dependencies": { + "node-fetch": "2.6.7" + } }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "license": "MIT", "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", - "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", - "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.3.0.tgz", - "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz", - "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", - "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz", - "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/css-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", + "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", + "license": "MIT", + "dependencies": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/css-loader/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/css-loader/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/css-loader/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/css-loader/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "license": "MIT" + }, + "node_modules/css-loader/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-mediaquery": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", + "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==", + "license": "BSD" + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "node_modules/css-vendor": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", + "integrity": "sha512-Vx/Vl3zsHj32Z+WTNzGjd2iSbSIJTYHMmyGUT2nzCjj0Xk4qLfwpQ8nF6TQ5oo3Cf0s/An3DTc7LclH1BkAXbQ==", + "license": "MIT", + "dependencies": { + "is-in-browser": "^1.0.2" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dapjs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/dapjs/-/dapjs-2.3.0.tgz", + "integrity": "sha512-quanzq7+2xnqgGqqYgARz9o3iBcZ3Ir5r5mTA7WPsjrp9ilEqqCToSFGTL+8HuGP35dUIL7O+yMBloYHhHgZDA==", + "license": "MIT", + "dependencies": { + "@types/node-hid": "^1.2.0", + "@types/usb": "^1.5.1", + "@types/w3c-web-usb": "^1.0.4" + }, + "engines": { + "node": ">=8.14.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { "optional": true - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true, + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-html": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz", + "integrity": "sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==", + "license": "MIT" + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "license": "MIT", + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "license": "MIT", + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dedent": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { "optional": true } } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "node_modules/deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/default-gateway/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/default-gateway/node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/default-gateway/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/default-gateway/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/default-gateway/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/default-gateway/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/diff": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", + "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-match-patch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.4.tgz", + "integrity": "sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==", + "license": "Apache-2.0" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "license": "MIT", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dompurify": { + "version": "2.5.8", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.8.tgz", + "integrity": "sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw==", + "license": "(MPL-2.0 OR Apache-2.0)" + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/download": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/download/-/download-8.0.0.tgz", + "integrity": "sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==", + "license": "MIT", + "dependencies": { + "archive-type": "^4.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.2.1", + "ext-name": "^5.0.0", + "file-type": "^11.1.0", + "filenamify": "^3.0.0", + "get-stream": "^4.1.0", + "got": "^8.3.1", + "make-dir": "^2.1.0", + "p-event": "^2.1.0", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "license": "BSD-3-Clause", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "license": "BSD-3-Clause" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.167", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.167.tgz", + "integrity": "sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==", + "license": "ISC" + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" + }, + "node_modules/email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/enzyme": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.10.0.tgz", + "integrity": "sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flat": "^1.2.1", + "cheerio": "^1.0.0-rc.2", + "function.prototype.name": "^1.1.0", + "has": "^1.0.3", + "html-element-map": "^1.0.0", + "is-boolean-object": "^1.0.0", + "is-callable": "^1.1.4", + "is-number-object": "^1.0.3", + "is-regex": "^1.0.4", + "is-string": "^1.0.4", + "is-subset": "^0.1.1", + "lodash.escape": "^4.0.1", + "lodash.isequal": "^4.5.0", + "object-inspect": "^1.6.0", + "object-is": "^1.0.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4", + "object.values": "^1.0.4", + "raf": "^3.4.0", + "rst-selector-parser": "^2.2.3", + "string.prototype.trim": "^1.1.2" + } + }, + "node_modules/enzyme-adapter-react-16": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.7.tgz", + "integrity": "sha512-LtjKgvlTc/H7adyQcj+aq0P0H07LDL480WQl1gU512IUyaDo/sbOaNDdZsJXYW2XaoPqrLLE9KbZS+X2z6BASw==", + "dev": true, + "license": "MIT", + "dependencies": { + "enzyme-adapter-utils": "^1.14.1", + "enzyme-shallow-equal": "^1.0.5", + "has": "^1.0.3", + "object.assign": "^4.1.4", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "react-is": "^16.13.1", + "react-test-renderer": "^16.0.0-0", + "semver": "^5.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "peerDependencies": { + "enzyme": "^3.0.0", + "react": "^16.0.0-0", + "react-dom": "^16.0.0-0" + } + }, + "node_modules/enzyme-adapter-react-16/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/enzyme-adapter-utils": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.2.tgz", + "integrity": "sha512-1ZC++RlsYRaiOWE5NRaF5OgsMt7F5rn/VuaJIgc7eW/fmgg8eS1/Ut7EugSPPi7VMdWMLcymRnMF+mJUJ4B8KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "airbnb-prop-types": "^2.16.0", + "function.prototype.name": "^1.1.6", + "hasown": "^2.0.0", + "object.assign": "^4.1.5", + "object.fromentries": "^2.0.7", + "prop-types": "^15.8.1", + "semver": "^6.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "peerDependencies": { + "react": "0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0" + } + }, + "node_modules/enzyme-shallow-equal": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz", + "integrity": "sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0", + "object-is": "^1.1.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-scratch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/eslint-config-scratch/-/eslint-config-scratch-9.0.3.tgz", + "integrity": "sha512-BSMx4Y6V7IjDW/thMXLAYTxKvjeI4M8RtHmbpUbx3N70CZV4armoA9zJ7RmER1hjV5KQebCVQy45A2xMj2Ng8w==", + "dev": true, + "license": "BSD-3-Clause", + "optionalDependencies": { + "eslint-plugin-react": ">=7.27.0" + }, + "peerDependencies": { + "@babel/eslint-parser": "^7.11.0", + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-webpack": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.11.1.tgz", + "integrity": "sha512-eK3zR7xVQR/MaoBWwGuD+CULYVuqe5QFlDukman71aI6IboCGzggDUohHNfu1ZeBnbHcUHJc0ywWoXUBNB6qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find": "^1.0.0", + "debug": "^2.6.8", + "enhanced-resolve": "~0.9.0", + "find-root": "^1.1.0", + "has": "^1.0.1", + "interpret": "^1.0.0", + "lodash": "^4.17.4", + "node-libs-browser": "^1.0.0 || ^2.0.0", + "resolve": "^1.10.0", + "semver": "^5.3.0" + }, + "peerDependencies": { + "eslint-plugin-import": ">=1.4.0", + "webpack": ">=1.11.0" + } + }, + "node_modules/eslint-import-resolver-webpack/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-import-resolver-webpack/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-import-resolver-webpack/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.17.0.tgz", + "integrity": "sha512-WT4DP4RoGBhIQjv+5D0FM20fAdAUstfYAf/mkufLNTojsfgzc5/IYW22cIg/Q4QBavAZsROQlqppiWDpFZDS8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^1.13.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==", + "license": "BSD-3-Clause" + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/exports-loader": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.7.0.tgz", + "integrity": "sha512-RKwCrO4A6IiKm0pG3c9V46JxIHcDplwwGJn6+JJ1RcVnh/WSGJa0xkmk5cRVtgOPzCAtTMGj2F7nluh9L0vpSA==", + "license": "MIT", + "dependencies": { + "loader-utils": "^1.1.0", + "source-map": "0.5.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/exports-loader/node_modules/source-map": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.0.tgz", + "integrity": "sha512-gjGnxNN0K+/Pr4Mi4fs/pOtda10dKB6Wn9QvjOrH6v5TWsI7ghHuJUHoIgyM6DkUL5kr2GtPFGererzKpMBWfA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "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" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.28.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "license": "MIT", + "dependencies": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "license": "MIT", + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/falafel": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", + "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "isarray": "^2.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/fastestsmallesttextencoderdecoder": { + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", + "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==", + "license": "CC0-1.0" + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/file-type": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz", + "integrity": "sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT", + "optional": true + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-3.0.0.tgz", + "integrity": "sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g==", + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", + "integrity": "sha512-Udxo3C9A6alt2GZ2MNsgnIvX7De0V3VGxeP/x98NSVgSlizcDHdmJza61LI7zJy4OEtSiJyE72s0/+tBl5/ZxA==", + "dependencies": { + "colors": "~0.6.0-1", + "commander": "~2.1.0" + }, + "bin": { + "findup": "bin/findup.js" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup-sync/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "license": "MIT", + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup/node_modules/commander": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", + "integrity": "sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ==", + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/format-message": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/format-message/-/format-message-6.2.1.tgz", + "integrity": "sha512-6gBXI+MOE9pu9QNeZf95V87GKYiLCdUvhisjts75xonaPAshtBu20NTZt2l8kbYcoMtxNyH9E9af+aieIRfVmw==", + "license": "MIT", + "dependencies": { + "format-message-formats": "^6.2.0", + "format-message-interpret": "^6.2.0", + "format-message-parse": "^6.2.0", + "lookup-closest-locale": "^6.2.0" + } + }, + "node_modules/format-message-formats": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-formats/-/format-message-formats-6.2.4.tgz", + "integrity": "sha512-smT/fAqBLqusWfWCKRAx6QBDAAbmYznWsIyTyk66COmvwt2Byiqd7SJe2ma9a5oV0kwRaOJpN/F4lr4YK/n6qQ==", + "license": "MIT" + }, + "node_modules/format-message-interpret": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-interpret/-/format-message-interpret-6.2.4.tgz", + "integrity": "sha512-dRvz9mXhITApyOtfuFEb/XqvCe1u6RMkQW49UJHXS8w2S8cAHCqq5LNDFK+QK6XVzcofROycLb/k1uybTAKt2w==", + "license": "MIT", + "dependencies": { + "format-message-formats": "^6.2.4", + "lookup-closest-locale": "^6.2.0" + } + }, + "node_modules/format-message-parse": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.4.tgz", + "integrity": "sha512-k7WqXkEzgXkW4wkHdS6Cv2Ou0rIFtiDelZjgoe1saW4p7FT7zS8OeAUpAekhormqzpeecR97e4vBft1zMsfFOQ==", + "license": "MIT" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2-array": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", + "integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==", + "license": "MIT", + "dependencies": { + "from2": "^2.0.3" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "license": "MIT" + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-float-time-domain-data": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-float-time-domain-data/-/get-float-time-domain-data-0.1.0.tgz", + "integrity": "sha512-6lWdVMny7vJ+xWxGUmVdSW7rd4L2byptiVkjH3QEBsxcHSa8UbC/HsZmixHK/ZQ1EYsOaQjaeRgR+NAsIerEJQ==", + "license": "MIT" + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-user-media-promise": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/get-user-media-promise/-/get-user-media-promise-1.1.4.tgz", + "integrity": "sha512-k49YuV2z0d3gKHLPTFKYfzEA9kduuQk7YBf8ev2dxrKk+DhMyuzfQnK9ZSxkEhE/jv3BZY62M0eICWa7lak9nw==", + "license": "Apache-2.0" + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/gh-pages": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", + "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gh-pages/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/gh-pages/node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", + "license": "MIT", + "dependencies": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/global/node_modules/process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/got/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/grapheme-breaker": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz", + "integrity": "sha512-mB6rwkw1Z7z4z2RkFFTd/+q6Ug1gnCgjKAervAKgBeNI1mSr8E5EUWoYzFNOZsLHFArLfpk+O8X8qXC7uvuawQ==", + "license": "MIT", + "dependencies": { + "brfs": "^1.2.0", + "unicode-trie": "^0.3.1" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/growl": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", + "license": "MIT", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "license": "MIT", + "dependencies": { + "has-symbol-support-x": "^1.4.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC" + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/html-element-map": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz", + "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.filter": "^1.0.0", + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-webpack-plugin": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "engines": { + "node": ">=6.9" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/htmlparser2": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "license": "BSD-2-Clause" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "license": "MIT", + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "license": "MIT" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/hyphenate-style-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", + "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==", + "license": "BSD-3-Clause" + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", + "license": "ISC" + }, + "node_modules/icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA==", + "license": "ISC", + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/icss-utils/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/icss-utils/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/icss-utils/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/icss-utils/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/icss-utils/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/icss-utils/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/icss-utils/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ify-loader": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.0.4.tgz", + "integrity": "sha512-fzWOWwsTZH3c2GPNJy1dndN5lk+oyXGPbg9YrHv/UwC/SmlxNEUAst6evF1H9ySGbezgBA42YGLSr1WzAwgx9w==", + "license": "MIT", + "dependencies": { + "bl": "^1.0.0", + "findup": "^0.1.5", + "from2-array": "0.0.4", + "map-limit": "0.0.1", + "multipipe": "^0.3.0", + "read-package-json": "^2.0.2", + "resolve": "^1.1.6" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==", + "license": "MIT", + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==", + "license": "MIT", + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imports-loader": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.8.0.tgz", + "integrity": "sha512-kXWL7Scp8KQ4552ZcdVTeaQCZSLW+e6nJfp3cwUMB673T7Hr98Xjx5JK+ql7ADlJUvj1JS5O01RLbKoutN5QDQ==", + "license": "MIT", + "dependencies": { + "loader-utils": "^1.0.2", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==", + "license": "MIT" + }, + "node_modules/intl-format-cache": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", + "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==", + "license": "BSD-3-Clause" + }, + "node_modules/intl-messageformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", + "integrity": "sha512-I+tSvHnXqJYjDfNmY95tpFMj30yoakC6OXAo+wu/wTMy6tA/4Fd4mvV7Uzs4cqK/Ap29sHhwjcY+78a8eifcXw==", + "license": "BSD-3-Clause", + "dependencies": { + "intl-messageformat-parser": "1.4.0" + } + }, + "node_modules/intl-messageformat-parser": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", + "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", + "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", + "license": "BSD-3-Clause" + }, + "node_modules/intl-messageformat/node_modules/intl-messageformat-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", + "integrity": "sha512-/XkqFHKezO6UcF4Av2/Lzfrez18R0jyw7kRFhSeB/YRakdrgSc9QfFZUwNJI9swMwMoNPygK1ArC5wdFSjPw+A==", + "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", + "license": "BSD-3-Clause" + }, + "node_modules/intl-relativeformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", + "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", + "deprecated": "This package has been deprecated, please see migration guide at 'https://github.com/formatjs/formatjs/tree/master/packages/intl-relativeformat#migration-guide'", + "license": "BSD-3-Clause", + "dependencies": { + "intl-messageformat": "^2.0.0" + } + }, + "node_modules/into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==", + "license": "MIT", + "dependencies": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "license": "MIT" + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==", + "license": "MIT" + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/is2": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", + "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "ip-regex": "^4.1.0", + "is-url": "^1.2.4" + }, + "engines": { + "node": ">=v0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "license": "MIT" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "license": "MIT", + "dependencies": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-junit": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-7.0.0.tgz", + "integrity": "sha512-ljUdO0hLyu0A92xk7R2Wet3kj99fmazTo+ZFYQP6b7AGOBxJUj8ZkJWzJ632ajpXko2Y5oNoGR2kvOwiDdu6hg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jest-validate": "^24.0.0", + "mkdirp": "^0.5.1", + "strip-ansi": "^4.0.0", + "xml": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/jest-junit/node_modules/@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-junit/node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/jest-junit/node_modules/@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-junit/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-junit/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-junit/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-junit/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/node_modules/jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-junit/node_modules/jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-junit/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/jest-junit/node_modules/pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-junit/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-base64": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", + "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", + "license": "BSD-3-Clause" + }, + "node_modules/js-md5": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz", + "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/keymirror": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/keymirror/-/keymirror-0.1.1.tgz", + "integrity": "sha512-vIkZAFWoDijgQT/Nvl2AHCMmnegN2ehgTPYuyy2hWQkQSntI0S7ESYqdLkoSe1HyEBFHHkCgSIvVdSEiWwKvCg==" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true, + "license": "ISC" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/linebreak": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz", + "integrity": "sha512-zt8pzlM3oq4moDN8U5mP1SbZ44yKV6dXCu44Ez6iTXmxUl8/jRFWeho2SDqL5YDBv0TBKPgU/XGovZwnXAKlOQ==", + "license": "MIT", + "dependencies": { + "base64-js": "0.0.8", + "brfs": "^1.3.0", + "unicode-trie": "^0.3.0" + } + }, + "node_modules/linebreak/node_modules/base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "license": "MIT", + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==", + "license": "MIT" + }, + "node_modules/lodash.bindall": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.bindall/-/lodash.bindall-4.4.0.tgz", + "integrity": "sha512-NQ+QvFohS2gPbWpyLfyuiF0ZQA3TTaJ+n0XDID5jwtMZBKE32gN5vSyy7xBVsqvJkvT/UY9dvHXIk9tZmBVF3g==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "license": "MIT" + }, + "node_modules/lodash.escape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", + "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", + "deprecated": "This package is deprecated. Use destructuring assignment syntax instead.", + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.0.1.tgz", + "integrity": "sha512-vEeVrketgBFJ268V478NKyLk142uvnlFHuRHUUcu5NhsMQQpTs5EIGZduGNqdJOOhnb+Rwkz0XvfQuwOYzRo1Q==", + "license": "MIT", + "dependencies": { + "lodash.debounce": "^4.0.0" + } + }, + "node_modules/lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg==", + "dev": true, + "license": "MIT" + }, + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/lookup-closest-locale": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", + "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "license": "MIT", + "dependencies": { + "vlq": "^0.2.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", + "license": "MIT", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/map-limit/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchmediaquery": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz", + "integrity": "sha512-Hlk20WQHRIm9EE9luN1kjRjYXAQToHOIAHPJn9buxBwuhfTHoKUcX+lXBbxc85DVQfXYbEQ4HcwQdd128E3qHQ==", + "license": "MIT", + "dependencies": { + "css-mediaquery": "^0.1.2" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", + "license": "MIT", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/microee": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz", + "integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==", + "license": "BSD" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minilog": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz", + "integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==", + "license": "MIT", + "dependencies": { + "microee": "0.0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mississippi/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz", + "integrity": "sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w==", + "license": "MIT" + }, + "node_modules/mocha": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", + "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", + "license": "MIT", + "dependencies": { + "browser-stdout": "1.3.0", + "commander": "2.11.0", + "debug": "3.1.0", + "diff": "3.3.1", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.3", + "he": "1.1.1", + "mkdirp": "0.5.1", + "supports-color": "4.4.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mocha/node_modules/commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "license": "MIT" + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha/node_modules/he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/mocha/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", + "license": "MIT" + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "license": "MIT", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "license": "MIT", + "dependencies": { + "has-flag": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/multipipe": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz", + "integrity": "sha512-ZUcepNdMeKBRn/ksm2XTxFnhBaqnBJSZNqwajmiem6b7Rp3fNAAq+twYn3kqw9YMY7HJuc7I7OObX9cMgB1ANg==", + "license": "MIT", + "dependencies": { + "duplexer2": "^0.1.2" + } + }, + "node_modules/nan": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz", + "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==", + "license": "MIT", + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "license": "MIT", + "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.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" + } + }, + "node_modules/nearley/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "license": "MIT", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "license": "ISC" + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "license": "MIT" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.hasown": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/omggif": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.9.tgz", + "integrity": "sha512-VYAQRSZo7qoBcwB5G29YqVPLnxvDkWulE3x35kwH3bq4GdH/ZkHrcPPhxVfaOGYGZ5KV2/55UpcjcyNIO1qZoQ==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "license": "MIT" + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "license": "MIT", + "dependencies": { + "p-timeout": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "license": "MIT", + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/papaparse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.0.tgz", + "integrity": "sha512-Lb7jN/4bTpiuGPrYy4tkKoUS8sTki8zacB5ke1p5zolhcSE4TlWgrlsxjrDTbG/dFVh07ck7X36hUf/b5V68pg==", + "license": "MIT" + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "license": "ISC", + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-color": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", + "integrity": "sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw==", + "license": "MIT", + "dependencies": { + "color-convert": "~0.5.0" + } + }, + "node_modules/parse-headers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "license": "MIT" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } }, - "function.prototype.name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.1.tgz", - "integrity": "sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q==", + "node_modules/portfinder": { + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.37.tgz", + "integrity": "sha512-yuGIEjDAYnnOex9ddMnKZEMFE0CcGo6zbfzDklkmT1m5z734ss6JMzN9rNB3+RR7iS+F10D4/BVIaXOyh8PQKw==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1", - "functions-have-names": "^1.1.1", - "is-callable": "^1.1.4" + "license": "MIT", + "dependencies": { + "async": "^3.2.6", + "debug": "^4.3.6" + }, + "engines": { + "node": ">= 10.12" } }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "functions-have-names": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.1.1.tgz", - "integrity": "sha512-U0kNHUoxwPNPWOJaMG7Z00d4a/qZVrFtzWJRaK8V9goaVOCXBSQSJpt3MYGNtkScKEBKovxLjnNdC9MlXwo5Pw==", - "dev": true + "node_modules/portfinder/node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "get-float-time-domain-data": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-float-time-domain-data/-/get-float-time-domain-data-0.1.0.tgz", - "integrity": "sha1-XYVZJKQwOITJY4qrEnzOTQBlljs=" + "node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } }, - "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "node_modules/postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-import/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "license": "MIT" + }, + "node_modules/postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "license": "MIT", "dependencies": { - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - } + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "get-stream": { + "node_modules/postcss-loader": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-user-media-promise": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/get-user-media-promise/-/get-user-media-promise-1.1.4.tgz", - "integrity": "sha512-k49YuV2z0d3gKHLPTFKYfzEA9kduuQk7YBf8ev2dxrKk+DhMyuzfQnK9ZSxkEhE/jv3BZY62M0eICWa7lak9nw==" + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "license": "MIT", + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" + "node_modules/postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "license": "ISC", + "dependencies": { + "postcss": "^6.0.1" } }, - "gh-pages": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", - "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", - "dev": true, - "requires": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", - "filenamify": "^4.3.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "globby": "^6.1.0" + "node_modules/postcss-modules-extract-imports/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "node_modules/postcss-modules-extract-imports/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } + "node_modules/postcss-modules-extract-imports/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/postcss-modules-extract-imports/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "node_modules/postcss-modules-extract-imports/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "node_modules/postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==", + "license": "MIT", + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" } }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" + "node_modules/postcss-modules-local-by-default/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "node_modules/postcss-modules-local-by-default/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "node_modules/postcss-modules-local-by-default/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "node_modules/postcss-modules-local-by-default/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "google-closure-library": { - "version": "20190301.0.0", - "resolved": "https://registry.npmjs.org/google-closure-library/-/google-closure-library-20190301.0.0.tgz", - "integrity": "sha512-mpeszbnXpRhXZ0sPqUxBgUmk0RtmzrJRy3KFygp0Ih9JuRUjQTCLhwYQeIlK2vB2lShhY/KUo9E1Z1gvxDFxOQ==" + "node_modules/postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==", + "license": "ISC", + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } }, - "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==" + "node_modules/postcss-modules-scope/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } }, - "grapheme-breaker": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz", - "integrity": "sha512-mB6rwkw1Z7z4z2RkFFTd/+q6Ug1gnCgjKAervAKgBeNI1mSr8E5EUWoYzFNOZsLHFArLfpk+O8X8qXC7uvuawQ==", - "requires": { - "brfs": "^1.2.0", - "unicode-trie": "^0.3.1" + "node_modules/postcss-modules-scope/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==" + "node_modules/postcss-modules-scope/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true + "node_modules/postcss-modules-scope/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true + "node_modules/postcss-modules-scope/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "node_modules/postcss-modules-scope/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" + "supports-color": "^5.4.0" }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "node_modules/postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==", + "license": "ISC", + "dependencies": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" + "node_modules/postcss-modules-values/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" + "node_modules/postcss-modules-values/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true + "node_modules/postcss-modules-values/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } }, - "has-flag": { + "node_modules/postcss-modules-values/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/postcss-modules-values/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, + "node_modules/postcss-modules-values/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "license": "MIT", "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "node_modules/postcss-modules-values/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "node_modules/postcss-simple-vars": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-5.0.2.tgz", + "integrity": "sha512-xWIufxBoINJv6JiLb7jl5oElgp+6puJwvT5zZHliUSydoLz4DADRB3NDDsYgfKVwojn4TDLiseoC65MuS8oGGg==", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.14" } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } + "node_modules/postcss/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" }, - "hoist-non-react-statics": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", - "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", - "requires": { - "react-is": "^16.7.0" + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" } }, - "home-or-tmp": { + "node_modules/prepend-http": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "node_modules/pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", "dev": true, - "requires": { - "parse-passwd": "^1.0.0" + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" } }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "html-element-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.1.0.tgz", - "integrity": "sha512-iqiG3dTZmy+uUaTmHarTL+3/A2VW9ox/9uasKEZC+R/wAtUrTcRlXPSaPqsnWPfIu8wqn09jQNwMRqzL54jSYA==", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "requires": { - "array-filter": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "node_modules/pretty-format/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "requires": { - "whatwg-encoding": "^1.0.1" + "license": "MIT" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" } }, - "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "license": "ISC" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - } + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "html-webpack-plugin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.2.0.tgz", - "integrity": "sha512-zL7LYTuq/fcJX6vV6tmmvFR508Bd9e6kvVGbS76YAjZ2CPVRzsjkvDYs/SshPevpolSdTWgaDV39D6k6oQoVFw==", + "node_modules/prop-types-exact": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.7.tgz", + "integrity": "sha512-A4RaV6mg3jocQqBYmqi2ojJ2VnV4AKTEHhl3xHsud08/u87gcVJc8DUOtgnPegoOCQv/shUqEk4eZGYibjnHzQ==", "dev": true, - "requires": { - "@types/html-minifier-terser": "^5.0.0", - "@types/tapable": "^1.0.5", - "@types/webpack": "^4.41.8", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.15", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - }, + "license": "MIT", "dependencies": { - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - } + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "isarray": "^2.0.5", + "object.assign": "^4.1.7", + "own-keys": "^1.0.0" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "node_modules/prop-types-exact/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "license": "MIT" }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "license": "ISC" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/psl/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "license": "MIT", "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", - "dev": true + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "license": "MIT" }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" } - } - }, - "hull.js": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/hull.js/-/hull.js-0.2.10.tgz", - "integrity": "sha512-UO3W30HxhWgeSpNKCdXt00xkwjRTGmhQaoZNP8ll509Nl+DP9juXE3wRGizihuop08FSB4xtAWIbWSe+RxEoog==" + ], + "license": "MIT" }, - "hyphenate-style-name": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz", - "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" } }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "requires": { - "postcss": "^6.0.1" - }, + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "license": "MIT", "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ify-loader": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.0.4.tgz", - "integrity": "sha512-fzWOWwsTZH3c2GPNJy1dndN5lk+oyXGPbg9YrHv/UwC/SmlxNEUAst6evF1H9ySGbezgBA42YGLSr1WzAwgx9w==", - "requires": { - "bl": "^1.0.0", - "findup": "^0.1.5", - "from2-array": "0.0.4", - "map-limit": "0.0.1", - "multipipe": "^0.3.0", - "read-package-json": "^2.0.2", - "resolve": "^1.1.6" + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "engines": { + "node": ">=0.4.x" } }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "license": "MIT" }, - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "requires": { - "import-from": "^2.1.0" + "node_modules/quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==", + "license": "MIT", + "dependencies": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + }, + "bin": { + "quote-stream": "bin/cmd.js" } }, - "import-fresh": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", - "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "requires": { - "resolve-from": "^3.0.0" - }, + "license": "MIT", "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } + "performance-now": "^2.1.0" } }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } + "license": "CC0-1.0" }, - "imports-loader": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz", - "integrity": "sha512-fYIzBL9JOzJszvfeSGSKVjAtkWEtPUwP+OWiUxIWApcxsYh3iqZWZAp8xjTuhsvqglhqaetxeLLTaYyxIv1d4Q==", - "requires": { - "loader-utils": "0.2.x", - "source-map": "0.1.x" - }, + "node_modules/randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "dev": true, + "license": "MIT", "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==" - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", - "requires": { - "amdefine": ">=0.0.4" - } - } + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, + "engines": { + "node": ">=0.12" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } }, - "infer-owner": { + "node_modules/randomfill": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "dependencies": { - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - } + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, - "intl": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", - "integrity": "sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=" - }, - "intl-format-cache": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", - "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==" + "node_modules/raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==" }, - "intl-messageformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", - "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", - "requires": { - "intl-messageformat-parser": "1.4.0" + "node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "intl-messageformat-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", - "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=" - }, - "intl-relativeformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", - "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", - "requires": { - "intl-messageformat": "^2.0.0" + "node_modules/react-contextmenu": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/react-contextmenu/-/react-contextmenu-2.9.4.tgz", + "integrity": "sha512-ma4YQw4J7JNv8L8mMVd1NHHbvH3+gaK/rQ6FC5Tft7OCUweKi7PHqHEE0fDF2009FLSGoV5JnjPnTTEyThqaJg==", + "license": "MIT", + "dependencies": { + "classnames": "^2.2.5", + "object-assign": "^4.1.0" + }, + "peerDependencies": { + "prop-types": "^15.0.0", + "react": "^0.14.0 || ^15.0.0 || ^16.0.0", + "react-dom": "^0.14.0 || ^15.0.0 || ^16.0.0" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" + "node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, + "node_modules/react-draggable": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-3.0.5.tgz", + "integrity": "sha512-qo76q6+pafyGllbmfc+CgWfOkwY9v3UoJa3jp6xG2vdsRY8uJTN1kqNievLj0uVNjEqCvZ0OFiEBxlAJNj3OTg==", + "license": "MIT", "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "classnames": "^2.2.5", + "prop-types": "^15.6.0" } }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0" + "node_modules/react-ga": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-2.5.3.tgz", + "integrity": "sha512-25wvPv1PVLDLhw1gEYP33h0V2sJHahKMfUCAxhq8JPYmNQwx1fcjJAkJk+WmSqGN93lHLhExDkxy3SQizQnx3A==", + "license": "Apache-2.0", + "optionalDependencies": { + "prop-types": "^15.6.0", + "react": "^15.6.2 || ^16.0" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true + "node_modules/react-intl": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", + "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", + "license": "BSD-3-Clause", + "dependencies": { + "hoist-non-react-statics": "^3.3.0", + "intl-format-cache": "^2.0.5", + "intl-messageformat": "^2.1.0", + "intl-relativeformat": "^2.1.0", + "invariant": "^2.1.1" + }, + "peerDependencies": { + "prop-types": "^15.5.4", + "react": "^0.14.9 || ^15.0.0 || ^16.0.0" + } }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" + "node_modules/react-intl-redux": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/react-intl-redux/-/react-intl-redux-0.7.0.tgz", + "integrity": "sha512-T7I7Yy1UkvD8rOB1B+SCG63LYJBtBcvGJ8FVJ8g8Yjhm4+rEhKzJuh1MaQBhwKZNlVcHlx4SlKdtkw8urdZdrA==", + "license": "MIT", + "peer": true, + "dependencies": { + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react-intl": "^2.2.2", + "react-redux": "^5.0.1" } }, - "is-boolean-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz", - "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=", - "dev": true + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "license": "MIT" }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" + "node_modules/react-modal": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.9.1.tgz", + "integrity": "sha512-k+TUkhGWpIVHLsEyjNmlyOYL0Uz03fNZvlkhCImd1h+6fhNgTi6H6jexVXPVhD2LMMDzJyfugxMN+APN/em+eQ==", + "license": "MIT", + "dependencies": { + "exenv": "^1.2.0", + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.0", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16", + "react-dom": "^0.14.0 || ^15.0.0 || ^16" } }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + "node_modules/react-popover": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/react-popover/-/react-popover-0.5.10.tgz", + "integrity": "sha512-5SYDTfncywSH00I70oHd4gFRUR8V0rJ4sRADSI/P6G0RVXp9jUgaWloJ0Bk+SFnjpLPuipTKuzQNNd2CTs5Hrw==", + "license": "MIT", + "dependencies": { + "css-vendor": "^0.3.1", + "debug": "^2.6.8", + "lodash.throttle": "^3.0.3", + "prop-types": "^15.5.10" + } }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "requires": { - "ci-info": "^1.5.0" + "node_modules/react-popover/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "dev": true, - "requires": { - "has": "^1.0.3" + "node_modules/react-popover/node_modules/lodash.debounce": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", + "integrity": "sha512-lcmJwMpdPAtChA4hfiwxTtgFeNAaow701wWUgVUqeD0XJF7vMXIN+bu/2FJSGxT0NUbZy9g9VFrlOFfPjl+0Ew==", + "license": "MIT", + "dependencies": { + "lodash._getnative": "^3.0.0" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, + "node_modules/react-popover/node_modules/lodash.throttle": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-3.0.4.tgz", + "integrity": "sha512-dRU/xiF4W8a521NYnQosG5drDqv4+hp3ND6yWNJUMnwO1E87Q/A7oc9M/g6pk29K9U3j/ZWhM3BAQZyr/P6TTQ==", + "license": "MIT", "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "lodash.debounce": "^3.0.0" } }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + "node_modules/react-popover/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "node_modules/react-redux": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", + "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", + "license": "MIT", + "dependencies": { + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.0.0", + "lodash": "^4.17.5", + "lodash-es": "^4.17.5", + "loose-envify": "^1.1.0", + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0-0 || ^16.0.0-0", + "redux": "^2.0.0 || ^3.0.0 || ^4.0.0-0" } }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + "node_modules/react-redux/node_modules/hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==", + "license": "BSD-3-Clause" }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true + "node_modules/react-responsive": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-5.0.0.tgz", + "integrity": "sha512-oEimZ0FTCC3/pjGDEBHOz06nWbBNDIbMGOdRYp6K9SBUmrqgNAX77hTiqvmRQeLyI97zz4F4kiaFRxFspDxE+w==", + "license": "MIT", + "dependencies": { + "hyphenate-style-name": "^1.0.0", + "matchmediaquery": "^0.3.0", + "prop-types": "^15.6.1" + }, + "engines": { + "node": ">= 0.10" + }, + "peerDependencies": { + "react": "^16.0.0" + } }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" + "node_modules/react-string-replace": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/react-string-replace/-/react-string-replace-0.4.4.tgz", + "integrity": "sha512-FAMkhxmDpCsGTwTZg7p/2v+/GTmxAp73so3fbSvlAcBBX36ujiGRNEaM/1u+jiYQrArhns+7eE92g2pi5E5FUA==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.4" + }, + "engines": { + "node": ">=0.12.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "node_modules/react-style-proptype": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz", + "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.5.4" + } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "node_modules/react-tabs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-2.3.0.tgz", + "integrity": "sha512-pYaefgVy76/36AMEP+B8YuVVzDHa3C5UFZ3REU78zolk0qMxEhKvUFofvDCXyLZwf0RZjxIfiwok1BEb18nHyA==", + "license": "MIT", + "dependencies": { + "classnames": "^2.2.0", + "prop-types": "^15.5.0" + }, + "peerDependencies": { + "react": "^0.14.9 || ^15.3.0 || ^16.0.0" + } }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "node_modules/react-test-renderer": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz", + "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==", "dev": true, - "requires": { - "number-is-nan": "^1.0.0" + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "react-is": "^16.8.6", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "node_modules/react-tooltip": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.8.0.tgz", + "integrity": "sha512-Uj/vVd0uGuqwTkWeRjKS56T2iwOSvsSMbjqTK7AseHZEMND+WCXXUajaF7+ZsJWTZgnpeT9kBnaBFhchzeDTbw==", + "license": "MIT", + "dependencies": { + "classnames": "^2.2.5", + "prop-types": "^15.6.0" + }, + "engines": { + "node": ">=4.2.1" + }, + "peerDependencies": { + "react": ">=0.14", + "react-dom": ">=0.14" + } }, - "is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + "node_modules/react-virtualized": { + "version": "9.20.1", + "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.20.1.tgz", + "integrity": "sha512-xIWxBsyNAjceqD3hsE0nw5TcDVxKbIepsHhvS2XneHmNz0KlKxdLdGBmGZBM9ZesEmbZ5EO0Sw70TB1MeCmpbQ==", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "classnames": "^2.2.3", + "dom-helpers": "^2.4.0 || ^3.0.0", + "loose-envify": "^1.3.0", + "prop-types": "^15.6.0", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0-alpha", + "react-dom": "^15.3.0 || ^16.0.0-alpha" + } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" } }, - "is-in-browser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "is-number-object": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz", - "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=", - "dev": true + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" + "node_modules/redux": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "license": "MIT", + "dependencies": { + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" } }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" + "node_modules/redux-mock-store": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.3.tgz", + "integrity": "sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.isplainobject": "^4.0.6" } }, - "is-posix-bracket": { + "node_modules/redux-throttle": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true + "resolved": "https://registry.npmjs.org/redux-throttle/-/redux-throttle-0.1.1.tgz", + "integrity": "sha512-24stzg4+1xtlO8ubP4HKudpBdPsG4qvbn0Z9hv8tz6fM6ZcQJe2dKEwYIqTl8+yPMGgjNKHp1lzTwRqjWCxj/Q==", + "license": "MIT", + "dependencies": { + "lodash.throttle": "4.0.1" + } }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "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.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "^1.0.1" + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" }, - "is-string": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz", - "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=", - "dev": true + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", - "dev": true + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "requires": { - "has-symbols": "^1.0.0" + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dev": true, + "license": "MIT", + "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.1.0" + }, + "engines": { + "node": ">=4" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } }, - "is-wsl": { + "node_modules/remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "devOptional": true, + "license": "ISC" }, - "is2": { + "node_modules/renderkid": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.7.tgz", - "integrity": "sha512-4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA==", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", "dev": true, - "requires": { - "deep-is": "^0.1.3", - "ip-regex": "^4.1.0", - "is-url": "^1.2.4" + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "license": "MIT", "dependencies": { - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true - } + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-api": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", - "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", - "dev": true, - "requires": { - "async": "^2.1.4", - "fileset": "^2.0.2", - "istanbul-lib-coverage": "^1.2.1", - "istanbul-lib-hook": "^1.2.2", - "istanbul-lib-instrument": "^1.10.2", - "istanbul-lib-report": "^1.1.5", - "istanbul-lib-source-maps": "^1.2.6", - "istanbul-reports": "^1.5.1", - "js-yaml": "^3.7.0", - "mkdirp": "^0.5.1", - "once": "^1.4.0" + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "license": "MIT", "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" } }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", - "dev": true + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } }, - "istanbul-lib-hook": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", - "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "requires": { - "append-transform": "^0.4.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true, - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" - } + "license": "ISC" }, - "istanbul-lib-report": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", - "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true, - "requires": { - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "istanbul-lib-source-maps": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", - "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - }, + "license": "MIT", "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "istanbul-reports": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", - "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, - "requires": { - "handlebars": "^4.0.3" + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "jest": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", - "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", + "node_modules/resolve-dir/node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, - "requires": { - "jest-cli": "^21.2.1" + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "jest-cli": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", - "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "is-ci": "^1.0.10", - "istanbul-api": "^1.1.1", - "istanbul-lib-coverage": "^1.0.1", - "istanbul-lib-instrument": "^1.4.2", - "istanbul-lib-source-maps": "^1.1.0", - "jest-changed-files": "^21.2.0", - "jest-config": "^21.2.1", - "jest-environment-jsdom": "^21.2.1", - "jest-haste-map": "^21.2.0", - "jest-message-util": "^21.2.1", - "jest-regex-util": "^21.2.0", - "jest-resolve-dependencies": "^21.2.0", - "jest-runner": "^21.2.1", - "jest-runtime": "^21.2.1", - "jest-snapshot": "^21.2.1", - "jest-util": "^21.2.1", - "micromatch": "^2.3.11", - "node-notifier": "^5.0.2", - "pify": "^3.0.0", - "slash": "^1.0.0", - "string-length": "^2.0.0", - "strip-ansi": "^4.0.0", - "which": "^1.2.12", - "worker-farm": "^1.3.1", - "yargs": "^9.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" } }, - "jest-changed-files": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-21.2.0.tgz", - "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", + "node_modules/resolve-dir/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "requires": { - "throat": "^4.0.0" + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "jest-config": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", - "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "requires": { - "chalk": "^2.0.1", - "glob": "^7.1.1", - "jest-environment-jsdom": "^21.2.1", - "jest-environment-node": "^21.2.1", - "jest-get-type": "^21.2.0", - "jest-jasmine2": "^21.2.1", - "jest-regex-util": "^21.2.0", - "jest-resolve": "^21.2.0", - "jest-util": "^21.2.1", - "jest-validate": "^21.2.1", - "pretty-format": "^21.2.1" - } - }, - "jest-diff": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz", - "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "diff": "^3.2.0", - "jest-get-type": "^21.2.0", - "pretty-format": "^21.2.1" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "jest-docblock": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", - "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", - "dev": true + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "license": "MIT" }, - "jest-environment-jsdom": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz", - "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, - "requires": { - "jest-mock": "^21.2.0", - "jest-util": "^21.2.1", - "jsdom": "^9.12.0" + "license": "MIT", + "engines": { + "node": ">=10" } }, - "jest-environment-node": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-21.2.1.tgz", - "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", - "dev": true, - "requires": { - "jest-mock": "^21.2.0", - "jest-util": "^21.2.1" + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" } }, - "jest-get-type": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", - "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", - "dev": true + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "license": "MIT", + "engines": { + "node": ">=0.12" + } }, - "jest-haste-map": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", - "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, - "requires": { - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.11", - "jest-docblock": "^21.2.0", - "micromatch": "^2.3.11", - "sane": "^2.0.0", - "worker-farm": "^1.3.1" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "license": "MIT", + "engines": { + "node": ">= 4" } }, - "jest-jasmine2": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz", - "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "expect": "^21.2.1", - "graceful-fs": "^4.1.11", - "jest-diff": "^21.2.1", - "jest-matcher-utils": "^21.2.1", - "jest-message-util": "^21.2.1", - "jest-snapshot": "^21.2.1", - "p-cancelable": "^0.3.0" + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "jest-junit": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-7.0.0.tgz", - "integrity": "sha512-ljUdO0hLyu0A92xk7R2Wet3kj99fmazTo+ZFYQP6b7AGOBxJUj8ZkJWzJ632ajpXko2Y5oNoGR2kvOwiDdu6hg==", + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "requires": { - "jest-validate": "^24.0.0", - "mkdirp": "^0.5.1", - "strip-ansi": "^4.0.0", - "xml": "^1.0.1" + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", - "dev": true - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } - } + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, - "jest-matcher-utils": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz", - "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", + "node_modules/rst-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", + "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-get-type": "^21.2.0", - "pretty-format": "^21.2.1" + "license": "BSD-3-Clause", + "dependencies": { + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" } }, - "jest-message-util": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz", - "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "micromatch": "^2.3.11", - "slash": "^1.0.0" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "jest-mock": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-21.2.0.tgz", - "integrity": "sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==", - "dev": true - }, - "jest-regex-util": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz", - "integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==", - "dev": true - }, - "jest-resolve": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-21.2.0.tgz", - "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", - "dev": true, - "requires": { - "browser-resolve": "^1.11.2", - "chalk": "^2.0.1", - "is-builtin-module": "^1.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz", - "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", "dev": true, - "requires": { - "jest-regex-util": "^21.2.0" + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1" } }, - "jest-runner": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-21.2.1.tgz", - "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, - "requires": { - "jest-config": "^21.2.1", - "jest-docblock": "^21.2.0", - "jest-haste-map": "^21.2.0", - "jest-jasmine2": "^21.2.1", - "jest-message-util": "^21.2.1", - "jest-runtime": "^21.2.1", - "jest-util": "^21.2.1", - "pify": "^3.0.0", - "throat": "^4.0.0", - "worker-farm": "^1.3.1" - }, + "license": "MIT", "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "jest-runtime": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-21.2.1.tgz", - "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, - "requires": { - "babel-core": "^6.0.0", - "babel-jest": "^21.2.0", - "babel-plugin-istanbul": "^4.0.0", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "graceful-fs": "^4.1.11", - "jest-config": "^21.2.1", - "jest-haste-map": "^21.2.0", - "jest-regex-util": "^21.2.0", - "jest-resolve": "^21.2.0", - "jest-util": "^21.2.1", - "json-stable-stringify": "^1.0.1", - "micromatch": "^2.3.11", - "slash": "^1.0.0", - "strip-bom": "3.0.0", - "write-file-atomic": "^2.1.0", - "yargs": "^9.0.0" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } + "license": "MIT" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true + { + "type": "consulting", + "url": "https://feross.org/support" } - } + ], + "license": "MIT" }, - "jest-snapshot": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz", - "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^21.2.1", - "jest-matcher-utils": "^21.2.1", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^21.2.1" - }, + "license": "MIT", "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "jest-util": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-21.2.1.tgz", - "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, - "requires": { - "callsites": "^2.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.11", - "jest-message-util": "^21.2.1", - "jest-mock": "^21.2.0", - "jest-validate": "^21.2.1", - "mkdirp": "^0.5.1" - }, + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "license": "MIT", "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } + "ret": "~0.1.10" } }, - "jest-validate": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", - "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-get-type": "^21.2.0", - "leven": "^2.1.0", - "pretty-format": "^21.2.1" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" - }, - "js-md5": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz", - "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC" }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jsdom": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", - "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", - "dev": true, - "requires": { - "abab": "^1.0.3", - "acorn": "^4.0.4", - "acorn-globals": "^3.1.0", - "array-equal": "^1.0.0", - "content-type-parser": "^1.0.1", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": ">= 0.2.37 < 0.3.0", - "escodegen": "^1.6.1", - "html-encoding-sniffer": "^1.0.1", - "nwmatcher": ">= 1.3.9 < 2.0.0", - "parse5": "^1.5.1", - "request": "^2.79.0", - "sax": "^1.2.1", - "symbol-tree": "^3.2.1", - "tough-cookie": "^2.3.2", - "webidl-conversions": "^4.0.0", - "whatwg-encoding": "^1.0.1", - "whatwg-url": "^4.3.0", - "xml-name-validator": "^2.0.1" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - }, - "parse5": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", - "dev": true - } + "node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - }, + "license": "MIT", "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - } + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" + "node_modules/scratch-audio": { + "version": "0.1.0", + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-audio.git#aba00cd02e36d95407effafa03f3678e4c669b30", + "license": "BSD-3-Clause", + "dependencies": { + "@turbowarp/nanolog": "^0.2.0", + "@turbowarp/startaudiocontext": "^1.0.0" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true + "node_modules/scratch-audio/node_modules/@turbowarp/nanolog": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@turbowarp/nanolog/-/nanolog-0.2.0.tgz", + "integrity": "sha512-texcM9oxfEsADVlVDR5UhLkYclPKsV9mytJh+9pHHonNcUrxRVGF6FkJTzWO/Hl5NafU1crSdw737nqKE3atSA==", + "license": "MIT" }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "node_modules/scratch-blocks": { + "version": "0.1.0", + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-blocks.git#d3d1c2c89c0c63d3c16434ba063accd881d487c2", + "license": "GPL-3.0", + "dependencies": { + "exports-loader": "0.7.0", + "imports-loader": "0.8.0" } }, - "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", - "dev": true, - "requires": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" + "node_modules/scratch-paint": { + "version": "2.1.61", + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-paint.git#8093bf77b27ad1128cc9e2862b7b5b39e736e178", + "license": "GPL-3.0", + "dependencies": { + "@turbowarp/nanolog": "^0.2.0", + "@turbowarp/paper": "^0.12.202407161743", + "classnames": "2.2.5", + "keymirror": "0.1.1", + "lodash.bindall": "4.4.0", + "lodash.omit": "4.5.0", + "parse-color": "1.0.0", + "prop-types": "^15.5.10" }, + "peerDependencies": { + "react": "^16", + "react-dom": "^16", + "react-intl": "^2", + "react-intl-redux": "^0.7", + "react-popover": "^0.5", + "react-redux": "^5", + "react-responsive": "^5", + "react-style-proptype": "^3", + "react-tooltip": "^3", + "redux": "^3", + "scratch-render-fonts": "^1.0.0-prerelease.20210401210003" + } + }, + "node_modules/scratch-paint/node_modules/@turbowarp/nanolog": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@turbowarp/nanolog/-/nanolog-0.2.0.tgz", + "integrity": "sha512-texcM9oxfEsADVlVDR5UhLkYclPKsV9mytJh+9pHHonNcUrxRVGF6FkJTzWO/Hl5NafU1crSdw737nqKE3atSA==", + "license": "MIT" + }, + "node_modules/scratch-paint/node_modules/classnames": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", + "integrity": "sha512-DTt3GhOUDKhh4ONwIJW4lmhyotQmV2LjNlGK/J2hkwUcqcbKkCLAdJPtxQnxnlc7SR3f1CEXCyMmc7WLUsWbNA==", + "license": "MIT" + }, + "node_modules/scratch-parser": { + "version": "0.0.0-development", + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-parser.git#5e21d953d58d92672956030b9f93402f11249c96", + "license": "MPL-2.0", "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - } + "@turbowarp/json": "^0.1.1", + "@turbowarp/jszip": "^3.11.0", + "@turbowarp/sb3fix": "^0.4.0", + "ajv": "6.3.0", + "pify": "4.0.1" + }, + "engines": { + "node": ">=8.0" } }, - "jszip": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", - "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "node_modules/scratch-parser/node_modules/ajv": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", + "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, - "keymirror": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/keymirror/-/keymirror-0.1.1.tgz", - "integrity": "sha1-kYiJ6hP40KQufFVyUO7nE63JXDU=" + "node_modules/scratch-parser/node_modules/fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", + "license": "MIT" }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true + "node_modules/scratch-parser/node_modules/json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", + "license": "MIT" }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "node_modules/scratch-render": { + "version": "0.1.0", + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-render.git#dd5d399eace4b5bae11906e2237fe67ee6b79d84", + "license": "MPL-2.0", + "dependencies": { + "@turbowarp/ancient-hull.js": "^0.2.13", + "@turbowarp/nanolog": "^0.2.0", + "@turbowarp/scratch-svg-renderer": "^1.0.0-202312242305-12c360b", + "grapheme-breaker": "0.3.2", + "ify-loader": "1.0.4", + "linebreak": "0.3.0", + "raw-loader": "^0.5.1", + "scratch-storage": "^1.0.0", + "twgl.js": "4.4.0" + } }, - "lcid": { + "node_modules/scratch-render-fonts": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-render-fonts.git#7b6768fc6dfef6b343a06f992587b74807043961", + "peer": true, + "dependencies": { + "base64-loader": "1.0.0" } }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } + "node_modules/scratch-render/node_modules/@turbowarp/nanolog": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@turbowarp/nanolog/-/nanolog-0.2.0.tgz", + "integrity": "sha512-texcM9oxfEsADVlVDR5UhLkYclPKsV9mytJh+9pHHonNcUrxRVGF6FkJTzWO/Hl5NafU1crSdw737nqKE3atSA==", + "license": "MIT" }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "requires": { - "immediate": "~3.0.5" + "node_modules/scratch-sb1-converter": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-0.2.7.tgz", + "integrity": "sha512-MF1NzmRLbgCiq7wiSTuk2C9rQC8uM5Wj7SaYsn1SEMWNK9rtK0uc3LSm8FnEt14QS/1Icx2YgMsUPKR0HaPDdQ==", + "license": "BSD-3-Clause", + "dependencies": { + "js-md5": "0.7.3", + "minilog": "3.1.0", + "text-encoding": "^0.7.0" } }, - "linebreak": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz", - "integrity": "sha512-zt8pzlM3oq4moDN8U5mP1SbZ44yKV6dXCu44Ez6iTXmxUl8/jRFWeho2SDqL5YDBv0TBKPgU/XGovZwnXAKlOQ==", - "requires": { - "base64-js": "0.0.8", - "brfs": "^1.3.0", - "unicode-trie": "^0.3.0" - }, + "node_modules/scratch-storage": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.6.tgz", + "integrity": "sha512-L/7z7SB7cGANsgjyiE+qZNaPEqFHK1yPbNomizkgN3WHGcKRogLvmheR57kOxHNpQzodUTbG+pVVH6fR2ZY1Sg==", + "license": "BSD-3-Clause", "dependencies": { - "base64-js": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", - "integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==" - } + "arraybuffer-loader": "^1.0.3", + "base64-js": "1.3.0", + "fastestsmallesttextencoderdecoder": "^1.0.7", + "js-md5": "0.7.3", + "minilog": "3.1.0", + "worker-loader": "^2.0.0" } }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "node_modules/scratch-translate-extension-languages": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/scratch-translate-extension-languages/-/scratch-translate-extension-languages-1.0.7.tgz", + "integrity": "sha512-6+bQU9iVYv23T8J0SjpV6MTugm0y8myh/4DPgu1BGfccysdkaWzu3MkNGQyQRUlbqAiW9wM7ctfv3USPEkzTgg==", + "license": "BSD-3-Clause" + }, + "node_modules/scratch-vm": { + "version": "2.1.46", + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-vm.git#722014ee66d323831e30c199c7eaca809aceea65", + "license": "MPL-2.0", + "dependencies": { + "@turbowarp/json": "^0.1.2", + "@turbowarp/jszip": "^3.11.0", + "@turbowarp/nanolog": "^0.2.0", + "@vernier/godirect": "1.5.0", + "arraybuffer-loader": "^1.0.6", + "atob": "2.1.2", + "btoa": "1.2.1", + "canvas-toBlob": "1.0.0", + "decode-html": "2.0.0", + "diff-match-patch": "1.0.4", + "format-message": "6.2.1", + "htmlparser2": "3.10.0", + "scratch-parser": "github:TurboWarp/scratch-parser#master", + "scratch-sb1-converter": "0.2.7", + "scratch-translate-extension-languages": "^1.0.7", + "text-encoding": "0.7.0", + "uuid": "8.3.2", + "worker-loader": "^1.1.1" }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "peerDependencies": { + "@turbowarp/scratch-svg-renderer": "^1.0.0-202312300007-62fe825" } }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true + "node_modules/scratch-vm/node_modules/@turbowarp/nanolog": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@turbowarp/nanolog/-/nanolog-0.2.0.tgz", + "integrity": "sha512-texcM9oxfEsADVlVDR5UhLkYclPKsV9mytJh+9pHHonNcUrxRVGF6FkJTzWO/Hl5NafU1crSdw737nqKE3atSA==", + "license": "MIT" }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, + "node_modules/scratch-vm/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "license": "MIT", "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "domelementtype": "^2.0.1", + "entities": "^2.0.0" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-es": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz", - "integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==" - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" - }, - "lodash.bindall": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.bindall/-/lodash.bindall-4.4.0.tgz", - "integrity": "sha1-p7/Ugro9LnBxad/NyZPrv2w9eZg=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.defaultsdeep": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", - "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==" - }, - "lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=", - "dev": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true + "node_modules/scratch-vm/node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true + "node_modules/scratch-vm/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true + "node_modules/scratch-vm/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "license": "BSD-2-Clause" }, - "lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=" + "node_modules/scratch-vm/node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "1" + } }, - "lodash.throttle": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.0.1.tgz", - "integrity": "sha1-syEWYu6dgvVpA9BzEmKqqoc6YzA=", - "requires": { - "lodash.debounce": "^4.0.0" + "node_modules/scratch-vm/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" } }, - "lodash.unescape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", - "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", - "dev": true + "node_modules/scratch-vm/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "license": "BSD-2-Clause" }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true + "node_modules/scratch-vm/node_modules/htmlparser2": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", + "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.0.6" + } }, - "lookup-closest-locale": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", - "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==" + "node_modules/scratch-vm/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "node_modules/scratch-vm/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" } }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" + "node_modules/scratch-vm/node_modules/worker-loader": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-1.1.1.tgz", + "integrity": "sha512-qJZLVS/jMCBITDzPo/RuweYSIG8VJP5P67mP/71alGyTZRe1LYJFdwLjLalY3T5ifx0bMDRD3OB6P2p1escvlg==", + "license": "MIT", + "dependencies": { + "loader-utils": "^1.0.0", + "schema-utils": "^0.4.0" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "license": "MIT", "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" } }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "node_modules/seek-bzip/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "license": "MIT" + }, + "node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" } }, - "magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", - "requires": { - "vlq": "^0.2.2" + "node_modules/selfsigned": { + "version": "1.10.14", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", + "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-forge": "^0.10.0" } }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, - "requires": { - "tmpl": "1.0.x" + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-limit": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", - "requires": { - "once": "~1.3.0" - }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", - "requires": { - "wrappy": "1" - } - } + "ms": "2.0.0" } }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "matchmediaquery": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.0.tgz", - "integrity": "sha512-u0dlv+VENJ+3YepvwSPBieuvnA6DWfaYa/ctwysAR13y4XLJNyt7bEVKzNj/Nvjo+50d88Pj+xL9xaSo6JmX/w==", - "requires": { - "css-mediaquery": "^0.1.2" + "node_modules/serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" } }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, - "requires": { - "mimic-fn": "^1.0.0" + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", - "dev": true + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" }, - "merge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", - "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", - "dev": true + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true, + "license": "ISC" }, - "merge-source-map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", - "requires": { - "source-map": "^0.5.6" + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } }, - "microee": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz", - "integrity": "sha1-oSvbAQNoHosSapsHHrpMRnx4//4=" + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "minilog": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz", - "integrity": "sha1-0tDxiHyjY9Gs8OqG1cTfKTs/tnU=", - "requires": { - "microee": "0.0.6" + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" } }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "node_modules/shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", + "license": "MIT" }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "requires": { - "yallist": "^4.0.0" - }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "requires": { - "minipass": "^3.0.0" + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "requires": { - "minipass": "^3.0.0" + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "license": "MIT", + "dependencies": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" } }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "requires": { - "minipass": "^3.0.0" + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "license": "MIT", + "dependencies": { + "should-type": "^1.4.0" } }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "license": "MIT", "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" } }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", + "license": "MIT" }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "license": "MIT", "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } + "should-type": "^1.3.0", + "should-util": "^1.0.0" } }, - "mkdirp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", - "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" - }, - "mkpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz", - "integrity": "sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w==" + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "license": "MIT" }, - "mocha": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", - "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", - "requires": { - "browser-stdout": "1.3.0", - "commander": "2.11.0", - "debug": "3.1.0", - "diff": "3.3.1", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.3", - "he": "1.1.1", - "mkdirp": "0.5.1", - "supports-color": "4.4.0" - }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", "dependencies": { - "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "diff": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", - "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==" - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==" - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", - "requires": { - "minimist": "0.0.8" - } - }, - "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", - "requires": { - "has-flag": "^2.0.0" - } - } + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "moo": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz", - "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==", - "dev": true + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "move-concurrently": { + "node_modules/side-channel-map": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } + "license": "ISC" }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" }, - "multipipe": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz", - "integrity": "sha512-ZUcepNdMeKBRn/ksm2XTxFnhBaqnBJSZNqwajmiem6b7Rp3fNAAq+twYn3kqw9YMY7HJuc7I7OObX9cMgB1ANg==", - "requires": { - "duplexer2": "^0.1.2" + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "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.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } }, - "nearley": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.19.0.tgz", - "integrity": "sha512-2v52FTw7RPqieZr3Gth1luAXZR7Je6q3KaDHY5bjl/paDUdMu35fZ8ICNgiYJRr3tf3NMvIQQR1r27AvEr9CRA==", - "dev": true, - "requires": { - "commander": "^2.19.0", - "moo": "^0.4.3", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6", - "semver": "^5.4.1" + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "license": "MIT", "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" } }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, + "license": "MIT", "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" } }, - "node-notifier": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", - "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", + "node_modules/sockjs-client": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz", + "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==", "dev": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "eventsource": "^2.0.2", + "faye-websocket": "^0.11.4", + "inherits": "^2.0.4", + "url-parse": "^1.5.10" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://tidelift.com/funding/github/npm/sockjs-client" } }, - "node-releases": { - "version": "1.1.58", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", - "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==" + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "node_modules/sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", + "license": "MIT", + "dependencies": { + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + "node_modules/sort-keys-length/node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "license": "MIT" }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, - "requires": { - "boolbase": "~1.0.0" + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "license": "MIT" }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } }, - "nwmatcher": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", - "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", - "dev": true + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "node_modules/spdx-license-ids": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "license": "CC0-1.0" }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "license": "MIT", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" } }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } }, - "object-is": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", - "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=", - "dev": true + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" } }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" } }, - "object.entries": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", - "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "object.fromentries": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.1.tgz", - "integrity": "sha512-PUQv8Hbg3j2QX0IQYv3iAGCbGcu4yY4KQ92/dhA4sFSixBmSmp13UpDLs6jGK8rBtbmhNNIK99LD2k293jpiGA==", + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.15.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "node_modules/static-eval": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", + "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", + "license": "MIT", + "dependencies": { + "escodegen": "^2.1.0" } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "node_modules/static-eval/node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" + "node_modules/static-eval/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "license": "MIT", + "dependencies": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" } }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true + "node_modules/static-module/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" }, - "omggif": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.9.tgz", - "integrity": "sha1-3LcCTazVDFK00wPwSALJHAV8dl8=" + "node_modules/static-module/node_modules/object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", + "license": "MIT" }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "requires": { - "ee-first": "1.1.1" + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" } }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, - "requires": { - "is-wsl": "^1.1.0" + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", "dev": true, - "requires": { - "url-parse": "^1.4.3" - } + "license": "MIT" }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "node_modules/string-length/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "p-try": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/string-length/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "p-limit": "^2.0.0" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "retry": "^0.12.0" + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" - }, - "papaparse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.0.tgz", - "integrity": "sha512-Lb7jN/4bTpiuGPrYy4tkKoUS8sTki8zacB5ke1p5zolhcSE4TlWgrlsxjrDTbG/dFVh07ck7X36hUf/b5V68pg==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - }, + "license": "MIT", "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, - "requires": { - "callsites": "^3.0.0" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "parse-color": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", - "integrity": "sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw==", - "requires": { - "color-convert": "~0.5.0" - }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", "dependencies": { - "color-convert": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", - "integrity": "sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==" - } + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - }, + "license": "MIT", "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "parse-headers": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz", - "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==", - "requires": { - "for-each": "^0.3.3", - "string.prototype.trim": "^1.1.2" + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "requires": { - "error-ex": "^1.2.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "license": "MIT", + "dependencies": { + "is-natural-number": "^4.0.1" + } }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", "dev": true, - "requires": { - "@types/node": "*" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "license": "MIT", + "engines": { + "node": ">=8" }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { + "node_modules/strip-outer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "license": "MIT", "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "node_modules/style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "license": "MIT", + "dependencies": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 0.12.0" } }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "optional": true + "node_modules/style-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" + "node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "node_modules/tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==", "dev": true, - "requires": { - "find-up": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=0.6" } }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "requires": { - "find-up": "^2.1.0" + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "license": "MIT", "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" } }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/tcp-port-used": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", + "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, + "license": "MIT", "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } + "debug": "4.3.1", + "is2": "^2.0.6" } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz", - "integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, + "node_modules/tcp-port-used/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } + "optional": true } } }, - "postcss-import": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", - "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", - "requires": { - "postcss": "^7.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, + "node_modules/tcp-port-used/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" } }, - "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", - "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" + "node_modules/terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "license": "MIT", + "dependencies": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - } + "node_modules/terser-webpack-plugin/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, - "postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", - "requires": { - "postcss": "^6.0.1" - }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "license": "MIT", "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" } }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, + "node_modules/terser-webpack-plugin/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "postcss-simple-vars": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-5.0.2.tgz", - "integrity": "sha512-xWIufxBoINJv6JiLb7jl5oElgp+6puJwvT5zZHliUSydoLz4DADRB3NDDsYgfKVwojn4TDLiseoC65MuS8oGGg==", - "requires": { - "postcss": "^7.0.14" + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.42.0.tgz", + "integrity": "sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true + "node_modules/text-encoding": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", + "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", + "deprecated": "no longer maintained", + "license": "(Unlicense OR Apache-2.0)" }, - "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true, - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - }, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "license": "MIT", "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "pretty-format": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", - "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true, - "requires": { - "ansi-regex": "^3.0.0", - "ansi-styles": "^3.2.0" + "license": "MIT" + }, + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" } }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "license": "MIT" }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "node_modules/to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "license": "MIT" }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "prop-types-exact": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz", - "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==", + "node_modules/to-style": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/to-style/-/to-style-1.3.3.tgz", + "integrity": "sha512-9K8KYegr9hrdm8yPpu5iZjJp5t6RPAp4gFDU5hD9zR8hwqgF4fsoSitMtkRKQG2qkP5j/uG3wajbgV09rjmIqg==", + "license": "MIT" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, - "requires": { - "has": "^1.0.3", - "object.assign": "^4.1.0", - "reflect.ownkeys": "^0.2.0" + "license": "MIT", + "engines": { + "node": ">=0.6" } }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" } }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/transformation-matrix": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-1.15.0.tgz", + "integrity": "sha512-808EqPQbmUD6/IMpWUXLOZcblCHf9xaiB+un0RYNNE9+6VRjoiw6Be8R32tZ0ips1PX/15tlnA2Ev4UUgg827Q==", + "license": "MIT" }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true + "node_modules/transifex": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/transifex/-/transifex-1.6.6.tgz", + "integrity": "sha512-uHeRvhfLfZN+JdH+X0zR1jkQAbMGkgExZgcXm31CzaVVd4kq98YaPr4MCgCU0LwA7cgOuB97d2HZQ/WikOAxlg==", + "license": "MIT", + "dependencies": { + "commander": "^2.9.0", + "lodash": "^4.17.1", + "mkpath": "^1.0.0", + "mocha": "^4.0.0", + "request": "^2.34.0", + "should": "^13.0.0" + }, + "bin": { + "transifex": "bin/index.js" + }, + "engines": { + "node": ">=8.9.0" + } }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "node_modules/transifex/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, - "psl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", - "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==" + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "license": "MIT" }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "node_modules/twgl.js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/twgl.js/-/twgl.js-4.4.0.tgz", + "integrity": "sha512-W+uFP2DyK2dNhE38PcpituNi8CBm+YO5gY6o/IWEILT7NNDTT1wo3YcMmydwiCfUbnT7tz+EcjV7KlZLgE1PlQ==", + "license": "MIT" }, - "quote-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", - "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==", - "requires": { - "buffer-equal": "0.0.1", - "minimist": "^1.1.3", - "through2": "^2.0.0" - }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", "dependencies": { - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - } + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "requires": { - "performance-now": "^2.1.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "railroad-diagrams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=", - "dev": true - }, - "randexp": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "requires": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, + "license": "MIT", "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, + "license": "MIT", "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=" - }, - "react": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.2.0.tgz", - "integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==", - "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.0" + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "react-contextmenu": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/react-contextmenu/-/react-contextmenu-2.9.4.tgz", - "integrity": "sha512-ma4YQw4J7JNv8L8mMVd1NHHbvH3+gaK/rQ6FC5Tft7OCUweKi7PHqHEE0fDF2009FLSGoV5JnjPnTTEyThqaJg==", - "requires": { - "classnames": "^2.2.5", - "object-assign": "^4.1.0" - } + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" }, - "react-dom": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.2.1.tgz", - "integrity": "sha512-0ujGgYnpX0GlaAjUfwU7ddy0DjuzPmTHHi2SlPolGv7hAyUpK7XA7WZcxit5ZcU7cW5QU1HJjlS3eMn42tSfYQ==", - "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.0" + "node_modules/uglify-es": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.10.tgz", + "integrity": "sha512-rPzPisCzW68Okj1zNrfa2dR9uEm43SevDmpR6FChoZABFk9dANGnzzBMgHYUXI3609//63fnVkyQ1SQmAMyjww==", + "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "commander": "~2.14.1", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" } }, - "react-draggable": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-3.0.5.tgz", - "integrity": "sha512-qo76q6+pafyGllbmfc+CgWfOkwY9v3UoJa3jp6xG2vdsRY8uJTN1kqNievLj0uVNjEqCvZ0OFiEBxlAJNj3OTg==", - "requires": { - "classnames": "^2.2.5", - "prop-types": "^15.6.0" - } + "node_modules/uglify-es/node_modules/commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "dev": true, + "license": "MIT" }, - "react-ga": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-2.5.3.tgz", - "integrity": "sha512-25wvPv1PVLDLhw1gEYP33h0V2sJHahKMfUCAxhq8JPYmNQwx1fcjJAkJk+WmSqGN93lHLhExDkxy3SQizQnx3A==", - "requires": { - "prop-types": "^15.6.0", - "react": "^15.6.2 || ^16.0" + "node_modules/uglifyjs-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" } }, - "react-intl": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", - "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", - "requires": { - "hoist-non-react-statics": "^3.3.0", - "intl-format-cache": "^2.0.5", - "intl-messageformat": "^2.1.0", - "intl-relativeformat": "^2.1.0", - "invariant": "^2.1.1" + "node_modules/uglifyjs-webpack-plugin/node_modules/cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "license": "ISC", + "dependencies": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" } }, - "react-is": { - "version": "16.10.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz", - "integrity": "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==" - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + "node_modules/uglifyjs-webpack-plugin/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" }, - "react-modal": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.9.1.tgz", - "integrity": "sha512-k+TUkhGWpIVHLsEyjNmlyOYL0Uz03fNZvlkhCImd1h+6fhNgTi6H6jexVXPVhD2LMMDzJyfugxMN+APN/em+eQ==", - "requires": { - "exenv": "^1.2.0", - "prop-types": "^15.5.10", - "react-lifecycles-compat": "^3.0.0", - "warning": "^4.0.3" + "node_modules/uglifyjs-webpack-plugin/node_modules/find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "react-popover": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/react-popover/-/react-popover-0.5.10.tgz", - "integrity": "sha512-5SYDTfncywSH00I70oHd4gFRUR8V0rJ4sRADSI/P6G0RVXp9jUgaWloJ0Bk+SFnjpLPuipTKuzQNNd2CTs5Hrw==", - "requires": { - "css-vendor": "^0.3.1", - "debug": "^2.6.8", - "lodash.throttle": "^3.0.3", - "prop-types": "^15.5.10" + "node_modules/uglifyjs-webpack-plugin/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "license": "ISC", "dependencies": { - "lodash.debounce": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", - "integrity": "sha1-gSIRw3ipTMKdWqTjNGzwv846ffU=", - "requires": { - "lodash._getnative": "^3.0.0" - } - }, - "lodash.throttle": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-3.0.4.tgz", - "integrity": "sha1-vE9HH7Mo5Nb9xt8rPTyvET8Pick=", - "requires": { - "lodash.debounce": "^3.0.0" - } - } + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "react-redux": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", - "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", - "requires": { - "hoist-non-react-statics": "^2.5.0", - "invariant": "^2.0.0", - "lodash": "^4.17.5", - "lodash-es": "^4.17.5", - "loose-envify": "^1.1.0", - "prop-types": "^15.6.0" - }, + "node_modules/uglifyjs-webpack-plugin/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "license": "MIT", "dependencies": { - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" - } + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "react-responsive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-5.0.0.tgz", - "integrity": "sha512-oEimZ0FTCC3/pjGDEBHOz06nWbBNDIbMGOdRYp6K9SBUmrqgNAX77hTiqvmRQeLyI97zz4F4kiaFRxFspDxE+w==", - "requires": { - "hyphenate-style-name": "^1.0.0", - "matchmediaquery": "^0.3.0", - "prop-types": "^15.6.1" + "node_modules/uglifyjs-webpack-plugin/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "react-string-replace": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/react-string-replace/-/react-string-replace-0.4.4.tgz", - "integrity": "sha512-FAMkhxmDpCsGTwTZg7p/2v+/GTmxAp73so3fbSvlAcBBX36ujiGRNEaM/1u+jiYQrArhns+7eE92g2pi5E5FUA==", - "requires": { - "lodash": "^4.17.4" + "node_modules/uglifyjs-webpack-plugin/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "react-style-proptype": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz", - "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==", - "requires": { - "prop-types": "^15.5.4" + "node_modules/uglifyjs-webpack-plugin/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "react-tabs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-2.3.0.tgz", - "integrity": "sha512-pYaefgVy76/36AMEP+B8YuVVzDHa3C5UFZ3REU78zolk0qMxEhKvUFofvDCXyLZwf0RZjxIfiwok1BEb18nHyA==", - "requires": { - "classnames": "^2.2.0", - "prop-types": "^15.5.0" + "node_modules/uglifyjs-webpack-plugin/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "react-test-renderer": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.2.0.tgz", - "integrity": "sha512-Kd4gJFtpNziR9ElOE/C23LeflKLZPRpNQYWP3nQBY43SJ5a+xyEGSeMrm2zxNKXcnCbBS/q1UpD9gqd5Dv+rew==", + "node_modules/uglifyjs-webpack-plugin/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "requires": { - "fbjs": "^0.8.16", - "object-assign": "^4.1.1", - "prop-types": "^15.6.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "react-tooltip": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.8.0.tgz", - "integrity": "sha512-Uj/vVd0uGuqwTkWeRjKS56T2iwOSvsSMbjqTK7AseHZEMND+WCXXUajaF7+ZsJWTZgnpeT9kBnaBFhchzeDTbw==", - "requires": { - "classnames": "^2.2.5", - "prop-types": "^15.6.0" + "node_modules/uglifyjs-webpack-plugin/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "react-virtualized": { - "version": "9.20.1", - "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.20.1.tgz", - "integrity": "sha512-xIWxBsyNAjceqD3hsE0nw5TcDVxKbIepsHhvS2XneHmNz0KlKxdLdGBmGZBM9ZesEmbZ5EO0Sw70TB1MeCmpbQ==", - "requires": { - "babel-runtime": "^6.26.0", - "classnames": "^2.2.3", - "dom-helpers": "^2.4.0 || ^3.0.0", - "loose-envify": "^1.3.0", - "prop-types": "^15.6.0", - "react-lifecycles-compat": "^3.0.4" + "node_modules/uglifyjs-webpack-plugin/node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" } }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "requires": { - "pify": "^2.3.0" + "node_modules/uglifyjs-webpack-plugin/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "license": "ISC", "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } + "safe-buffer": "^5.1.1" } }, - "read-package-json": { + "node_modules/uglifyjs-webpack-plugin/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true, + "license": "ISC" + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "dependencies": { - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" } }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } + "node_modules/unbzip2-stream/node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "node_modules/undici": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.10.0.tgz", + "integrity": "sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" } }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "node_modules/undici-types": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "requires": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "redux-mock-store": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.3.tgz", - "integrity": "sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA==", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, - "requires": { - "lodash.isplainobject": "^4.0.6" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "redux-throttle": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/redux-throttle/-/redux-throttle-0.1.1.tgz", - "integrity": "sha1-QwcFc/AzHRKuFvrmVyrZ1/y3Ya4=", - "requires": { - "lodash.throttle": "4.0.1" + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "reflect.ownkeys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", - "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=", - "dev": true - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" + "node_modules/unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==", + "license": "MIT", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" } }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "license": "MIT" }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "license": "MIT", "dependencies": { - "@babel/runtime": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", - "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - } + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" } }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - } + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" } }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "regjsparser": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", - "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "license": "MIT", "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } }, - "renderkid": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz", - "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==", - "dev": true, - "requires": { - "css-select": "^2.0.2", - "dom-converter": "^0.2", - "htmlparser2": "^3.10.1", - "lodash": "^4.17.20", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" } }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "license": "MIT" }, - "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", - "requires": { - "path-parse": "^1.0.6" + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "license": "MIT", + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" } }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, + "license": "MIT", "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true } } }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "node_modules/url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, + "license": "MIT", "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - } + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "node_modules/url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==", + "license": "MIT", + "engines": { + "node": ">= 4" + } }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" + "node_modules/url/node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "rst-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", - "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", - "dev": true, - "requires": { - "lodash.flattendeep": "^4.4.0", - "nearley": "^2.7.10" + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" } }, - "rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "dev": true + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "node_modules/util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", "dev": true, - "requires": { - "is-promise": "^2.1.0" + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" } }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", "dev": true, - "requires": { - "aproba": "^1.1.1" - } + "license": "MIT" }, - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, - "requires": { - "tslib": "^1.9.0" + "license": "MIT", + "engines": { + "node": ">= 0.4.0" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true, + "license": "MIT" }, - "sane": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", - "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, - "requires": { - "anymatch": "^2.0.0", - "capture-exit": "^1.2.0", - "exec-sh": "^0.2.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.3", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5", - "watch": "~0.18.0" - }, + "license": "ISC", "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" } }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "scratch-audio": { - "version": "0.1.0-prerelease.20200528195344", - "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-0.1.0-prerelease.20200528195344.tgz", - "integrity": "sha512-BY1IiMMBj0WDs7jdYnOzBHE88AX3ltjs2XfINJ1VrIE4xn2vZvPgJAyw6ZCc2FDPRwTWLpCdhnlA1TBdaKKdiQ==", - "requires": { - "audio-context": "1.0.1", - "minilog": "^3.0.1", - "startaudiocontext": "1.2.1" + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "scratch-blocks": { - "version": "git+https://github.com/TurboWarp/scratch-blocks.git#e398205b1441e019b5bfc9e6210f513f528e3f03", - "from": "git+https://github.com/TurboWarp/scratch-blocks.git#develop-builds", - "requires": { - "exports-loader": "0.6.3", - "google-closure-library": "20190301.0.0", - "imports-loader": "0.6.5", - "scratch-l10n": "3.14.20220524031600" + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, - "scratch-l10n": { - "version": "3.14.20220524031600", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20220524031600.tgz", - "integrity": "sha512-xOVwx9vFdcN8S01Cr4HrUep/MZ8nBt290t49i7TS1dhU61/Wrzm0iwm1wK8l5ayLNBtCKQAZv2JsI6nxWLfffg==", - "requires": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "babel-plugin-react-intl": "^3.0.1", - "transifex": "1.6.6" + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "license": "MIT" + }, + "node_modules/vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "license": "MIT" + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "license": "MIT" + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" } }, - "scratch-paint": { - "version": "git+https://github.com/TurboWarp/scratch-paint.git#702ee8564b8091d450fed092fc4ae9cc3bf09cb0", - "from": "git+https://github.com/TurboWarp/scratch-paint.git#develop", - "requires": { - "@scratch/paper": "0.11.20200728195508", - "classnames": "2.2.5", - "keymirror": "0.1.1", - "lodash.bindall": "4.4.0", - "lodash.omit": "4.5.0", - "minilog": "3.1.0", - "parse-color": "1.0.0", - "prop-types": "^15.5.10" - }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", "dependencies": { - "classnames": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", - "integrity": "sha512-DTt3GhOUDKhh4ONwIJW4lmhyotQmV2LjNlGK/J2hkwUcqcbKkCLAdJPtxQnxnlc7SR3f1CEXCyMmc7WLUsWbNA==" - } + "loose-envify": "^1.0.0" } }, - "scratch-parser": { - "version": "git+https://github.com/TurboWarp/scratch-parser.git#72f2cde00fc968ce40282e0392d3553963730748", - "from": "git+https://github.com/TurboWarp/scratch-parser.git#72f2cde00fc968ce40282e0392d3553963730748", - "requires": { - "@turbowarp/json": "^0.1.1", - "ajv": "6.3.0", - "jszip": "3.1.5", - "pify": "4.0.1" + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "license": "MIT", + "optional": true, "dependencies": { - "ajv": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", - "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==", - "requires": { - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "core-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", - "integrity": "sha512-N41UFUZNqoTSGUSyL7kiStAkH31Hxq197A4Gp9MxTZfAd52pXod7VM7kWiRP0J0YpQDeaE4SLsb+2OGgtgvUEw==" - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==" - }, - "jszip": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", - "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", - "requires": { - "core-js": "~2.3.0", - "es6-promise": "~3.0.2", - "lie": "~3.1.0", - "pako": "~1.0.2", - "readable-stream": "~2.0.6" - } - }, - "lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", - "requires": { - "immediate": "~3.0.5" - } - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==" - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - } + "chokidar": "^2.1.8" } }, - "scratch-render": { - "version": "git+https://github.com/TurboWarp/scratch-render.git#fb3571d743f9f978ee3685bba437f6d4204b068e", - "from": "git+https://github.com/TurboWarp/scratch-render.git#fb3571d743f9f978ee3685bba437f6d4204b068e", - "requires": { - "grapheme-breaker": "0.3.2", - "hull.js": "0.2.10", - "ify-loader": "1.0.4", - "linebreak": "0.3.0", - "minilog": "3.1.0", - "raw-loader": "^0.5.1", - "scratch-svg-renderer": "0.2.0-prerelease.20210727023023", - "twgl.js": "4.4.0" - }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "license": "ISC", + "optional": true, "dependencies": { - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" - }, - "scratch-svg-renderer": { - "version": "0.2.0-prerelease.20210727023023", - "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20210727023023.tgz", - "integrity": "sha512-vEGZFFPm03LsHeRnIVQoJBoM3dV23daZCHWM0Yb0Rwa1xvymqTWHXRx8ryL5Q94TyceuguqPVAsE66n5S/0fdQ==", - "requires": { - "base64-js": "1.2.1", - "base64-loader": "1.0.0", - "dompurify": "2.2.7", - "minilog": "3.1.0", - "transformation-matrix": "1.15.0" - } - } + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "scratch-render-fonts": { - "version": "1.0.0-prerelease.20210401210003", - "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20210401210003.tgz", - "integrity": "sha512-sgU+LIXTLKk4f7FZOv/B61dpvmfpnlXFf912T6T4GpOfzx99JPRhXPyErZWuwPz8NEzthkhpO7iF2AqgzUxJfA==", - "requires": { - "base64-loader": "1.0.0" + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "license": "MIT", + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "scratch-sb1-converter": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-0.2.7.tgz", - "integrity": "sha512-MF1NzmRLbgCiq7wiSTuk2C9rQC8uM5Wj7SaYsn1SEMWNK9rtK0uc3LSm8FnEt14QS/1Icx2YgMsUPKR0HaPDdQ==", - "requires": { - "js-md5": "0.7.3", - "minilog": "3.1.0", - "text-encoding": "^0.7.0" + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "scratch-storage": { - "version": "git+https://github.com/TurboWarp/scratch-storage.git#d48cca77686cb86875cf43494001b7cfcbc5ae57", - "from": "git+https://github.com/TurboWarp/scratch-storage.git#develop", - "requires": { - "arraybuffer-loader": "^1.0.3", - "base64-js": "1.3.0", - "fastestsmallesttextencoderdecoder": "^1.0.7", - "js-md5": "0.7.3", - "minilog": "3.1.0", - "worker-loader": "^2.0.0" - }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", + "optional": true, "dependencies": { - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - } + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "scratch-svg-renderer": { - "version": "git+https://github.com/TurboWarp/scratch-svg-renderer.git#f0912df13f6c5ea796103a9130652b01168cd601", - "from": "git+https://github.com/TurboWarp/scratch-svg-renderer.git#develop", - "requires": { - "base64-js": "1.2.1", - "base64-loader": "1.0.0", - "dompurify": "2.2.7", - "fastestsmallesttextencoderdecoder": "^1.0.22", - "minilog": "3.1.0", - "transformation-matrix": "1.15.0" - }, + "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "optional": true, "dependencies": { - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" - } + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "scratch-translate-extension-languages": { - "version": "0.0.20191118205314", - "resolved": "https://registry.npmjs.org/scratch-translate-extension-languages/-/scratch-translate-extension-languages-0.0.20191118205314.tgz", - "integrity": "sha512-r0lvpgQjPMjbhI2wROrgoXzBhCvWJdkbAqJMfl2CdNqrwBpUXqLvNNtI3VtNLPJAcp9VfxEylkU9lVZ0gvU46Q==" - }, - "scratch-vm": { - "version": "git+https://github.com/TurboWarp/scratch-vm.git#46f6d89b8d48a9700f70f3060b0550dc87b7bebc", - "from": "git+https://github.com/TurboWarp/scratch-vm.git#develop", - "requires": { - "@turbowarp/json": "^0.1.1", - "@vernier/godirect": "1.5.0", - "arraybuffer-loader": "^1.0.6", - "atob": "2.1.2", - "btoa": "1.2.1", - "canvas-toBlob": "1.0.0", - "decode-html": "2.0.0", - "diff-match-patch": "1.0.4", - "format-message": "6.2.1", - "htmlparser2": "3.10.0", - "immutable": "3.8.2", - "jszip": "^3.1.5", - "minilog": "3.1.0", - "scratch-parser": "git+https://github.com/TurboWarp/scratch-parser.git#72f2cde00fc968ce40282e0392d3553963730748", - "scratch-sb1-converter": "0.2.7", - "scratch-translate-extension-languages": "0.0.20191118205314", - "text-encoding": "0.7.0", - "worker-loader": "^1.1.1" - }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "license": "MIT", + "optional": true, "dependencies": { - "htmlparser2": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", - "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", - "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.0.6" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "worker-loader": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-1.1.1.tgz", - "integrity": "sha512-qJZLVS/jMCBITDzPo/RuweYSIG8VJP5P67mP/71alGyTZRe1LYJFdwLjLalY3T5ifx0bMDRD3OB6P2p1escvlg==", - "requires": { - "loader-utils": "^1.0.0", - "schema-utils": "^0.4.0" - } - } + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" } }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, - "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", + "optional": true, "dependencies": { - "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - } + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", - "dev": true, - "requires": { - "node-forge": "^0.10.0" + "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" } }, - "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", - "dev": true - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "license": "ISC", + "optional": true, "dependencies": { - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" } }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "license": "MIT", + "optional": true, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "node_modules/watchpack-chokidar2/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "shallow-copy": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true - }, - "should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", - "requires": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", - "requires": { - "should-type": "^1.4.0" + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", - "requires": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" } }, - "should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==" - }, - "should-type-adaptors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", - "requires": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" + "node_modules/wav-encoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/wav-encoder/-/wav-encoder-1.3.0.tgz", + "integrity": "sha512-FXJdEu2qDOI+wbVYZpu21CS1vPEg5NaxNskBr4SaULpOJMrLE6xkH8dECa7PiS+ZoeyvP7GllWUAxPN3AvFSEw==", + "license": "MIT" }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, + "license": "MIT", "dependencies": { - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - } + "minimalistic-assert": "^1.0.0" } }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "node_modules/web-audio-test-api": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/web-audio-test-api/-/web-audio-test-api-0.5.2.tgz", + "integrity": "sha512-RevLfVjp+wwe/dBPe361IpmNpeXXW6JVmlp8dk0YIxLwAh7evn6JpEQQalVgX4PH/jA8tpLpjD/8tFNUYTf88w==", "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } + "license": "MIT" }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/webpack": { + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "license": "MIT", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } + "webpack-command": { + "optional": true } } }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, + "node_modules/webpack-cli": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", + "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "dev": true, + "license": "MIT", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.1", + "findup-sync": "^3.0.0", + "global-modules": "^2.0.0", + "import-local": "^2.0.0", + "interpret": "^1.4.0", + "loader-utils": "^1.4.0", + "supports-color": "^6.1.0", + "v8-compile-cache": "^2.1.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "peerDependencies": { + "webpack": "4.x.x" } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "node_modules/webpack-cli/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, - "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "node_modules/webpack-cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - }, + "license": "MIT", "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "sockjs-client": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", - "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", + "node_modules/webpack-cli/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.4.7" - }, + "license": "MIT", "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "node_modules/webpack-cli/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "node_modules/webpack-cli/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, - "requires": { - "source-map": "^0.5.6" + "license": "ISC", + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "node_modules/webpack-cli/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" } }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + "node_modules/webpack-cli/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "node_modules/webpack-cli/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" } }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + "node_modules/webpack-cli/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true, + "license": "MIT" }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "node_modules/webpack-cli/node_modules/enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "spdy-transport": { + "node_modules/webpack-cli/node_modules/find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-cli/node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "license": "MIT", "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" + "node_modules/webpack-cli/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-cli/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "node_modules/webpack-cli/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "node_modules/webpack-cli/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "node_modules/webpack-cli/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, - "requires": { - "safe-buffer": "^5.1.1" + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "startaudiocontext": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/startaudiocontext/-/startaudiocontext-1.2.1.tgz", - "integrity": "sha1-RtLKtUYseRGArMciPju7wycshZU=" + "node_modules/webpack-cli/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "static-eval": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", - "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", - "requires": { - "escodegen": "^1.11.1" + "node_modules/webpack-cli/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, + "node_modules/webpack-cli/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "license": "MIT", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "static-module": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", - "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", - "requires": { - "concat-stream": "~1.6.0", - "convert-source-map": "^1.5.1", - "duplexer2": "~0.1.4", - "escodegen": "~1.9.0", - "falafel": "^2.1.0", - "has": "^1.0.1", - "magic-string": "^0.22.4", - "merge-source-map": "1.0.4", - "object-inspect": "~1.4.0", - "quote-stream": "~1.0.2", - "readable-stream": "~2.3.3", - "shallow-copy": "~0.0.1", - "static-eval": "^2.0.0", - "through2": "~2.0.3" - }, + "node_modules/webpack-cli/node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "dev": true, + "license": "MIT", "dependencies": { - "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==" - }, - "object-inspect": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", - "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - } + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "node_modules/webpack-cli/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "node_modules/webpack-cli/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "node_modules/webpack-cli/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "stream-shift": { + "node_modules/webpack-cli/node_modules/shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "node_modules/webpack-cli/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^4.0.0" + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/webpack-cli/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - } + "node_modules/webpack-cli/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" } }, - "string.prototype.trim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz", - "integrity": "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.13.0", - "function-bind": "^1.1.1" + "node_modules/webpack-cli/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/webpack-cli/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - } + "node_modules/webpack-cli/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, - "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "node_modules/webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "node_modules/webpack-dev-middleware/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - } + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" + "node_modules/webpack-dev-middleware/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" + "node_modules/webpack-dev-server": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" + "node_modules/webpack-dev-server/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, + "license": "ISC", "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "tapable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", - "dev": true - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "tcp-port-used": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", - "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, - "requires": { - "debug": "4.3.1", - "is2": "^2.0.6" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "node_modules/webpack-dev-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "test-exclude": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", - "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, - "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" } }, - "text-encoding": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", - "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==" - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node_modules/webpack-dev-server/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, - "requires": { - "setimmediate": "^1.0.4" + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "tiny-inflate": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", - "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/webpack-dev-server/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" } }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true + "node_modules/webpack-dev-server/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "node_modules/webpack-dev-server/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true, + "license": "MIT" }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, + "node_modules/webpack-dev-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { + "extend-shallow": "^2.0.1", "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "to-style": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/to-style/-/to-style-1.3.3.tgz", - "integrity": "sha1-Y6K3Cm9KfU/cLtV6C+TnI1y2aZw=" - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } + "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "transformation-matrix": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-1.15.0.tgz", - "integrity": "sha512-808EqPQbmUD6/IMpWUXLOZcblCHf9xaiB+un0RYNNE9+6VRjoiw6Be8R32tZ0ips1PX/15tlnA2Ev4UUgg827Q==" - }, - "transifex": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/transifex/-/transifex-1.6.6.tgz", - "integrity": "sha512-uHeRvhfLfZN+JdH+X0zR1jkQAbMGkgExZgcXm31CzaVVd4kq98YaPr4MCgCU0LwA7cgOuB97d2HZQ/WikOAxlg==", - "requires": { - "commander": "^2.9.0", - "lodash": "^4.17.1", - "mkpath": "^1.0.0", - "mocha": "^4.0.0", - "request": "^2.34.0", - "should": "^13.0.0" + "node_modules/webpack-dev-server/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" } }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, + "license": "ISC", "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - } + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" } }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "twgl.js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/twgl.js/-/twgl.js-4.4.0.tgz", - "integrity": "sha512-W+uFP2DyK2dNhE38PcpituNi8CBm+YO5gY6o/IWEILT7NNDTT1wo3YcMmydwiCfUbnT7tz+EcjV7KlZLgE1PlQ==" + "node_modules/webpack-dev-server/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" + "node_modules/webpack-dev-server/node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" } }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/webpack-dev-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "license": "MIT", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "node_modules/webpack-dev-server/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==" + "node_modules/webpack-dev-server/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "node_modules/webpack-dev-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, - "optional": true, - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, + "license": "MIT", "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true, - "optional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, - "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" - }, + "license": "MIT", "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - } - } + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "node_modules/webpack-dev-server/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, + "license": "MIT", "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - } + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true + "node_modules/webpack-dev-server/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "node_modules/webpack-dev-server/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true + "node_modules/webpack-dev-server/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true + "node_modules/webpack-dev-server/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "unicode-trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", - "integrity": "sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==", - "requires": { - "pako": "^0.2.5", - "tiny-inflate": "^1.0.0" - }, + "node_modules/webpack-dev-server/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "license": "MIT", "dependencies": { - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" - } + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" } }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" + "node_modules/webpack-dev-server/node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" + "node_modules/webpack-dev-server/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { + "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "node_modules/webpack-dev-server/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "license": "MIT", "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" + "node_modules/webpack-dev-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "node_modules/webpack-dev-server/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, + "license": "MIT", "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "node_modules/webpack-dev-server/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, + "license": "ISC" + }, + "node_modules/webpack-dev-server/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", - "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "dev": true, - "requires": { - "mime-db": "1.48.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, - "url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", - "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "node_modules/webpack-dev-server/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "dev": true, - "requires": { - "inherits": "2.0.3" - }, + "license": "MIT", "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "node_modules/webpack-log/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" + "license": "MIT", + "bin": { + "uuid": "bin/uuid" } }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" - }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" } }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true + "node_modules/webpack/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "node_modules/webpack/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==" + "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", - "dev": true + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.x" + "node_modules/webpack/node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" } }, - "warning": { + "node_modules/webpack/node_modules/eslint-scope": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "watch": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", - "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", - "dev": true, - "requires": { - "exec-sh": "^0.2.0", - "minimist": "^1.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" } }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - }, + "node_modules/webpack/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", - "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "watchpack-chokidar2": { + "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "wav-encoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/wav-encoder/-/wav-encoder-1.3.0.tgz", - "integrity": "sha512-FXJdEu2qDOI+wbVYZpu21CS1vPEg5NaxNskBr4SaULpOJMrLE6xkH8dECa7PiS+ZoeyvP7GllWUAxPN3AvFSEw==" - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" + "node_modules/webpack/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "web-audio-test-api": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/web-audio-test-api/-/web-audio-test-api-0.5.2.tgz", - "integrity": "sha1-weJNIc7QYD8aSVJyoetmnbKIc/o=", - "dev": true - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, + "node_modules/webpack/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - } + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "enhanced-resolve": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz", - "integrity": "sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, + "node_modules/webpack/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "license": "MIT", "dependencies": { - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "mime": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", - "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", - "dev": true - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, - "webpack-dev-server": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", - "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, + "node_modules/webpack/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" + "node_modules/webpack/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "websocket-driver": { + "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, - "requires": { + "license": "Apache-2.0", + "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "websocket-extensions": { + "node_modules/websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, - "requires": { - "iconv-lite": "0.4.24" + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" } }, - "whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } }, - "whatwg-url": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", - "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, - "requires": { + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - } + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, - "requires": { - "isexe": "^2.0.0" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-boxed-primitive": { + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-collection": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - } + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "worker-farm": { + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/worker-farm": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "errno": "~0.1.7" } }, - "worker-loader": { + "node_modules/worker-loader": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz", "integrity": "sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==", - "requires": { + "license": "MIT", + "dependencies": { "loader-utils": "^1.0.0", "schema-utils": "^0.4.0" }, + "engines": { + "node": ">= 6.9.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0" + } + }, + "node_modules/worker-loader/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "license": "MIT", "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" } }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, + "license": "MIT", "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "mkdirp": "^0.5.1" + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, - "requires": { - "graceful-fs": "^4.1.11", + "license": "ISC", + "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "async-limiter": "~1.0.0" } }, - "xhr": { + "node_modules/xhr": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", - "requires": { + "license": "MIT", + "dependencies": { "global": "~4.3.0", "is-function": "^1.0.1", "parse-headers": "^2.0.0", "xtend": "^4.0.0" - }, - "dependencies": { - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "requires": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" - } } }, - "xml": { + "node_modules/xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", - "dev": true - }, - "xml-name-validator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", - "dev": true + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true, + "license": "MIT" }, - "xml2js": { - "version": "0.4.22", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz", - "integrity": "sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==", + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "sax": ">=0.6.0", - "util.promisify": "~1.0.0", "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "xmlbuilder": { + "node_modules/xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, - "dependencies": { - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - } + "engines": { + "node": ">=12" } }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "requires": { - "camelcase": "^4.1.0" + "license": "ISC", + "engines": { + "node": ">=12" } }, - "yauzl": { + "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, - "yocto-queue": { + "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index ba412960852..489a76fcc69 100644 --- a/package.json +++ b/package.json @@ -1,46 +1,59 @@ { "name": "scratch-gui", - "version": "0.1.0", - "description": "GraphicaL User Interface for creating and running Scratch 3.0 projects", + "version": "3.2.37", + "description": "Graphical User Interface for creating and running Scratch 3.0 projects", + "author": "Massachusetts Institute of Technology", + "license": "GPL-3.0", + "homepage": "https://github.com/LLK/scratch-gui#readme", + "repository": { + "type": "git", + "url": "https://github.com/LLK/scratch-gui.git" + }, "main": "./dist/scratch-gui.js", "scripts": { "build": "npm run clean && webpack --colors --bail", "clean": "rimraf ./build && mkdirp build && rimraf ./dist && mkdirp dist", "deploy": "touch build/.nojekyll && gh-pages -t -d build -m \"[skip ci] Build for $(git log --pretty=format:%H -n1)\"", + "prepublish": "node scripts/prepublish.mjs", "prune": "./prune-gh-pages.sh", "i18n:push": "tx-push-src scratch-editor interface translations/en.json", - "i18n:src": "rimraf ./translations/messages/src && babel src > tmp.js && rimraf tmp.js && build-i18n-src ./translations/messages/src ./translations/ && npm run i18n:push", + "i18n:src": "rimraf ./translations/messages/src && babel src > tmp.js && rimraf tmp.js && build-i18n-src ./translations/messages/src ./translations/", "start": "webpack-dev-server", "test": "npm run test:lint && npm run test:unit && npm run build && npm run test:integration", "test:integration": "jest --maxWorkers=4 test[\\\\/]integration", "test:lint": "eslint . --ext .js,.jsx", - "test:unit": "jest test[\\\\/]unit", + "test:unit": "jest test[\\\\/]unit[\\\\/]addons", "test:smoke": "jest --runInBand test[\\\\/]smoke", "watch": "webpack --colors --watch" }, - "author": "Massachusetts Institute of Technology", - "license": "GPL-3.0", - "private": true, - "homepage": "https://github.com/LLK/scratch-gui#readme", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/LLK/scratch-gui.git" + "config": { + "commitizen": { + "path": "cz-conventional-changelog" + } }, "dependencies": { + "@microbit/microbit-universal-hex": "0.2.2", + "@turbowarp/jszip": "^3.11.1", + "@turbowarp/nanolog": "^1.0.1", + "@turbowarp/scratch-l10n": "^3.1001.0-202401241456-994097a5", + "@turbowarp/scratch-storage": "^0.0.202505311821", + "@turbowarp/scratch-svg-renderer": "^1.0.0-202312242305-12c360b", + "@turbowarp/startaudiocontext": "^1.0.0", "arraybuffer-loader": "^1.0.6", "autoprefixer": "^9.0.1", + "balance-text": "3.3.1", "base64-loader": "1.0.0", "bowser": "1.9.4", "classnames": "2.2.6", "computed-style-to-inline-style": "3.0.0", + "cookie": "0.5.0", "copy-webpack-plugin": "6.4.1", "core-js": "2.5.7", "css-loader": "^1.0.0", + "dapjs": "2.3.0", "es6-object-assign": "1.1.0", - "file-loader": "2.0.0", "get-float-time-domain-data": "0.1.0", "get-user-media-promise": "1.1.4", - "immutable": "3.8.2", "intl": "1.2.5", "intl-messageformat": "^2.2.0", "js-base64": "2.4.9", @@ -50,7 +63,6 @@ "lodash.defaultsdeep": "4.6.1", "lodash.omit": "4.5.0", "lodash.throttle": "4.0.1", - "minilog": "3.1.0", "omggif": "1.0.9", "papaparse": "5.3.0", "postcss-import": "^12.0.0", @@ -59,9 +71,9 @@ "prop-types": "^15.5.10", "query-string": "^5.1.1", "raw-loader": "^0.5.1", - "react": "16.2.0", + "react": "^16.0.0", "react-contextmenu": "2.9.4", - "react-dom": "16.2.1", + "react-dom": "^16.0.0", "react-draggable": "3.0.5", "react-ga": "2.5.3", "react-intl": "2.9.0", @@ -76,16 +88,11 @@ "react-virtualized": "9.20.1", "redux": "3.7.2", "redux-throttle": "0.1.1", - "scratch-audio": "0.1.0-prerelease.20200528195344", - "scratch-blocks": "git+https://github.com/TurboWarp/scratch-blocks.git#develop-builds", - "@turbowarp/scratch-l10n": "^3.999.20220825224513", - "scratch-paint": "git+https://github.com/TurboWarp/scratch-paint.git#develop", - "scratch-render": "git+https://github.com/TurboWarp/scratch-render.git#develop", - "scratch-render-fonts": "1.0.0-prerelease.20210401210003", - "scratch-storage": "git+https://github.com/TurboWarp/scratch-storage.git#develop", - "scratch-svg-renderer": "git+https://github.com/TurboWarp/scratch-svg-renderer.git#develop", - "scratch-vm": "git+https://github.com/TurboWarp/scratch-vm.git#develop", - "startaudiocontext": "1.2.1", + "scratch-audio": "github:TurboWarp/scratch-audio#develop", + "scratch-blocks": "github:TurboWarp/scratch-blocks#develop-builds", + "scratch-paint": "github:TurboWarp/scratch-paint#develop", + "scratch-render": "github:TurboWarp/scratch-render#develop", + "scratch-vm": "github:TurboWarp/scratch-vm#develop", "style-loader": "^0.23.0", "text-encoding": "0.7.0", "to-style": "1.3.3", @@ -97,41 +104,43 @@ "react-dom": "^16.0.0" }, "devDependencies": { - "@babel/cli": "7.14.8", - "@babel/core": "7.14.8", + "@babel/cli": "^7.26.4", + "@babel/core": "^7.26.9", "@babel/plugin-proposal-object-rest-spread": "7.14.7", "@babel/plugin-syntax-dynamic-import": "7.2.0", "@babel/plugin-transform-async-to-generator": "7.14.5", "@babel/preset-env": "7.14.8", "@babel/preset-react": "7.14.5", "babel-core": "7.0.0-bridge.0", - "babel-eslint": "10.0.3", - "babel-loader": "8.2.2", - "chromedriver": "103.0.0", + "babel-eslint": "10.1.0", + "babel-loader": "8.3.0", + "chromedriver": "117.0.3", "enzyme": "3.10.0", - "enzyme-adapter-react-16": "1.3.0", - "eslint": "5.16.0", - "eslint-config-scratch": "6.0.0", + "enzyme-adapter-react-16": "1.15.7", + "eslint": "8.55.0", + "eslint-config-scratch": "9.0.3", "eslint-import-resolver-webpack": "0.11.1", - "eslint-plugin-import": "2.23.4", + "eslint-plugin-import": "2.29.1", "eslint-plugin-jest": "22.17.0", - "eslint-plugin-react": "7.24.0", + "eslint-plugin-react": "7.33.2", + "file-loader": "6.2.0", "gh-pages": "3.2.3", "html-webpack-plugin": "^4.2.0", - "jest": "21.2.1", + "jest": "^29.7.0", "jest-junit": "7.0.0", "mkdirp": "1.0.3", "raf": "3.4.1", - "react-test-renderer": "16.2.0", + "react-test-renderer": "16.14.0", "redux-mock-store": "1.5.3", "rimraf": "2.7.1", "selenium-webdriver": "3.6.0", "uglifyjs-webpack-plugin": "1.3.0", - "url-loader": "^4.1.1", + "url-loader": "4.1.1", "web-audio-test-api": "0.5.2", - "webpack": "4.46.0", + "webpack": "4.47.0", "webpack-cli": "3.3.12", - "webpack-dev-server": "3.11.2" + "webpack-dev-server": "3.11.2", + "yauzl": "2.10.0" }, "jest": { "setupFiles": [ @@ -146,5 +155,10 @@ "\\.(css|less)$": "/test/__mocks__/styleMock.js", "editor-msgs(\\.js)?$": "/test/__mocks__/editor-msgs-mock.js" } + }, + "overrides": { + "webpack@4.47.0": { + "terser-webpack-plugin": "^4.2.3" + } } } diff --git a/release.config.js b/release.config.js new file mode 100644 index 00000000000..48275010925 --- /dev/null +++ b/release.config.js @@ -0,0 +1,19 @@ +module.exports = { + extends: 'scratch-semantic-release-config', + branches: [ + { + name: 'develop' + // default channel + }, + { + name: 'hotfix/REPLACE', // replace with actual hotfix branch name + channel: 'hotfix', + prerelease: 'hotfix' + }, + { + name: 'beta', + channel: 'beta', + prerelease: true + } + ] +}; diff --git a/renovate.json5 b/renovate.json5 index 5615b310dba..86323486f37 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -2,6 +2,10 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ - "github>LLK/scratch-renovate-config:conservative" + "github>scratchfoundation/scratch-renovate-config" + ], + + "ignoreDeps": [ + "cat-blocks" ] } diff --git a/scripts/.eslintrc.js b/scripts/.eslintrc.js new file mode 100644 index 00000000000..8e4a7e3a397 --- /dev/null +++ b/scripts/.eslintrc.js @@ -0,0 +1,8 @@ +const path = require('path'); +module.exports = { + extends: [path.resolve(__dirname, '..', '.eslintrc.js')], + rules: { + // NPM scripts are allowed to use console.log & friends + 'no-console': 'off' + } +}; diff --git a/scripts/prepublish.mjs b/scripts/prepublish.mjs new file mode 100644 index 00000000000..6d005b7f011 --- /dev/null +++ b/scripts/prepublish.mjs @@ -0,0 +1,132 @@ +// From the NPM docs: +// "If you need to perform operations on your package before it is used, in a way that is not dependent on the +// operating system or architecture of the target system, use a prepublish script." +// Once this step is complete, a developer should be able to work without an Internet connection. +// See also: https://docs.npmjs.com/cli/using-npm/scripts + +import fs from 'fs'; +import path from 'path'; +import nodeCrypto from 'crypto'; + +import crossFetch from 'cross-fetch'; +import yauzl from 'yauzl'; +import {fileURLToPath} from 'url'; + +/** @typedef {import('yauzl').Entry} ZipEntry */ +/** @typedef {import('yauzl').ZipFile} ZipFile */ + +// these aren't set in ESM mode +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +// base/root path for the project +const basePath = path.join(__dirname, '..'); + +/** + * Extract the first matching file from a zip buffer. + * The path within the zip file is ignored: the destination path is `${destinationDirectory}/${basename(entry.name)}`. + * Prints warnings if more than one matching file is found. + * @param {function(ZipEntry): boolean} filter Returns true if the entry should be extracted. + * @param {string} relativeDestDir The directory to extract to, relative to `basePath`. + * @param {Buffer} zipBuffer A buffer containing the zip file. + * @returns {Promise} A Promise for the base name of the written file (without directory). + */ +const extractFirstMatchingFile = (filter, relativeDestDir, zipBuffer) => new Promise((resolve, reject) => { + try { + let extractedFileName; + yauzl.fromBuffer(zipBuffer, {lazyEntries: true}, (zipError, zipfile) => { + if (zipError) { + throw zipError; + } + zipfile.readEntry(); + zipfile.on('end', () => { + resolve(extractedFileName); + }); + zipfile.on('entry', entry => { + if (!filter(entry)) { + // ignore non-matching file + return zipfile.readEntry(); + } + if (extractedFileName) { + console.warn(`Multiple matching files found. Ignoring: ${entry.fileName}`); + return zipfile.readEntry(); + } + extractedFileName = entry.fileName; + console.info(`Found matching file: ${entry.fileName}`); + zipfile.openReadStream(entry, (fileError, readStream) => { + if (fileError) { + throw fileError; + } + const baseName = path.basename(entry.fileName); + const relativeDestFile = path.join(relativeDestDir, baseName); + console.info(`Extracting ${relativeDestFile}`); + const absoluteDestDir = path.join(basePath, relativeDestDir); + fs.mkdirSync(absoluteDestDir, {recursive: true}); + const absoluteDestFile = path.join(basePath, relativeDestFile); + const outStream = fs.createWriteStream(absoluteDestFile); + readStream.on('end', () => { + outStream.close(); + zipfile.readEntry(); + }); + readStream.pipe(outStream); + }); + }); + }); + } catch (error) { + reject(error); + } +}); + +const downloadMicrobitHex = async () => { + const url = 'https://packagerdata.turbowarp.org/scratch-microbit-1.2.0.hex.zip'; + const expectedSHA256 = 'dfd574b709307fe76c44dbb6b0ac8942e7908f4d5c18359fae25fbda3c9f4399'; + console.info(`Downloading ${url}`); + const response = await crossFetch(url); + const zipBuffer = Buffer.from(await response.arrayBuffer()); + const sha256 = nodeCrypto.createHash('sha-256').update(zipBuffer).digest('hex'); + if (sha256 !== expectedSHA256) { + throw new Error(`microbit hex has SHA-256 ${sha256} but expected ${expectedSHA256}`); + } + const relativeHexDir = path.join('static', 'microbit'); + const hexFileName = await extractFirstMatchingFile( + entry => /\.hex$/.test(entry.fileName), + path.join('static', 'microbit'), + zipBuffer + ); + const relativeHexFile = path.join(relativeHexDir, hexFileName); + const relativeGeneratedDir = path.join('src', 'generated'); + const relativeGeneratedFile = path.join(relativeGeneratedDir, 'microbit-hex-url.cjs'); + const absoluteGeneratedDir = path.join(basePath, relativeGeneratedDir); + fs.mkdirSync(absoluteGeneratedDir, {recursive: true}); + const absoluteGeneratedFile = path.join(basePath, relativeGeneratedFile); + const requirePath = `./${path + .relative(relativeGeneratedDir, relativeHexFile) + .split(path.win32.sep) + .join(path.posix.sep)}`; + fs.writeFileSync( + absoluteGeneratedFile, + [ + '// This file is generated by scripts/prepublish.mjs', + '// Do not edit this file directly', + '// This file relies on a loader to turn this `require` into a URL', + `module.exports = require('${requirePath}');`, + '' // final newline + ].join('\n') + ); + console.info(`Wrote ${relativeGeneratedFile}`); +}; + +const prepublish = async () => { + await downloadMicrobitHex(); +}; + +prepublish().then( + () => { + console.info('Prepublish script complete'); + process.exit(0); + }, + e => { + console.error(e); + process.exit(1); + } +); diff --git a/src/.eslintrc.js b/src/.eslintrc.js index 3165dae95a9..665de9ff9d0 100644 --- a/src/.eslintrc.js +++ b/src/.eslintrc.js @@ -9,17 +9,33 @@ module.exports = { process: true }, rules: { + // BEGIN: these caused trouble after upgrading eslint-plugin-react from 7.24.0 to 7.33.2 + 'react/forbid-prop-types': 'off', + 'react/no-unknown-property': 'off', + // END: these caused trouble after upgrading eslint-plugin-react from 7.24.0 to 7.33.2 + 'no-warning-comments': 'off', 'import/no-mutable-exports': 'error', 'import/no-commonjs': 'error', 'import/no-amd': 'error', 'import/no-nodejs-modules': 'error', 'react/jsx-no-literals': 'error', 'no-confusing-arrow': ['error', { - 'allowParens': true + allowParens: true }] }, + overrides: [ + { + files: ['**/.eslintrc.js'], + env: { + node: true + }, + rules: { + 'import/no-commonjs': 'off' + } + } + ], settings: { - react: { + 'react': { version: '16.2' // Prevent 16.3 lifecycle method errors }, 'import/resolver': { diff --git a/src/addons/addon-precedence.js b/src/addons/addon-precedence.js new file mode 100644 index 00000000000..f99a3112af9 --- /dev/null +++ b/src/addons/addon-precedence.js @@ -0,0 +1,18 @@ +// This list is a subset of all addon IDs to control the order of userstyles. +// The last item in the list is given the highest precedence (last in the DOM). +// If an addon isn't listed here, it's interpreted to have lowest precedence and +// that its order with other unlisted addons does not matter. +const addonPrecedence = [ + 'columns', + 'editor-stage-left', + 'editor-theme3', + 'hide-stage' +]; + +/** + * @param {string} addonId The addon ID + * @returns {number} An integer >= 0 + */ +const getPrecedence = addonId => addonPrecedence.indexOf(addonId) + 1; + +export default getPrecedence; diff --git a/src/addons/addons-l10n-settings/de.json b/src/addons/addons-l10n-settings/de.json index d46e1e56100..e9e198d259a 100644 --- a/src/addons/addons-l10n-settings/de.json +++ b/src/addons/addons-l10n-settings/de.json @@ -1,15 +1,29 @@ { - "cat-blocks/@description": "Fügt die Katzenstartblöcke vom Aprilscherz 2020 wieder zum Editor hinzu.", - "cat-blocks/@info-watch": "Die \"Mauscursor ansehen\"-Option könnte im Editor die Leistung beeinträchtigen.", + "cat-blocks/@description": "Bringt im Editor die Katzenförmigen Startblöcke zurück, die erstmals für den Aprilscherz 2020 eingeführt wurden.", + "cat-blocks/@info-watch": "Die \"Mauscursor ansehen\"-Option könnte die Leistung beeinträchtigen, wenn der Editor geöffnet ist.", "cat-blocks/@name": "Katzenblöcke", "cat-blocks/@settings-name-watch": "Mauscursor ansehen", - "editor-devtools/@description": "Fügt ein Suchfeld und neue Menüoptionen zum Editor hinzu: Kopieren/Einfügen von Blöcken, besseres Aufräumen, gehe zu Definitionen von Benutzerdefinierten Blöcken und vieles mehr! Drücke Strg+F zum Suchen, Strg+Leertaste zum Öffnen des \"Block nach Namen hinzufügen\"-Popups, Strg+Links/Rechts zum Navigieren im SUchverlauf.", + "editor-devtools/@description": "Fügt neue Menüoptionen zum Editor hinzu: Blöcke kopieren/einfügen, besseres Aufräumen und mehr!", "editor-devtools/@name": "Entwicklertools", "editor-devtools/@settings-name-enableCleanUpPlus": "Verbessere \"Blöcke aufräumen\"", - "editor-devtools/@settings-name-enableMiddleClickFinder": "Um zu navigieren, klicke mit der mittleren Maustaste auf Variablen, benutzerdefinierte Blöcke oder Ereignisse", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Blöcke beim Mauscursor einfügen", - "editor-searchable-dropdowns/@description": "Ermöglicht es dir, Block-Dropdowns zu durchsuchen.", - "editor-searchable-dropdowns/@name": "Durchsuchbare Dropdown-Menüs", + "find-bar/@description": "Fügt eine Leiste neben dem Klänge-Tab im Editor hinzu, mit der du Skripte, Kostüme und Klänge durchsuchen kannst. Verwende Strg+Links und Strg+Rechts im Codebereich, um zur vorher bzw. nachher besuchten Position nach Verwendung der Finden-Leiste zu navigieren.", + "find-bar/@info-developer-tools": "Dieses Addon gehörte früher zum \"Entwicklertools\"-Addon, aber es wurde hierher verschoben.", + "find-bar/@name": "Finden-Leiste im Editor", + "middle-click-popup/@description": "Strg+Leertaste, MIttel- oder Umschalt+Klick auf den Codebereich öffnet ein Blocksuchfenster. Gib Namen von Blöcken (bzw. Teile davon oder mehrere Blöcke) ein, um sie im Projekt einzufügen. Das Menü kann mit den Pfeiltasten und Enter navigiert werden und unterstützt Autovervollständigung mit der Tabulator-Taste. Halte beim Ziehen der Blöcke die Umschalttaste gedrückt, um das Schließen des Menüs zu verhindern.", + "middle-click-popup/@info-developer-tools": "Dieses Addon gehörte früher zum \"Entwicklertools\"-Addon, aber es wurde hierher verschoben.", + "middle-click-popup/@name": "Blöcke mit Namen einfügen", + "middle-click-popup/@settings-name-popup_max_height": "Maximale Popup-Höhe", + "middle-click-popup/@settings-name-popup_scale": "Größe von Blöcken im Popup", + "middle-click-popup/@settings-name-popup_width": "Popup-Breite", + "jump-to-def/@description": "Klicke mit gedrückter Umschalt-Taste oder mit der mittleren Maustaste auf einen benutzerdefinierten Block, um zu seiner Definition zu springen.", + "jump-to-def/@info-developer-tools": "Dieses Addon gehörte früher zum \"Entwicklertools\"-Addon, aber es wurde hierher verschoben.", + "jump-to-def/@name": "Zu Blockdefinition springen", + "reorder-custom-inputs/@description": "Ermöglicht das Verschieben von Eingabefeldern von benutzerdefinierten Blöcken im \"Neuer Block\"-Fenster.", + "reorder-custom-inputs/@name": "Umsortierbare Parameter von benutzerdefinierten Blöcken", + "reorder-custom-inputs/@settings-name-InsertInputsAfter": "Neue Eingabefelder nach aktivem Eingabefeld einfügen", + "editor-searchable-dropdowns/@description": "Ermögiicht das Filtern von Optionen in Block-Dropdowns.", + "editor-searchable-dropdowns/@name": "Dropdown-Menü-Suche", "data-category-tweaks-v2/@description": "Bietet Optimierungen für die Kategorie Daten (\"Variablen\") im Editor.", "data-category-tweaks-v2/@name": "Optimierungen für die Datenkategorie", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Datenblöcke über die Variablenliste bewegen", @@ -17,46 +31,55 @@ "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Separate Kategorie für Variablen Nur für diese Figur", "block-palette-icons/@description": "Fügt Icons innerhalb der Farbigen Kreise, die die Blockkategorien unterscheiden, hinzu.", "block-palette-icons/@name": "Kategorienicons in Blockpalette", - "hide-flyout/@description": "Blendet die Blockpalette automatisch aus, wenn sich die Maus nicht darüber befindet. Klicke auf das Schlossymbol, um es temporär zu fixieren. Alternativ kannst du den \"Kategorien klicken\"-Modus verwenden.", + "hide-flyout/@description": "Blendet die Blockpalette aus, wenn sich die Maus nicht darüber befindet. Klicke auf das Schloss-Symbol in der Palette, um sie vorübergehend anzuheften, oder benutze den Modus \"Klick auf Kategorien\", um sie beim Klicken auf eine Blockkategorie ein-/auszublenden.", "hide-flyout/@info-hoverExplanation": "Der \"Palettenbereich-Hover\"-Modus erweitert nur den angezeigten Bereich. Wenn du Blöcke dort hinziehen willst, ohne dass sie gelöscht werden, verwende einen der anderen Modi.", "hide-flyout/@name": "Automatisches Ausblenden für Blockpalette", - "hide-flyout/@settings-name-speed": "Animationdauer", + "hide-flyout/@settings-name-lockLoad": "Standardmäßig öffnen", + "hide-flyout/@settings-name-speed": "Animationsgeschwindigkeit", "hide-flyout/@settings-name-toggle": "Festlegen...", "hide-flyout/@settings-select-speed-default": "Standard", - "hide-flyout/@settings-select-speed-long": "Lang", - "hide-flyout/@settings-select-speed-none": "Keine", - "hide-flyout/@settings-select-speed-short": "Kurz", + "hide-flyout/@settings-select-speed-long": "Langsam", + "hide-flyout/@settings-select-speed-none": "Sofort", + "hide-flyout/@settings-select-speed-short": "Schnell", "hide-flyout/@settings-select-toggle-category": "Kategorien klicken", "hide-flyout/@settings-select-toggle-cathover": "Kategorien hovern", "hide-flyout/@settings-select-toggle-hover": "Hover auf Palettenbereich", - "hide-flyout/@update": "Dieses Addon wurde überarbeitet und viele Fehler wurden behoben.", - "mediarecorder/@description": "Fügt einen \"Aufnehmen\"-Knopf zur Menüleiste im Editor hinzu, mit dem du die Bühne des Projekts aufnehmen kannst.", + "mediarecorder/@description": "Fügt eine Schaltfläche zur Menüleiste im Editor hinzu, mit der du die Bühne des Projekts aufnehmen kannst.", "mediarecorder/@name": "Projektvideorekorder", "drag-drop/@description": "Lässt dich BIlder und Klänge vom Dateimanager zur Figuren-, Kostüm- und Klangliste ziehen. Du kannst auch Textdateien in Listen oder \"frage und warte\"-Felder ziehen.", "drag-drop/@name": "Drag and Drop-Unterstützung für Dateien", "drag-drop/@settings-name-use-hd-upload": "HD-Upload verwenden", + "debugger/@description": "Fügt ein neues \"Debugger\"-Fenster im Editor hinzu. Erlaubt das loggen in den \"Logs\"-Tab des Debugger-Fenster mit den Blöcken \"loggen\", \"warnen\" und \"Fehler\". Der \"Unterbrechen\"-Block wird das Projekt pausieren. Alle aktuell ausgeführten Blockreihen können im \"Threads\"-Tab des Debuggerfensters angezeigt werden, und wenn das Projekt pausiert ist, kann die \"Schritt\"-Schaltfläche verwendet werden, um einen Block nach dem anderen auszuführen. Ein Graph der Bildwiederholrate und der Klonanzahl kann im \"Leistung\"-Tab angezeigt werden.", + "debugger/@settings-name-fancy_graphs": "Animierte Graphen (könnte die Leistung beeinträchtigen)", "debugger/@settings-name-log_broadcasts": "Nachrichten loggen", "debugger/@settings-name-log_clear_greenflag": "Logs beim Klicken auf die grüne Flagge löschen", "debugger/@settings-name-log_clone_create": "Klon-Erzeugungen loggen", - "debugger/@settings-name-log_failed_clone_creation": "Überschreitung des Klonlimits loggen", + "debugger/@settings-name-log_failed_clone_creation": "Beim Überschreiten der Klongrenze loggen", "debugger/@settings-name-log_greenflag": "Klicks auf dei grüne Flagge loggen", - "debugger/@update": "Neue \"Threads\"- und \"Leistung\"-Tabs im Debugger-Fenster.", - "pause/@description": "Fügt eine Pausetaste neben der grünen Flagge hinzu.", - "pause/@name": "Pausetaste", + "pause/@description": "Fügt eine Schaltfläche neben der grünen Flagge hinzu, mit der Projekte pausiert werden können.", + "pause/@info-keybind": "Das Projekt kann auch mit Alt+X (auf macOS Option+X) pausiert werden.", + "pause/@name": "Pause-Schaltfläche", "mute-project/@description": "Strg+Klicke auf die grüne Flagge, um das Projekt stummzuschalten bzw. die Stummschaltung aufzuheben.", "mute-project/@info-macOS": "Verwende auf macOS statt der Strg-Taste die Cmd-Taste.", - "mute-project/@name": "Projektplayer stummschalten-Knopf", + "mute-project/@name": "\"Projekt-Player stummschalten\"-Schaltfläche", + "vol-slider/@description": "Fügt einen Lautstärkeregler neben der grünen Flagge hinzu.", + "vol-slider/@name": "Lautstärkeregler", + "vol-slider/@settings-name-always": "Regler immer anzeigen", + "vol-slider/@settings-name-defVol": "Standard-Lautstärke", "clones/@description": "Fügt einen Zähler zum Editor hinzu, der die Anzahl aller Klone anzeigt.", "clones/@name": "Klonzähler", + "clones/@settings-name-projectpage": "Auf Projektseite anzeigen", + "clones/@settings-name-showicononly": "Nur Symbol anzeigen", "mouse-pos/@description": "Zeigt die x/y-Position des Mauszeigers über der Bühne im Editor an.", - "mouse-pos/@name": "Mauszeigerposition", + "mouse-pos/@name": "Mauspositions-Anzeige", "color-picker/@description": "Fügt Hexadezimalcode-Eingaben zum Farbwähler hinzu.", "color-picker/@name": "Hexadezimal-Farbwähler", "remove-sprite-confirm/@description": "Fragt, ob du sicher bist, wenn du eine Figur in einem Projekt löschst.", + "remove-sprite-confirm/@info-restoretip": "Tipp: Wenn du aus Versehen eine Figur, eine Kostüm oder einen Klang löschst, kannst du das Löschen rückgängig machen, indem du in der Menüleiste auf \"Bearbeiten\" klickst und anschließend den Menüpunkt \"Wiederherstellen\" auswählst.", "remove-sprite-confirm/@name": "Löschen von Figuren bestätigen", "block-count/@description": "Zeigt die volle Anzahl von Blöcken in der Menüleiste des Projekteditors an. Früher Teil von \"Figuren- und Skriptanzahl\".", "block-count/@name": "Blockanzahl", - "onion-skinning/@description": "Zeigt ein transparentes Bild des vorherigen oder nächsten Kostüms während dem Bearbeiten eines Kostüms. Du kannst es mit Knöpfen neben den Zoom-Knöpfen im Kostümeditor steuern.", + "onion-skinning/@description": "Zeigt ein transparentes Bild des vorherigen oder nächsten Kostüms über dem aktuellen Kostüm im Maleditor an. Du kannst es mit Schaltflächen neben den Zoom-Schaltflächen steuern.", "onion-skinning/@name": "Onion Skinning", "onion-skinning/@settings-name-afterTint": "Färbung für nächstes Kostüm", "onion-skinning/@settings-name-beforeTint": "Färbung für vorheriges Kostüm", @@ -71,10 +94,26 @@ "onion-skinning/@settings-select-layering-front": "Vorne", "onion-skinning/@settings-select-mode-merge": "Bilder verbinden", "onion-skinning/@settings-select-mode-tint": "Farbüberlagerung", + "paint-snap/@description": "Rastet Objekte im Kostümeditor an Kasten und Vektorpunkten ein.", + "paint-snap/@name": "Einrasten im Kostümeditor", + "paint-snap/@settings-name-boxCenter": "Von Auswahlmitte einrasten", + "paint-snap/@settings-name-boxCorners": "Von Auswahlecken einrasten", + "paint-snap/@settings-name-boxEdgeMids": "Von Mittelpunkten von Auswahlrand einrasten", + "paint-snap/@settings-name-enable-default": "Standardmäßig aktivieren", + "paint-snap/@settings-name-guide-color": "Farbe der Einrasthilfe", + "paint-snap/@settings-name-objectCenters": "An Objektmitte einrasten", + "paint-snap/@settings-name-objectCorners": "An Objektecken einrasten", + "paint-snap/@settings-name-objectEdges": "An Objektrand einrasten", + "paint-snap/@settings-name-objectMidlines": "An Objektmittellinien einrasten", + "paint-snap/@settings-name-pageAxes": "An X- und Y- Achsen der Seite einrasten", + "paint-snap/@settings-name-pageCenter": "An Seitenmitte einrasten", + "paint-snap/@settings-name-pageCorners": "An Seitenecken einrasten", + "paint-snap/@settings-name-pageEdges": "An Seitenrand einrasten", + "paint-snap/@settings-name-threshold": "Einrasteabstand", "default-costume-editor-color/@description": "Ändert die standardmäßige Farbe und Randbreite im Kostümeditor.", "default-costume-editor-color/@name": "Benutzerdefinierte Standardfarbe im Kostümeditor", "default-costume-editor-color/@settings-name-fill": "Standardmäßige Füllfarbe", - "default-costume-editor-color/@settings-name-persistence": "Vorherige Farbe beim Wechseln von Werkzeugen verwenden", + "default-costume-editor-color/@settings-name-persistence": "Beim Wechseln zwischen Werkzeugen vorherige Farbe beibehalten, anstatt sie zurückzusetzen", "default-costume-editor-color/@settings-name-stroke": "Standardmäßige Randfarbe", "default-costume-editor-color/@settings-name-strokeSize": "Standardmäßige Randbreite", "bitmap-copy/@description": "Ermöglicht es dir, Raster-Bilder aus dem Maleditor in die Zwischenablage des Systems zu kopieren, sodass sie auf anderen Seiten oder Programmen eingefügt werden können.", @@ -82,16 +121,21 @@ "bitmap-copy/@name": "Kopieren von Raster-Bildern", "2d-color-picker/@description": "Ersetzt die Schattierungs- und Helligkeitsschieberegler im Kostümeditor durch einen 2D-Farbenwähler. Halte die Umschalttaste während dem Ziehen des Mauszeigers gedrückt, um die Werte auf einer einzigen Achse zu ändern.", "2d-color-picker/@name": "2D-Farbenwähler", - "better-img-uploads/@description": "Fügt einen neuen Knopf über dem \"Kostüm hochladen\"-Knopf, der hochgeladene Raster-Bilder automatisch in SVG (Vektor) umwandelt, um die Qualität nicht zu verlieren.", - "better-img-uploads/@info-notSuitableEdit": "Verwende den HD Hochladen-Knopf lieber nicht, wenn du planst, das Bild nach dem Hochladen zu bearbeiten.", - "better-img-uploads/@name": "Bilder mit hoher Auflösung hochladen", + "paint-skew/@description": "Halte Strg gedrückt, während du die Seite eines Objekts verschiebst, um dieses zu verbiegen. Halte Alt während dem Verbiegen gedrückt, um es von seiner Mitte aus zu verbiegen.", + "paint-skew/@info-useCmdOnMac": "Auf macOS, benutze die Cmd-Taste statt der Strg-Taste und die Option-Taste statt der Alt-Taste.", + "paint-skew/@name": "Biegen im Kostümeditor", + "better-img-uploads/@description": "Fügt eine neue Schaltfläche oberhalb von \"Kostüm hochladen\" hinzu, die hochgeladene Raster-Bilder automatisch in SVG (Vektor) umwandelt, um die Qualität nicht zu verlieren.", + "better-img-uploads/@info-notSuitableEdit": "Verwende HD-Hochladen nicht, wenn du das Bild nach dem Hochladen noch bearbeiten möchtest.", + "better-img-uploads/@name": "Bilder in HD hochladen", "better-img-uploads/@settings-name-fitting": "Bildgröße", - "better-img-uploads/@settings-select-fitting-fill": "Durch Vergrößern an Bühne anpassen", - "better-img-uploads/@settings-select-fitting-fit": "Durch Verkleinern an Bühne anpassen", + "better-img-uploads/@settings-select-fitting-fill": "Zum Ausfüllen der Bühne vergrößern", + "better-img-uploads/@settings-select-fitting-fit": "Zum Ausfüllen der Bühne verkleinern", "better-img-uploads/@settings-select-fitting-full": "Originalgröße", + "pick-colors-from-stage/@description": "Ermöglicht es der Pipette im Kostümeditor, Farben von der Bühne auszuwählen.", + "pick-colors-from-stage/@name": "Farben mit Pipette von Bühne wählen", "custom-block-shape/@description": "Ändere die Blockhöhe, den Eckenradius und die Höhe der Laschen von Scratch-Blöcken.", "custom-block-shape/@info-paddingWarning": "Die Änderung der Blockhöhe ist nur für dich sichtbar, deshalb könnten sich deine Skripte, wenn andere Nutzer deine Projekte ansehen, überlappen.", - "custom-block-shape/@name": "Anpassbare Blockform", + "custom-block-shape/@name": "Benutzerdefinierte Blockform", "custom-block-shape/@preset-description-default2": "Scratch 2.0-ähnliche Blöcke", "custom-block-shape/@preset-description-default3": "Die normale Ansicht von Scratch 3.0-Blöcken", "custom-block-shape/@preset-description-flat2": "Scratch 2.0-Blöcke ohne Laschen und Ecken", @@ -103,19 +147,46 @@ "custom-block-shape/@settings-name-cornerSize": "Eckengröße (0-300%)", "custom-block-shape/@settings-name-notchSize": "Laschenhöhe (0-150%)", "custom-block-shape/@settings-name-paddingSize": "Blockhöhe (50-200%)", + "editor-square-inputs/@description": "Macht bestimmte Eingabefelder von Blöcken (wie Text oder Farbe) rechteckig statt rund, wie in Scratch 2.0.", + "editor-square-inputs/@name": "Viereckige Eingabefelder von Blöcken", + "editor-square-inputs/@settings-name-color": "Farbfelder", + "editor-square-inputs/@settings-name-number": "Zahlenfelder", + "editor-square-inputs/@settings-name-text": "Textfelder", + "zebra-striping/@description": "Wechselt Blöcke aus der gleichen Kategorie zwischen helleren und dunkleren Schattierungen ab, wenn sie ineinander verschachtelt sind. Auch als Zebrastreifen bekannt.", + "zebra-striping/@name": "Abwechselnde Farben für verschachtelte Blöcke", + "zebra-striping/@settings-name-intensity": "Stärke (0-100%)", + "zebra-striping/@settings-name-shade": "Schattierung", + "zebra-striping/@settings-select-shade-darker": "Dunkler", + "zebra-striping/@settings-select-shade-lighter": "Heller", + "editor-compact/@description": "Verringert die Größe von Schaltflächen, Eingabefeldern, der Kopfleiste, und anderen Elementen im Editor, um mehr Platz für Elemente wie die Codefläche, der Kostümeditor und Kostümvorschauen zu schaffen, wie in Scratch 2.0.", + "editor-compact/@info-hide-icons-update": "Um die Menüleistensymbole auszublenden, verwende das Addon \"Benutzerdefinierte Menüleiste\".", + "editor-compact/@name": "Kompakter Editor", + "editor-compact/@settings-name-hideLabels": "Schalftlächenbeschriftungen im Kostüm- und Klangeditor verstecken", + "custom-menu-bar/@description": "Ermöglicht es dir, bestimmte Elemente von der Menüleiste im Editor zu entfernen oder deren Symbole bzw. Beschriftungen auszublenden.", + "custom-menu-bar/@info-small-screens": "Die Textbeschriftungen könnten in kleineren Fenstern automatisch mit Symbolen ersetzt werden.", + "custom-menu-bar/@name": "Benutzerdefinierte Menüleiste im Editor", + "custom-menu-bar/@settings-name-menu-labels": "Was soll von den Menüs angezeigt werden?", + "custom-menu-bar/@settings-select-menu-labels-both": "Symbole und Beschriftungen", + "custom-menu-bar/@settings-select-menu-labels-icons": "Nur Symbole", + "custom-menu-bar/@settings-select-menu-labels-labels": "Nur Beschriftungen", "editor-theme3/@description": "Bearbeite die Farben der Blöcke für jede Kategorie im Editor.", - "editor-theme3/@name": "Anpassbare Blockfarben", - "editor-theme3/@preset-description-black": "Macht Blockhintergründe schwarz", - "editor-theme3/@preset-description-dark": "Dunkle Versionen der Standardfarben", + "editor-theme3/@name": "Benutzerdefinierte Blockfarben", + "editor-theme3/@preset-description-black": "Macht die Blockhintergründe schwarz und den Rand/Text farbig", + "editor-theme3/@preset-description-contrast": "Scratch 3.0s kontrastreiche Blockpalette", + "editor-theme3/@preset-description-dark": "Noch dunklere Varianten der Standardfarben", + "editor-theme3/@preset-description-new-dark": "Dunkle Varianten der Standardfarben, die in dunklen Designs gut aussehen", "editor-theme3/@preset-description-original": "Die originalen Blockfarben von Scratch 2.0", - "editor-theme3/@preset-description-tweaks": "Ereignisse, Steuerung, und Benutzerdefinierte Blöcke mit 2.0-inspirierten Farben", + "editor-theme3/@preset-description-tweaks": "Die Farben von Scratch 3.0 mit Ereignissen, Steuerung und benutzerdefinierten Blöcken, die den Farben von Scratch 2.0 ähneln.", "editor-theme3/@preset-name-black": "Schwarz", - "editor-theme3/@preset-name-dark": "Dunkel", - "editor-theme3/@preset-name-original": "2.0-Farben", - "editor-theme3/@preset-name-tweaks": "3.0-Optimierungen", + "editor-theme3/@preset-name-contrast": "Hoher Kontrast", + "editor-theme3/@preset-name-dark": "Dunkler", + "editor-theme3/@preset-name-new-dark": "Dunkel", + "editor-theme3/@preset-name-original": "Scratch 2.0-Farben", + "editor-theme3/@preset-name-tweaks": "Verbessertes Scratch 3.0", "editor-theme3/@settings-name-Pen-color": "Erweiterungen", + "editor-theme3/@settings-name-comment-color": "Kommentare", "editor-theme3/@settings-name-control-color": "Steuerung", - "editor-theme3/@settings-name-custom-color": "Benutzerdefiniert", + "editor-theme3/@settings-name-custom-color": "Benutzerdefinierte", "editor-theme3/@settings-name-data-color": "Variablen", "editor-theme3/@settings-name-data-lists-color": "Listen", "editor-theme3/@settings-name-events-color": "Ereignisse", @@ -130,25 +201,34 @@ "editor-theme3/@settings-select-text-colorOnBlack": "Farbig auf schwarzem Hintergrund", "editor-theme3/@settings-select-text-colorOnWhite": "Farbig auf weißem Hintergrund", "editor-theme3/@settings-select-text-white": "Weiß", - "editor-theme3/@update": "Neue Einstellung zum Anwenden der Blockfarben auf Foren.", - "custom-block-text/@description": "Ändert die Dicke von Text auf Blöcken und fügt einen Textschatten hinzu.", + "custom-block-text/@description": "Lässt dich das Aussehen von Blocktexten verändern, zum Beispiel durch das Verändern der Textgröße, fetten Text, oder einem Schatten.", "custom-block-text/@name": "Benutzerdefinierter Stil von Text auf Blöcken", "custom-block-text/@settings-name-bold": "Fetter Text", "custom-block-text/@settings-name-shadow": "Schatten unter Text", + "custom-block-text/@settings-name-size": "Textgröße (%)", "editor-colored-context-menus/@description": "Macht die Kontextmenüs beim Rechtsklicken auf Blöcken farbig.", "editor-colored-context-menus/@name": "Farbige Kontextmenüs", "editor-stage-left/@description": "Verschiebt die Bühne auf die linke Seite des Editors, wie in Scratch 2.0.", "editor-stage-left/@info-reverseOrder": "Um die Position der Schaltflächen über der Bühne zu verändern, verwende das \"Verkehrte Anordnung von Playersteuerelementen\"-Addon.", "editor-stage-left/@name": "Bühne links anzeigen", - "editor-buttons-reverse-order/@description": "Verschiebt die grüne Flagge und den Stopp-Knopf auf die rechte und den Vollbild-Knopf auf die linke Seite, wie in Scratch 2.0.", - "editor-buttons-reverse-order/@name": "Verkehrte Anordnung von Playersteuerelementen", + "editor-buttons-reverse-order/@description": "Verschiebt die grüne Flagge und das Stoppschild auf die rechte und die Vollbild-Schaltfläche auf die linke Seite, wie in Scratch 2.0.", + "editor-buttons-reverse-order/@name": "Verkehrte Anordnung von Player-Steuerelementen", "variable-manager/@description": "Fügt einen Tab neben \"Klänge\" im Editor hinzu, um Variablen und Listen einfach zu aktualisieren.", "variable-manager/@name": "Variablenmanager", "search-sprites/@description": "Fügt ein Suchfeld zur Figurenleiste hinzu.", - "search-sprites/@name": "Figuren nach Namen suchen", + "search-sprites/@name": "Figuren-Suche", + "sprite-properties/@description": "Versteckt die Eigenschaftenleiste von Figuren, wie in Scratch 2.0. Benutze die Info-Schaltfläche auf der aktuell ausgewählten FIgur oder doppelklicke auf eine Figur, um die Leiste anzuzeigen oder zu verstecken.", + "sprite-properties/@name": "Figureneigenschaften ausblenden", + "sprite-properties/@settings-name-autoCollapse": "Automatisch ausblenden, wenn die Maus den Bereich verlässt", + "sprite-properties/@settings-name-hideByDefault": "Leiste standardmäßig ausblenden", + "sprite-properties/@settings-name-transitionDuration": "Animationsgeschwindigkeit", + "sprite-properties/@settings-select-transitionDuration-default": "Standard", + "sprite-properties/@settings-select-transitionDuration-long": "Langsam", + "sprite-properties/@settings-select-transitionDuration-none": "Sofort", + "sprite-properties/@settings-select-transitionDuration-short": "Schnell", "gamepad/@description": "Interagiere mit einem USB- oder Bluetoothcontroller/Gamepad mit Projekten.", "gamepad/@name": "Gamepad-Unterstützung", - "gamepad/@settings-name-hide": "Einstellungenknopf ausblenden, wenn keine Controller erkannt wurden", + "gamepad/@settings-name-hide": "Einstellungen ausblenden, wenn keine Controller erkannt wurden", "editor-sounds/@description": "Soundeffekte beim Verbinden und Löschen von Blöcken.", "editor-sounds/@name": "Soundeffekte im Editor", "folders/@description": "Fügt Ordner zur Figurenliste hinzu, sowie zur Kostüm- und Klangliste. Um einen Ordner zu erstellen, klicke mit der rechten Maustaste auf eine Figur und wähle \"neuer Ordner\". Klicke mit der rechten Maustaste eine Figur an, um sie in einen Ordner zu verschieben, oder ziehe sie in einen offenen Ordner. Dieses Feature funktioniert durch Hinzufügen von \"[Orndername]//\" vor dem Namen deiner Figuren.", @@ -156,10 +236,9 @@ "folders/@name": "Figurenordner", "block-switching/@description": "Klicke mit der rechten Maustaste auf einen Block, um ihn mit einem ähnlichen Block zu ersetzen.", "block-switching/@name": "Block-Austausch", - "block-switching/@settings-name-border": "Rand hinzufügen", "block-switching/@settings-name-control": "Steuerung-Blöcke", - "block-switching/@settings-name-customargs": "Argumente von benutzerdefinierten Blöcken", - "block-switching/@settings-name-customargsmode": "Optionen für angezeigte Blockargumente", + "block-switching/@settings-name-customargs": "Parameter von benutzerdefinierten Blöcken", + "block-switching/@settings-name-customargsmode": "Optionen für angezeigte Blockparameter", "block-switching/@settings-name-data": "Variablen-Blöcke", "block-switching/@settings-name-event": "Ereignisse-Blöcke", "block-switching/@settings-name-extension": "Erweiterungen-Blöcke", @@ -169,8 +248,8 @@ "block-switching/@settings-name-operator": "Operatoren-Blöcke", "block-switching/@settings-name-sensing": "Fühlen-Blöcke", "block-switching/@settings-name-sound": "Klang-Blöcke", - "block-switching/@settings-select-customargsmode-all": "Argumente in allen benutzerdefinierten Blöcken in der Figur", - "block-switching/@settings-select-customargsmode-defOnly": "Argumente in eigenem benutzerdefiniertem Block", + "block-switching/@settings-select-customargsmode-all": "Parameter in allen benutzerdefinierten Blöcken der Figur", + "block-switching/@settings-select-customargsmode-defOnly": "Parameter von eigenem benutzerdefiniertem Block", "load-extensions/@description": "Fügt Musik, Malstift, und weitere Erweiterungen automatisch zur Blockkategorienliste hinzu.", "load-extensions/@name": "Erweiterungen automatisch hinzufügen", "load-extensions/@settings-name-music": "Musik", @@ -182,32 +261,34 @@ "custom-zoom/@settings-name-autohide": "Zoom-Steuerelemente automatisch ausblenden", "custom-zoom/@settings-name-maxZoom": "Maximale Größe (100-500%)", "custom-zoom/@settings-name-minZoom": "Zoom-Minimum (1-100%)", - "custom-zoom/@settings-name-speed": "Dauer der Animation für das automatische Ausblenden", + "custom-zoom/@settings-name-speed": "Animationsdauer für Ausblenden", "custom-zoom/@settings-name-startZoom": "Startzoom (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "Zoom-Geschwindigkeit (50-200%)", "custom-zoom/@settings-select-speed-default": "Standard", - "custom-zoom/@settings-select-speed-long": "Lang", - "custom-zoom/@settings-select-speed-none": "Keine", - "custom-zoom/@settings-select-speed-short": "Kurz", - "initialise-sprite-position/@description": "Ändere die Standard X/Y-Position von neuen Figuren.", - "initialise-sprite-position/@name": "Personalisierbare Standardposition von neuen Figuren", - "initialise-sprite-position/@settings-name-duplicate": "Verhalten beim Duplizieren von Figuren", - "initialise-sprite-position/@settings-name-library": "Position der Figuren aus der Bibliothek zufällig festlegen", + "custom-zoom/@settings-select-speed-long": "Langsam", + "custom-zoom/@settings-select-speed-none": "Sofort", + "custom-zoom/@settings-select-speed-short": "Schnell", + "copy-reporter/@description": "Ergänzt eine Option zum Kopieren der Werte in Variablenanzeigen auf der Bühne (im Rechtsklick-Kontextmenü) und in Sprechblasen von Variablenblöcken.", + "copy-reporter/@name": "Variablenwerte kopieren", + "initialise-sprite-position/@description": "Ändert die Position auf der Bühne von neu erstellten Figuren.", + "initialise-sprite-position/@name": "Benutzerdefinierte Standardposition von neuen Figuren", + "initialise-sprite-position/@settings-name-duplicate": "Position für duplizierte Figuren", + "initialise-sprite-position/@settings-name-library": "Figuren aus der Bibliothek zufällig platzieren", "initialise-sprite-position/@settings-name-x": "X-Position", "initialise-sprite-position/@settings-name-y": "Y-Position", - "initialise-sprite-position/@settings-select-duplicate-custom": "An spezifische x/y-Werte schicken", - "initialise-sprite-position/@settings-select-duplicate-keep": "Dieselbe Position wie die Originalfigur", + "initialise-sprite-position/@settings-select-duplicate-custom": "Bestimmte Position", + "initialise-sprite-position/@settings-select-duplicate-keep": "Gleich wie Originalfigur", "initialise-sprite-position/@settings-select-duplicate-randomize": "Zufällig", "blocks2image/@description": "Klicke mit der rechten Maustaste auf den Codebereich, um Blöcke als SVG/PNG-Bilder zu exportieren", "blocks2image/@name": "Blöcke als Bild speichern", - "remove-curved-stage-border/@description": "Entfernt den runden Rand um die Bühne, um die Ecken sichtbar zu machen.", + "remove-curved-stage-border/@description": "Entfernt den runden Rand der Bühne, um die Ecken sichtbar zu machen.", "remove-curved-stage-border/@name": "Runden Bühnenrand entfernen", "transparent-orphans/@description": "Stelle die Transparenz für Blöcke im Editor ein, mit separaten Optionen für alleinstehende Blöcke (solche ohne Startblock) und Blöcke, die gerade gezogen werden.", "transparent-orphans/@name": "Durchsichtige Blöcke", "transparent-orphans/@settings-name-block": "Block Transparenz (%)", "transparent-orphans/@settings-name-dragged": "Gezogene Transparenz (%)", "transparent-orphans/@settings-name-orphan": "Alleinstehende Transparenz (%)", - "paint-by-default/@description": "Ändert die Standardaktion von \"Figur/Kostüm/Hintergrund/Klang\" wählen\"-Knöpfen, die die Bibliothek standardmäßig öffnen.", + "paint-by-default/@description": "Ändert die Standardaktion von \"Figur/Kostüm/Hintergrund/Klang wählen\"-Schaltflächen, die standardmäßig die Bibliothek öffnen.", "paint-by-default/@name": "Benutzerdefiniertes Verhalten von Hinzufügen-Buttons", "paint-by-default/@settings-name-backdrop": "Hintergrund hinzufügen", "paint-by-default/@settings-name-costume": "Kostüm hinzufügen", @@ -234,16 +315,17 @@ "block-cherry-picking/@info-macContextDisabled": "Auf macOS, verwende anstatt der Strg-Taste die Cmd-Taste.", "block-cherry-picking/@name": "Einzelne Blöcke mit Strg-Taste nehmen", "block-cherry-picking/@settings-name-invertDrag": "Steuerung invertieren", - "hide-new-variables/@description": "Keine Anzeigen für neu erstellte Variablen oder Listen automatisch erstellen.", + "hide-new-variables/@description": "Verhindert das automatische Anzeigen von Werten auf der Bühne für neu erstellte Variablen und Listen.", "hide-new-variables/@name": "Neue Variablen verstecken", - "editor-extra-keys/@description": "Fügt mehr Tasten zum \"Taste () gedrückt?\" und \"Wenn Taste () gedrückt\" Block-Dropdown hinzu, wie Enter, Punkt, Komma und mehr.", + "editor-extra-keys/@description": "Fügt mehr Tasten zum \"Taste () gedrückt?\" und \"Wenn Taste () gedrückt\" Block-Dropdown hinzu, wie Enter, Punkt, Komma und mehr. Diese Tasten werden auch für Nutzer ohne das Addon funktionieren.", "editor-extra-keys/@info-experimentalKeysWarn": "\"Experimentelle Tasten\" sind Tasten wie Gleich-Zeichen, Schrägstrich, Strichpunkt und mehr. Sie könnten auf manchen Betriebssystemen und Tastaturlayouts nicht funktionieren.", "editor-extra-keys/@info-shiftKeysWarn": "\"Umschalttasten\" sind Tasten, die normalerweise das Drücken der Umschalt-Taste und eine Zahl benötigen, wie Rufezeichen, Dollar-Symbol und mehr. Diese Tasten funktionieren nur mit dem \"wenn Taste () gedrückt\"-Block und könnten auf manchen Betriebssystemen und Tastaturlayouts nicht funktionieren. ", - "editor-extra-keys/@name": "Unterstützung für weitere Tasten", - "editor-extra-keys/@settings-name-experimentalKeys": "Experimentelle Tasten aktivieren", - "editor-extra-keys/@settings-name-shiftKeys": "Umschalttasten aktivieren", - "hide-delete-button/@description": "Versteckt den Löschen-Knopf (das Mülleimer-Icon) von FIguren, Kostümen und Klängen. Sie können weiterhin mit dem Rechtsklick-Kontextmenü glöscht werden.", - "hide-delete-button/@name": "Löschen-Knopf verstecken", + "editor-extra-keys/@name": "Zusätzliche Tastenoptionen", + "editor-extra-keys/@settings-name-experimentalKeys": "Experimentelle Tasten anzeigen", + "editor-extra-keys/@settings-name-shiftKeys": "Umschalttasten anzeigen", + "hide-delete-button/@description": "Versteckt die Löschen-Schaltfläche (das Mülleimer-Icon) von FIguren, Kostümen und Klängen. Sie können weiterhin mit dem Rechtsklick-Kontextmenü gelöscht werden.", + "hide-delete-button/@info-restoretip": "Tipp: Wenn du aus Versehen eine Figur, eine Kostüm oder einen Klang löschst, kannst du das Löschen rückgängig machen, indem du in der Menüleiste auf \"Bearbeiten\" klickst und anschließend den Menüpunkt \"Wiederherstellen\" auswählst.", + "hide-delete-button/@name": "Löschen-Schaltfläche verstecken", "hide-delete-button/@settings-name-costumes": "Kostüme und Hintergründe", "hide-delete-button/@settings-name-sounds": "Klänge", "hide-delete-button/@settings-name-sprites": "Figuren", @@ -251,41 +333,70 @@ "no-script-bumping/@name": "Überlappende Skripte nicht automatisch verschieben", "disable-stage-drag-select/@description": "Entfernt die Möglichkeit, Figuren auf der Bühne herumzuziehen, explizit ziehbare Figuren ausgenommen. Halte Shift gedrückt, um Figuren normal zu verschieben.", "disable-stage-drag-select/@name": "Nicht ziehbare Figuren im Editor", - "move-to-top-bottom/@description": "Fügt ein Kontextmenüelement zum Verschieben von Kostümen und Klängen an erste oder letzte Stelle der Liste. Früher Teil der Entwicklertools.", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "Ziehen ermöglichen, während das Projekt angehalten ist", + "move-to-top-bottom/@description": "Fügt Optionen zum Verschieben von Kostümen und Klängen an erste oder letzte Stelle der Liste zum Rechtsklick-Kontextmenü hinzu.", + "move-to-top-bottom/@info-developer-tools": "Dieses Addon gehörte früher zum \"Entwicklertools\"-Addon, aber es wurde hierher verschoben.", "move-to-top-bottom/@name": "Element an erste/letzte Stelle verschieben", + "move-to-top-layer/@description": "Klicke mit gedrückter Umschalt-Taste auf eine Figur in der Figurenliste, um sie an die vorderste (oberste) Ebene der Bühne zu bewegen.", + "move-to-top-layer/@name": "Figur an vorderste Ebene bewegen", "disable-paste-offset/@description": "Fügt kopierte Elemente an ihrer ursprünglichen Position im Kostümeditor ein, antstatt die leicht zu verschieben.", + "disable-paste-offset/@info-vanilla": "Dieses Verhalten kann auch ohne das Addon durch Alt+Klick auf das Objekt erhalten werden.", "disable-paste-offset/@name": "Eingefügte Elemente nicht verschieben", "block-duplicate/@description": "Dupliziere schnell ein SKript, indem du es mit gedrückter Alt-Taste ziehst. Halte gleichzeitig auch Strg gedrückt, um nur den einzelnen Block zu duplizieren.", "block-duplicate/@info-mac": "Verwende auf macOS die Option-Taste statt der Alt-Taste und die Command-Taste statt der Strg-Taste.", "block-duplicate/@name": "Skripte mit Alt-Taste duplizieren", + "rename-broadcasts/@description": "Fügt eine Option im Dropdownmenü von Nachrichtenblöcken hinzu, mit der du Nachrichten umbenennen kannst.", + "rename-broadcasts/@name": "Nachrichten umbenennen", "swap-local-global/@description": "Fügt weitere Optionen beim Umbenennen einer vorhandenen Variablen oder Liste hinzu: ermöglicht das Wechseln zwischen \"Für alle Figuren\" und \"Nur für diese Figur\" und ob Variablen in der Cloud gespeichert werden. Fügt auch eine neue Option beim Rechtsklicken auf eine Variable/Liste hinzu, um deren Typ schnell zu ändern.", "swap-local-global/@name": "Variablentyp ändern", "editor-comment-previews/@description": "Ermöglicht das Anzeigen einer Vorschau, wenn die Maus über reduzierten Kommentaren und Blöcken. Du kannst dies verwenden, um Kommentare außerhalb des Bildschirms anzuzeigen, einen Schleifenblock von seiner Unterseite anhand der Vorschau zu identifizieren, mehrere lange Kommentare in einen kleinen Bereich anzupassen und mehr.", "editor-comment-previews/@name": "Vorschau für Editorkommentare", - "editor-comment-previews/@settings-name-delay": "Verzögerungsdauer", + "editor-comment-previews/@settings-name-delay": "Verzögerung", "editor-comment-previews/@settings-name-follow-mouse": "Maus folgen", "editor-comment-previews/@settings-name-hover-view": "Zum Vorschauen mit der Maus über reduzierten Kommentaren schweben", "editor-comment-previews/@settings-name-hover-view-block": "Zum Vorschauen von angehängten Kommentaren mit der Maus über Blöcken schweben", "editor-comment-previews/@settings-name-hover-view-procedure": "Zum Vorschauen von Definitionskommentaren mit der Maus über benutzerdefinierten Blöcken schweben", "editor-comment-previews/@settings-name-reduce-animation": "Animation reduzieren", - "editor-comment-previews/@settings-name-reduce-transparency": "Durchsichtigkeit vermindern", + "editor-comment-previews/@settings-name-reduce-transparency": "Durchsichtigkeit reduzieren", "editor-comment-previews/@settings-select-delay-long": "Lang", "editor-comment-previews/@settings-select-delay-none": "Keine", "editor-comment-previews/@settings-select-delay-short": "Kurz", "columns/@description": "Trennt das Blockkategorienmenü in zwei Spalten und verschiebt es über die Blockpalette, wie in Scratch 2.0.", "columns/@name": "Zweispaltiges Kategorienmenü", + "number-pad/@description": "Zeigt Scratchs virtuelles Zahlenpad, das bei der Eingabe in Zahlenfeldern auf Touchscreen-Geräten geöffnet wird, auf allen Geräten an.", + "number-pad/@info-explanation": "Die Zifferntastatur wird beim Bearbeiten von Zahlenfeldern auf bestimmten Blöcken wie \"gehe ()er Schritt\" angezeigt.", + "number-pad/@name": "Zifferntastatur immer anzeigen", + "editor-number-arrow-keys/@description": "Nutze die Pfeiltasten nach oben und nach unten, um Werte in Zahleneingabefeldern zu ändern, zum Beispiel in Blöcken oder in den Figureneigenshaften.", + "editor-number-arrow-keys/@name": "Erhöhung von Zahlen durch Pfeiltasten im Editor", + "editor-number-arrow-keys/@settings-name-alt": "Änderung bei Alt+Taste", + "editor-number-arrow-keys/@settings-name-altCustom": "Bei Alt+Taste ändern", + "editor-number-arrow-keys/@settings-name-regular": "Änderung bei normalem Tastendruck", + "editor-number-arrow-keys/@settings-name-regularCustom": "Bei normalem Tastendruck ändern", + "editor-number-arrow-keys/@settings-name-shift": "Änderung bei Umschalt+Taste", + "editor-number-arrow-keys/@settings-name-shiftCustom": "Bei Shift+Taste ändern", + "editor-number-arrow-keys/@settings-name-useCustom": "Benutzerdefinierte Werte verwenden", + "editor-number-arrow-keys/@settings-select-alt-none": "Keine", + "editor-number-arrow-keys/@settings-select-regular-none": "Keine", + "editor-number-arrow-keys/@settings-select-shift-none": "Keine", + "expanded-backpack/@description": "Ordnet den Inhalt des Lagers im Editor in ein erweiterbares mehrzeiliges Raster, ähnlich wie die Figurenbbliothek. Es vergrößert außerdem manche Symbole.", + "expanded-backpack/@name": "Mehrzeiliges Lager", + "expanded-backpack/@settings-name-rows": "Anzahl der angezeigten Spalten", + "expanded-backpack/@settings-name-upscale": "Größere Kostüm- und Skriptsymbole verwenden", "script-snap/@description": "Richtet Skripte nach dem Ziehen automatisch an den Punkten des Codebereichs aus.", "script-snap/@name": "Skripte am Raster ausrichten", "script-snap/@preset-name-default": "Standard", "script-snap/@preset-name-half-block": "Halbblöckig", "script-snap/@preset-name-whole-block": "Ganzblöckig", "script-snap/@settings-name-grid": "Rastergröße (px)", - "fullscreen/@description": "Behebt einige unerwünschte Effekte im Vollbildmodus des Projektplayers, öffnet ihn im Vollbildmodus deines Browsers und blendet die Symbolleiste mit der grünen Flagge aus.", - "fullscreen/@info-hideToolbarNotice": "Wenn du die Symbolleiste ausblendest, denke daran, dass du mit der Esc-Taste den Vollbildmodus des Projektplayers verlassen kannst.", + "fullscreen/@description": "Behebt einige unerwünschte Effekte im Vollbildmodus des Projekt-Players, öffnet ihn im Vollbildmodus deines Browsers und blendet die Symbolleiste mit der grünen Flagge aus.", + "fullscreen/@info-hideToolbarNotice": "Wenn du die Symbolleiste nie anzeigst, denke daran, dass du mit der Esc-Taste den Vollbildmodus des Projekt-Players weiterhin verlassen kannst.", "fullscreen/@name": "Verbesserter Vollbildmodus", - "fullscreen/@settings-name-browserFullscreen": "Öffnet den Projektplayer im Volbbildmodus des Browsers.", - "fullscreen/@settings-name-hideToolbar": "Titelleiste im Vollbild ausblenden", - "hide-stage/@description": "Fügt einen Knopf neben dem \"Kleine Bühne\"-Knopf hinzu, mit dem du die Bühne und die Figurenleiste vollständig ausblenden und damit den Codebereich viel größer machen kannst.", + "fullscreen/@settings-name-browserFullscreen": "Projekt-Player im Vollbildmodus des Browsers öffnen", + "fullscreen/@settings-name-toolbar": "Sichtbarkeit der Symbolleiste", + "fullscreen/@settings-select-toolbar-hide": "Nie", + "fullscreen/@settings-select-toolbar-hover": "Wenn sich der Mauszeiger oben befindet", + "fullscreen/@settings-select-toolbar-show": "Immer", + "hide-stage/@description": "Fügt eine Schaltfläche neben \"Kleine Bühne\" hinzu, die die Bühne und die Figurenleiste vollständig ausblendet und damit den Codebereich viel größer macht.", "hide-stage/@name": "Bühne und Figurenleiste ausblenden", "editor-stepping/@description": "Fügt eine farbige Markierung zu den Blöcken, die gerade in einem Projekt ausgeführt werden, hinzu.", "editor-stepping/@name": "Markierung für ausgeführte Blöcke", diff --git a/src/addons/addons-l10n-settings/es.json b/src/addons/addons-l10n-settings/es.json index aab7afb95bc..c4293acc154 100644 --- a/src/addons/addons-l10n-settings/es.json +++ b/src/addons/addons-l10n-settings/es.json @@ -1,14 +1,27 @@ { - "cat-blocks/@description": "Regresa los cat blocks de April Fools 2020.", + "cat-blocks/@description": "Regresa los cat blocks del editor, lanzados inicialmente en April Fools 2020.", "cat-blocks/@info-watch": "La opción \"mirar cursor\" puede afectar el rendimiento cuando está abierto el editor.", "cat-blocks/@settings-name-watch": "Mirar cursor", - "editor-devtools/@description": "Agrega una barra de búsqueda y nuevas opciones de menú para el editor: copie y pegue bloques, ordene de mejor manera, vaya directamente a la definición de un bloque personalizado y más Presione Ctrl+F para enfocar la barra de búsqueda, Ctrl+Espacio para abrir la ventana flotante de \"encontrar bloque por nombre\", Ctrl+Izquierda/Derecha para navegar el historial de búsqueda.", + "editor-devtools/@description": "Añade nuevas opciones de menú al editor: copiar/pegar bloques, mejor ordenado de bloques, ¡y más!", "editor-devtools/@name": "Herramientas de desarrollador", "editor-devtools/@settings-name-enableCleanUpPlus": "Mejorar \"Ordenar Bloques\"", - "editor-devtools/@settings-name-enableMiddleClickFinder": "Click medio del mouse en variables, bloques personalizados o eventos para navegar", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Pegar bloques en la posición del cursor", - "editor-searchable-dropdowns/@description": "Le permite buscar en bloques que tienen menús.", - "editor-searchable-dropdowns/@name": "Búsqueda en menús ", + "find-bar/@description": "Agrega una barra de búsqueda al lado de la pestaña de sonidos para encontrar y saltar a scripts, disfraces y sonidos. Use Ctrl+Izquierda y Ctrl+Derecha en el área de código para navegar a la posición visitada anterior o siguiente luego de usar la barra de búsqueda.", + "find-bar/@info-developer-tools": "Este addon era parte de \"herramientas de desarrollador\", pero se ha mudado aquí.", + "find-bar/@name": "Barra de búsqueda en editor", + "middle-click-popup/@description": "Click medio o Shift+click (Mayús.+click) en el área de código o presione Ctrl+Espacio para hacer aparecer una ventana de búsqueda. Escriba nombres de bloques (o partes de ellos) y arrástrelos al área de código para añadirlos a su proyecto. Para prevenir que se cierre este menú, mantenga Shift (Mayús.) mientras arrastre los bloques fuera de él.", + "middle-click-popup/@info-developer-tools": "Este addon era parte de \"herramientas de desarrollador\", pero se ha mudado aquí.", + "middle-click-popup/@name": "Insertar bloques por nombre", + "middle-click-popup/@settings-name-popup_max_height": "Altura Máxima del Popup", + "middle-click-popup/@settings-name-popup_scale": "Tamaño de los Bloques del Popup", + "middle-click-popup/@settings-name-popup_width": "Ancho del Popup", + "jump-to-def/@description": "Le permite saltar a la definición de un bloque personalizado usando el botón del medio del ratón o presionando Shift+Click en el bloque.", + "jump-to-def/@info-developer-tools": "Este addon era parte de \"herramientas de desarrollador\", pero se ha mudado aquí.", + "jump-to-def/@name": "Saltar a definición de bloque personalizado", + "reorder-custom-inputs/@description": "Permite reordenar los parámetros de bloques personalizados en la pantalla \"Crear un bloque\".", + "reorder-custom-inputs/@name": "Entradas de bloques personalizados reorganizables", + "editor-searchable-dropdowns/@description": "Le permite buscar entre las opciones en menús desplegables de bloques.", + "editor-searchable-dropdowns/@name": "Búsqueda de menú desplegable", "data-category-tweaks-v2/@description": "Proporciona retoques para la categoría de bloques \"datos\" (variables).", "data-category-tweaks-v2/@name": "Retoques en categoría \"datos\"", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Mover bloques de datos arriba de la lista de variables", @@ -16,43 +29,52 @@ "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Separar Variables Locales", "block-palette-icons/@description": "Agrega íconos dentro de los círculos de colores que identifican las categorías de bloques.", "block-palette-icons/@name": "Íconos de categoría en paleta de bloques", - "hide-flyout/@description": "Oculta la paleta de bloques si el cursor no esta arriba de ella. Haga click en el icono de candado para mantenerlo en el lugar temporalmente. Alternativamente, use el modo \"click en categoría\".", + "hide-flyout/@description": "Oculta la paleta de bloques a menos que no esté poniendo el cursor obre ella. Haga click en el ícono de bloqueo para mantenerlo en el lugar temporalmente. O use \"click de categoría\" para mostrarlo/ocultarlo cuando haga click en una categoría de bloques.", "hide-flyout/@info-hoverExplanation": "El modo \"cursor sobre área de paleta\" solo extiende el área de visión. Si quiere poder arrastrar bloques a este área sin que se tiren a la basura, use alguno de los otros modos.", "hide-flyout/@name": "Ocultar paleta de bloques automáticamente", - "hide-flyout/@settings-name-speed": "Duración de animación", + "hide-flyout/@settings-name-lockLoad": "Abierto por defecto", + "hide-flyout/@settings-name-speed": "Velocidad de animación", "hide-flyout/@settings-name-toggle": "Activar/desactivar en...", "hide-flyout/@settings-select-speed-default": "Por defecto", - "hide-flyout/@settings-select-speed-long": "Larga", - "hide-flyout/@settings-select-speed-none": "Ninguna", - "hide-flyout/@settings-select-speed-short": "Corta", + "hide-flyout/@settings-select-speed-long": "Lenta", + "hide-flyout/@settings-select-speed-none": "Instantánea", + "hide-flyout/@settings-select-speed-short": "Rápida", "hide-flyout/@settings-select-toggle-category": "Click en categoría", "hide-flyout/@settings-select-toggle-cathover": "Cursor sobre categoría", "hide-flyout/@settings-select-toggle-hover": "Cursor sobre área de paleta", - "hide-flyout/@update": "Este addon fue revisado y se arreglaron muchos errores.", "mediarecorder/@description": "Agrega un botón \"empezar grabación\" al menú del editor que le permite grabar el escenario del proyecto.", "mediarecorder/@name": "Grabador de video de proyectos", "drag-drop/@description": "Le permite arrastrar imágenes y sonidos de su administrador de archivos y soltarlos en el panel de objetos o la lista de disfraces/sonidos. También puede arrastrar archivos de texto a listas y cajas de respuesta.", "drag-drop/@name": "Arrastrar y soltar archivos", "drag-drop/@settings-name-use-hd-upload": "Usar subidas HD", + "debugger/@description": "Agrega una ventana nueva \"depurador\" al editor. Le permite loguear mensajes a la pestaña \"Logs\" de la ventana del depurador usando los bloques \"loguear\", \"advertir\" y \"error\". El bloque \"breakpoint\" pausará el proyecto cuando se ejecute. Todos las pilas de bloques en ejecución pueden ser vistos en la pestaña \"Hilos\" de la ventana del depurador y al pausarse el botón \"Paso\" puede ser usado para ejecutar el siguiente bloque. Un gráfico de fotogramas por segundo y número de clones puede ser visto en la pestaña \"Rendimiento\".", "debugger/@name": "Depurador", + "debugger/@settings-name-fancy_graphs": "Gráficos animados (puede afectar rendimiento)", "debugger/@settings-name-log_broadcasts": "Loguear mensajes enviados", "debugger/@settings-name-log_clear_greenflag": "Borrar logs al tocar bandera verde", "debugger/@settings-name-log_clone_create": "Loguear creación de clones", - "debugger/@settings-name-log_failed_clone_creation": "Loguear máximo de clones excedido", + "debugger/@settings-name-log_failed_clone_creation": "Loguear al exceder límite de clones", "debugger/@settings-name-log_greenflag": "Loguear clicks a bandera verde", - "debugger/@update": "Nuevas pestañas \"Hilos\" y \"Rendimiento\" en la ventana del depurador.", - "pause/@description": "Agrega un botón de pausa al lado de la bandera verde.", + "pause/@description": "Añade un botón al lado de la bandera verde para pausar el proyecto.", + "pause/@info-keybind": "El proyecto también puede ser pausado con Alt+X (Option+X en macOS).", "pause/@name": "Botón de pausa", "mute-project/@description": "Presione Ctrl+Click sobre la bandera verde para silenciar o desilenciar el proyecto.", "mute-project/@info-macOS": "En macOS, use la tecla Cmd en vez de Ctrl.", "mute-project/@name": "Modo silenciado de reproductor de proyectos", + "vol-slider/@description": "Agrega un control deslizante de volumen al lado de los controles de la bandera verde.", + "vol-slider/@name": "Deslizador de volumen del proyecto", + "vol-slider/@settings-name-always": "Siempre mostrar deslizador", + "vol-slider/@settings-name-defVol": "Volumen por defecto", "clones/@description": "Agrega un contador de clones arriba del escenario en el editor que muestra la cantidad total de clones del proyecto.", "clones/@name": "Contador de clones", + "clones/@settings-name-projectpage": "Mostrar en página de proyecto", + "clones/@settings-name-showicononly": "Mostrar ícono solamente", "mouse-pos/@description": "Muestra la posición x/y del ratón arriba del escenario en el editor.", - "mouse-pos/@name": "Posición del ratón", + "mouse-pos/@name": "Mostrar posición del ratón", "color-picker/@description": "Agrega una entrada de colores hex a los selectores de color.", "color-picker/@name": "Selector de color hex", "remove-sprite-confirm/@description": "Le pregunta si está seguro cuando borre un objecto en un proyecto", + "remove-sprite-confirm/@info-restoretip": "Consejo: si elimina accidentalmente un objeto, disfraz o sonido, puede deshacerhaciendo click en Editar en la barra de menú y luego en Restaurar.", "remove-sprite-confirm/@name": "Confirmación de eliminación de objeto", "block-count/@description": "Muestra el número total de bloques de un proyecto en la barra de menú del editor. Previamente parte de \"contador de objetos y scripts\".", "block-count/@name": "Contador de bloques", @@ -71,10 +93,26 @@ "onion-skinning/@settings-select-layering-front": "Frente", "onion-skinning/@settings-select-mode-merge": "Combinar imagenes", "onion-skinning/@settings-select-mode-tint": "Teñir color", + "paint-snap/@description": "Ajusta objetos en el editor de disfraces a cuadros de delimitación y nodos de vectores.", + "paint-snap/@name": "Ajustar posición del editor de disfraces ", + "paint-snap/@settings-name-boxCenter": "Ajustar desde centro de caja de selección", + "paint-snap/@settings-name-boxCorners": "Ajustar desde esquinas de caja de selección", + "paint-snap/@settings-name-boxEdgeMids": "Ajustar desde puntos medios de lados de caja de selección", + "paint-snap/@settings-name-enable-default": "Habilitar por defecto", + "paint-snap/@settings-name-guide-color": "Color de la guía del ajuste", + "paint-snap/@settings-name-objectCenters": "Ajustar a centros de objetos", + "paint-snap/@settings-name-objectCorners": "Ajustar a esquinas de objetos", + "paint-snap/@settings-name-objectEdges": "Ajustar a lados de objetos", + "paint-snap/@settings-name-objectMidlines": "Ajustar a líneas centrales de objetos", + "paint-snap/@settings-name-pageAxes": "Ajustar a ejes x e y de la página", + "paint-snap/@settings-name-pageCenter": "Ajustar a centro de página", + "paint-snap/@settings-name-pageCorners": "Ajustar a esquinas de la página", + "paint-snap/@settings-name-pageEdges": "Ajustar a lados de la página", + "paint-snap/@settings-name-threshold": "Distancia de ajuste", "default-costume-editor-color/@description": "Cambia los colores predeterminados y el tamaño del borde utilizados por el editor de disfraces.", "default-costume-editor-color/@name": "Color predeterminado personalizable en el editor de disfraces", "default-costume-editor-color/@settings-name-fill": "Color de relleno predeterminado", - "default-costume-editor-color/@settings-name-persistence": "Usar color anterior en vez del predeterminado al cambiar de herramienta", + "default-costume-editor-color/@settings-name-persistence": "Usar color anterior en vez de reiniciar al cambiar de herramienta", "default-costume-editor-color/@settings-name-stroke": "Color de borde predeterminado", "default-costume-editor-color/@settings-name-strokeSize": "Tamaño de borde predeterminado", "bitmap-copy/@description": "Le permite copiar una imagen bitmap en el editor de disfraces al portapapeles de su sistema, para que la puedas pegar en otros sitios web o programas.", @@ -82,13 +120,18 @@ "bitmap-copy/@name": "Copiar imágenes bitmap", "2d-color-picker/@description": "Remplaza los deslizadores de saturación y brillo con un selector de color 2D. Presione Shift mientras arrastra el cursor para cambiar los valores en un solo eje.", "2d-color-picker/@name": "Selector de color 2D", + "paint-skew/@description": "Para doblar un objeto, mantenga presionado Ctrl mientras lo escala desde uno de sus lados. Mantenga Alt mientras dobla un objeto para doblarlo desde su centro.", + "paint-skew/@info-useCmdOnMac": "En macOS, use la tecla Command en vez de la tecla Ctrl y la tecla Option en vez de la tecla Alt.", + "paint-skew/@name": "Doblar en editor de disfraces", "better-img-uploads/@description": "Agrega un nuevo botón arriba del botón \"subir disfraz\" que automáticamente convierte imágenes bitmap subidas a imágenes SVG (vector) para evitar perder calidad.", "better-img-uploads/@info-notSuitableEdit": "Evite usar el botón de subida HD si tiene planeado editar la imagen luego de subirla.", "better-img-uploads/@name": "Subida de imágenes HD", "better-img-uploads/@settings-name-fitting": "Tamaño de imagen", - "better-img-uploads/@settings-select-fitting-fill": "Estirar para llenar escenario", - "better-img-uploads/@settings-select-fitting-fit": "Achicar para encajar en escenario", + "better-img-uploads/@settings-select-fitting-fill": "Estirar para llenar lienzo", + "better-img-uploads/@settings-select-fitting-fit": "Achicar para encajar en lienzo", "better-img-uploads/@settings-select-fitting-full": "Tamaño original", + "pick-colors-from-stage/@description": "Permite que el cuentagotas también pueda elegir colores del escenario.", + "pick-colors-from-stage/@name": "Seleccionar colores del escenario con cuentagotas", "custom-block-shape/@description": "Ajuste el relleno, radio de esquinas y altura de la muesca de los bloques.", "custom-block-shape/@info-paddingWarning": "Si baja el valor de tamaño del relleno, cuando otros usuarios vean su proyecto, podría parecer que sus scripts se superponen.", "custom-block-shape/@name": "Forma de bloque personalizada", @@ -103,17 +146,41 @@ "custom-block-shape/@settings-name-cornerSize": "Tamaño de esquinas (0-300%)", "custom-block-shape/@settings-name-notchSize": "Altura de muesca (0-150%)", "custom-block-shape/@settings-name-paddingSize": "Tamaño de relleno/padding (50-200%)", + "editor-square-inputs/@settings-name-color": "Entradas de color", + "editor-square-inputs/@settings-name-number": "Entradas numéricas", + "editor-square-inputs/@settings-name-text": "Entradas de texto", + "zebra-striping/@description": "Alterna entre tonos más claros y más oscuros a los bloques de la misma categoría anidados entre sí. Esto también es conocido como \"zebra striping\".", + "zebra-striping/@name": "Alternar colores de bloques anidados", + "zebra-striping/@settings-name-intensity": "Intensidad (0-100%)", + "zebra-striping/@settings-name-shade": "Tonalidad", + "zebra-striping/@settings-select-shade-darker": "Oscura", + "zebra-striping/@settings-select-shade-lighter": "Clara", + "editor-compact/@description": "Disminuye el tamaño de los botones, campos de entrada, la barra de menú y otros elementos del editor, dejando más espacio para componentes como el área de código, el editor de disfraces y las vistas previas de disfraces, como ocurría en Scratch 2.0.", + "editor-compact/@info-hide-icons-update": "Para esconder los íconos del menú, use la función \"Barra de menú personalizable\".", + "editor-compact/@name": "Editor compacto", + "editor-compact/@settings-name-hideLabels": "Esconder etiquetas de botones en editores de disfraces y sonidos", + "custom-menu-bar/@description": "Permite esconder ciertos elementos de la barra de menú del editor, y quitar sus etiquetas o íconos.", + "custom-menu-bar/@info-small-screens": "Las etiquetas de texto pueden ser reemplazadas automáticamente por íconos en ventanas pequeñas.", + "custom-menu-bar/@settings-name-menu-labels": "Mostrar...", + "custom-menu-bar/@settings-select-menu-labels-both": "Íconos y etiquetas", + "custom-menu-bar/@settings-select-menu-labels-icons": "Solo íconos", + "custom-menu-bar/@settings-select-menu-labels-labels": "Solo etiquetas", "editor-theme3/@description": "Edite los colores para cada categoría de bloques del editor.", "editor-theme3/@name": "Colores de bloques personalizables", - "editor-theme3/@preset-description-black": "Hace negros los fondos de los bloques", - "editor-theme3/@preset-description-dark": "Versiones oscuras de colores predeterminados", + "editor-theme3/@preset-description-black": "Hace a los fondos de los bloques negros y a los bordes/textos de colores", + "editor-theme3/@preset-description-contrast": "Paleta de colores de bloques de alto contraste de Scratch 3.0", + "editor-theme3/@preset-description-dark": "Versiones aún más oscuras de los colores predeterminados", + "editor-theme3/@preset-description-new-dark": "Versiones oscuras de los colores predeterminados que se ven bien en temas oscuros", "editor-theme3/@preset-description-original": "Los colores originales de Scratch 2.0", - "editor-theme3/@preset-description-tweaks": "Usa colores inspirados en 2.0 en las categorías Eventos, Control y Mis bloques. ", + "editor-theme3/@preset-description-tweaks": "Los colores de Scratch 3.0 con Eventos, Control y Bloques personalizados similares a los colores de Scratch 2.0", "editor-theme3/@preset-name-black": "Negro", - "editor-theme3/@preset-name-dark": "Oscuro", - "editor-theme3/@preset-name-original": "Colores de 2.0", - "editor-theme3/@preset-name-tweaks": "3.0 Mejorado", + "editor-theme3/@preset-name-contrast": "Alto contraste", + "editor-theme3/@preset-name-dark": "Más oscuro", + "editor-theme3/@preset-name-new-dark": "Oscuro", + "editor-theme3/@preset-name-original": "Colores de Scratch 2.0", + "editor-theme3/@preset-name-tweaks": "Scratch 3.0 retocado", "editor-theme3/@settings-name-Pen-color": "extensiones", + "editor-theme3/@settings-name-comment-color": "Comentarios", "editor-theme3/@settings-name-custom-color": "personalizado", "editor-theme3/@settings-name-data-lists-color": "listas", "editor-theme3/@settings-name-events-color": "eventos", @@ -128,20 +195,31 @@ "editor-theme3/@settings-select-text-colorOnBlack": "Con color en fondo negro", "editor-theme3/@settings-select-text-colorOnWhite": "Con color en fondo blanco", "editor-theme3/@settings-select-text-white": "Blanco", - "editor-theme3/@update": "Nuevo ajuste para activar el cambio de color de los bloques en los foros.", - "custom-block-text/@description": "Cambia el grosor del texto en bloques y opcionalmente agrega una sombra al texto.", + "custom-block-text/@description": "Le permite personalizar el estilo del texto en los bloques, como ajustar el tamaño, usar texto en negrita o agregar una sombra.", "custom-block-text/@name": "Estilo de texto de bloques personalizado", "custom-block-text/@settings-name-bold": "Texto en negrita", "custom-block-text/@settings-name-shadow": "Sombra bajo texto", + "custom-block-text/@settings-name-size": "Tamaño del texto (%)", "editor-colored-context-menus/@description": "Hace que los menús al dar click derecho en un bloque sean coloridos.", "editor-colored-context-menus/@name": "Menús coloridos", + "editor-stage-left/@description": "Mueve el escenario al lado izquierdo del editor, como en Scratch 2.0.", + "editor-stage-left/@info-reverseOrder": "Para cambiar la posición de los botones arriba del escenario, use el addon \"invertir orden de los controles del proyecto\".", "editor-stage-left/@name": "Mostrar escenario del lado izquierdo", "editor-buttons-reverse-order/@description": "Mueve la bandera verde y el botón de detener a la derecha, y el botón de pantalla completa a la izquierda, como en Scratch 2.0.", "editor-buttons-reverse-order/@name": "Invertir orden de los controles del proyecto", "variable-manager/@description": "Agrega una pestaña al lado de \"sonidos\" en el editor para que pueda fácilmente editar variables y listas.", "variable-manager/@name": "Gestor de variables", "search-sprites/@description": "Agrega una barra de búsqueda al panel de objetos para buscar objetos por nombre.", - "search-sprites/@name": "Buscar objetos por nombre", + "search-sprites/@name": "Barra de búsqueda en panel de objetos", + "sprite-properties/@description": "Esconde en panel de propiedades de sprite por defecto, como en Scratch 2.0. Use el botón de información en el sprite actualmente seleccionado o haga doble click en un sprite para mostrar el panel de propiedades otra vez. Para volver a esconderlo, use el botón de colapsar en el panel de propiedades o haga doble click en un sprite.", + "sprite-properties/@name": "Colapsar propiedades de sprites", + "sprite-properties/@settings-name-autoCollapse": "Colapsar automáticamente cuando el cursor se aleja del panel de sprites", + "sprite-properties/@settings-name-hideByDefault": "Colapsar panel por defecto", + "sprite-properties/@settings-name-transitionDuration": "Velocidad de animación", + "sprite-properties/@settings-select-transitionDuration-default": "Predeterminada", + "sprite-properties/@settings-select-transitionDuration-long": "Lenta", + "sprite-properties/@settings-select-transitionDuration-none": "Instantánea", + "sprite-properties/@settings-select-transitionDuration-short": "Rápida", "gamepad/@description": "Interactúe con proyectos usando un control/mando de videojuegos mediante USB o Bluetooth.", "gamepad/@name": "Soporte de mando de videojuegos", "gamepad/@settings-name-hide": "Esconder botón de ajustes cuando no hay mandos conectados", @@ -152,10 +230,9 @@ "folders/@name": "Carpetas de objetos", "block-switching/@description": "Haga click derecho en un bloque para cambiarlo por otro bloque relacionado.", "block-switching/@name": "Cambio entre bloques", - "block-switching/@settings-name-border": "Agregar borde", "block-switching/@settings-name-control": "Bloques de control", - "block-switching/@settings-name-customargs": "Argumentos de bloques personalizados", - "block-switching/@settings-name-customargsmode": "Opciones mostradas de argumentos de bloques personalizados", + "block-switching/@settings-name-customargs": "Parámetros de bloques personalizados", + "block-switching/@settings-name-customargsmode": "Opciones mostradas de parámetros de bloques personalizados", "block-switching/@settings-name-data": "Bloques de variables", "block-switching/@settings-name-event": "Bloques de eventos", "block-switching/@settings-name-extension": "Bloques de extensiones", @@ -165,8 +242,8 @@ "block-switching/@settings-name-operator": "Bloques de operadores", "block-switching/@settings-name-sensing": "Bloques de sensores", "block-switching/@settings-name-sound": "Bloques de sonido", - "block-switching/@settings-select-customargsmode-all": "Argumentos en todos los bloques personalizados del objeto", - "block-switching/@settings-select-customargsmode-defOnly": "Argumentos en bloque personalizado propio", + "block-switching/@settings-select-customargsmode-all": "Parámetros en todos los bloques personalizados del objeto", + "block-switching/@settings-select-customargsmode-defOnly": "Parámetros en bloque personalizado propio", "load-extensions/@description": "Muestra automáticamente música, lápiz y otras extensiones del editor en el menú de categorías del editor.", "load-extensions/@name": "Agregar extensiones automáticamente", "load-extensions/@settings-name-music": "Música", @@ -178,18 +255,24 @@ "custom-zoom/@settings-name-autohide": "Esconder controles cuando el cursor no está sobre ellos", "custom-zoom/@settings-name-maxZoom": "Zoom Máximo (100-500%)", "custom-zoom/@settings-name-minZoom": "Zoom mínimo (1-100%)", - "custom-zoom/@settings-name-speed": "Animación al esconder controles", + "custom-zoom/@settings-name-speed": "Velocidad de animación al esconder controles", "custom-zoom/@settings-name-startZoom": "Zoom inicial (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "Velocidad de zoom (50-200%)", "custom-zoom/@settings-select-speed-default": "Predeterminada", - "custom-zoom/@settings-select-speed-long": "Larga", - "custom-zoom/@settings-select-speed-none": "Ninguna", - "custom-zoom/@settings-select-speed-short": "Corta", - "initialise-sprite-position/@description": "Cambia la posición x/y predeterminada de nuevos objetos.", + "custom-zoom/@settings-select-speed-long": "Lenta", + "custom-zoom/@settings-select-speed-none": "Instantánea", + "custom-zoom/@settings-select-speed-short": "Rápida", + "copy-reporter/@description": "Agrega la opción de copiar los valores mostrados por monitores de variables (desde el menú de click derecho) y globos de reporte de bloques.", + "copy-reporter/@name": "Copiar valores del monitor", + "initialise-sprite-position/@description": "Cambia el lugar donde los objetos recien creados son posicionados en el escenario.", "initialise-sprite-position/@name": "Posición predeterminada de nuevos objetos personalizable", - "initialise-sprite-position/@settings-name-library": "Posiciones aleatorias al agregar objetos de la librería", + "initialise-sprite-position/@settings-name-duplicate": "Posición de objetos duplicados", + "initialise-sprite-position/@settings-name-library": "Posicionar objetos de la biblioteca en posición aleatoria", "initialise-sprite-position/@settings-name-x": "Posición X", "initialise-sprite-position/@settings-name-y": "Posición Y", + "initialise-sprite-position/@settings-select-duplicate-custom": "Posición x/y específica", + "initialise-sprite-position/@settings-select-duplicate-keep": "Igual al objeto original", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Aleatoria", "blocks2image/@description": "Haga click derecho en el área de código para exportar bloques como imágenes SVG/PNG.", "blocks2image/@name": "Guardar bloques como imagen", "remove-curved-stage-border/@description": "Quita los bordes curvos alrededor del escenario, permitiéndole ver las esquinas.", @@ -226,15 +309,16 @@ "block-cherry-picking/@info-macContextDisabled": "En macOS, use la tecla Cmd en vez de Ctrl.", "block-cherry-picking/@name": "Agarrar un único bloque con tecla Ctrl", "block-cherry-picking/@settings-name-invertDrag": "Revertir controles", - "hide-new-variables/@description": "No crear automáticamente monitores para variables y listas nuevas.", + "hide-new-variables/@description": "No mostrar monitores automáticamente para las nuevas variables o listas.", "hide-new-variables/@name": "Esconder variables nuevas", - "editor-extra-keys/@description": "Agrega más teclas al menú de los bloques \"¿tecla () presionada?\" y \"al presionar tecla ()\", como enter, punto, coma y más.", + "editor-extra-keys/@description": "Añade más teclas a los menús desplegables de los bloques \"¿tecla () presionada?\" y \"al presionar tecla ()\", como enter, coma, y más. Estas teclas incluso funcionarán para usuarios que no tengan este addon.", "editor-extra-keys/@info-experimentalKeysWarn": "Las \"teclas experimentales\" incluyen signo igual, barra, punto y coma y más. Pueden no funcionar en todos los sistemas operativos o diseños de teclado.", "editor-extra-keys/@info-shiftKeysWarn": "Las \"teclas Shift\" incluyen teclas que típicamente requieren la tecla Shift y una tecla de número, como hashtag, símbolo de exclamación y más. Estas teclas solo funcionan con el bloque \"al presionar tecla ()\" y no funcionan en todos los sistemas operativos o diseños de teclado.", - "editor-extra-keys/@name": "Soporte de teclas extras", - "editor-extra-keys/@settings-name-experimentalKeys": "Activar teclas experimentales", - "editor-extra-keys/@settings-name-shiftKeys": "Activar teclas Shift", + "editor-extra-keys/@name": "Opciones de teclas extra", + "editor-extra-keys/@settings-name-experimentalKeys": "Mostrar teclas experimentales", + "editor-extra-keys/@settings-name-shiftKeys": "Mostrar teclas Shift", "hide-delete-button/@description": "Esconde el botón de eliminar (ícono de bote de basura) de objetos, disfraces y sonidos. Estos pueden seguirse eliminando utilizando el menú contextual al dar click derecho.", + "hide-delete-button/@info-restoretip": "Consejo: si elimina accidentalmente un objeto, disfraz o sonido, puede deshacerhaciendo click en Editar en la barra de menú y luego en Restaurar.", "hide-delete-button/@name": "Esconder botón de eliminar", "hide-delete-button/@settings-name-costumes": "Disfraces y fondos", "hide-delete-button/@settings-name-sounds": "Sonidos", @@ -243,13 +327,20 @@ "no-script-bumping/@name": "No espaciar automáticamente scripts superpuestos", "disable-stage-drag-select/@description": "Elimina la posibilidad de arrastrar objetos en el escenario, exceptuando aquellos fijados explícitamente como arrastrables. Presione Shift mientras arrastra un objeto para moverlo normalmente.", "disable-stage-drag-select/@name": "Objetos no arrastrables en el editor", - "move-to-top-bottom/@description": "Agrega un ítem al menú de click derecho para mover un disfraz o sonido a la posición primera o última de la lista. Previamente parte de las herramientas de desarrollador.", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "Permitir arrastre si el proyecto está detenido", + "move-to-top-bottom/@description": "Agrega opciones al menú de click derecho para mover un disfraz o sonido a la primera o última posición de la lista.", + "move-to-top-bottom/@info-developer-tools": "Este addon era parte de \"herramientas de desarrollador\", pero se ha mudado aquí.", "move-to-top-bottom/@name": "Mover disfraz a la cima o al fondo", + "move-to-top-layer/@description": "Shift+Click a un objeto en el panel de objetos para moverlo al frente (capa delantera) del escenario.", + "move-to-top-layer/@name": "Mover objeto a capa delantera", "disable-paste-offset/@description": "Pega items copiados en su posición original en vez de movidos levemente en el editor de disfraces.", + "disable-paste-offset/@info-vanilla": "Este comportamiento también puede ser logrado sin este addon mediante Alt+Click a un objeto.", "disable-paste-offset/@name": "No mover items pegados", "block-duplicate/@description": "Duplique rápidamente un script arrastrándolo mientras mantiene la tecla Alt. Apriete Ctrl también para solo duplicar un bloque en vez de toda la pila adjunta debajo.", "block-duplicate/@info-mac": "En macOS, use la tecla Option en vez de la tecla Alt y la tecla Command en vez de la tecla Control.", "block-duplicate/@name": "Duplicar script con tecla Alt", + "rename-broadcasts/@description": "Añade una opción para renombrar mensajes en los menús desplegables de los bloques de transmisión de mensajes.", + "rename-broadcasts/@name": "Renombrar mensajes", "swap-local-global/@description": "Agrega más opciones al renombrar una variable o lista existente: permite cambiar entre \"Para todos los objetos\" y \"Solo para este objeto\" y si las variables son almacenadas en la nube. También agrega una nueva opción al hacer click derecho en una variable/lista para cambiar rápidamente su ámbito.", "swap-local-global/@name": "Cambiar variables entre \"Para todos los objetos\" y \"Solo para este objeto\"", "editor-comment-previews/@description": "Le permite previsualizar los contenidos de comentarios al poner el cursor sobre comentarios encogidos y bloques. Puede usar esto para ver comentarios que están fuera de la pantalla, identificar un bloque bucle desde el final por su previsualización, meter muchos comentarios en un lugar pequeño y más.", @@ -266,6 +357,25 @@ "editor-comment-previews/@settings-select-delay-short": "Corto", "columns/@description": "Divide el menú de categorías de bloques en dos columnas y lo mueve a la cima de la paleta de bloques, como en Scratch 2.0.", "columns/@name": "Menú de categorías de dos columnas", + "number-pad/@description": "Muestra el teclado numérico virtual de Scratch cuando se editan entradas de números en bloques en todos los dispositivos y no solo en dispositivos táctiles.", + "number-pad/@info-explanation": "Se mostrará un teclado numérico cuando se editen entradas para bloques como \"mover () pasos\".", + "number-pad/@name": "Siempre mostrar teclado numérico", + "editor-number-arrow-keys/@description": "Use las teclas de arriba y abajo para incrementar o decrementar valores numéricos en campos númericos, como los que tienen los bloques, o los del area de propiedades del objeto.", + "editor-number-arrow-keys/@name": "Incremento con teclas de flecha en editor", + "editor-number-arrow-keys/@settings-name-alt": "Cambio en Alt+Tecla", + "editor-number-arrow-keys/@settings-name-altCustom": "Cambio en Alt+Tecla", + "editor-number-arrow-keys/@settings-name-regular": "Cambio en pulsación de tecla normal", + "editor-number-arrow-keys/@settings-name-regularCustom": "Cambio en pulsación de tecla normal", + "editor-number-arrow-keys/@settings-name-shift": "Cambio en Shift+Tecla", + "editor-number-arrow-keys/@settings-name-shiftCustom": "Cambio en Shift+Tecla", + "editor-number-arrow-keys/@settings-name-useCustom": "Usar valores personalizados", + "editor-number-arrow-keys/@settings-select-alt-none": "Ninguno", + "editor-number-arrow-keys/@settings-select-regular-none": "Ninguno", + "editor-number-arrow-keys/@settings-select-shift-none": "Ninguno", + "expanded-backpack/@description": "Ordena los contenidos de la mochila en una cuadrícula de dos direcciones expandible, similar a la librería de disfraces y aumenta el tamaño de ciertas miniaturas.", + "expanded-backpack/@name": "Múltiples filas en la mochila", + "expanded-backpack/@settings-name-rows": "Número de filas mostradas", + "expanded-backpack/@settings-name-upscale": "Miniaturas de objetos y scripts más grandes", "script-snap/@description": "Arrastre un script para automáticamente ajustar su posición a los puntos del área de código.", "script-snap/@name": "Ajustar scripts a cuadrícula", "script-snap/@preset-name-default": "Predeterminado", @@ -273,10 +383,8 @@ "script-snap/@preset-name-whole-block": "Bloque entero", "script-snap/@settings-name-grid": "Tamaño de la grilla (px)", "fullscreen/@description": "Arregla algunos efectos no deseados del modo de pantalla completa del reproductor de proyectos, abre el reproductor en modo de pantalla completa de su navegador y esconde la barra de herramientas de bandera verde.", - "fullscreen/@info-hideToolbarNotice": "Si elige esconder la barra de herramientas, recuerde que puede usar la tecla Esc para salir del modo de pantalla completa.", "fullscreen/@name": "Pantalla completa mejorada", "fullscreen/@settings-name-browserFullscreen": "Abrir reproductor de proyectos en modo pantalla completa del navegador", - "fullscreen/@settings-name-hideToolbar": "Esconder barra de herramientas en pantalla completa", "hide-stage/@description": "Agrega un botón al lado de los botones de \"escenario pequeño\" y \"escenario grande\" que esconde el escenario y el panel de objetos, haciendo mucho más grande el área de código.", "hide-stage/@name": "Esconder escenario y panel de objetos", "editor-stepping/@description": "Agrega un borde colorido a los bloques que están ejecutándose actualmente en un proyecto.", diff --git a/src/addons/addons-l10n-settings/fi.json b/src/addons/addons-l10n-settings/fi.json new file mode 100644 index 00000000000..27fee2522c3 --- /dev/null +++ b/src/addons/addons-l10n-settings/fi.json @@ -0,0 +1,411 @@ +{ + "cat-blocks/@description": "Palauttaa editorin kissahattulohkot, jotka nähtiin ensimmäisen kerran vuoden 2020 aprillipäivänä.", + "cat-blocks/@info-watch": "\"Seuraa hiiren osoitinta\" -asetus saattaa vaikuttaa suorituskykyyn editorin ollessa auki.", + "cat-blocks/@name": "Kissalohkot", + "cat-blocks/@settings-name-watch": "Seuraa hiiren osoitinta", + "editor-devtools/@description": "Lisää uusia toimintoja editorin pudotusvalikkoon: lohkojen kopioimisen/liittämisen, paremman lohkosiivoustoiminnon ja muuta!", + "editor-devtools/@name": "Kehittäjän työkalut", + "editor-devtools/@settings-name-enableCleanUpPlus": "Paranna \"Siivoa lohkot\" -toimintoa", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Liitä lohkot hiiren kohdistimen kohdalle", + "find-bar/@description": "Lisää äänet-välilehden viereen hakupalkin, jolla voit etsiä skriptejä, asusteita ja ääniä sekä siirtyä niihin. Siirry seuraavaan tai edelliseen löydettyyn kohtaan hakupalkkia käytettyäsi näppäinyhdistelmillä Ctrl+vasen ja Ctrl+oikea.", + "find-bar/@info-developer-tools": "Tämä lisäosa oli aiemmin osa \"kehittäjän työkalut\" -lisäosaa, mutta se siirrettiin tänne.", + "find-bar/@name": "Editorin hakupalkki", + "middle-click-popup/@description": "Avaa lohkojen hakuikkuna painamalla hiiren keskipainiketta tai pitämällä vaihtonäppäintä painettuna ja samanaikaisesti napauttamalla koodialuetta. Kirjoita lohkojen (tai niiden osien) nimiä ja lisää ne projektiisi raahaamalla koodialueelle. Lohkoluettelossa voidaan liikkua nuolinäppäimillä ja Enter-näppäimellä. Lisäksi se tukee automaattista täyttöä painamalla sarkainta. Estä valikkoa sulkeutumasta pitämällä vaihtonäppäintä painettuna samalla, kun raahaat lohkoja.", + "middle-click-popup/@info-developer-tools": "Tämä lisäosa oli aiemmin osa \"kehittäjän työkalut\" -lisäosaa, mutta se siirrettiin tänne.", + "middle-click-popup/@name": "Lisää lohkoja nimellä", + "middle-click-popup/@settings-name-popup_max_height": "Ponnahdusikkunan enimmäiskorkeus", + "middle-click-popup/@settings-name-popup_scale": "Ponnahdusikkunan lohkojen koko", + "middle-click-popup/@settings-name-popup_width": "Ponnahdusikkunan leveys", + "jump-to-def/@description": "Voit siirtyä mukautetun lohkon määritykseen käyttämällä hiiren keskipainikketta tai yhdistelmää vaihto+napautus lohkon päällä.", + "jump-to-def/@info-developer-tools": "Tämä lisäosa oli aiemmin osa \"kehittäjän työkalut\" -lisäosaa, mutta se siirrettiin tänne.", + "jump-to-def/@name": "Siirry mukautetun lohkon määritykseen", + "reorder-custom-inputs/@description": "Mahdollistaa mukautettujen lohkojen parametrien järjestelemisen \"Tee lohko\" -näkymässä.", + "reorder-custom-inputs/@name": "Mukautettujen lohkojen syötekenttien järjesteleminen", + "reorder-custom-inputs/@settings-name-InsertInputsAfter": "Lisää uusia syötekenttiä valinnan jälkeen", + "editor-searchable-dropdowns/@description": "Mahdollistaa lohkojen avattavien valikoiden vaihtoehdoista hakemisen.", + "editor-searchable-dropdowns/@name": "Hakutyökalu lohkojen avattavissa valikoissa", + "data-category-tweaks-v2/@description": "Tarjoaa parannuksia Tieto (\"Muuttujat\") -lohkokategoriaan.", + "data-category-tweaks-v2/@name": "Tieto-kategorian parannukset", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Siirrä tietolohkot muuttujalohkojen yläpuolelle", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Erillinen listakategoria", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Erilliset Vain tälle hahmolle -muuttujat", + "block-palette-icons/@description": "Lisää värillisten ympyröiden sisään kuvakkeita, jotka identifoivat lohkoluokkia.", + "block-palette-icons/@name": "Lohkopaletin kategorioiden kuvakkeet", + "hide-flyout/@description": "Piilottaa lohkopaletin, jollet pidä hiiren osoitintasi sen päällä. Lukitse se väliaikaisesti paikalleen napauttamalla lukkokuvaketta. Voit myös käyttää \"lohkokategoriaa napautetaan\" -tilaa näyttääksesi/piilottaaksesi sen, kun napautat lohkokategoriaa.", + "hide-flyout/@info-hoverExplanation": "\"Hiirtä pidetään palettialueella\" -tila laajentaa ainoastaan katselualuetta. Jos haluat raahata lohkoja tälle alueelle ilman, että ne heitetään pois, käytä jotakin toista tilaa.", + "hide-flyout/@name": "Lohkopaletin automaattinen piilottaminen", + "hide-flyout/@settings-name-lockLoad": "Näkyvillä oletuksena", + "hide-flyout/@settings-name-speed": "Animaation nopeus", + "hide-flyout/@settings-name-toggle": "Näytä paletti, kun...", + "hide-flyout/@settings-select-speed-default": "Oletus", + "hide-flyout/@settings-select-speed-long": "Hidas", + "hide-flyout/@settings-select-speed-none": "Välitön", + "hide-flyout/@settings-select-speed-short": "Nopea", + "hide-flyout/@settings-select-toggle-category": "Lohkokategoriaa napautetaan", + "hide-flyout/@settings-select-toggle-cathover": "Hiirtä pidetään lohkokategorian päällä", + "hide-flyout/@settings-select-toggle-hover": "Hiirtä pidetään palettialueella", + "mediarecorder/@description": "Lisää editorin valikkoriville \"aloita nauhoitus\" -painikkeen, jolla voit nauhoittaa projektin esiintymislavan.", + "mediarecorder/@name": "Videonauhuri projekteissa", + "drag-drop/@description": "Voit raahata kuvia ja ääniä tiedostonhallintaohjelmastasi hahmoruutuun tai asuste-/ääniluetteloon. Voit myös raahata tekstitiedostoja listoihin tai \"kysy ja odota\" -lohkon vastauskenttiin.", + "drag-drop/@name": "Tiedoston raahaaminen ja pudottaminen", + "drag-drop/@settings-name-use-hd-upload": "Käytä HD-latauksia", + "debugger/@description": "Lisää uuden \"virheenkorjaus\"-ikkunan editoriin. Virheenkorjausikkunan \"Lokimerkinnät\"-välilehdelle voi kirjata merkintöjä \"kirjaa lokimerkintä\"-, \"kirjaa varoitus\"- ja \"kirjaa virhe\" -lohkoilla. \"Keskeytyskohta\"-lohko keskeyttää projektin, kun sitä suoritetaan. Kaikkia käynnissä olevia lohkopinoja voidaan tarkastella virheenkorjauksen \"Säikeet\"-välilehdellä, ja kun projekti on keskeytetty, \"Vaihe\"-painiketta voidaan käyttää seuraavan lohkon suorittamiseen. Kaavio kuvataajuudesta ja kloonien lukumäärästä löytyy \"Suorituskyky\"-välilehdellä.", + "debugger/@name": "Virheenkorjaus", + "debugger/@settings-name-fancy_graphs": "Animoidut grafiikat (saattaa vaikuttaa suorituskykyyn)", + "debugger/@settings-name-log_broadcasts": "Kirjaa viestien lähettäminen", + "debugger/@settings-name-log_clear_greenflag": "Tyhjennä lokimerkinnät vihreää lippua napautettaessa", + "debugger/@settings-name-log_clone_create": "Kirjaa kloonien luominen", + "debugger/@settings-name-log_failed_clone_creation": "Kirjaa kloonirajan ylittyminen", + "debugger/@settings-name-log_greenflag": "Kirjaa vihreän lipun klikkaukset", + "pause/@description": "Lisää vihreän lipun viereen painikkeen, jolla voi keskeyttää projektin.", + "pause/@info-keybind": "Projektin voi keskeyttää myös Alt+X-näppäinyhdistelmällä (optio+X macOS:ssä).", + "pause/@name": "Keskeytyspainike", + "mute-project/@description": "Mykistä projekti soitin/poista sen mykistys pitämällä Ctrl-näppäintä painettuna ja klikkaamalla vihreää lippua.", + "mute-project/@info-macOS": "Käytä macOS:ssä Cmd-näppäintä Ctrl-näppäimen sijaan.", + "mute-project/@name": "Mykistetty projektisoitin", + "vol-slider/@description": "Lisää äänenvoimakkuussäätimen vihreän lipun ohjainten viereen.", + "vol-slider/@name": "Äänenvoimakkuussäädin projekteissa", + "vol-slider/@settings-name-always": "Näytä säädin aina", + "vol-slider/@settings-name-defVol": "Oletusäänenvoimakkuus", + "clones/@description": "Lisää editorin esiintymislavan ylle laskurin, joka näyttää kloonien kokonaismäärän.", + "clones/@name": "Kloonilaskuri", + "clones/@settings-name-projectpage": "Näytä projektisivulla", + "clones/@settings-name-showicononly": "Näytä vain kuvake", + "mouse-pos/@description": "Näyttää hiiren x-/y-sijainnin editorin esiintymislavan yllä.", + "mouse-pos/@name": "Hiiren sijainnin näyttäminen", + "color-picker/@description": "Lisää heksadesimaalisyöttökentän värinvalitsimiin.", + "color-picker/@name": "Heksadesimaalivärinvalitsin", + "remove-sprite-confirm/@description": "Kysyy, oletko varma, kun poistat hahmon projektissa.", + "remove-sprite-confirm/@info-restoretip": "Vinkki: Jos vahingossa poistat hahmon, asusteen tai äänen, voit kumota poiston napauttamalla valikkorivin Muokkaa-kohtaa ja valitsemalla sitten Palauta.", + "remove-sprite-confirm/@name": "Hahmon poistamisen vahvistus", + "block-count/@description": "Näyttää editorin valikkorivillä projektin lohkojen kokonaismäärän. Tämä oli aiemmin osa \"hahmo- ja skriptimäärä\" -lisäosaa.", + "block-count/@name": "Lohkomäärä", + "onion-skinning/@description": "Näyttää edellisten tai seuraavien asusteiden läpinäkyvät haamukuvat asustetta muokatessa. Lisäosan toimintaa säädetään asuste-editorin alaosassa olevien lähennyspainikkeiden vieressä olevilla painikkeilla.", + "onion-skinning/@name": "Sipulin kuorinta", + "onion-skinning/@settings-name-afterTint": "Seuraavan asusteen väri", + "onion-skinning/@settings-name-beforeTint": "Edellisen asusteen väri", + "onion-skinning/@settings-name-default": "Käytössä oletuksena", + "onion-skinning/@settings-name-layering": "Oletuskerrostus", + "onion-skinning/@settings-name-mode": "Oletustila", + "onion-skinning/@settings-name-next": "Oletusmäärä seuraavia asusteita", + "onion-skinning/@settings-name-opacity": "Peittävyys (%)", + "onion-skinning/@settings-name-opacityStep": "Peittävyysvaihe (%)", + "onion-skinning/@settings-name-previous": "Oletusmäärä edellisiä asusteita", + "onion-skinning/@settings-select-layering-behind": "Takana", + "onion-skinning/@settings-select-layering-front": "Edessä", + "onion-skinning/@settings-select-mode-merge": "Yhdistä kuvat", + "onion-skinning/@settings-select-mode-tint": "Värjää", + "paint-snap/@description": "Kiinnitä objekteja rajausruutuihin ja vektoripisteisiin asuste-editorissa.", + "paint-snap/@name": "Kiinnittäminen asuste-editorissa", + "paint-snap/@settings-name-boxCenter": "Kiinnitä valintalaatikon keskipisteestä", + "paint-snap/@settings-name-boxCorners": "Kiinnitä valintalaatikon kulmista", + "paint-snap/@settings-name-boxEdgeMids": "Kiinnitä valintalaatikon reunojen keskipisteistä", + "paint-snap/@settings-name-enable-default": "Käytössä oletuksena", + "paint-snap/@settings-name-guide-color": "Kiinnitysviivojen väri", + "paint-snap/@settings-name-objectCenters": "Kiinnitä objektien keskipisteisiin", + "paint-snap/@settings-name-objectCorners": "Kiinnitä objektien kulmiin", + "paint-snap/@settings-name-objectEdges": "Kiinnitä objektien reunoihin", + "paint-snap/@settings-name-objectMidlines": "Kiinnitä objektien keskilinjoille", + "paint-snap/@settings-name-pageAxes": "Kiinnitä muokkausalueen x- ja y-koordinaatteihin", + "paint-snap/@settings-name-pageCenter": "Kiinnitä muokkausalueen keskipisteeseen", + "paint-snap/@settings-name-pageCorners": "Kiinnitä muokkausalueen kulmiin", + "paint-snap/@settings-name-pageEdges": "Kiinnitä muokkausalueen reunoihin", + "paint-snap/@settings-name-threshold": "Kiinnitysetäisyys", + "default-costume-editor-color/@description": "Muuttaa asuste-editorin käyttämiä oletusvärejä ja ääriviivojen kokoa.", + "default-costume-editor-color/@name": "Mukautettavat asuste-editorin oletusvärit", + "default-costume-editor-color/@settings-name-fill": "Oletustäyttöväri", + "default-costume-editor-color/@settings-name-persistence": "Käytä edellistä väriä sen sijaan, että se nollataan työkalun vaihtamisen jälkeen", + "default-costume-editor-color/@settings-name-stroke": "Ääriviivojen oletusväri", + "default-costume-editor-color/@settings-name-strokeSize": "Ääriviivojen oletuskoko", + "bitmap-copy/@description": "Mahdollistaa asuste-editorin bittikarttakuvien kopioimisen järjestelmän leikepöydälle, jotta ne voidaan liittää muihin sivustoihin tai ohjelmiin.", + "bitmap-copy/@info-norightclick": "\"Hiiren kakkospainike → kopioi\" -valintaa ei tueta. Sinun tulee käyttää Ctrl+C-näppäinyhdistelmää, kun bittikarttakuva on valittu.", + "bitmap-copy/@name": "Bittikarttakuvien kopioiminen", + "2d-color-picker/@description": "Korvaa asuste-editorin värikylläisyys- ja kirkkaussäätimet 2D-värinvalitsimella. Pidä vaihtonäppäintä painettuna, kun siirrät hiiren kohdistinta muuttaaksesi yhden akselin arvoja.", + "2d-color-picker/@name": "2D-värinvalitsin", + "paint-skew/@description": "Pidä Ctrl-näppäintä painettuna muuttaessasi objektin kokoa sen sivuista, jotta voit vinottaa objektia. Painamalla Alt-näppäintä samalla, kun vinotat objektia, se vinottuu keskeltä.", + "paint-skew/@info-useCmdOnMac": "Käytä macOS:ssä komentonäppäintä Control-näppäimen sijaan ja optionäppäintä Alt-näppäimen sijaan.", + "paint-skew/@name": "Vinottaminen asuste-editorissa", + "better-img-uploads/@description": "Lisää \"lataa asuste\" -painikkeen ylle uuden painikkeen, joka muuntaa ladatut bittikarttakuvat SVG-kuviksi (vektorikuviksi) laadun heikkenemisen välttämiseksi.", + "better-img-uploads/@info-notSuitableEdit": "Vältä HD-latauspainikkeen käyttöä, jos aiot muokata kuvaa latauksen jälkeen.", + "better-img-uploads/@name": "HD-kuvien lataaminen", + "better-img-uploads/@settings-name-fitting": "Kuvan koko", + "better-img-uploads/@settings-select-fitting-fill": "Venytä kuva täyttämään editorin keskineliö", + "better-img-uploads/@settings-select-fitting-fit": "Kutista editorin keskineliöön sopivaksi", + "better-img-uploads/@settings-select-fitting-full": "Alkuperäinen koko", + "pick-colors-from-stage/@description": "Mahdollistaa sen, että asuste-editorin pipetillä voi valita värejä myös esiintymislavalta.", + "pick-colors-from-stage/@name": "Valitse värejä esiintymislavalta pipetillä", + "custom-block-shape/@description": "Säädä lohkojen täytettä, kulman sädettä ja loven korkeutta.", + "custom-block-shape/@info-paddingWarning": "Säädä lohkojen täytettä, kulman sädettä ja loven korkeutta.", + "custom-block-shape/@name": "Mukautettava lohkon muoto", + "custom-block-shape/@preset-description-default2": "Ulkonäkö muistuttaa Scratch 2.0 -lohkoja", + "custom-block-shape/@preset-description-default3": "Scratch 3.0 -lohkojen tavallinen ulkonäkö", + "custom-block-shape/@preset-description-flat2": "Scratch 2.0 -lohkot lovet ja kulmat poistettuina", + "custom-block-shape/@preset-description-flat3": "Scratch 3.0 -lohkot lovet ja kulmat poistettuina", + "custom-block-shape/@preset-name-default2": "2.0 Lohkot", + "custom-block-shape/@preset-name-default3": "3.0 Lohkot", + "custom-block-shape/@preset-name-flat2": "2.0 Tasainen", + "custom-block-shape/@preset-name-flat3": "3.0 Tasainen", + "custom-block-shape/@settings-name-cornerSize": "Reunojen koko (0-300%)", + "custom-block-shape/@settings-name-notchSize": "Lovien koko (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "Täytön koko (50-200%)", + "editor-square-inputs/@description": "Tekee tietyistä syötetyypeistä (kuten teksti- tai värisyötteistä) suorakulmaisia pyöreiden kulmien sijaan, kuten Scratch 2.0:ssa.", + "editor-square-inputs/@name": "Lohkojen neliskulmaiset syötekentät", + "editor-square-inputs/@settings-name-color": "Värinvalitsimet", + "editor-square-inputs/@settings-name-number": "Numerosyötteet", + "editor-square-inputs/@settings-name-text": "Tekstikentät", + "zebra-striping/@description": "Saa saman kategorian lohkot vuorottelemaan vaaleampien ja tummempien sävyjen välillä, kun ne asetetaan sisäkkäin. Toiminto tunnetaan myös seeprakuviona.", + "zebra-striping/@name": "Vuorottelevat sisäkkäiset lohkovärit", + "zebra-striping/@settings-name-intensity": "Voimakkuus (0-100%)", + "zebra-striping/@settings-name-shade": "Sävy", + "zebra-striping/@settings-select-shade-darker": "Tummempi", + "zebra-striping/@settings-select-shade-lighter": "Vaaleampi", + "editor-compact/@description": "Pienentää painikkeiden, tekstikenttien, valikkorivin ja muiden elementtien kokoa editorissa tehden tilaa komponenteille, kuten koodialueelle, asuste-editorille ja asusteiden esikatselukuville, samoin kuin Scratch 2.0:ssa.", + "editor-compact/@info-hide-icons-update": "Käytä \"Mukautettava valikkorivi\" -lisäosaa piilottaaksesi valikkorivin kuvakkeet.", + "editor-compact/@name": "Kompakti editori", + "editor-compact/@settings-name-hideLabels": "Piilota asuste- ja äänieditorin painikkeiden otsikot", + "custom-menu-bar/@description": "Voit piilottaa tiettyjä editorin valikkorivin kohteita tai poistaa niiden nimikkeet tai kuvakkeet.", + "custom-menu-bar/@info-small-screens": "Tekstinimikkeet korvataan automaattisesti kuvakkeilla pienemmissä ikkunoissa.", + "custom-menu-bar/@name": "Mukautettava editorin valikkorivi", + "custom-menu-bar/@settings-name-menu-labels": "Näytä valikossa...", + "custom-menu-bar/@settings-select-menu-labels-both": "Kuvakkeet ja nimikkeet", + "custom-menu-bar/@settings-select-menu-labels-icons": "Vain kuvakkeet", + "custom-menu-bar/@settings-select-menu-labels-labels": "Vain nimikkeet", + "editor-theme3/@description": "Muokkaa kunkin lohkokategorian lohkojen värejä editorissa.", + "editor-theme3/@name": "Mukautettavat lohkojen värit", + "editor-theme3/@preset-description-black": "Tekee lohkojen taustasta mustan ja reunuksista/tekstistä värillisen", + "editor-theme3/@preset-description-contrast": "Lohkopaletti Scratchin 3.0:n korkean kotrastin väreillä", + "editor-theme3/@preset-description-dark": "Vielä tummemmat versiot oletusväreistä", + "editor-theme3/@preset-description-new-dark": "Oletusvärien tummat versiot, jotka näyttävät hyvältä tummissa teemoissa", + "editor-theme3/@preset-description-original": "Alkuperäiset lohkovärit Scratch 2.0:sta", + "editor-theme3/@preset-description-tweaks": "Scratch 2.0:n värejä muistuttavat Scratch 3.0:n tapahtuma- ja ohjauslohkojen sekä mukautettujen lohkojen värit", + "editor-theme3/@preset-name-black": "Musta", + "editor-theme3/@preset-name-contrast": "Korkea kontrasti", + "editor-theme3/@preset-name-dark": "Tummempi", + "editor-theme3/@preset-name-new-dark": "Tumma", + "editor-theme3/@preset-name-original": "Scratch 2.0:n värit", + "editor-theme3/@preset-name-tweaks": "Säädetty Scratch 3.0", + "editor-theme3/@settings-name-Pen-color": "laajennukset", + "editor-theme3/@settings-name-comment-color": "Kommentit", + "editor-theme3/@settings-name-control-color": "ohjaus", + "editor-theme3/@settings-name-custom-color": "mukautetut", + "editor-theme3/@settings-name-data-color": "muuttujat", + "editor-theme3/@settings-name-data-lists-color": "listat", + "editor-theme3/@settings-name-events-color": "tapahtumat", + "editor-theme3/@settings-name-input-color": "Lohkojen syöttökentät", + "editor-theme3/@settings-name-looks-color": "ulkonäkö", + "editor-theme3/@settings-name-motion-color": "liike", + "editor-theme3/@settings-name-operators-color": "toiminnot", + "editor-theme3/@settings-name-sensing-color": "tuntoaisti", + "editor-theme3/@settings-name-sounds-color": "äänet", + "editor-theme3/@settings-name-text": "Tekstin väri", + "editor-theme3/@settings-select-text-black": "Musta", + "editor-theme3/@settings-select-text-colorOnBlack": "Värillinen mustalla taustalla", + "editor-theme3/@settings-select-text-colorOnWhite": "Värillinen valkoisella taustalla", + "editor-theme3/@settings-select-text-white": "Valkoinen", + "custom-block-text/@description": "Voit mukauttaa lohkojen tekstiä, mukaan lukien koon säätäminen, lihavoiminen ja varjon lisääminen.", + "custom-block-text/@name": "Mukautettava lohkon tekstityyli", + "custom-block-text/@settings-name-bold": "Lihavoitu teksti", + "custom-block-text/@settings-name-shadow": "Varjo tekstin alla", + "custom-block-text/@settings-name-size": "Tekstin koko (%)", + "editor-colored-context-menus/@description": "Tekee lohkojen hiiren kakkospainikkeen pikavalikoista värikkäitä.", + "editor-colored-context-menus/@name": "Värilliset pikavalikot", + "editor-stage-left/@description": "Siirtää esiintymislavan editorin vasemmalle puolelle, kuten Scratch 2.0:ssa.", + "editor-stage-left/@info-reverseOrder": "Vaihda painikkeiden sijaintia esiintymislavan yläpuolella käyttämällä \"projektin ohjainten käänteinen järjestys\" -lisäosaa.", + "editor-stage-left/@name": "Näytä esiintymislava vasemmalla puolella", + "editor-buttons-reverse-order/@description": "Siirtää vihreää lippua ja pysäytyspainikkeita oikealle ja koko näytön painiketta vasemmalle, kuten Scratch 2.0:ssa.", + "editor-buttons-reverse-order/@name": "Projektin ohjainten käänteinen järjestys", + "variable-manager/@description": "Lisää välilehden editoriin \"äänet\"-välilehden viereen, jonka avulla voit päivittää muuttujia ja listoja helposti.", + "variable-manager/@name": "Muuttujien hallinta", + "search-sprites/@description": "Lisää hahmoruutuun hakukentän hahmojen nimellä etsimistä varten.", + "search-sprites/@name": "Hakuosio hahmoruudussa", + "sprite-properties/@description": "Piilottaa hahmon asetusruudun oletuksena, kuten Scratch 2.0:ssa. Näytä asetusruutu uudestaan käyttämällä parhaillaan valitun hahmon tietoapainiketta tai kaksoisnapauttamalla hahmoa. Käytä asetusruudun kutistuspainiketta tai kaksoisnapauta hahmoa piilottaaksesi sen uudestaan.", + "sprite-properties/@name": "Hahmoasetusten kutistaminen", + "sprite-properties/@settings-name-autoCollapse": "Kutista automaattisesti, kun hiiren osoitin poistuu hahmoruudusta.", + "sprite-properties/@settings-name-hideByDefault": "Kutista ruutu oletuksena", + "sprite-properties/@settings-name-transitionDuration": "Animaation nopeus", + "sprite-properties/@settings-select-transitionDuration-default": "Oletus", + "sprite-properties/@settings-select-transitionDuration-long": "Hidas", + "sprite-properties/@settings-select-transitionDuration-none": "Välitön", + "sprite-properties/@settings-select-transitionDuration-short": "Nopea", + "gamepad/@description": "Ole vuorovaikutuksessa projektin kanssa käyttämällä USB tai Bluetooth-ohjainta/peliohjainta.", + "gamepad/@name": "Peliohjaintuki", + "gamepad/@settings-name-hide": "Piilota asetukset-painike, kun ohjaimia ei ole havaittu", + "editor-sounds/@description": "Soittaa äänitehosteen, kun liität yhteen tai poistat lohkoja.", + "editor-sounds/@name": "Editorin äänitehosteet", + "folders/@description": "Lisää kansioita hahmoruutuun, kuin myös asuste- ja äänilistalle. Luo kansio napauttamalla hiiren kakkospainiketta minkä tahansa hahmon päällä ja napauta \"luo kansio\". Avaa tai sulje kansio napauttamalla. Napauta hiiren kakkospainiketta hahmon päällä nähdäksesi, mihin kansioihin voit siirtää hahmon, tai vaihtoehtoisesti voit myös raahata hahmon auki olevaan kansioon. Tämä ominaisuus toimii lisäämällä \"[kansionNimi]//\" hahmojesi nimien alkuun.", + "folders/@info-notice-folders-are-public": "Käyttäjät, joilla tämä ominaisuus on käytössä, pystyvät näkemään kansiot projektissani. Kaikki muut näkevät hahmolistat normaalina (ei kansioita).", + "folders/@name": "Hahmokansiot", + "block-switching/@description": "Vaihda lohko siihen liittyvään lohkoon napauttamalla sitä hiiren kakkospainikkeella.", + "block-switching/@name": "Lohkojen vaihtaminen", + "block-switching/@settings-name-control": "Ohjauslohkot", + "block-switching/@settings-name-customargs": "Mukautettujen lohkojen parametrit", + "block-switching/@settings-name-customargsmode": "Näytetyt mukautettujen lohkojen parametrivaihtoehdot", + "block-switching/@settings-name-data": "Tietolohkot", + "block-switching/@settings-name-event": "Tapahtumalohkot", + "block-switching/@settings-name-extension": "Laajennuslohkot", + "block-switching/@settings-name-looks": "Ulkonäkölohkot", + "block-switching/@settings-name-motion": "Liikelohkot", + "block-switching/@settings-name-noop": "Näytä itseksi muuttamisvaihtoehto", + "block-switching/@settings-name-operator": "Toimintolohkot", + "block-switching/@settings-name-sensing": "Tuntoaistilohkot", + "block-switching/@settings-name-sound": "Äänilohkot", + "block-switching/@settings-select-customargsmode-all": "Kaikkien hahmon mukautettujen lohkojen parametrit", + "block-switching/@settings-select-customargsmode-defOnly": "Mukautetun lohkon omat parametrit", + "load-extensions/@description": "Näyttää musiikki- ja kynälaajennuksen ja muita laajennuksia automaattisesti editorin lohkokategoriavalikossa.", + "load-extensions/@name": "Lisää laajennuksia automaattisesti", + "load-extensions/@settings-name-music": "Musiikki", + "load-extensions/@settings-name-pen": "Kynä", + "load-extensions/@settings-name-text2speech": "Teksti puheeksi", + "load-extensions/@settings-name-translate": "Käännä", + "custom-zoom/@description": "Valitse mukautetut asetukset koodialueen skriptien lähentämisen vähimmäis- ja enimmäisarvolle, nopeudelle sekä aloituskoolle. Mahdollistaa myös kokosäädinten automaattisen piilottamisen.", + "custom-zoom/@name": "Mukautettava koodialueen lähentäminen", + "custom-zoom/@settings-name-autohide": "Piilota lähennyssäätimet automaattisesti", + "custom-zoom/@settings-name-maxZoom": "Enimmäislähennys (100-500%)", + "custom-zoom/@settings-name-minZoom": "Vähimmäislähennys (1-100%)", + "custom-zoom/@settings-name-speed": "Piilotusanimaation nopeus", + "custom-zoom/@settings-name-startZoom": "Alkulähennys (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "Lähennysnopeus (50-200%)", + "custom-zoom/@settings-select-speed-default": "Oletus", + "custom-zoom/@settings-select-speed-long": "Hidas", + "custom-zoom/@settings-select-speed-none": "Välitön", + "custom-zoom/@settings-select-speed-short": "Nopea", + "copy-reporter/@description": "Mahdollistaa muuttujien näytinten (hiiren kakkospainikkeen pudotusvalikosta) ja lohkojen ilmoituskuplien kertomien arvojen kopioimisen.", + "copy-reporter/@name": "Ilmoitettujen arvojen kopioiminen", + "initialise-sprite-position/@description": "Määritä, minne vasta luodut hahmot sijoitetaan esiintymislavalla.", + "initialise-sprite-position/@name": "Mukautettava uuden hahmon sijainti", + "initialise-sprite-position/@settings-name-duplicate": "Kopioitujen hahmojen sijainti", + "initialise-sprite-position/@settings-name-library": "Sijoita hahmokirjastosta lisätyt hahmot satunnaiseen sijaintiin", + "initialise-sprite-position/@settings-name-x": "X-sijainti", + "initialise-sprite-position/@settings-name-y": "Y-sijainti", + "initialise-sprite-position/@settings-select-duplicate-custom": "Tarkka x-/y-sijainti", + "initialise-sprite-position/@settings-select-duplicate-keep": "Sama kuin alkuperäisellä hahmolla", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Satunnainen", + "blocks2image/@description": "Lataa lohkoja SVG-/PNG-kuvana napauttamalla hiiren kakkospainiketta koodialueella.", + "blocks2image/@name": "Tallenna lohkoja kuvana", + "remove-curved-stage-border/@description": "Poistaa esiintymislavan kaarevat kulmat, jotta näet reunat.", + "remove-curved-stage-border/@name": "Poista esiintymislavan kaarevat kulmat", + "transparent-orphans/@description": "Säädä lohkojen läpinäkyvyyttä editorissa erillisillä asetuksilla yksin jätetyille lohkoille (niille, joissa ei ole hattulohkoa yläosassa) ja lohkoille, joita raahataan.", + "transparent-orphans/@name": "Lohkojen läpinäkyvyys", + "transparent-orphans/@settings-name-block": "Lohkojen läpinäkyvyys (%)", + "transparent-orphans/@settings-name-dragged": "Lohkojen, joita raahataan, läpinäkyvyys (%)", + "transparent-orphans/@settings-name-orphan": "Yksin jätettyjen lohkojen läpinäkyvyys (%)", + "paint-by-default/@description": "Vaihtaa \"Valitse hahmo/asuste/tausta/ääni\" -painikkeiden oletustoimintoa, jotka avaavat kirjaston oletuksena.", + "paint-by-default/@name": "Piirrä asuste oletuksena", + "paint-by-default/@settings-name-backdrop": "Lisää tausta", + "paint-by-default/@settings-name-costume": "Lisää asuste", + "paint-by-default/@settings-name-sound": "Lisää ääni", + "paint-by-default/@settings-name-sprite": "Lisää hahmo", + "paint-by-default/@settings-select-backdrop-library": "Kirjastosta", + "paint-by-default/@settings-select-backdrop-paint": "Piirtämällä", + "paint-by-default/@settings-select-backdrop-surprise": "Yllättämällä", + "paint-by-default/@settings-select-backdrop-upload": "Lataamalla", + "paint-by-default/@settings-select-costume-library": "Kirjastosta", + "paint-by-default/@settings-select-costume-paint": "Piirtämällä", + "paint-by-default/@settings-select-costume-surprise": "Yllättämällä", + "paint-by-default/@settings-select-costume-upload": "Lataamalla", + "paint-by-default/@settings-select-sound-library": "Kirjastosta", + "paint-by-default/@settings-select-sound-record": "Äänittämällä", + "paint-by-default/@settings-select-sound-surprise": "Yllättämällä", + "paint-by-default/@settings-select-sound-upload": "Lataamalla", + "paint-by-default/@settings-select-sprite-library": "Kirjastosta", + "paint-by-default/@settings-select-sprite-paint": "Piirtämällä", + "paint-by-default/@settings-select-sprite-surprise": "Yllättämällä", + "paint-by-default/@settings-select-sprite-upload": "Lataamalla", + "block-cherry-picking/@description": "Lisää mahdollisuuden vetää yksi lohko pois skriptin keskeltä (sen sijaan, että koko pino olisi liitetty sen alle) pitäen samalla Ctrl-näppäintä painettuna.", + "block-cherry-picking/@info-flipControls": "Jos \"käänteinen toiminta\" on käytössä, oletustoiminto on lohkoihin tarttuminen yksitellen. Raahaa koko pinoa pitämällä Ctrl-näppäintä painettuna.", + "block-cherry-picking/@info-macContextDisabled": "Käytä macOS:ssä Cmd-näppäintä Ctrl-näppäimen sijaan.", + "block-cherry-picking/@name": "Tartu yksittäiseen lohkoon Ctrl-näppäimellä", + "block-cherry-picking/@settings-name-invertDrag": "Käänteinen toiminta", + "hide-new-variables/@description": "Älä näytä automaattisesti näyttimiä vasta luoduille muuttujille.", + "hide-new-variables/@name": "Piilota uudet muuttujat", + "editor-extra-keys/@description": "Lisää enemmän näppäimiä \"onko näppäin () painettu?\" ja \"kun painetaan ()\" -lohkojen avattaviin valikoihin, kuten enterin, pisteen, pilkun ja monia muita. Nämä näppäimet toimivat jopa niillä käyttäjillä, joilla ei ole tätä lisäosaa.", + "editor-extra-keys/@info-experimentalKeysWarn": "\"Kokeellisiin näppäimiin\" kuuluvat on yhtä kuin -merkki, kauttaviiva, puolipiste ja paljon muita. Ne eivät välttämättä toimi kaikissa käyttöjärjestelmissä tai näppäimistöasetteluissa.", + "editor-extra-keys/@info-shiftKeysWarn": "\"Vaihtonäppäimet\" sisältävät näppäimiä, jotka vaativat yleensä vaihtonäppäimen ja numeronäppäimen, kuten risuaita, huutomerkki ja monet muut. Nämä näppäimet toimivat vain \"kun painetaan ()\" -lohkon kanssa eivätkä ne toimi kaikissa käyttöjärjestelmissä tai näppäimistöasetteluissa.", + "editor-extra-keys/@name": "Erikoisnäppäinvaihtoehdot", + "editor-extra-keys/@settings-name-experimentalKeys": "Näytä kokeelliset näppäimet", + "editor-extra-keys/@settings-name-shiftKeys": "Näytä vaihtonäppäimet", + "hide-delete-button/@description": "Piilottaa poista-painikkeen (roskakorikuvakkeen) hahmoista, asusteista ja äänistä. Ne voidaan silti poistaa käyttämällä hiiren kakkospainikkeen pikavalikkoa.", + "hide-delete-button/@info-restoretip": "Vinkki: Jos vahingossa poistat hahmon, asusteen tai äänen, voit kumota poiston napauttamalla valikkorivin Muokkaa-kohtaa ja valitsemalla sitten Palauta.", + "hide-delete-button/@name": "Piilota poista-painike", + "hide-delete-button/@settings-name-costumes": "Asusteet ja taustat", + "hide-delete-button/@settings-name-sounds": "Äänet", + "hide-delete-button/@settings-name-sprites": "Hahmot", + "no-script-bumping/@description": "Mahdollistaa skriptien siirtämisen ja muokkaamisen aiheuttamatta päällekkäisten skriptien liikkumista.", + "no-script-bumping/@name": "Älä tee automaattisesti tilaa päällekkäisille skripteille", + "disable-stage-drag-select/@description": "Poistaa mahdollisuuden raahata hahmoja editorin esiintymislavalla, paitsi niiltä, jotka on nimenomaan asetettu raahattaviksi. Pidä vaihtonäppäintä painettuna samalla, kun raahaat hahmoa, siirtääksesi sitä normaalisti.", + "disable-stage-drag-select/@name": "Ei-raahattavat hahmot editorissa", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "Salli raahaus, kun projekti ei ole käynnissä", + "move-to-top-bottom/@description": "Lisää vaihtoehtoja hiiren kakkospainikkeen pikavalikkoon asusteita ja ääniä varten, jotta voit siirtää niitä luettelon ylä- tai alaosaan.", + "move-to-top-bottom/@info-developer-tools": "Tämä lisäosa oli aiemmin osa \"kehittäjän työkalut\" -lisäosaa, mutta se siirrettiin tänne.", + "move-to-top-bottom/@name": "Siirrä asuste ylös tai alas", + "move-to-top-layer/@description": "Paina vaihtonäppäintä ja samanaikaisesti napauta hahmoruudussa olevaa hahmoa siirtääksesi sen esiintymislavalla etualalle (päällimmäiseksi).", + "move-to-top-layer/@name": "Siirrä hahmo etualalle", + "disable-paste-offset/@description": "Liitä kopioidut kohteet alkuperäiseen paikkaansa asuste-editorissa sen sijaan, että niitä siirrettäisiin hieman.", + "disable-paste-offset/@info-vanilla": "Tämä toiminta voidaan saavuttaa myös ilman tätä lisäosaa painamalla Alt-näppäintä ja napauttamalla kohdetta.", + "disable-paste-offset/@name": "Älä siirrä liitettyjä kohteita", + "block-duplicate/@description": "Kopioi skripti nopeasti raahaamalla sitä samalla, kun pidät Alt-näppäintä painettuna. Pidä myös Ctrl-näppäintä painettuna, jos haluat kopioida vain yhden lohkon koko sen alle liitetyn pinon sijaan.", + "block-duplicate/@info-mac": "Käytä macOS:ssä optionäppäintä Alt-näppäimen sijaan ja komentonäppäintä Control-näppäimen sijaan.", + "block-duplicate/@name": "Kopioi skripti Alt-näppäimellä", + "rename-broadcasts/@description": "Lisää vaihtoehdon viestin uudelleen nimeämistä varten viestilohkojen pudotusvalikoissa.", + "rename-broadcasts/@name": "Viestien uudelleennimeäminen", + "swap-local-global/@description": "Lisää olemassa olevan muuttujan tai listan uudelleennimeämisnäkymään uusia vaihtoehtoja: sallii siirtymisen \"Kaikille hahmoille\" ja \"Vain tälle hahmolle\" -tilojen välillä sekä myös sen välillä, tallennetaanko muuttujat pilveen. Lisää myös uuden vaihtoehdon muuttaa muuttujan näkyvvyttä nopeasti napauttamalla hiiren kakkospainikkeella muuttujaa/listaa.", + "swap-local-global/@name": "Vaihda muuttujia \"Kaikille hahmoille\" ja \"Vain tälle hahmolle\" -tilojen välillä", + "editor-comment-previews/@description": "Näet kommenttien sisällön viemällä hiiren osoittimesi kutistettujen kommenttien tai näytön ulkopuolella oleviin kommenteihin liitettyjen lohkojen päälle. Voit käyttää tätä tarkastellaksesi kommentteja, jotka ovat näytön ulkopuolella, tunnistaaksesi silmukkalohkon alhaalta sen katselunäkymän perusteella, sovittaaksesi monia pitkiä kommentteja pieneen tilaan ja muuhun sellaiseen.", + "editor-comment-previews/@name": "Näytön ulkopuolella olevien kommenttien katseleminen", + "editor-comment-previews/@settings-name-delay": "Viiveen kesto", + "editor-comment-previews/@settings-name-follow-mouse": "Seuraa hiirtä", + "editor-comment-previews/@settings-name-hover-view": "Esikatsele viemällä hiiren osoitin kutistettuihin kommentteihin", + "editor-comment-previews/@settings-name-hover-view-block": "Esikatsele liitettyjä kommentteja viemällä hiiren osoitin lohkojen päälle", + "editor-comment-previews/@settings-name-hover-view-procedure": "Esikatsele määritelmäkommentteja viemällä hiiren osoitin mukautettujen lohkojen päälle", + "editor-comment-previews/@settings-name-reduce-animation": "Vähennä animaatiota", + "editor-comment-previews/@settings-name-reduce-transparency": "Vähennä läpinäkyvyyttä", + "editor-comment-previews/@settings-select-delay-long": "Pitkä", + "editor-comment-previews/@settings-select-delay-none": "Ei viivettä", + "editor-comment-previews/@settings-select-delay-short": "Lyhyt", + "columns/@description": "Jakaa lohkokategoriavalikon kahteen sarakkeeseen ja siirtää sen lohkopaletin yläosaan, kuten Scratch 2.0:ssa.", + "columns/@name": "Kahden sarakkeen lohkokategoriavalikko", + "number-pad/@description": "Näytä Scratchin virtuaalinen numeronäppäimistö kaikilla laitteilla lohkojen numerokenttiä muokatessa sen sijaan, että näppäimistö näytettäisiin ainoastaan kosketusnäytöllisillä laitteilla.", + "number-pad/@info-explanation": "Numeronäppäimistö ilmestyy, kun lohkojen, kuten \"liiku () askelta\", numerokenttiä muokataan.", + "number-pad/@name": "Näytä aina numeronäppäimistö", + "editor-number-arrow-keys/@description": "Kasvata tai pienennä niin lohkojen kuin hahmon ominaisuusalueen numerokenttien lukuarvoja ylä- ja alanuolinäppäimellä.", + "editor-number-arrow-keys/@name": "Editorin lukuarvojen kasvattaminen ja pienentäminen nuolinäppäimillä", + "editor-number-arrow-keys/@settings-name-alt": "Muutos painalluksella Alt+nuoli", + "editor-number-arrow-keys/@settings-name-altCustom": "Muutos painalluksella Alt+nuoli", + "editor-number-arrow-keys/@settings-name-regular": "Muutos tavallisella painalluksella", + "editor-number-arrow-keys/@settings-name-regularCustom": "Muutos tavallisella painalluksella", + "editor-number-arrow-keys/@settings-name-shift": "Muutos painalluksella vaihto+nuoli", + "editor-number-arrow-keys/@settings-name-shiftCustom": "Muutos painalluksella vaihto+nuoli", + "editor-number-arrow-keys/@settings-name-useCustom": "Käytä muokattavia arvoja", + "editor-number-arrow-keys/@settings-select-alt-hundredth": "0,01", + "editor-number-arrow-keys/@settings-select-alt-none": "Ei mitään", + "editor-number-arrow-keys/@settings-select-alt-tenth": "0,1", + "editor-number-arrow-keys/@settings-select-regular-hundredth": "0,01", + "editor-number-arrow-keys/@settings-select-regular-none": "Ei mitään", + "editor-number-arrow-keys/@settings-select-regular-tenth": "0,1", + "editor-number-arrow-keys/@settings-select-shift-hundredth": "0,01", + "editor-number-arrow-keys/@settings-select-shift-none": "Ei mitään", + "editor-number-arrow-keys/@settings-select-shift-tenth": "0,1", + "expanded-backpack/@description": "Järjestelee editorin repun sisällön laajennettavaksi kaksisuuntaiseksi taulukoksi, joka on samanlainen kuin asustekirjasto ja suurentaa tiettyjen näytekuvien kokoa.", + "expanded-backpack/@name": "Useita rivejä repussa", + "expanded-backpack/@settings-name-rows": "Näytettyjen rivien määrä", + "expanded-backpack/@settings-name-upscale": "Suuremmat asusteiden ja skriptien näytekuvat", + "script-snap/@description": "Kohdista skriptin sijainti automaattisesti koodialueen pisteisiin raahaamalla skriptiä.", + "script-snap/@name": "Kiinnitä skriptit ruudukkoon", + "script-snap/@preset-name-default": "Oletus", + "script-snap/@preset-name-half-block": "Puolikas lohko", + "script-snap/@preset-name-whole-block": "Kokonainen lohko", + "script-snap/@settings-name-grid": "Ruudukon koko (px)", + "fullscreen/@description": "Korjaa joitain ei-toivottuja vaikutuksia projektisoittimen koko näytön tilassa, avaa sen selaimen koko näytön tilassa ja piilottaa vihreän lipun työkalupalkin.", + "fullscreen/@info-hideToolbarNotice": "Jos päätät pitää työkalupalkin aina piilossa, muista, että voit poistua projektisoittimen koko näytön tilasta Esc-näppäimellä.", + "fullscreen/@name": "Paranneltu koko näytön tila", + "fullscreen/@settings-name-browserFullscreen": "Avaa koko näytön projektisoitin koko näytön selaintilassa", + "fullscreen/@settings-name-toolbar": "Työkalupalkin näkyvyys", + "fullscreen/@settings-select-toolbar-hide": "Älä koskaan näytä palkkia", + "fullscreen/@settings-select-toolbar-hover": "Näytä, kun hiirtä pidetään palkin kohdalla", + "fullscreen/@settings-select-toolbar-show": "Näytä aina", + "hide-stage/@description": "Lisää \"pieni esiintymislava\" ja \"suuri esiintymislava\" -painikkeiden viereen painikkeen, joka piilottaa esiintymislavan ja hahmoruudun, mikä tekee koodialueesta paljon suuremman.", + "hide-stage/@name": "Piilota esiintymislava ja hahmoruutu", + "editor-stepping/@description": "Lisää värillisen korostuksen lohkoihin, joita parhaillaan suoritetaan projektissa.", + "editor-stepping/@name": "Parhaillaan suoritettavien lohkojen reunus", + "editor-stepping/@settings-name-highlight-color": "Korostusväri" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/fr.json b/src/addons/addons-l10n-settings/fr.json index 6f8a3f7b248..6836edde932 100644 --- a/src/addons/addons-l10n-settings/fr.json +++ b/src/addons/addons-l10n-settings/fr.json @@ -1,15 +1,26 @@ { - "cat-blocks/@description": "Ramène les blocs chapeaux avec une tête de chat, venant du poisson d'avril 2020.", - "cat-blocks/@info-watch": "L'option \"Regarder le curseur\" peut impacter les performances quand l'éditeur est ouvert.", + "cat-blocks/@description": "Ramener les blocs à tête de chat du poisson d'avril de 2020 dans l'éditeur.", + "cat-blocks/@info-watch": "L'option \"regarder le curseur\" peut impacter les performances quand l'éditeur est ouvert.", "cat-blocks/@name": "Blocs chat", "cat-blocks/@settings-name-watch": "Regarder le curseur", - "editor-devtools/@description": "Ajoute une boîte de recherche et de nouvelles options de menu à l'éditeur : copier/coller des blocs, un meilleur nettoyage, accéder à la définition d'un bloc personnalisé, et plus encore ! Appuyez sur Ctrl+F pour sélectionner la zone de recherche, Ctrl+Espace pour afficher le pop-up \"ajouter un bloc par nom\", Ctrl+Gauche/Droite pour naviguer dans l'historique des recherches.", + "editor-devtools/@description": "Ajoute de nouvelles options au menu de l'éditeur : copier/coller des blocs, meilleur nettoyage, et plus encore !", "editor-devtools/@name": "Outils pour développeurs", "editor-devtools/@settings-name-enableCleanUpPlus": "Améliorer l'option \"Nettoyer les blocs\"", - "editor-devtools/@settings-name-enableMiddleClickFinder": "Faites un clic avec la molette sur les variables, les blocs personnalisés ou les évènements pour aller à leur définition", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Coller les blocs à l'emplacement du curseur", - "editor-searchable-dropdowns/@description": "Vous permet de rechercher des listes déroulantes de blocs.", - "editor-searchable-dropdowns/@name": "Menus déroulants recherchables", + "find-bar/@description": "Ajoute une barre de recherche à côté de l'onglet des son pour rechercher et accéder à des scripts, costumes et sons. Utilisez Ctrl + Flèche gauche et Ctrl + Flèche droite dans la zone de code pour naviguer vers la position précédente ou suivante après avoir utilisé la barre de recherche.", + "find-bar/@info-developer-tools": "Cet addon faisait auparavant partie de l'addon \"outils de développement\" mais a été déplacé ici.", + "find-bar/@name": "Barre de recherche de l'éditeur", + "middle-click-popup/@description": "Dans la zone de code, cliquez avec le bouton central, cliquez en maintenant Maj, ou appuyez sur Ctrl+Espace pour faire apparaître une fenêtre de recherche de blocs. Tapez les noms des blocs (ou des parties de ceux-ci) et faites-les glisser dans la zone de code pour les ajouter à votre projet. Le menu peut être parcouru à l'aide des touches fléchées et Entrée, et prend en charge l'autocomplétion avec la touche Tab. Pour éviter que le menu ne se ferme, maintenez la touche Maj enfoncée tout en faisant glisser les blocs hors du menu.", + "middle-click-popup/@info-developer-tools": "Cet addon faisait auparavant partie de l'addon \"developer tools\" mais a été déplacé ici.", + "middle-click-popup/@name": "Insérer des blocs par nom", + "middle-click-popup/@settings-name-popup_max_height": "Hauteur maximale du popup", + "middle-click-popup/@settings-name-popup_scale": "Taille du popup de bloc", + "middle-click-popup/@settings-name-popup_width": "Largeur du popup", + "jump-to-def/@description": "Permet d'accéder à la définition d'un bloc personnalisé à l'aide du bouton central de la souris ou de Maj + Clic sur le bloc.", + "jump-to-def/@info-developer-tools": "Cet addon faisait auparavant partie de l'addon \"outils de développement\" mais a été déplacé ici.", + "jump-to-def/@name": "Accéder à la définition d'un bloc personnalisé", + "editor-searchable-dropdowns/@description": "Vous permet de rechercher les options dans les listes déroulantes de blocs.", + "editor-searchable-dropdowns/@name": "Bloquer la recherche déroulante", "data-category-tweaks-v2/@description": "Apporte des améliorations pour la catégorie des blocs de donnée (\"Variables\") dans l'éditeur.", "data-category-tweaks-v2/@name": "Améliorations pour la catégorie des blocs de donnée", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Déplacer les blocs au dessus de la liste des variables", @@ -17,42 +28,51 @@ "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Séparer les variables uniques aux sprites", "block-palette-icons/@description": "Ajoute des icônes dans les cercles colorés qui identifient les catégories de blocs", "block-palette-icons/@name": "Icônes des catégories de la palette des blocs", - "hide-flyout/@description": "Cache la palette des blocs si elle n'est pas survolée. Cliquez sur l'icône de cadenas pour la maintenir en place temporairement. Sinon, utilisez le mode \"Clic sur la catégorie\".", + "hide-flyout/@description": "Masque la palette de blocs sauf si vous la survolez. Cliquez sur l'icône de verrouillage pour le verrouiller temporairement. Ou utilisez le mode \"clic sur une catégorie\" pour l'afficher/masquer lorsque vous cliquez sur une catégorie de bloc.", "hide-flyout/@info-hoverExplanation": "Le mode \"Survol de la palette\" n'étend seulement la zone affichée. Si vous voulez pouvoir glisser les blocs dans cette zone sans qu'ils soient supprimés, utilisez un des autres modes.", "hide-flyout/@name": "Masquer automatiquement la palette de blocs", - "hide-flyout/@settings-name-speed": "Durée de l'animation", + "hide-flyout/@settings-name-lockLoad": "Ouvert par défaut", + "hide-flyout/@settings-name-speed": "Vitesse d’animation", "hide-flyout/@settings-name-toggle": "Activer...", "hide-flyout/@settings-select-speed-default": "Par défaut", - "hide-flyout/@settings-select-speed-long": "Longue", - "hide-flyout/@settings-select-speed-none": "Aucune", - "hide-flyout/@settings-select-speed-short": "Courte", + "hide-flyout/@settings-select-speed-long": "Lent", + "hide-flyout/@settings-select-speed-none": "Instantané", + "hide-flyout/@settings-select-speed-short": "Rapide", "hide-flyout/@settings-select-toggle-category": "Au clic de la catégorie", "hide-flyout/@settings-select-toggle-cathover": "Au survol de la catégorie", "hide-flyout/@settings-select-toggle-hover": "Au survol de la palette", - "hide-flyout/@update": "Cet addon a été révisé et de nombreux bugs ont été corrigés.", "mediarecorder/@description": "Ajoute un bouton \"démarrer l'enregistrement\" à la barre de menu de l'éditeur qui vous permet d'enregistrer la scène du projet.", "mediarecorder/@name": "Enregistreur vidéo de projet", "drag-drop/@description": "Vous permet de glisser des images ou des sons depuis votre explorateur de fichiers directement dans la listes des sprites, des sons et des costumes. Vous pouvez également faire glisser des fichiers texte dans les listes ou dans la boîte de dialogue \"demander et attendre\".", "drag-drop/@name": "Glisser-déposer de fichier", - "drag-drop/@settings-name-use-hd-upload": "Utiliser les upload HD", + "drag-drop/@settings-name-use-hd-upload": "Utiliser les importations HD", + "debugger/@description": "Ajoute une nouvelle fenêtre \"débogueur\" à l'éditeur. Permet l'enregistrement dans l'onglet \"Logs\" de la fenêtre du débogueur en utilisant les blocs \"log\", \"warn\" et \"error\". Le bloc \"breakpoint\" met le projet en pause lorsqu'il est exécuté. Toutes les piles de blocs en cours d'exécution peuvent être visualisées dans l'onglet \"Threads\" de la fenêtre du débogueur et, en cas de pause, le bouton \"Step\" peut être utilisé pour exécuter le bloc suivant. Un graphique des images par seconde et du nombre de clones peut être visualisé dans l'onglet \"Performance\".", + "debugger/@settings-name-fancy_graphs": "L'animation graphique (peut affecter les performances)", "debugger/@settings-name-log_broadcasts": "Enregistrer les envois de messages à tous les sprites", "debugger/@settings-name-log_clear_greenflag": "Effacer logs quand le drapeau vert est cliqué", "debugger/@settings-name-log_clone_create": "Enregistrer les créations de clone", - "debugger/@settings-name-log_failed_clone_creation": "Enregistrer le dépassement du nombre maximal de clones", + "debugger/@settings-name-log_failed_clone_creation": "Afficher dans la console lorsque la limite de clone est dépassée", "debugger/@settings-name-log_greenflag": "Enregistrer les clics du drapeau vert", - "debugger/@update": "Nouveaux onglets \"Processus\" et \"Performance\" dans la fenêtre du débogueur.", - "pause/@description": "Ajoute un bouton pause a côté du drapeau vert.", + "pause/@description": "Ajoute un bouton pour mettre le projet en pause à côté du drapeau vert.", + "pause/@info-keybind": "Le projet peut également être mis en pause avec Alt+X (Option+X sur macOS).", "pause/@name": "Bouton pause", "mute-project/@description": "Ctrl + Clic sur le drapeau vert pour couper/rétablir le son du projet.", "mute-project/@info-macOS": "Sur macOS, utilisez la touche Cmd plutôt que la touche Ctrl.", "mute-project/@name": "Mode lecture de projet en sourdine", + "vol-slider/@description": "Ajoute un curseur de volume à côté du drapeau vert.", + "vol-slider/@name": "Curseur de volume de projet", + "vol-slider/@settings-name-always": "Toujours afficher le curseur", + "vol-slider/@settings-name-defVol": "Volume par défaut", "clones/@description": "Ajoute un compteur dans l'éditeur pour voir le compte total de clones.", "clones/@name": "Compteur de clones", + "clones/@settings-name-projectpage": "Afficher dans les pages de projet", + "clones/@settings-name-showicononly": "Afficher l'icône uniquement", "mouse-pos/@description": "Affiche la position X/Y de la souris a côté du drapeau vert dans l'éditeur.", - "mouse-pos/@name": "Position de la souris", + "mouse-pos/@name": "Affichage de la position de la souris", "color-picker/@description": "Ajoute une entrée pour code hexa aux palettes de couleurs.", "color-picker/@name": "Palette de couleurs hexa", "remove-sprite-confirm/@description": "Vous demande si vous êtes sûrs de supprimer un sprite dans un projet.", + "remove-sprite-confirm/@info-restoretip": "Conseil : si vous supprimez accidentellement un sprite, un costume ou un son, vous pouvez annuler la suppression en cliquant sur Édition dans la barre de menus, puis sur Restaurer.", "remove-sprite-confirm/@name": "Confirmation pour la suppression de sprite", "block-count/@description": "Affiche le nombre total de blocs d'un projet dans la barre de menus de l'éditeur. Faisait auparavant partie de \"nombre de sprites et de scripts\".", "block-count/@name": "Compteur de Blocs", @@ -71,10 +91,26 @@ "onion-skinning/@settings-select-layering-front": "Devant", "onion-skinning/@settings-select-mode-merge": "Combiner les images", "onion-skinning/@settings-select-mode-tint": "Teinte", + "paint-snap/@description": "Accrocher des objets dans l'éditeur de costumes aux boîtes et aux nœuds vectoriels.", + "paint-snap/@name": "Ancrage de l'éditeur de costumes", + "paint-snap/@settings-name-boxCenter": "Ancrer à partir du centre de la boîte de sélection", + "paint-snap/@settings-name-boxCorners": "Ancrer à partir des coins de la boîte de sélection", + "paint-snap/@settings-name-boxEdgeMids": "Ancrer à partir des points centraux des bords de la boîte de sélection", + "paint-snap/@settings-name-enable-default": "Activer par défaut", + "paint-snap/@settings-name-guide-color": "Couleur de la boîte de guidage", + "paint-snap/@settings-name-objectCenters": "Ancrer au centre de l'objet", + "paint-snap/@settings-name-objectCorners": "Ancrer aux coins de l'objet", + "paint-snap/@settings-name-objectEdges": "Ancrer aux bordures de l'objet", + "paint-snap/@settings-name-objectMidlines": "Ancrer aux lignes centrales de l'objet", + "paint-snap/@settings-name-pageAxes": "Ancrer aux axes x et y de la page", + "paint-snap/@settings-name-pageCenter": "Aligner au centre de la page", + "paint-snap/@settings-name-pageCorners": "Ancrer aux coins de la page", + "paint-snap/@settings-name-pageEdges": "Ancrer aux bordures de la page", + "paint-snap/@settings-name-threshold": "Distance d'ancrage", "default-costume-editor-color/@description": "Modifie les couleurs par défaut et la taille du contour utilisées par l'éditeur de costumes.", "default-costume-editor-color/@name": "Couleurs par défaut de l'éditeur de costumes personnalisables ", "default-costume-editor-color/@settings-name-fill": "Couleur de remplissage par défaut", - "default-costume-editor-color/@settings-name-persistence": "Utiliser la couleur précédente au lieu de la valeur par défaut lors du changement d'outil", + "default-costume-editor-color/@settings-name-persistence": "Conserve la même couleur au lieu de la changer à chaque changement d'outil", "default-costume-editor-color/@settings-name-stroke": "Couleur de contour par défaut", "default-costume-editor-color/@settings-name-strokeSize": "Taille de contour par défaut", "bitmap-copy/@description": "Vous permet de copier une image bitmap de l'éditeur d'images, pour pouvoir la coller ensuite dans d'autres sites ou logiciels.", @@ -82,13 +118,18 @@ "bitmap-copy/@name": "Copie des images bitmap", "2d-color-picker/@description": "Remplace les curseurs de saturation et de luminosité par un sélecteur de couleurs 2D. Maintenez Maj. enfoncé tout en déplaçant le curseur pour changer les valeurs sur un seul axe.", "2d-color-picker/@name": "Sélecteur de couleurs 2D", - "better-img-uploads/@description": "Ajoute un nouveau bouton au-dessus du bouton \"upload le costume\" qui convertit automatiquement les images bitmap téléchargées en images SVG (vecteur) pour éviter de perdre en qualité.", + "paint-skew/@description": "Maintenez la touche Ctrl enfoncée lorsque vous mettez un objet à l'échelle sur ses côtés pour l'incliner. Maintenez la touche Alt enfoncée lorsque vous inclinez un objet pour l'incliner à partir de son centre.", + "paint-skew/@info-useCmdOnMac": "Sur macOS, utilisez la touche Commande au lieu de la touche Contrôle et la touche Option au lieu de la touche Alt.", + "paint-skew/@name": "Inclinaison dans l'éditeur de costumes ", + "better-img-uploads/@description": "Ajoute un nouveau bouton au-dessus du bouton \"importer un costume\" qui convertit automatiquement les images bitmap téléchargées en images SVG (vecteur) pour éviter de perdre en qualité.", "better-img-uploads/@info-notSuitableEdit": "Évitez d'utiliser le bouton de téléchargement HD si vous prévoyez de modifier l'image après le téléchargement.", - "better-img-uploads/@name": "Chargement d'images en HD", + "better-img-uploads/@name": "Charger des images en HD", "better-img-uploads/@settings-name-fitting": "Taille de l'image", - "better-img-uploads/@settings-select-fitting-fill": "Étirer pour remplir la scène", - "better-img-uploads/@settings-select-fitting-fit": "Étirer pour remplir la scène", + "better-img-uploads/@settings-select-fitting-fill": "Étirer pour remplir l'espace", + "better-img-uploads/@settings-select-fitting-fit": "Rétrécir pour adapter au canevas", "better-img-uploads/@settings-select-fitting-full": "Taille originale", + "pick-colors-from-stage/@description": "Permet à la pipette dans l’éditeur de costume de choisir également des couleurs de la scène.", + "pick-colors-from-stage/@name": "Choisissez des couleurs sur scène avec la pipette", "custom-block-shape/@description": "Ajustez les marges, le rayon des coins et la hauteur de l'entaille des blocs Scratch.", "custom-block-shape/@info-paddingWarning": "Diminuer la marge est uniquement visible par vous, donc si vos projets sont vus par d'autres utilisateurs, vos scripts pourraient se chevaucher.", "custom-block-shape/@name": "Forme de bloc personnalisable", @@ -101,16 +142,39 @@ "custom-block-shape/@settings-name-cornerSize": "Taille des coins (0-300%)", "custom-block-shape/@settings-name-notchSize": "Hauteur de l'entaille (0-150%)", "custom-block-shape/@settings-name-paddingSize": "Taille de la marge (50-200%)", + "editor-square-inputs/@settings-name-color": "Entrées de couleurs", + "editor-square-inputs/@settings-name-text": "Entrées de textes", + "zebra-striping/@description": "Fait alterner les blocs de la même catégorie entre des nuances plus claires et plus foncées lorsqu'ils sont imbriqués les uns dans les autres. Ceci est également connu sous le nom de \"rayures zébrées\" (\"zebra striping\" en Anglais).", + "zebra-striping/@name": "Alternance de la couleur des blocs imbriqués", + "zebra-striping/@settings-name-intensity": "Intensité (0-100%)", + "zebra-striping/@settings-name-shade": "Ombre", + "zebra-striping/@settings-select-shade-darker": "Plus sombre", + "zebra-striping/@settings-select-shade-lighter": "Plus clair", + "editor-compact/@description": "Réduit la taille des boutons, des champs de saisie, de la barre de menu et d'autres éléments de l'éditeur, libérant ainsi de l'espace pour des composants tels que la zone de code, l'éditeur de costumes et les aperçus de costumes, comme c'était le cas dans Scratch 2.0.", + "editor-compact/@info-hide-icons-update": "Pour masquer les icônes de la barre de menu, utilisez l'addon \"Barre de menu personnalisable\".", + "editor-compact/@name": "Éditeur compact", + "editor-compact/@settings-name-hideLabels": "Masquer les étiquettes des boutons dans l'éditeur de costumes et de sons", + "custom-menu-bar/@description": "Permet de masquer des éléments spécifiques de la barre de menu de l'éditeur ou de supprimer leurs étiquettes ou icônes.", + "custom-menu-bar/@name": "Barre de menu de l'éditeur personnalisable", + "custom-menu-bar/@settings-name-menu-labels": "Afficher le menu...", + "custom-menu-bar/@settings-select-menu-labels-both": "Icônes et étiquettes", + "custom-menu-bar/@settings-select-menu-labels-icons": "Icônes uniquement", + "custom-menu-bar/@settings-select-menu-labels-labels": "Étiquettes uniquement", "editor-theme3/@description": "Personnalisez la couleur des blocs pour chaque catégorie de bloc dans l'éditeur.", - "editor-theme3/@name": "Couleurs des blocs personnalisable", - "editor-theme3/@preset-description-black": "Rendre l'arrière-plan des blocs noir.", - "editor-theme3/@preset-description-dark": "Version sombre des couleurs par défaut", - "editor-theme3/@preset-description-original": "Les couleurs classiques des blocs de Scratch 2.0", - "editor-theme3/@preset-description-tweaks": "Évènements, Contrôles et Blocs personnalisés avec les couleurs inspirées de Scratch 2.0", + "editor-theme3/@name": "Couleurs de bloc personnalisables", + "editor-theme3/@preset-description-black": "Rend le fond des blocs noir et les bordures/le texte colorés", + "editor-theme3/@preset-description-contrast": "Palette de blocs de Scratch 3.0 avec contraste élevé", + "editor-theme3/@preset-description-dark": "Versions encore plus sombres des couleurs par défaut", + "editor-theme3/@preset-description-new-dark": "Versions foncées des couleurs par défaut qui conviennent aux thèmes sombres.", + "editor-theme3/@preset-description-original": "Les couleurs originales des blocs de Scratch 2.0", + "editor-theme3/@preset-description-tweaks": "Couleurs des blocs de Scratch 3.0 avec ceux des sections Événements, Contrôle et Mes blocs qui ont des couleurs ressemblant à Scratch 2.0", "editor-theme3/@preset-name-black": "Noir", - "editor-theme3/@preset-name-dark": "Sombre", - "editor-theme3/@preset-name-original": "Couleurs 2.0", - "editor-theme3/@preset-name-tweaks": "Ajustements 3.0", + "editor-theme3/@preset-name-contrast": "Contrasté élevé", + "editor-theme3/@preset-name-dark": "Plus sombre", + "editor-theme3/@preset-name-new-dark": "Sombre", + "editor-theme3/@preset-name-original": "Couleurs de Scratch 2.0", + "editor-theme3/@preset-name-tweaks": "Scratch 3.0 modifié", + "editor-theme3/@settings-name-comment-color": "Commentaires", "editor-theme3/@settings-name-control-color": "contrôle", "editor-theme3/@settings-name-custom-color": "personnalisé", "editor-theme3/@settings-name-data-lists-color": "listes", @@ -126,20 +190,31 @@ "editor-theme3/@settings-select-text-colorOnBlack": "Coloré sur fond noir", "editor-theme3/@settings-select-text-colorOnWhite": "Coloré sur fond blanc", "editor-theme3/@settings-select-text-white": "Blanc", - "editor-theme3/@update": "Nouvelle option qui permet de changer les couleurs des blocs dans les forums.", - "custom-block-text/@description": "Change l'épaisseur du texte des blocs et y ajoute éventuellement une ombre.", + "custom-block-text/@description": "Permet de personnaliser le style du texte des blocs, notamment en ajustant la taille, en utilisant du texte en gras ou en ajoutant une ombre.", "custom-block-text/@name": "Style de texte des blocs personnalisés", "custom-block-text/@settings-name-bold": "Texte en gras", "custom-block-text/@settings-name-shadow": "Ombre sous le texte", - "editor-colored-context-menus/@description": "Menus contextuels colorés quuan on fait un clic droit sur un bloc ", + "custom-block-text/@settings-name-size": "Taille du texte (%)", + "editor-colored-context-menus/@description": "Menus contextuels colorés quand on fait un clic droit sur un bloc.", "editor-colored-context-menus/@name": "Menus déroulants colorés", + "editor-stage-left/@description": "Déplace la scène à gauche de l'éditeur, comme dans Scratch 2.0.", + "editor-stage-left/@info-reverseOrder": "Pour modifier la position des boutons au-dessus de la scène, utilisez l'addon \"inverser l'ordre des contrôles du projet\".", "editor-stage-left/@name": "Afficher la scène sur le côté gauche", "editor-buttons-reverse-order/@description": "Bouge le drapeau vert et le bouton stop sur la droite, et le bouton plein écran à la gauche, comme dans Scratch 2.0", - "editor-buttons-reverse-order/@name": "Inverser l'ordre des contrôles du projet", + "editor-buttons-reverse-order/@name": "Inverse l'ordre des contrôles du projet", "variable-manager/@description": "Ajoute un nouvel onglet à côté de \"sons\" dans l'éditeur pour mettre à jour facilement les variables et les listes.", "variable-manager/@name": "Gestionnaire de variables", "search-sprites/@description": "Ajoute un champ de recherche au volet des sprites pour les rechercher par nom.", - "search-sprites/@name": "Recherche de sprites par nom", + "search-sprites/@name": "Boîte de recherche dans le volet sprite", + "sprite-properties/@description": "Cache le panneau de propriétés du sprite par défaut, comme dans Scratch 2.0. Utilisez le bouton info sur le sprite actuellement sélectionné ou double-cliquez sur un sprite pour afficher à nouveau le panneau des propriétés. Pour le réafficher, utilisez le bouton de réduction dans le panneau de propriétés ou double-cliquez sur un sprite.", + "sprite-properties/@name": "Réduire les propriétés des sprites", + "sprite-properties/@settings-name-autoCollapse": "Réduction automatique lorsque la souris quitte le panneau des sprites", + "sprite-properties/@settings-name-hideByDefault": "Réduire le panneau par défaut", + "sprite-properties/@settings-name-transitionDuration": "Vitesse d’animation", + "sprite-properties/@settings-select-transitionDuration-default": "Par défaut", + "sprite-properties/@settings-select-transitionDuration-long": "Lent", + "sprite-properties/@settings-select-transitionDuration-none": "Instantané", + "sprite-properties/@settings-select-transitionDuration-short": "Rapide", "gamepad/@description": "Interagissez avec les projets en utilisant une manette USB ou Bluetooth.", "gamepad/@name": "Support manette", "gamepad/@settings-name-hide": "Cacher le bouton des paramètres lorsque aucune manette n'est détectée", @@ -150,10 +225,7 @@ "folders/@name": "Dossiers de sprites", "block-switching/@description": "Faites un clic droit sur un bloc pour le remplacer par un autre bloc associé.", "block-switching/@name": "Échanger de bloc", - "block-switching/@settings-name-border": "Ajouter un bord", "block-switching/@settings-name-control": "Blocs de contrôle", - "block-switching/@settings-name-customargs": "Arguments de bloc personnalisés", - "block-switching/@settings-name-customargsmode": "Options d'arguments de bloc personnalisés affichées", "block-switching/@settings-name-data": "Blocs de données", "block-switching/@settings-name-event": "Blocs d'événements", "block-switching/@settings-name-extension": "Blocs d'extension", @@ -163,8 +235,6 @@ "block-switching/@settings-name-operator": "Blocs d'opérateurs", "block-switching/@settings-name-sensing": "Blocs de capteurs", "block-switching/@settings-name-sound": "Blocs de son", - "block-switching/@settings-select-customargsmode-all": "Arguments dans tous les blocs personnalisés du sprite", - "block-switching/@settings-select-customargsmode-defOnly": "Arguments dans le bloc personnalisé actuel", "load-extensions/@description": "Ouvre automatiquement la musique, le stylet et d'autres extensions dans le menu des catégories de blocs de l'éditeur.", "load-extensions/@name": "Ajout automatique d'extensions", "load-extensions/@settings-name-music": "Musique", @@ -176,17 +246,24 @@ "custom-zoom/@settings-name-autohide": "Masquer automatiquement les contrôles pour le zoom", "custom-zoom/@settings-name-maxZoom": "Zoom maximum (100-500%)", "custom-zoom/@settings-name-minZoom": "Zoom minimum (1-100 %)", - "custom-zoom/@settings-name-speed": "Masquer automatiquement la durée de l'animation", + "custom-zoom/@settings-name-speed": "Vitesse d'animation pour le masquage automatique", "custom-zoom/@settings-name-startZoom": "Zoom de base (50-500 %)", "custom-zoom/@settings-name-zoomSpeed": "Vitesse du zoom (50-200 %)", "custom-zoom/@settings-select-speed-default": "Par défaut", - "custom-zoom/@settings-select-speed-none": "Aucun", - "custom-zoom/@settings-select-speed-short": "Court", - "initialise-sprite-position/@description": "Changer les position par défaut des ordonnées et abscisses lors de la création d'un nouveau costume", + "custom-zoom/@settings-select-speed-long": "Lent", + "custom-zoom/@settings-select-speed-none": "Instantané", + "custom-zoom/@settings-select-speed-short": "Rapide", + "copy-reporter/@description": "Ajoute une option pour copier les valeurs affichées par les moniteurs de variables (à partir du menu contextuel du clic droit) et les bulles des blocs rapporteurs.", + "copy-reporter/@name": "Copier la valeur du bloc rapporteur", + "initialise-sprite-position/@description": "Modifie l'emplacement des sprites nouvellement créés sur la scène.", "initialise-sprite-position/@name": "Position d'un nouveau sprite personnalisable", - "initialise-sprite-position/@settings-name-library": "Place les sprites de la bibliothèque aléatoirement", + "initialise-sprite-position/@settings-name-duplicate": "Position de duplication des sprites", + "initialise-sprite-position/@settings-name-library": "Place les sprites de la bibliothèque à une position aléatoire", "initialise-sprite-position/@settings-name-x": "Abscisse x", "initialise-sprite-position/@settings-name-y": "Ordonnée y", + "initialise-sprite-position/@settings-select-duplicate-custom": "Position x/y spécifiée", + "initialise-sprite-position/@settings-select-duplicate-keep": "La/Le même que le sprite original", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Aléatoire", "blocks2image/@description": "Faites un clic droit sur la zone de code de l'éditeur pour exporter les blocs sous formes d'images SVG / PNG.", "blocks2image/@name": "Enregistrer les blocs en tant qu'image", "remove-curved-stage-border/@description": "Enlève les bords arrondis de la scène, vous permettant de voir les coins.", @@ -196,38 +273,39 @@ "transparent-orphans/@settings-name-block": "Transparence des blocs (%)", "transparent-orphans/@settings-name-dragged": "Transparence des blocs déplacés (%)", "transparent-orphans/@settings-name-orphan": "Transparence des blocs orphelins (%)", - "paint-by-default/@description": "Modifie l'action par défaut des boutons \"Choisir un Sprite/Costume/Backdrop/Son\", qui ouvrent la bibliothèque par défaut.", + "paint-by-default/@description": "Modifie l'action par défaut des boutons \"Choisir un Sprite/Costume/Importer/Son\", qui ouvrent la bibliothèque par défaut.", "paint-by-default/@name": "Éditeur de costume par défaut", - "paint-by-default/@settings-name-backdrop": "Ajouté", + "paint-by-default/@settings-name-backdrop": "Ajouter un arrière-plan", "paint-by-default/@settings-name-costume": "Ajouter un costume", - "paint-by-default/@settings-name-sound": "Ajouté un son", - "paint-by-default/@settings-name-sprite": "Ajouté un lutin", + "paint-by-default/@settings-name-sound": "Ajouter un son", + "paint-by-default/@settings-name-sprite": "Ajouter un sprite", "paint-by-default/@settings-select-backdrop-library": "Bibliothèque", "paint-by-default/@settings-select-backdrop-paint": "Peindre", - "paint-by-default/@settings-select-backdrop-upload": "Uploadé", + "paint-by-default/@settings-select-backdrop-upload": "Importer", "paint-by-default/@settings-select-costume-library": "Bibliothèque", "paint-by-default/@settings-select-costume-paint": "Peindre", - "paint-by-default/@settings-select-costume-upload": "Uploadé", + "paint-by-default/@settings-select-costume-upload": "Importer", "paint-by-default/@settings-select-sound-library": "Bibliothèque", - "paint-by-default/@settings-select-sound-record": "Enregistrer", - "paint-by-default/@settings-select-sound-upload": "Uploadé", + "paint-by-default/@settings-select-sound-record": "Enregistrer l'écran", + "paint-by-default/@settings-select-sound-upload": "Importer", "paint-by-default/@settings-select-sprite-library": "Bibliothèque", "paint-by-default/@settings-select-sprite-paint": "Peindre", - "paint-by-default/@settings-select-sprite-upload": "Uploadé", + "paint-by-default/@settings-select-sprite-upload": "Importer", "block-cherry-picking/@description": "Ajoutes la possibilité de déplacé les blocs un par un avec la touche Ctrl (plutôt que le script le suivant)", "block-cherry-picking/@info-flipControls": "Si les \"contrôles inversés\" sont activés, la saisie de blocs individuellement sera activer par défaut. Maintenez la touche Ctrl enfoncée pour faire glisser toute la pile.", "block-cherry-picking/@info-macContextDisabled": "Sur macOS, utilisé la touche cmd plutôt que la touche Ctrl.", "block-cherry-picking/@name": "Prendre un seul bloc avec la touche Ctrl", "block-cherry-picking/@settings-name-invertDrag": "Contrôle inversé", - "hide-new-variables/@description": "N'affiche pas automatiquement les nouvelles variables ou listes.", + "hide-new-variables/@description": "Ne pas afficher automatiquement les moniteurs pour les variables ou les listes nouvellement créées.", "hide-new-variables/@name": "Masquer les nouvelles variables", - "editor-extra-keys/@description": "Ajoute plus de touches aux blocs \"touche () enfoncée ?\" et \"quand la touche () est pressée\", les listes déroulantes de blocs, telles que entrée, point, virgule, etc.", + "editor-extra-keys/@description": "Ajoute plus de touches aux listes déroulantes des blocs \"touche () pressée ?\" et \"quand la touche () est pressée\", telles qu'entrée, point, virgule, etc. Ces touches marcheront même pour les utilisateurs qui n'ont pas cet addon.", "editor-extra-keys/@info-experimentalKeysWarn": "Les « touches expérimentales » comprennent le égale, le slash, le point-virgule et plus encore. Ils peuvent ne pas fonctionner sur tous les systèmes d'exploitation ou toutes les configurations de clavier.", "editor-extra-keys/@info-shiftKeysWarn": "Les « touches Shift ou Maj.» incluent des touches qui nécessitent généralement la touche Shift ou Maj. et une touche numérique, comme le hashtag, le point d'exclamation, etc. Ces touches ne fonctionnent qu'avec le bloc « quand la touche () est pressée» et ne fonctionnent pas sur tous les systèmes d'exploitation ou configurations de clavier.", "editor-extra-keys/@name": "Prise en charge de touches supplémentaire", - "editor-extra-keys/@settings-name-experimentalKeys": "Activer les touches expérimentales", - "editor-extra-keys/@settings-name-shiftKeys": "Activer les touches Maj. ou Shift", + "editor-extra-keys/@settings-name-experimentalKeys": "Afficher les touches expérimentales", + "editor-extra-keys/@settings-name-shiftKeys": "Afficher les touches Maj et Shift.", "hide-delete-button/@description": "Masque le bouton de suppression (icône de la corbeille) des sprites, costumes et sons. Ils peuvent toujours être supprimés à l'aide du clic droit.", + "hide-delete-button/@info-restoretip": "Conseil : si vous supprimez accidentellement un sprite, un costume ou un son, vous pouvez annuler la suppression en cliquant sur Édition dans la barre de menus, puis sur Restaurer.", "hide-delete-button/@name": "Cacher le bouton supprimer", "hide-delete-button/@settings-name-costumes": "Costumes et fond d'écrans", "hide-delete-button/@settings-name-sounds": "Sons", @@ -236,13 +314,20 @@ "no-script-bumping/@name": "Ne pas espacer automatiquement les scripts qui se chevauchent", "disable-stage-drag-select/@description": "Supprime la possibilité de faire glisser des sprites sur la scène dans l'éditeur, à l'exception de ceux explicitement définis comme déplaçables. Maintenez la touche Maj enfoncée tout en faisant glisser un sprite pour le déplacer normalement.", "disable-stage-drag-select/@name": "Sprites non glissables dans l'éditeur", - "move-to-top-bottom/@description": "Ajoute un élément au menu contextuel du clics droit pour déplacé un costume ou un son en haut ou en bas de ça liste. Précédemment dans le Scratch Developer Tools.", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "Autoriser le glissement lorsque le projet est arrêté", + "move-to-top-bottom/@description": "Ajouter une option au menu du clic droit des costumes et des sons pour les déplacer en haut ou en bas de la liste.", + "move-to-top-bottom/@info-developer-tools": "Cet addon faisait auparavant partie de l'addon \"outils de développement\" mais a été déplacé ici.", "move-to-top-bottom/@name": "Déplacer le costume en haut ou en bas", + "move-to-top-layer/@description": "Shift+Clic un sprite dans le volet sprite pour le déplacer vers l’avant (plan supérieur) sur la scène.", + "move-to-top-layer/@name": "Déplacer le sprite à l'avant plan", "disable-paste-offset/@description": "Collez les éléments copiés à leur position d'origine au lieu de les déplacer légèrement dans l'éditeur de costumes.", + "disable-paste-offset/@info-vanilla": "Ce comportement peut également être obtenu sans cet addon en faisant Alt+clic sur l'élément.", "disable-paste-offset/@name": "Ne pas déplacer les éléments collés", "block-duplicate/@description": "Dupliquez rapidement un script en le déplaçant tout en maintenant la touche Alt enfoncée. Maintenez la touche Ctrl enfoncée pour ne dupliquer qu'un seul bloc au lieu de toute la pile attachée en dessous.", "block-duplicate/@info-mac": "Sur macOS, utilisez la touche Option au lieu de la touche Alt et la touche Commande au lieu de la touche Contrôle.", "block-duplicate/@name": "Dupliquer le script avec la touche Alt", + "rename-broadcasts/@description": "Ajoute une option pour renommer les messages de diffusion dans le menu déroulant de ces blocs.", + "rename-broadcasts/@name": "Renommer les diffusions", "swap-local-global/@description": "Ajoute plus d'options lors du renommage d'une variable ou d'une liste existante : permet de basculer entre « Pour tous les sprites » et « Pour ce sprite uniquement » et si les variables sont stockées dans le cloud. Ajoute également une nouvelle option lors d'un clic droit sur une variable/liste pour changer rapidement sa portée.", "swap-local-global/@name": "Basculer les variables entre \"Pour tous les sprites\" et \"Pour ce sprite uniquement.", "editor-comment-previews/@description": "Vous permet de prévisualiser le contenu des commentaires en survolant les commentaires et blocs réduits. Vous pouvez l'utiliser pour afficher les commentaires hors écran, identifier un bloc de boucle à partir du bas par son aperçu, insérer de nombreux commentaires longs dans un petit espace, etc.", @@ -257,7 +342,32 @@ "editor-comment-previews/@settings-select-delay-none": "Aucun", "editor-comment-previews/@settings-select-delay-short": "Court", "columns/@description": "Divise le menu des catégories de blocs en deux colonnes et le déplace vers le haut de la palette de blocs, comme dans Scratch 2.0", - "columns/@name": "Menu catégorie à deux colonnes", + "columns/@name": "Menu de catégories à deux colonnes", + "number-pad/@description": "Afficher le pavé numérique virtuel de Scratch lors de la modification des champs numériques dans les blocs sur tous les appareils, au lieu des seuls appareils à écran tactile.", + "number-pad/@info-explanation": "Un pavé numérique apparaîtra lors de l’édition des entrées de nombres à partir de blocs tels que \"déplacer () étapes\".", + "number-pad/@name": "Toujours afficher le pavé numérique", + "editor-number-arrow-keys/@description": "Utilisez les touches fléchées haut et bas pour augmenter ou diminuer les valeurs des champs de saisie tels que ceux des blocs ou de la zone de propriétés des sprites.", + "editor-number-arrow-keys/@name": "Incrémentation avec les touches fléchées dans l'éditeur", + "editor-number-arrow-keys/@settings-name-alt": "Modifier avec Alt + Touche", + "editor-number-arrow-keys/@settings-name-altCustom": "Modifier avec Alt+Touche", + "editor-number-arrow-keys/@settings-name-regular": "Modifier en cas d'appui régulier sur une touche", + "editor-number-arrow-keys/@settings-name-regularCustom": "Modifier en cas d'appui régulier sur une touche", + "editor-number-arrow-keys/@settings-name-shift": "Modifier avec Maj + Touche", + "editor-number-arrow-keys/@settings-name-shiftCustom": "Modifier avec Maj+Touche", + "editor-number-arrow-keys/@settings-name-useCustom": "Utiliser des valeurs personnalisées", + "editor-number-arrow-keys/@settings-select-alt-hundredth": "0,01", + "editor-number-arrow-keys/@settings-select-alt-none": "Aucun", + "editor-number-arrow-keys/@settings-select-alt-tenth": "0,1", + "editor-number-arrow-keys/@settings-select-regular-hundredth": "0,01", + "editor-number-arrow-keys/@settings-select-regular-none": "Aucun", + "editor-number-arrow-keys/@settings-select-regular-tenth": "0,1", + "editor-number-arrow-keys/@settings-select-shift-hundredth": "0,01", + "editor-number-arrow-keys/@settings-select-shift-none": "Aucun", + "editor-number-arrow-keys/@settings-select-shift-tenth": "0,1", + "expanded-backpack/@description": "Organise le contenu du sac à dos de l'éditeur dans une grille bidirectionnelle extensible, similaire à la bibliothèque de costumes et augmente la taille de certaines vignettes.", + "expanded-backpack/@name": "Plusieurs rangées dans le sac à dos Scratch", + "expanded-backpack/@settings-name-rows": "Nombre de rangées", + "expanded-backpack/@settings-name-upscale": "Vignettes des costumes et des scripts plus grandes", "script-snap/@description": "Les script vont automatiquement s'aligner sur les points de l'arrière-plan.", "script-snap/@name": "Aligner les scripts sur la grille", "script-snap/@preset-name-default": "Par défaut", @@ -265,10 +375,8 @@ "script-snap/@preset-name-whole-block": "Bloc entier", "script-snap/@settings-name-grid": "Taille de la grille (pixels)", "fullscreen/@description": "Corrige certains effets indésirables dans le mode plein écran des projets, l'ouvre dans le mode plein écran de votre navigateur et masque la barre d'outils du drapeau vert.", - "fullscreen/@info-hideToolbarNotice": "Si vous choisissez de masquer la barre d'outils, n'oubliez pas que vous pouvez utiliser la touche Échap pour quitter le mode plein écran du projet", "fullscreen/@name": "Plein écran amélioré", "fullscreen/@settings-name-browserFullscreen": "Ouvrir le projet en mode plein écran", - "fullscreen/@settings-name-hideToolbar": "Masquer la bar d'outils en grand écran", "hide-stage/@description": "Ajoute un bouton à côté des boutons \"petite scène\" et \"grande scène\" qui cache la scène et la liste des sprites, rendant la zone de code plus grande.", "hide-stage/@name": "Cacher la scène et la liste des sprites", "editor-stepping/@description": "Ajoute un contour bleu sur les blocs qui sont actuellement exécutés dans un projet.", diff --git a/src/addons/addons-l10n-settings/hu.json b/src/addons/addons-l10n-settings/hu.json index 2fe5411a5ce..3b0eec1bf00 100644 --- a/src/addons/addons-l10n-settings/hu.json +++ b/src/addons/addons-l10n-settings/hu.json @@ -1,35 +1,43 @@ { - "cat-blocks/@description": "Visszahozza a szerkesztőbe a macskás kinézetű kezdőblokkokat a 2020-as Áprilisi Bolondok napról.", - "cat-blocks/@info-watch": "A \"Figyeld az egérmutatót\" opció hatással lehet a teljesítményre, miközben a szerkesztő meg van nyitva.", + "cat-blocks/@info-watch": "A \"Figyeld az egérmutatót\" opció hatással lehet a teljesítményre, miközben a szerkesztő meg van nyitva.", "cat-blocks/@name": "Cica-blokkok", "cat-blocks/@settings-name-watch": "Figyeld az egérmutatót", - "editor-devtools/@description": "Hozzáad egy keresőmezőt és új menü opciókat a szerkesztőhöz: másolj/illessz be blokkokat, jobb rendrakás, ugorj saját blokk definíciójához, és még sok más! Nyomj Ctrl+F-t, hogy elkezdhess gépelni a keresőmezőbe, Ctrl+Szóközt, hogy felhozd az \"illessz be blokkot névalapján\" felugró menüt, Ctrl+Bal/Jobb Nyíl, hogy a keresési előzményekben kalandozz.", + "editor-devtools/@description": "Hozzáad új menüopciókat a szerkesztőhöz: másolj/illessz be blokkokat, jobb rendrakás, és még sok más!", "editor-devtools/@name": "Fejlesztői eszközök", "editor-devtools/@settings-name-enableCleanUpPlus": "Fejlesztett \"Rendrakás\"", - "editor-devtools/@settings-name-enableMiddleClickFinder": "Kattints középső egérgombbal változókra, saját blokkokra vagy eseményekre, hogy navigálj", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Blokkok beillesztése a kurzorhoz", - "editor-searchable-dropdowns/@description": "Megengedi, hogy keress a blokkok legördülő menüiben.", - "editor-searchable-dropdowns/@name": "Keresés a legördülő menükben", + "find-bar/@description": "Hozzáad egy keresőmezőt a hang fültől jobbra, ami megkeresi és odavisz egy adott kód részhez, jelmezhez vagy hanghoz. Használd a Ctrl+Bal-t és Ctrl+Jobb-ot a kód mezőben, hogy navigálj az előfordulások között.", + "find-bar/@info-developer-tools": "Ez a bővítmény korábban a \"Fejlesztői eszközök\" bővítmény része volt, de mostanra át lett helyezve ide.", + "find-bar/@name": "Szerkesztő keresőmező", + "middle-click-popup/@description": "Középső, vagy Shift-es kattintás a kódterületen belülre, vagy Ctrl+Szóköz megnyomása egy blokk-kereső ablak felhozásához. Írd be a bemeneteli mezőjébe a blokkok neveit (vagy azoknak részeit), majd húzd ki a kódterületre, ha hozzá szeretnéd adni projektedhez. Navigációhoz a nyílbillentyűket és az entert is használhatod. Az automatikus kitöltést támogatja, a tabulátor gombot kell érvénybeléptetéséhez megnyomni. A menü nyitvatartásához tartsd a Shiftet lenyomva egy blokk kihúzása közben.", + "middle-click-popup/@info-developer-tools": "Ez a kiegészítő korábban a „fejlesztői eszközök” része volt, de most ide költözött.", + "middle-click-popup/@name": "Blokkok beillesztése név alapján", + "middle-click-popup/@settings-name-popup_max_height": "Ablak maximális magassága", + "middle-click-popup/@settings-name-popup_scale": "Felugró ablak mérete", + "middle-click-popup/@settings-name-popup_width": "Felugró ablak hossza", + "jump-to-def/@description": "Megengedi, hogy egy egyéni blokk definiálásához ugorj a középső egérgombbal, vagy Shift+Kattintással az adott blokkon.", + "jump-to-def/@info-developer-tools": "Ez a bővítmény korábban a \"Fejlesztői eszközök\" bővítmény része volt, de mostanra át lett helyezve ide.", + "jump-to-def/@name": "Ugrás egyéni blokk definiálásához", + "editor-searchable-dropdowns/@description": "Képessé tesz, hogy keress a lehetőségek közül a blokkok legördülő menüiben.", + "editor-searchable-dropdowns/@name": "Keresés a blokkok legördülő menüjében", "data-category-tweaks-v2/@description": "Igazításokat hajt végre az Adat (\"Változók\") blokk kategórián.", "data-category-tweaks-v2/@name": "Adat kategória igazítások", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Adat blokkok mozgatása a váltózó lista fölé", "data-category-tweaks-v2/@settings-name-separateListCategory": "Különálló Lista Kategória", "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Adott szereplő változóinak elkülönítése", "block-palette-icons/@description": "Ikonokat helyez el a színes körökben, amelyekkel könnyebben azonosíthatod a kategóriákat.", - "block-palette-icons/@name": "Blokk választó kategória ikonok", - "hide-flyout/@description": "Elrejti a blokk választót, ha nem felette van a kurzor. Kattints a lakat ikonra, hogy átmenetileg zárold a pozícióját. Alternatívaként használd a \"kategória kattintásra\" módot.", + "block-palette-icons/@name": "Blokkválasztó kategória ikonok", "hide-flyout/@info-hoverExplanation": "A \"kurzor a választó felület felett\" mód csak a látóteredet növeli meg. Ha oda is szeretnél húzni blokkokat a törlődésük nélkül, akkor használj egy másik módot.", - "hide-flyout/@name": "Blokk választó automatikus elrejtése", - "hide-flyout/@settings-name-speed": "Animáció hossza", + "hide-flyout/@name": "Blokkválasztó automatikus elrejtése", + "hide-flyout/@settings-name-speed": "Animáció sebessége", "hide-flyout/@settings-name-toggle": "Váltás ha...", "hide-flyout/@settings-select-speed-default": "Alap", - "hide-flyout/@settings-select-speed-long": "Hosszú", - "hide-flyout/@settings-select-speed-none": "Nincs", - "hide-flyout/@settings-select-speed-short": "Rövid", + "hide-flyout/@settings-select-speed-long": "Lassú", + "hide-flyout/@settings-select-speed-none": "Azonnali", + "hide-flyout/@settings-select-speed-short": "Gyors", "hide-flyout/@settings-select-toggle-category": "Kategória kattintásra", "hide-flyout/@settings-select-toggle-cathover": "Kurzor a kategóriák felett", "hide-flyout/@settings-select-toggle-hover": "Kurzor a választó felület felett", - "hide-flyout/@update": "Erre a kiegészítőre átdolgozás került sorra, amely során sok hiba javítva lett.", "mediarecorder/@description": "Hozzáad egy \"felvétel indítása\" gombot a szerkesztő menü sorába, ami megengedi, hogy felvedd a projekt színpadját.", "mediarecorder/@name": "Projekt videó felvevő", "drag-drop/@description": "Elérhetővé teszi, hogy behúzzál képeket és hangokat a fájlkezelődből a szereplők táblába, vagy a jelmezek/hangok nevű oldalsávba. Még szövegfájlokat is be tudsz húzni listákba, vagy a \"kérdezd meg és várj\" blokk bemeneteli szövegét.", @@ -39,19 +47,23 @@ "debugger/@settings-name-log_broadcasts": "Üzenetküldések naplózása", "debugger/@settings-name-log_clear_greenflag": "Zöld zászlóra való kattintáskor jegyzetek kitörlése", "debugger/@settings-name-log_clone_create": "Másolat-készítés feljegyzése", - "debugger/@settings-name-log_failed_clone_creation": "Klónok maximum számának elérésének feljegyzése", "debugger/@settings-name-log_greenflag": "Zöld zászlóra való kattintás naplózása", - "debugger/@update": "Új \"Szálak\" és \"Teljesítmény\" fülek a hibakereső ablakban.", - "pause/@description": "Hozzáad egy megállítás gombot a zöld zászló mellé.", + "pause/@description": "Hozzáad egy gombot, hogy megállíthasd a projektet, a zöld zászló mellé.", "pause/@name": "Megállítás gomb", "mute-project/@description": "Ctrl+Kattints a zöld zászlóra, hogy némítsd/feloldd a némítást egy projektben.", "mute-project/@info-macOS": "MacOS-en használja a Cmd billentyűt a Ctrl helyett.", "mute-project/@name": "Némított projekt lejátszó mód", + "vol-slider/@description": "Hozzáad egy hangcsúszkát a zöld zászló mellé", + "vol-slider/@name": "Projekt-hangerőcsúszka", + "vol-slider/@settings-name-always": "Mindig mutasd a csúszkát", + "vol-slider/@settings-name-defVol": "Alapértelmezett hangerő", "clones/@description": "Hozzáad egy számlálót a szerkesztőhöz a színpad fölé, ami megmutatja a másolatok számát.", "clones/@name": "Másolatszámláló", + "clones/@settings-name-projectpage": "Projektoldalon mutatása", + "clones/@settings-name-showicononly": "Csak az ikon megjelenítése", "mouse-pos/@description": "Megjeleníti az egered x és y helyét a színpad fölött a szerkesztőben.", - "mouse-pos/@name": "Egér pozíciója", - "color-picker/@description": "Hozzáad egy hex kód bemenetet a szín választókhoz.", + "mouse-pos/@name": "Egér helyének megjelenítése", + "color-picker/@description": "Hozzáad egy hexadecimális kódbemenetet a színválasztókhoz.", "color-picker/@name": "Hex szín választó", "remove-sprite-confirm/@description": "Megkérdezi egy projekten belüli szereplő törölésénél, hogy biztos vagy-e benne.", "remove-sprite-confirm/@name": "Szereplő törlésének megerősítése", @@ -71,10 +83,26 @@ "onion-skinning/@settings-select-layering-front": "Elé", "onion-skinning/@settings-select-mode-merge": "Képek összeolvasztása", "onion-skinning/@settings-select-mode-tint": "Szín árnyalás", + "paint-snap/@description": "Illessz objektumokat a körülvevő mezőkhöz és vektorvégpontokhoz a jelmezszerkesztőben .", + "paint-snap/@name": "Illesztés a jelmezszerkesztőben", + "paint-snap/@settings-name-boxCenter": "Illesztés a kijelölés középpontjától", + "paint-snap/@settings-name-boxCorners": "Illesztés a kijelölés sarkaitól", + "paint-snap/@settings-name-boxEdgeMids": "Illesztés a kijelölés széleinek középpontjától", + "paint-snap/@settings-name-enable-default": "Automatikus bekapcsolása", + "paint-snap/@settings-name-guide-color": "Illesztésmutató színe", + "paint-snap/@settings-name-objectCenters": "Illesztés az objektumok középpontjához", + "paint-snap/@settings-name-objectCorners": "Illesztés az objektumok sarkaihoz", + "paint-snap/@settings-name-objectEdges": "Illesztés az objektumok széleihez", + "paint-snap/@settings-name-objectMidlines": "Illesztés az objektumok középvonalához", + "paint-snap/@settings-name-pageAxes": "Illesztés a lap x és y tengelyeihez", + "paint-snap/@settings-name-pageCenter": "Illesztés a lap középpontjához", + "paint-snap/@settings-name-pageCorners": "Illesztés a lap sarkaihoz", + "paint-snap/@settings-name-pageEdges": "Illesztés a lap széleihez", + "paint-snap/@settings-name-threshold": "Illesztési távolság", "default-costume-editor-color/@description": "Megváltoztatja az alap színeit és körvonal méreteit a jelmezszerkesztőnek.", "default-costume-editor-color/@name": "Személyre szabható alapértelmezett jelmezszerkesztőszínek", "default-costume-editor-color/@settings-name-fill": "Alapkitöltőszín", - "default-costume-editor-color/@settings-name-persistence": "Használja az előző színt eszközváltásnál, az alap-beállított helyett", + "default-costume-editor-color/@settings-name-persistence": "Használja az előző színt eszközváltásnál, alaphelyzetbe állás helyett", "default-costume-editor-color/@settings-name-stroke": "Alapkörvonalszín", "default-costume-editor-color/@settings-name-strokeSize": "Alapkörvonal-méret", "bitmap-copy/@description": "Engedélyezi, hogy kimásolj a rendszer vágólapjára egy bitmap képet a Scratch szerkesztőjében, amit aztán be tudsz illeszteni más weboldalaknál, vagy alkalmazásoknál.", @@ -86,9 +114,8 @@ "better-img-uploads/@info-notSuitableEdit": "Kerüld el a HD feltöltés opciót, ha még módosítani szeretnéd utána a képet.", "better-img-uploads/@name": "HD minőségű képek feltöltése", "better-img-uploads/@settings-name-fitting": "Kép méretezése", - "better-img-uploads/@settings-select-fitting-fill": "Kinyújtás, hogy kitöltse a színpadot", - "better-img-uploads/@settings-select-fitting-fit": "Összezsugorítással illesztés a színpadhoz", "better-img-uploads/@settings-select-fitting-full": "Eredeti méret", + "pick-colors-from-stage/@description": "Lehetővé teszi a jelmezszerkesztő pipetta-eszköze számára hogy a színpadról is felvehessen színeket.", "custom-block-shape/@description": "Állítsd be a kipárnázást, sarok sugarat, és a bemetszés magasságát a blokkokon.", "custom-block-shape/@info-paddingWarning": "A kipárnázás méretének csökkentése csak általad látható, szóval ha a projektjeidet mások tekintik meg, a kódjaid lehet, hogy fedni fogják egymást.", "custom-block-shape/@name": "Személyre szabható blokk forma", @@ -103,17 +130,27 @@ "custom-block-shape/@settings-name-cornerSize": "Sarok méret (0-300%)", "custom-block-shape/@settings-name-notchSize": "Bemetszés magassága (0-150%)", "custom-block-shape/@settings-name-paddingSize": "Kipárnázás mérete (50-200%)", + "zebra-striping/@description": "Használatkor az ugyanazon blokk kategóriából származó blokkok színei váltakoznak világosabb és sötétebb árnyalatok között, amikor egymásba vannak ágyazva. Ezt úgy is nevezik, hogy zebra csíkozás.", + "zebra-striping/@name": "Váltakozó egymásba ágyazott blokk színek", + "zebra-striping/@settings-name-intensity": "Intenzitás (0-100%)", + "zebra-striping/@settings-name-shade": "Árnyalat", + "zebra-striping/@settings-select-shade-darker": "Sötétebb", + "zebra-striping/@settings-select-shade-lighter": "Világosabb", "editor-theme3/@description": "Szerkeszd a blokkok színeit kategóriánként a szerkesztőben.", "editor-theme3/@name": "Személyre szabható blokk színek", - "editor-theme3/@preset-description-black": "Sötétté teszi a blokkok háttereit", - "editor-theme3/@preset-description-dark": "Az alapvető színek sötétebb változatai", + "editor-theme3/@preset-description-black": "A blokkhátéreket feketére festi, a körvonalakat és a szöveget pedig színesre", + "editor-theme3/@preset-description-dark": "Még sötétebb verziói az eredeti színeknek.", + "editor-theme3/@preset-description-new-dark": "Sötét formái az eredeti színeknek, amik jól mutatnak sötét témáknál.", "editor-theme3/@preset-description-original": "A Scratch 2.0 eredeti blokk színei", - "editor-theme3/@preset-description-tweaks": "Események, Vezérlés és Blokkjaim kategóriák blokkjai 2.0 inspirálta színekkel.", + "editor-theme3/@preset-description-tweaks": "A Scratch 3.0 blokkszínei az Eseményeknél, Vezérlésnél és Saját blokkoknál emlékeztetve a Scratch 2.0 színeire", "editor-theme3/@preset-name-black": "Fekete", - "editor-theme3/@preset-name-dark": "Sötét", - "editor-theme3/@preset-name-original": "2.0-ás Színek", - "editor-theme3/@preset-name-tweaks": "3.0 Kis Igazítással", + "editor-theme3/@preset-name-contrast": "Nagy kontraszt", + "editor-theme3/@preset-name-dark": "Sötétebb", + "editor-theme3/@preset-name-new-dark": "Sötét", + "editor-theme3/@preset-name-original": "Scratch 2.0 színek", + "editor-theme3/@preset-name-tweaks": "Scratch 3.0 megspékelve", "editor-theme3/@settings-name-Pen-color": "Bővítmények", + "editor-theme3/@settings-name-comment-color": "Kommentek", "editor-theme3/@settings-name-control-color": "Vezérlés", "editor-theme3/@settings-name-custom-color": "Blokkjaim", "editor-theme3/@settings-name-data-color": "Változók", @@ -130,8 +167,6 @@ "editor-theme3/@settings-select-text-colorOnBlack": "Színes fekete háttéren", "editor-theme3/@settings-select-text-colorOnWhite": "Színes fehér háttéren", "editor-theme3/@settings-select-text-white": "Fehér", - "editor-theme3/@update": "Új beállítás, amivel engedélyezheted, hogy a blokkok színét a fórumokon is változtathasd.", - "custom-block-text/@description": "Megváltoztatja a szövegek vastagságát a blokkokon és ezen kívül opcionális árnyékot is adhatsz a szövegekhez.", "custom-block-text/@name": "Személyre szabható blokk szöveg stílus", "custom-block-text/@settings-name-bold": "Félkövér szöveg", "custom-block-text/@settings-name-shadow": "Árnyék a szöveg alatt", @@ -145,7 +180,16 @@ "variable-manager/@description": "Hozzáad egy fület a \"hangok\" mellé a szerkesztőben, melyben könnyen frissítheted a változókat és listákat.", "variable-manager/@name": "Változó kezelő", "search-sprites/@description": "Hozzáad egy kereső mezőt a szereplő kijelzőhőz, hogy kereshess a szereplők között név alapján.", - "search-sprites/@name": "Szereplők keresése név alapján", + "search-sprites/@name": "Keresőmező a szereplőknél", + "sprite-properties/@description": "Elrejti alapértelmezetten a szereplőjellemzők panelt, mint a Scratch 2.0-ban. Használd az információs gombot az éppen kiválasztott szereplőnél vagy kattints duplán egy szereplőre, hogy előbújtasd ismét a tulajdonságokat mutató panelt. Az újra-elrejtéséhez pedig használd az összecsukó gombot a panelen, vagy kattints kétszer egy szereplőre.", + "sprite-properties/@name": "Összecsukható szereplőjellemzők", + "sprite-properties/@settings-name-autoCollapse": "Csukódjon automatikusan, amikor az egér elhagyja a szereplői panelt", + "sprite-properties/@settings-name-hideByDefault": "Panel összecsukása alapból", + "sprite-properties/@settings-name-transitionDuration": "Animáció sebessége", + "sprite-properties/@settings-select-transitionDuration-default": "Alapértelmezett", + "sprite-properties/@settings-select-transitionDuration-long": "Lassú", + "sprite-properties/@settings-select-transitionDuration-none": "Azonnali", + "sprite-properties/@settings-select-transitionDuration-short": "Gyors", "gamepad/@description": "Lépj kapcsolatba projektekkel USB, vagy Bluetooth kontroller/gamepad használata által.", "gamepad/@name": "Gamepad támogatás", "gamepad/@settings-name-hide": "Tüntesd el a beállítások gombot, amikor nem érzékelhetők kontrollerek", @@ -156,10 +200,7 @@ "folders/@name": "Szereplő mappák", "block-switching/@description": "Jobb klikk egy blokkra, hogy lecserélhesd egy hozzá kapcsolódó blokkra.", "block-switching/@name": "Blokk lecserélés", - "block-switching/@settings-name-border": "Határvonal hozzáadása", "block-switching/@settings-name-control": "Vezérlés blokkok", - "block-switching/@settings-name-customargs": "Saját blokk független változói", - "block-switching/@settings-name-customargsmode": "Mutatott saját blokk bemenetválasztása", "block-switching/@settings-name-data": "Adat blokkok", "block-switching/@settings-name-event": "Esemény blokkok", "block-switching/@settings-name-extension": "Kiegészítő blokkok", @@ -169,8 +210,6 @@ "block-switching/@settings-name-operator": "Művelet blokkok", "block-switching/@settings-name-sensing": "Érzékelés blokkok", "block-switching/@settings-name-sound": "Hang blokkok", - "block-switching/@settings-select-customargsmode-all": "A szereplő összes bemenetei között", - "block-switching/@settings-select-customargsmode-defOnly": "Csak az adott saját blokknak bemenetei között", "load-extensions/@description": "Automatikusan megjeleníti a zene, toll, és más bővítményeket a szerkesztő oldalsó blokk kategóriás menüjében.", "load-extensions/@name": "Automatikusan add hozzá a bővítményeket", "load-extensions/@settings-name-music": "Zene", @@ -182,22 +221,18 @@ "custom-zoom/@settings-name-autohide": "Nagyítás irányítógombjainak automatikus elrejtése", "custom-zoom/@settings-name-maxZoom": "Maximum nagyítás (100-500%)", "custom-zoom/@settings-name-minZoom": "Minimum nagyítás (1-100%)", - "custom-zoom/@settings-name-speed": "Animáció időtartamának elrejtése", + "custom-zoom/@settings-name-speed": "Animáció sebességének automatikus elrejtése", "custom-zoom/@settings-name-startZoom": "Kezdeti nagyítás (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "Nagyítási sebesség (50-200%)", "custom-zoom/@settings-select-speed-default": "Alapértelmezett", - "custom-zoom/@settings-select-speed-long": "Hosszú", - "custom-zoom/@settings-select-speed-none": "Egyik sem", - "custom-zoom/@settings-select-speed-short": "Rövid", - "initialise-sprite-position/@description": "Megváltoztatja az alapértelmezett x/y pozícióját az újonnan készített szereplőknek", + "custom-zoom/@settings-select-speed-long": "Lassú", + "custom-zoom/@settings-select-speed-none": "Azonnali", + "custom-zoom/@settings-select-speed-short": "Gyors", + "copy-reporter/@description": "Lehetőséget ad az értékblokkok felugró lufijainak és a változómonitorok értékeinek kimásolására (jobb egeres helyi menüből érhető el)", + "copy-reporter/@name": "Értékblokkok értékének másolása", "initialise-sprite-position/@name": "Személyre szabható pozíció az új szereplőknek", - "initialise-sprite-position/@settings-name-duplicate": "Szereplőduplikáláskori viselkedés", - "initialise-sprite-position/@settings-name-library": "Könyvtárból betöltött szereplők pozíciójának véletlenszerűsítése", "initialise-sprite-position/@settings-name-x": "X pozíció", "initialise-sprite-position/@settings-name-y": "Y pozíció", - "initialise-sprite-position/@settings-select-duplicate-custom": "Meghatározott x/y értékekhez küldés", - "initialise-sprite-position/@settings-select-duplicate-keep": "Az eredeti szereplőnek megfelelőnél tartása", - "initialise-sprite-position/@settings-select-duplicate-randomize": "Véletlenszerűsítés", "blocks2image/@description": "Jobb kattintás a kódterületre, hogy exportálni lehessen a blokkokat SVG/PNG képekként", "blocks2image/@name": "Blokkokmentése képként", "remove-curved-stage-border/@description": "Eltávolítja az íveltségét a színpad széleinek, így láthatóvá téve a sarkokban lévő dolgokat is.", @@ -234,14 +269,13 @@ "block-cherry-picking/@info-macContextDisabled": "A macOS-on, használd a Cmd gombot a Ctrl helyett.", "block-cherry-picking/@name": "Egy blokk megfogása Ctrl gombbal", "block-cherry-picking/@settings-name-invertDrag": "Fordított irányítás", - "hide-new-variables/@description": "Ne készíts automatikusan kijelzőket az újonnan készített változóknak vagy listáknak.", "hide-new-variables/@name": "Új változók elrejtése", - "editor-extra-keys/@description": "További lehetőségeket ad a \"() lenyomva?\" és a \"() gomb lenyomásakor\" blokkok lenyíló menüihez, például az enter, a pont, a vessző, és még sok más.", + "editor-extra-keys/@description": "Több billentyűvel bővíti a „() gomb lenyomva?” és a „() gomb lenyomásakor” blokk lenyíló listáját, mint például sz enterrel, a ponttal, a vesszővel, de még többel is. Ezek a gombok működni fognak azoknak a szereplőknek is, akiknek nincs meg ez a kiegészítő", "editor-extra-keys/@info-experimentalKeysWarn": "A \"kísérleti gombok\" tartalmaz egyenlőségjelet, perjelet, pontosvesszőt és még pár irásjelet. Ezek lehet nem működnek minden operációs rendszeren vagy billentyűzet nyelvezetben.", - "editor-extra-keys/@info-shiftKeysWarn": "A \"Shift billentyűk\" tartalmaznak olyan billentyűket, amiket a Shift billentyű nyomvatartásakor lehet csak begépelni, ilyen a hashtag, a felkijáltójel és még pár. Ezek a billentyűk csak a \"() gomb lenyomásakor\" bolkkal működnek és nem működnek minden operációs rendszeren illetve billentyűzeten.", - "editor-extra-keys/@name": "Extra billentyű érzékelés", - "editor-extra-keys/@settings-name-experimentalKeys": "Kísérleti gombok engedélyezése", - "editor-extra-keys/@settings-name-shiftKeys": "Shift billentyűk engedélyezése", + "editor-extra-keys/@info-shiftKeysWarn": "A \"Shift billentyűk\" olyan billentyűket tartalmaznak, amiket a Shift billentyű nyomvatartásakor lehet csak begépelni angol billentyűzeten, ilyen a hashtag, a felkiáltójel és még egy pár. Ezek a billentyűk csak a \"() gomb lenyomásakor\" blokkal működnek, és nem használhatóak minden operációs rendszeren illetve billentyűzeten.", + "editor-extra-keys/@name": "Extra billentyűopciók", + "editor-extra-keys/@settings-name-experimentalKeys": "Mutassa a kísérleti billentyűket is", + "editor-extra-keys/@settings-name-shiftKeys": "Mutassa a Shiftes billentyűket is (angol billentyűzeten)", "hide-delete-button/@description": "Elrejti a törlés gombot (kuka ikont) a szereplőkből, jelmezekből és hangokból. Ezután még törölhetőek lesznek a jobb kattos helyi menüből.", "hide-delete-button/@name": "Törlés gomb elrejtése", "hide-delete-button/@settings-name-costumes": "Jelmezek és hátterek", @@ -251,13 +285,18 @@ "no-script-bumping/@name": "Ne mozgasd automatikusan a kódokat", "disable-stage-drag-select/@description": "Eltávolítja a lehetőséget, hogy áthelyezd a szereplőket a színpadon, kivéve azoknál, amik kifejezetten húzogathatóvá lettek beállítva. Tarsd lenyomva a Shiftet egy szereplő megragadása közben, hogy áthelyezhesd normálisan.", "disable-stage-drag-select/@name": "Nem-mozdítható szereplők a szerkesztőben", - "move-to-top-bottom/@description": "Hozzáad egy helyi menü elemet, amivel mozgathatsz egy jelmezt vagy hangot a lista tetejére vagy aljára. Korábban a fejlesztői eszközök része.", + "move-to-top-bottom/@description": "Hozzáad egy opctiót a jobb katt index menüjéhez a jelmezek és hangok mozgatására a lista legtetejére vagy legaljára.", + "move-to-top-bottom/@info-developer-tools": "Ez a bővítmény korábban a \"Fejlesztői eszközök\" bővítmény része volt, de mostanra át lett helyezve ide.", "move-to-top-bottom/@name": "Jelmez áthelyezése legfelülre vagy legalulra", + "move-to-top-layer/@name": "Szereplő legelőre küldése", "disable-paste-offset/@description": "A bemásolt elemeket az eredeti helyükre kerülnek, nem tolódnak el a jelmez szerkesztőben.", + "disable-paste-offset/@info-vanilla": "Ez a viselkedés elérhető ezen kiegészítő nélkül is Alt+Kattintással az elemre", "disable-paste-offset/@name": "Ne helyezd át a bemásolt elemeket", "block-duplicate/@description": "Duplikálj egy kódot gyorsan azzal, hogy az Alt lenyomva tartása közben mozgatod. Ha a Ctrl-t is nyomva tartod, akkor csak egy blokkot duplikálsz az egész alatta levő blokk sor helyett.", "block-duplicate/@info-mac": "A macOS-on, használd az Option gombot Alt helyett és a Command gombot a Control helyett.", "block-duplicate/@name": "Kód duplikálása Alt gombbal", + "rename-broadcasts/@description": "Lehetőséget kínál az üzenetküldések nevének átírására az üzenetküldő blokkok a legördülő menüjében.", + "rename-broadcasts/@name": "Üzenetküldések átnevezése", "swap-local-global/@description": "További opciókat ad hozzá a már létező változók vagy listák átnevezésénél: megengedi a váltást \"Minden szereplőé\" és \"A kiválasztott szereplőé\" között, állítható továbbá a változók megosztottsága. Hozzáad még egy új opciót, amikor jobb kattintasz egy változót/listát, hogy gyorsabban állíthasd az elérhetőségét.", "swap-local-global/@name": "Változók váltása \"Minden szereplőé\" és \"A kiválasztott szereplé\" között", "editor-comment-previews/@description": "Megengedi, hogy megtekintsd a kommentek tartalmát azzal, hogy fölé viszed az egered egy összecsukott kommentnek vagy blokknak. Ezzel elolvashatsz képernyőn kívüli kommenteket, azonosíthatsz egy ismétlő blokkot az aljáról az előnézet alapján, sok hosszú komment elhelyezése kis helyen, és további lehetőségek.", @@ -272,8 +311,15 @@ "editor-comment-previews/@settings-select-delay-long": "Hosszú", "editor-comment-previews/@settings-select-delay-none": "Nincs", "editor-comment-previews/@settings-select-delay-short": "Rövid", - "columns/@description": "Felosztja a blokk kategória menüt két oszlopra és a blokk választó tetejére helyezi, mint a Scratch 2.0-ban.", + "columns/@description": "Felosztja a blokk kategória menüt két oszlopra és a blokkválasztó tetejére helyezi, mint a Scratch 2.0-ban.", "columns/@name": "Két oszlopos kategória menü", + "number-pad/@description": "Megjeleníti számbemenetek szerkesztése közben a Scratch virtuális egérbillentyűzetét minden eszközön ahelyett, hogy csak az érintőképernyősökön.", + "number-pad/@info-explanation": "Egy számbillentyűzet fog felugrani a számbemenetek szerkesztésénél, mint amilyen a \"menj () lépést\" blokknál is található.", + "number-pad/@name": "Mindig mutass számbillentyűzetet", + "expanded-backpack/@description": "Elrendezi a tálca tartalmát egy bővíthető kétirányú rácsban, a jelmezkönyvtárban lévőhöz hasonlóan, és megnöveli egyes borítóképek méretét.", + "expanded-backpack/@name": "Többsoros tálca", + "expanded-backpack/@settings-name-rows": "Megjelenített sorok száma", + "expanded-backpack/@settings-name-upscale": "Óriás jelmez- és szkript-boritóképek", "script-snap/@description": "Mozgass egy kódot és automatikusan a kód mező pontjaihoz fog igazodni.", "script-snap/@name": "Kódok rácspontokhoz való igazítása", "script-snap/@preset-name-default": "Alap", @@ -281,10 +327,8 @@ "script-snap/@preset-name-whole-block": "Egész-blokk", "script-snap/@settings-name-grid": "Rács méret (px)", "fullscreen/@description": "Kijavít pár nemkívánatos effektet a projekt lejátszó teljes képernyős módjában, megnyitja a böngésződ teljes képernyős módjában, és elrejti a zöld zászlós eszköztárat.", - "fullscreen/@info-hideToolbarNotice": "Ha kiválasztod az eszköztár elrejtését, emlékezz hogy úgy léphetsz ki a projekt lejátszó teljes képernyős módjából, hogy megnyomod az Esc gombot.", "fullscreen/@name": "Fejlesztett teljes képernyő", "fullscreen/@settings-name-browserFullscreen": "Teljes képernyős projekt lejátszó megnyitása a böngésző teljes képernyős módjában", - "fullscreen/@settings-name-hideToolbar": "Eszköztár elrejtése teljes képernyőben", "hide-stage/@description": "Egy gombot ad hozzá a \"kicsi színpad\" és \"nagy színpad\" gombok mellé, ami a színpad és a szereplőmező elrejtésével jelentős mértékben megnöveli a kódterületet.", "hide-stage/@name": "A Színpad és a Szereplőmező elrejtése", "editor-stepping/@description": "Hozzáad egy színes körvonalat azon blokkokhoz, amik éppen futnak egy projektben.", diff --git a/src/addons/addons-l10n-settings/it.json b/src/addons/addons-l10n-settings/it.json index 09aff838a97..8ecf22ebbcc 100644 --- a/src/addons/addons-l10n-settings/it.json +++ b/src/addons/addons-l10n-settings/it.json @@ -1,15 +1,29 @@ { - "cat-blocks/@description": "Mostra nell'editor i blocchi di tipo cappello con le orecchie del gatto che erano comparsi come Pesce di Aprile 2020.", - "cat-blocks/@info-watch": "La modalità \"Guarda il puntatore del mouse\" può avere un certo impatto sulla performance quando l'editor è aperto", + "cat-blocks/@description": "Riporta nell'editor i blocchi di tipo cappello con le orecchie del gatto che erano stati introditti come Pesce di Aprile 2020.", + "cat-blocks/@info-watch": "L'impostazione \"Guarda il puntatore del mouse\" può avere un certo impatto sulla performance quando l'editor è aperto", "cat-blocks/@name": "Cappelli con le orecchie del gatto", "cat-blocks/@settings-name-watch": "Guarda il puntatore del mouse", - "editor-devtools/@description": "Aggiunge una casella di ricerca e nuove opzioni ai menu dell'editor: copia/incolla blocchi, riordino migliorato, vai alla definizione del blocco e altro! Premi Ctrl+F per spostarti alla casella di ricerca, Ctrl+Spazio per attivare il menu \"aggiungi blocco per nome\", Ctrl+Sinistra/Destra per navigare nella cronologia di ricerca.", + "editor-devtools/@description": "Aggiunge nuove opzioni nei menu dell'editor: copia/incolla dei blocchi, riordino degli script migliorato, e molto altro!", "editor-devtools/@name": "Strumenti per sviluppatori", "editor-devtools/@settings-name-enableCleanUpPlus": "Migliora \"Riordina i Blocchi\"", - "editor-devtools/@settings-name-enableMiddleClickFinder": "Clicca nel centro i blocchi delle variabili, i blocchi personalizzati o gli eventi per cercarne altre occorrenze", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Incolla i blocchi dove si trova il puntatore del mouse.", - "editor-searchable-dropdowns/@description": "TI permette di cercare nel menu contestuale dei blocchi", - "editor-searchable-dropdowns/@name": "Ricerca nei Menu drop-down", + "find-bar/@description": "Aggiunge una barra di ricerca a fianco alla scheda suoni per trovare script, costumi e suoni e per passare direttamente agli elementi trovati. Usa Ctrl+Sinistra a Ctrl+Destra nell'area degli script per andare alla precedente o alla seguente posizione che hai visitato dopo che hai usato la barra di ricerca.", + "find-bar/@info-developer-tools": " Questo addon faceva parte in precedenza dell'addon \"strumenti per sviluppatori\" ma è stato spostato qui.", + "find-bar/@name": "Barra di ricerca dell'editor", + "middle-click-popup/@description": "Clicca l'area degli script usando shift-click o il pulsante centrale del mouse, oppure usa Ctrl+Spazio, per far comparire la finestra di ricerca dei blocchi. Digita il nome del blocco (o una parte del nome) e trascinalo nell'area degli script per aggiungerlo al tuo progetto. Il menu può essere navigato usando i tasti freccia e il tasto Invio e rende disponibile l'autocompletamento usando il tasto Tab. Per prevenire la chiusura del menu e poter continuare a cercare altri blocchi, tieni premuto il tasto Shift mentre trascini il blocco dalla finestra dell'addon all'area degli script.", + "middle-click-popup/@info-developer-tools": " Questo addon faceva parte in precedenza dell'addon \"strumenti per sviluppatori\" ma è stato spostato qui.", + "middle-click-popup/@name": "Inserisci il nome dei blocchi ", + "middle-click-popup/@settings-name-popup_max_height": "Altezza Massima del Popup", + "middle-click-popup/@settings-name-popup_scale": "Dimensione dei Blocchi nella finestra Popup", + "middle-click-popup/@settings-name-popup_width": "Larghezza del Popup", + "jump-to-def/@description": "Ti permette di andare alla definizione di un blocco personalizzato usando il pulsante centrale del mouse oppure cliccando il blocco mentre si preme Shift.", + "jump-to-def/@info-developer-tools": "Questo addon faceva parte in precedenza dell'addon \"strumenti per sviluppatori\" ma è stato spostato qui.", + "jump-to-def/@name": "Vai alla definizione del blocco personalizzato", + "reorder-custom-inputs/@description": "Permette di riorganizzare gli argomenti dei blocchi personalizzati nella finestra \"Crea un blocco\".", + "reorder-custom-inputs/@name": "Argomenti mobili per i blocchi personalizzati", + "reorder-custom-inputs/@settings-name-InsertInputsAfter": "Inserisci i nuovi argomenti dopo l'argomento selezionato", + "editor-searchable-dropdowns/@description": "Permette di ricercare tra le opzioni nei menu degli argomenti dei blocchi", + "editor-searchable-dropdowns/@name": "Ricerca nei menu dei blocchi", "data-category-tweaks-v2/@description": "Modifica nell'editor la categoria \"Variabili\".", "data-category-tweaks-v2/@name": "Modifiche per la categoria Variabili", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Muovi blocchi dati sopra alla lista delle variabili", @@ -17,43 +31,51 @@ "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Separa Variabili Solo per lo Sprite", "block-palette-icons/@description": "Aggiunge delle icone all'interno dei cerchi colorati che identificano le categorie dei blocchi.", "block-palette-icons/@name": "Icone per le categorie del pannello dei blocchi", - "hide-flyout/@description": "Nasconde il pannello dei blocchi se non è a contatto con il mouse. Clicca il lucchetto per bloccarlo temporaneamente. In alternativa, usa la modalità \"Clic categoria\".", + "hide-flyout/@description": "Nasconde l'elenco dei blocchi a meno che non ci si passi sopra con il mouse. Clicca il licchetto per mantenerlo temporaneamente aperto. Oppure usa la modalità \"clicca la categoria\" per mostrarlo/nasconderlo quando clicchi le categorie di blocchi.", "hide-flyout/@info-hoverExplanation": "La modalità \"Movimento del mouse sull'area dei blocchi\" estende soltanto l'area degli script. Se vuoi poter trascinarvi i blocchi in questa aria senza che vengano cancellati, usa una delle altre modalità.", "hide-flyout/@name": "Nascondi pannello blocchi automaticamente", - "hide-flyout/@settings-name-speed": "Durata animazione", + "hide-flyout/@settings-name-lockLoad": "Aperto per impostazione predefinita", + "hide-flyout/@settings-name-speed": "Velocità animazione", "hide-flyout/@settings-name-toggle": "Nascondi quando...", "hide-flyout/@settings-select-speed-default": "Predefinita", - "hide-flyout/@settings-select-speed-long": "Lunga", - "hide-flyout/@settings-select-speed-none": "Nessuna", - "hide-flyout/@settings-select-speed-short": "Corta", + "hide-flyout/@settings-select-speed-long": "Lenta", + "hide-flyout/@settings-select-speed-none": "Istantanea", + "hide-flyout/@settings-select-speed-short": "Veloce", "hide-flyout/@settings-select-toggle-category": "Clic categoria", "hide-flyout/@settings-select-toggle-cathover": "Movimento del mouse sull'area delle categorie", "hide-flyout/@settings-select-toggle-hover": "Movimento del mouse sull'area dei blocchi", - "hide-flyout/@update": "Questo addon è stato rivisto e sono stati corretti molti bug.", "mediarecorder/@description": "Aggiunge all’editor un pulsante “Avvia registrazione” che permette di registrare cioè che avviene sullo stage del progetto.", "mediarecorder/@name": "Registratore video progetti", "drag-drop/@description": "TI permette di trascinare immagini e suoni da una cartella nella lista degli sprite o dei costumi/suoni. Puoi anche trascinare file di testo su una lista o nella casella dei blocchi \"chiedi e attendi\".", "drag-drop/@name": "Trascinamento file", "drag-drop/@settings-name-use-hd-upload": "Usa importazione di immagini HD", + "debugger/@description": "Agggiunge all’editor una nuova finestra \"debugger\". Permette di registrare nella scheda “Log” del debugger le azioni dei blocchi \"log\", \"avviso\" e \"errore\". Il blocco \"breakpoint\" sospende l’esecuzione del progetto eseguito. Tutti gli script in esecuzione possono essere visti nella scheda \"Thread\" del debugger e quando il progetto è in pausa comparirà il pulsante \"Passo\" che permette di eseguire il blocco successivo. Un grafo dei frame per secondo e del numero dei blochi può essere visualizzato nella scheda \"Prestazioni\".", + "debugger/@settings-name-fancy_graphs": "Grafici animati (può influenzare le prestazioni)", "debugger/@settings-name-log_broadcasts": "Registra nei log l'invio di messaggi", "debugger/@settings-name-log_clear_greenflag": "Svuota i log quando si clicca la bandiera verde", "debugger/@settings-name-log_clone_create": "Registra nei log la creazione di cloni", - "debugger/@settings-name-log_failed_clone_creation": "Registra nei log quando si supera il massimo dei cloni ammessi ", + "debugger/@settings-name-log_failed_clone_creation": "Inserisci un logo quando il limite dei cloni è superato", "debugger/@settings-name-log_greenflag": "Registra nei log i click della bandiera verde", - "debugger/@update": "Nuove schede \"Thread\" e \"Performance\" nella finestra del debugger.", - "pause/@description": "Aggiunge un tasto pausa accanto alla bandiera verde.", + "pause/@description": "Aggiunge un pulsante per mettere in pausa il progetto a fianco alla bandiera verde.", + "pause/@info-keybind": "Il progetto può essere messo in pausa anche con Alt+X (Opzione+X in macOS).", "pause/@name": "Pulsante Pausa", "mute-project/@description": "Ctrl+Clic sulla bandiera verde per attivare o disattivare l'audio del progetto.", "mute-project/@info-macOS": "In macOS usa il tasto Cmd invece del tasto Ctrl.", "mute-project/@name": "Modalità dell'editor di progetti con audio disattivato", + "vol-slider/@description": "Aggiunge un cursore per il volume vicino ai controlli della bandiera verde.", + "vol-slider/@name": "Cursore volume progetto ", + "vol-slider/@settings-name-always": "Mostra cursore sempre", + "vol-slider/@settings-name-defVol": "Volume predefinito", "clones/@description": "Mostra sopra lo stage dell'editor il numero totale di cloni.", "clones/@name": "Numero dei cloni", + "clones/@settings-name-projectpage": "Mostra nelle pagine dei progetti", "clones/@settings-name-showicononly": "Mostra solo icona", "mouse-pos/@description": "Mostra la posizione x/y del mouse sopra lo stage dell'editor.", - "mouse-pos/@name": "Posizione del mouse", + "mouse-pos/@name": "Visualizzazione posizione del mouse", "color-picker/@description": "Aggiunge la selezione del colore esadecimale alla selezione dei colori.", "color-picker/@name": "Selettore colore esadecimale", "remove-sprite-confirm/@description": "Chiede conferma quando cancelli uno sprite di un progetto.", + "remove-sprite-confirm/@info-restoretip": "Suggerimento: se cancelli accidentalmente uno sprite, un costume o un suono, puoi annullare la cancellazione cliccando il menu Modifica nella barra dei menu e scegliendo Ripristina.", "remove-sprite-confirm/@name": "Conferma cancellazione sprite", "block-count/@description": "Mostra il numero totale di blocchi del progetto nella barra dei menu dell'editori. Incluso in precedenza in \"numero di sprite e di script\"", "block-count/@name": "Numero dei blocchi", @@ -72,10 +94,26 @@ "onion-skinning/@settings-select-layering-front": "Primo piano", "onion-skinning/@settings-select-mode-merge": "Unisci immagini", "onion-skinning/@settings-select-mode-tint": "Tinta colore", + "paint-snap/@description": "Allinea gli oggetti dell'editor dei costumi ai riquadri che bordano gli oggetti e ai nodi degli elementi vettoriali", + "paint-snap/@name": "Editor dei costumi magnetico", + "paint-snap/@settings-name-boxCenter": "Attacca dal centro del riquadro di selezione", + "paint-snap/@settings-name-boxCorners": "Attacca dal bordo del riquadro di selezione", + "paint-snap/@settings-name-boxEdgeMids": "Attacca dai punti mediani dei bordi del riquadro di selezione", + "paint-snap/@settings-name-enable-default": "Abilita per impostazione predefinita", + "paint-snap/@settings-name-guide-color": "Colore della guida magnetica", + "paint-snap/@settings-name-objectCenters": "Attacca al centro degli oggetti", + "paint-snap/@settings-name-objectCorners": "Attacca agli angoli degli oggetti", + "paint-snap/@settings-name-objectEdges": "Attacca al bordo degli oggetti", + "paint-snap/@settings-name-objectMidlines": "Attacca alla linee mediane degli oggetti", + "paint-snap/@settings-name-pageAxes": "Attacca agli assi x e y della pagina", + "paint-snap/@settings-name-pageCenter": "Attacca al centro della pagina", + "paint-snap/@settings-name-pageCorners": "Attacca agli angoli della pagina", + "paint-snap/@settings-name-pageEdges": "Attacca ai bordi delle pagina", + "paint-snap/@settings-name-threshold": "Distanza magnetica", "default-costume-editor-color/@description": "Cambia i colori e la dimensione del contorno predefiniti nell'editor di immagini.", "default-costume-editor-color/@name": "Colori predefiniti dell'editor di immagini personalizzabili", "default-costume-editor-color/@settings-name-fill": "Colore di riempimento predefinito", - "default-costume-editor-color/@settings-name-persistence": "Usa i colori precedenti invece di quelli predefiniti quando si cambia editor", + "default-costume-editor-color/@settings-name-persistence": "Usa colore precedente invece di resettare dopo aver cambiato gli strumenti", "default-costume-editor-color/@settings-name-stroke": "Colore di contorno predefinito", "default-costume-editor-color/@settings-name-strokeSize": "Dimensione contorno predefinita", "bitmap-copy/@description": "Ti permette di copiare negli appunti un'immagine bitmap dall'editor di immagini per poterla poi incollare in altri siti o in altre app.", @@ -83,13 +121,18 @@ "bitmap-copy/@name": "Copia immagini bitmap", "2d-color-picker/@description": "Sostituisce i cursori della saturazione e della luminosità con un selettore colori 2D. Tieni premuto Shift mentre trascini il cursore per cambiare i valori su un solo asse.", "2d-color-picker/@name": "Selettore colori 2D", + "paint-skew/@description": "Per distorcere un oggetto, tieni premuto il tasto Ctrl mentre lo ridimensioni trasciandone le maniglie sui lati. Per distorcerlo rispetto al centro, tieni premuto Alt mentre lo distorci. ", + "paint-skew/@info-useCmdOnMac": "Su macOS, usa il tasto Command key invece del tasto Control e il tasto Option invece del tasto Alt.", + "paint-skew/@name": "Distorsione nell'editor dei costumi", "better-img-uploads/@description": "Aggiunge un pulsante sopra il pulsante \"carica costume\" che converte automaticamente le immagini bitmap in immagini SVG (vettoriali) durante il caricamento per evitare di perdere qualità.", "better-img-uploads/@info-notSuitableEdit": "Evita di usare il pulsante \"carica HD\" se vuoi modificare l'immagine dopo averla caricata.", "better-img-uploads/@name": "Caricamento di immagini HD", "better-img-uploads/@settings-name-fitting": "Ridimensionamento immagine", - "better-img-uploads/@settings-select-fitting-fill": "Estendi per riempire lo stage", - "better-img-uploads/@settings-select-fitting-fit": "Riduci per entrare tutta nello stage", + "better-img-uploads/@settings-select-fitting-fill": "Stira per riempire l'area dell'editor di immagini", + "better-img-uploads/@settings-select-fitting-fit": "Riduci per riempire l'area dell'editor di immagini", "better-img-uploads/@settings-select-fitting-full": "Dimensione originale", + "pick-colors-from-stage/@description": "Permette al contagocce dell'editor di costumi di selezionare i colori anche dallo Stage.", + "pick-colors-from-stage/@name": "Seleziona i colori dello Stage con il contagocce", "custom-block-shape/@description": "Modifica lo spazio interno, l'ampiezza degli angoli e l'altezza degli agganci dei blocchi di Scratch.", "custom-block-shape/@info-paddingWarning": "La diminuzione dello spazio interno è visibile soltanto a te, quindi se i tuoi progetti vengono visualizzati da altri utenti i tuoi script potrebbero essere sovrapposti.", "custom-block-shape/@name": "Forma dei blocchi personalizzata", @@ -104,17 +147,44 @@ "custom-block-shape/@settings-name-cornerSize": "Dimensione angoli (0-300%)", "custom-block-shape/@settings-name-notchSize": "Altezza agganci (0-150%)", "custom-block-shape/@settings-name-paddingSize": "Spaziatura interna (50-200%)", + "editor-square-inputs/@description": "Cambia la forma di alcuni tipi di argomenti dei blocchi (come tsto o colori) in rettangolare invece che arrotondata, come in Scratch 2.0.", + "editor-square-inputs/@name": "Argomenti dei blocchi squadrati", + "editor-square-inputs/@settings-name-color": "Caselle dei colori", + "editor-square-inputs/@settings-name-number": "Argomenti numerici", + "editor-square-inputs/@settings-name-text": "Caselle di testo", + "zebra-striping/@description": "Rende i blocchi della stessa categoria più chiari o più scuri quando sono annidati uno dentro l'altro. E' conosciuto anche come \"zebra striping\".", + "zebra-striping/@name": "Colorazione alternata dei blocchi annidati. ", + "zebra-striping/@settings-name-intensity": "Intensità (0-100%)", + "zebra-striping/@settings-name-shade": "Tonalità", + "zebra-striping/@settings-select-shade-darker": "Più scuro", + "zebra-striping/@settings-select-shade-lighter": "Più chiaro", + "editor-compact/@description": "Riduce la dimensione dei pulsanti, delle caselle di testo, della barra dei menu e di altri elementi dell'editor, lasciando più spazio per l'area del codice, l'editor dei costumi e le anteprime dei costumi, come in Scratch 2.0.", + "editor-compact/@info-hide-icons-update": "Per nascondere le icone della barra dei menu usa l'addon \"Barra dei menu personalizzabile\"", + "editor-compact/@name": "Editor compatto", + "editor-compact/@settings-name-hideLabels": "Nascondi le etichette dei pulsanti nell'editor dei costumi e dei suoni", + "custom-menu-bar/@description": "Ti permette di nascondere singolarmente gli elementi della barra dei menu o di rimuovere le etichette o le icone. ", + "custom-menu-bar/@info-small-screens": "Le etichette possono essere rimpiazzate automaticamente da icone quando lo schermo è piccolo.", + "custom-menu-bar/@name": "Barra dei menu personalizzabile", + "custom-menu-bar/@settings-name-menu-labels": "Mostra nel menu...", + "custom-menu-bar/@settings-select-menu-labels-both": "Icone e etichette", + "custom-menu-bar/@settings-select-menu-labels-icons": "Solo icone", + "custom-menu-bar/@settings-select-menu-labels-labels": "Solo etichette", "editor-theme3/@description": "Modifica i colori dei blocchi per ogni categoria nell'editor.", - "editor-theme3/@name": "Colori blocchi personalizzabili", - "editor-theme3/@preset-description-black": "Rende nero lo sfondo dei blocchi", - "editor-theme3/@preset-description-dark": "Versione scura dei colori predefiniti", + "editor-theme3/@name": "Colore dei blocchi personalizzabile", + "editor-theme3/@preset-description-black": "Rende lo sfondo dei blocchi nero e il testo/bordo colorati", + "editor-theme3/@preset-description-contrast": "Colori ad alto contrasto predefiniti per Scratch 3.0", + "editor-theme3/@preset-description-dark": "Versione ancora più scura dei colori standard", + "editor-theme3/@preset-description-new-dark": "Versiona scura dei colori standard che risulta gradevole nei temi scuri", "editor-theme3/@preset-description-original": "I colori originali di Scratch 2.0", - "editor-theme3/@preset-description-tweaks": "Situazioni, Controllo e Blocchi personalizzati con colori ispirati a 2.0", + "editor-theme3/@preset-description-tweaks": "Colore dei blocchi di Scratch 3.0 in cui il colore dei blocchi Eventi, Controllo e Personalizzati somiglia a quello dei colori di Scratch 2.0", "editor-theme3/@preset-name-black": "Nero", - "editor-theme3/@preset-name-dark": "Scuro", - "editor-theme3/@preset-name-original": "Colori 2.0", - "editor-theme3/@preset-name-tweaks": "Variazioni 3.0", + "editor-theme3/@preset-name-contrast": "Alto contrasto", + "editor-theme3/@preset-name-dark": "Più scuro", + "editor-theme3/@preset-name-new-dark": "Scuro", + "editor-theme3/@preset-name-original": "Colori di Scratch 2.0", + "editor-theme3/@preset-name-tweaks": "Scratch 3.0 ritoccato", "editor-theme3/@settings-name-Pen-color": "estensioni", + "editor-theme3/@settings-name-comment-color": "Commenti", "editor-theme3/@settings-name-control-color": "controllo", "editor-theme3/@settings-name-custom-color": "personalizzati", "editor-theme3/@settings-name-data-color": "variabili", @@ -131,11 +201,11 @@ "editor-theme3/@settings-select-text-colorOnBlack": "Colorato su sfondo nero", "editor-theme3/@settings-select-text-colorOnWhite": "Colorato su sfondo bianco", "editor-theme3/@settings-select-text-white": "Bianco", - "editor-theme3/@update": "Nuova impostazione per abilitare la possibilità di cambiare i colori dei blocchi nei forum.", - "custom-block-text/@description": "Modifica lo spessore del testo dei blocchi e opzionalmente aggiunge un'ombreggiatura al testo.", + "custom-block-text/@description": "Ti permette di personalizzare lo stile del testo dei blocchi, ad esempio specificandone le dimensioni, se usare testo in grassetto o no, o l'aggiunta di un ombreggiatura.", "custom-block-text/@name": "Stile del testo dei blocchi personalizzato", "custom-block-text/@settings-name-bold": "Testo grassetto", "custom-block-text/@settings-name-shadow": "Ombreggiatura sotto al testo", + "custom-block-text/@settings-name-size": "Dimensione del testo (%)", "editor-colored-context-menus/@description": "Rende colorato il menu contestuale degli script.", "editor-colored-context-menus/@name": "Menu contestuali colorati", "editor-stage-left/@description": "Sposta lo stage nella parte sinistra dell'editor, come in Scratch 2.0.", @@ -146,7 +216,16 @@ "variable-manager/@description": "Aggiunge una scheda nell'editor a fianco a \"suoni\" per gestire facilmente variabili e liste.", "variable-manager/@name": "Gestore variabili", "search-sprites/@description": "Aggiunge una casella di ricerca all'area degli sprite per cercare uno sprite basandosi sul nome.", - "search-sprites/@name": "Cerca gli sprite per nome", + "search-sprites/@name": "Casella di ricerca nell'area degli sprite", + "sprite-properties/@description": "Nasconde l'area delle informazioni per impostazione predefinita, come in Scratch 2.0. Usa il pulsante informazioni dello sprite selezionato o fai doppio-click su uno sprite per mostrare di l'area delle informazioni. Per nasconderla nuovamente usa il pulsante nascondi nell'area delle informazioni o fai di nuovo doppio-click su uno sprite.", + "sprite-properties/@name": "Informazioni degli sprite collassabili", + "sprite-properties/@settings-name-autoCollapse": "Nascondi automaticamente quando il mouse lascia l'area informazioni", + "sprite-properties/@settings-name-hideByDefault": "Nascondi l'area per impostazione predefinita", + "sprite-properties/@settings-name-transitionDuration": "Velocità animazione", + "sprite-properties/@settings-select-transitionDuration-default": "Predefinita", + "sprite-properties/@settings-select-transitionDuration-long": "Lenta", + "sprite-properties/@settings-select-transitionDuration-none": "Istantanea", + "sprite-properties/@settings-select-transitionDuration-short": "Veloce", "gamepad/@description": "Interagisci con i progetti usando un controller/gamepad USB o bluetooth.", "gamepad/@name": "Supporto Gamepad", "gamepad/@settings-name-hide": "Nascondi pulsante impostazioni quando non è rilevato nessun controller", @@ -157,7 +236,6 @@ "folders/@name": "Cartelle degli sprite", "block-switching/@description": "Fai clic con il pulsante destro su un blocco per sostituirlo con un blocco correlato.", "block-switching/@name": "Sostituzione blocchi", - "block-switching/@settings-name-border": "Aggiungi contorno", "block-switching/@settings-name-control": "Blocchi Controllo", "block-switching/@settings-name-customargs": "Argomenti dei blocchi personalizzati", "block-switching/@settings-name-customargsmode": "Mostra le opzioni degli argomenti dei blocchi personalizzati", @@ -183,22 +261,24 @@ "custom-zoom/@settings-name-autohide": "Nascondi Controlli Zoom Automaticamente", "custom-zoom/@settings-name-maxZoom": "Zoom Max (100-500%)", "custom-zoom/@settings-name-minZoom": "Zoom Minimo (1-100%)", - "custom-zoom/@settings-name-speed": "Durata dell'animazione della scomparsa automatica", + "custom-zoom/@settings-name-speed": "Velocità Animazione di Entrata/Uscita Controlli", "custom-zoom/@settings-name-startZoom": "Zoom Iniziale (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "Velocità Zoom (50-200%)", "custom-zoom/@settings-select-speed-default": "Predefinita", - "custom-zoom/@settings-select-speed-long": "Lunga", - "custom-zoom/@settings-select-speed-none": "Nessuna", - "custom-zoom/@settings-select-speed-short": "Breve", - "initialise-sprite-position/@description": "Cambia la posizione x/y predefinita dei nuovi sprite. ", + "custom-zoom/@settings-select-speed-long": "Lenta", + "custom-zoom/@settings-select-speed-none": "Istantanea", + "custom-zoom/@settings-select-speed-short": "Veloce", + "copy-reporter/@description": "Aggiungi l'opzione per copiare i valori dei monitor delle variabili sullo Stage (usando il menu che compare cliccando con il tasto destro) e dai fumetti dei blocchi monitor.", + "copy-reporter/@name": "Copia i valori dei monitor", + "initialise-sprite-position/@description": "Cambia il modo in cui gli sprite sono piazzati sullo Stage quando vengono creati.", "initialise-sprite-position/@name": "Posizione iniziale dei nuovi sprite personalizzata", - "initialise-sprite-position/@settings-name-duplicate": "Comportamento quando si duplicano gli sprite", - "initialise-sprite-position/@settings-name-library": "Rendi casuale la posizione degli sprite della libreria", + "initialise-sprite-position/@settings-name-duplicate": "Posizione degli sprite duplicati", + "initialise-sprite-position/@settings-name-library": "Inserisci in posizioni scelte a caso gli sprite selezionati nella libreria", "initialise-sprite-position/@settings-name-x": "Posizione X", "initialise-sprite-position/@settings-name-y": "Posizione Y", - "initialise-sprite-position/@settings-select-duplicate-custom": "Compaiono a coordinate x/y specifiche", - "initialise-sprite-position/@settings-select-duplicate-keep": "Compaiono nella stessa posizione dello sprite originale", - "initialise-sprite-position/@settings-select-duplicate-randomize": "Compaiono in un punto a caso", + "initialise-sprite-position/@settings-select-duplicate-custom": "Coordinate x/y specifiche", + "initialise-sprite-position/@settings-select-duplicate-keep": "Le stesse dello sprite originale", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Scelte a caso", "blocks2image/@description": "Clicca con il tasto destro l'area degli script per esportare i blocchi come immagini SVG/PNG.", "blocks2image/@name": "Salva i blocchi come immagine", "remove-curved-stage-border/@description": "Rimuove i bordi curvi intorno allo stage, permettendoti di vedere gli angoli.", @@ -235,15 +315,16 @@ "block-cherry-picking/@info-macContextDisabled": "In macOS usa il tasto Cmd invece del tasto Ctrl.", "block-cherry-picking/@name": "Afferra i singoli blocchi con il tasto CTRL", "block-cherry-picking/@settings-name-invertDrag": "Inverti i controlli", - "hide-new-variables/@description": "Non crea automaticamente il monitor sullo Stage per le variabili e le liste appena create.", + "hide-new-variables/@description": "Non mostra automaticamente sullo Stage i monitor delle variabili e delle liste appena create.", "hide-new-variables/@name": "Nascondi nuove variabili", - "editor-extra-keys/@description": "Aggiunge ulteriori tasti ai menu dei blocchi \"tasto () premuto\" e \"quando si preme il tasto ()\", ad esempio invio, punto, virgola e altri ancora.", + "editor-extra-keys/@description": "Aggiunge ulteriori tasti ai menu dei blocchi \"tasto () premuto\" e \"quando si preme il tasto ()\", ad esempio invio, punto, virgola e altri ancora. Questi tasti funzioneranno anche per gli utenti che non hanno installato l'addon.", "editor-extra-keys/@info-experimentalKeysWarn": "I \"tasti sperimentali\" includono i segni uguale, slash, punto e virgola e altri. Potrebbero non funzionare per tutti i sistemi operativi e per tutte le configurazioni della tastiera.", "editor-extra-keys/@info-shiftKeysWarn": "I \"Tasti shift\" includono tasti che solitamente richiedono la pressione del tasto shift e di un tasto numerico, ad esempio il punto esclamativo, il dollaro, e altri. Questi tasti funzionando soltanto con il blocco \"quando si preme il tasto ()\" e non funzionano per tutti i sistemi operativi e tutte le configurazioni della tastiera.", "editor-extra-keys/@name": "Supporto per tasti extra", - "editor-extra-keys/@settings-name-experimentalKeys": "Abilita tasti sperimentali", - "editor-extra-keys/@settings-name-shiftKeys": "Abilita tasti Shift", + "editor-extra-keys/@settings-name-experimentalKeys": "Mostra tasti sperimentali", + "editor-extra-keys/@settings-name-shiftKeys": "Mostra tasti Shift", "hide-delete-button/@description": "Nasconde il pulsante cancella (icona del cestino) dagli sprite, costumi e suoni. E' possibile cancellarli usando il menu contestuale.", + "hide-delete-button/@info-restoretip": "Suggerimento: se cancelli accidentalmente uno sprite, un costume o un suono, puoi annullare la cancellazione cliccando il menu Modifica nella barra dei menu e scegliendo Ripristina.", "hide-delete-button/@name": "Nasconde il pulsante cancella", "hide-delete-button/@settings-name-costumes": "Costumi e sfondi", "hide-delete-button/@settings-name-sounds": "Suoni", @@ -252,13 +333,20 @@ "no-script-bumping/@name": "Non spaziare automaticamente gli script che si sovrappongono", "disable-stage-drag-select/@description": "Impedisce di trascinare gli sprite visibili sullo stage, tranne quelli esplicitamente indicati come trascinabili. Tieni premuto Shift mentre li trascini per spostarli normalmente.", "disable-stage-drag-select/@name": "Sprite non trascinabili nell'editor", - "move-to-top-bottom/@description": "Aggiunge una opzione al menu contestuale per spostare un costume o un suono in cima o in fondo alla lista. In precedenza era un'opzione inserita negli strumenti per sviluppatori.", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "Consenti il trascinamento quando il progetto è fermo", + "move-to-top-bottom/@description": "Aggiunge opzione al menu contestuale per spostare i costumi e i suoni in cima o in fondo alla lista.", + "move-to-top-bottom/@info-developer-tools": " Questo addon faceva parte in precedenza dell'addon \"strumenti per sviluppatori\" ma è stato spostato qui.", "move-to-top-bottom/@name": "Sposta costumi in cima o in fondo", + "move-to-top-layer/@description": "Usa Shift+Click sull'icona di uno sprite nell'area degli sprite per portarlo in primo piano (primo livello) sullo Stage.", + "move-to-top-layer/@name": "Porta lo sprite in primo piano ", "disable-paste-offset/@description": "Nell'editor dei costumi incolla gli elementi copiati nella loro posizione originale invece di spostarli leggermente.", + "disable-paste-offset/@info-vanilla": "Questo comportamento può essere ottenuto anche usando Alt+Click sugli oggettim, senza abilitare questo addon.", "disable-paste-offset/@name": "Non spostare gli elementi copiati", "block-duplicate/@description": "Duplica rapidamente uno script trascinandolo mentre tieni premuto il tasto Alt. Tenendo premuto anche Ctrl duplicherai solo il blocco cliccato dal mouse invece di tutta la sequenza attaccata al di sotto. ", "block-duplicate/@info-mac": "In macOS usa il tasto Opzione invece del tasto Alt key e il tasto Command invece del tasto Control.", "block-duplicate/@name": "Duplica uno script con il tasto Alt", + "rename-broadcasts/@description": "Aggiunge una voce nel menu dei blocchi INVIA A TUTTI e QUANDO RICEVO per rinominare i messaggi. ", + "rename-broadcasts/@name": "Rinomina messaggi", "swap-local-global/@description": "Aggiunge più opzioni quando si rinomina una variabile o una lista esistente: permette di cambiare da \"Per tutti gli sprite\" e \"Solo per questo sprite\" e tra variabile locale e variabile cloud. Aggiunge un'ulteriore opzione quando si clicca una variabile/lista con il pulsante destro per cambiarne rapidamente la visibilità.", "swap-local-global/@name": "Cambia le variabili da \"Per tutti gli sprite\" a \"Solo per questo sprite\"", "editor-comment-previews/@description": "Ti permette di vedere l'anteprima del contenuto dei commenti passando il mouse sui commenti chiusi o sui blocchi. Puoi usarlo per vedere i commenti che sono al di fuori dell'area visibile dell'editor, identificare un blocco di tipo ciclo dal basso attraverso la sua anteprima, far entrare i commenti lunghi in uno spazio piccolo e molto altro. ", @@ -275,6 +363,25 @@ "editor-comment-previews/@settings-select-delay-short": "Breve", "columns/@description": "Divide il menu delle categorie dei blocchi in due colonne e lo sposta in cima alla lista dei blocchi, come in Scratch 2.0.", "columns/@name": "Menu delle categorie a due colonne", + "number-pad/@description": "Mostra il tastierino numerico virtuale su qualunque dispositivo quando si modificano gli argomenti dei blocchi, non solo sui dispositivi touch. ", + "number-pad/@info-explanation": "Viene mostrato un tastierino numero quando si modificano gli argomenti di blocchi come \"fai () passi\".", + "number-pad/@name": "Mostra sempre tastierino numerico", + "editor-number-arrow-keys/@description": "Usa le frecce su e giù per incrementare o diminuire i valori numerici nelle caselle come ad esempio i valori degli argomenti dei blocchi o i valori delle proprietà nell'area delle informazioni degli sprite.", + "editor-number-arrow-keys/@name": "Incremento dei valori dell’editor usando i tasti freccia", + "editor-number-arrow-keys/@settings-name-alt": "Cambiamento quando si preme Alt+Freccia", + "editor-number-arrow-keys/@settings-name-altCustom": "Cambiamento quando si preme Alt+Freccia", + "editor-number-arrow-keys/@settings-name-regular": "Cambiamento quando si preme normalmente", + "editor-number-arrow-keys/@settings-name-regularCustom": "Cambiamento quando si preme normalmente", + "editor-number-arrow-keys/@settings-name-shift": " Cambiamento quando si preme Shift+Freccia", + "editor-number-arrow-keys/@settings-name-shiftCustom": " Cambiamento quando si preme Shift+Freccia", + "editor-number-arrow-keys/@settings-name-useCustom": "Usa valori personalizzati", + "editor-number-arrow-keys/@settings-select-alt-none": "Nessuno", + "editor-number-arrow-keys/@settings-select-regular-none": "Nessuno", + "editor-number-arrow-keys/@settings-select-shift-none": "Nessuno", + "expanded-backpack/@description": "Dispone i contenuti dello zainetto in una griglia espondibile di due righe, simile alla libreria dei costumi e aumenta la diimensione di alcune anteprime.", + "expanded-backpack/@name": "Righe multiple per lo zainetto", + "expanded-backpack/@settings-name-rows": "Numero di righe mostrate", + "expanded-backpack/@settings-name-upscale": "Anteprime più grandi per costumi e script", "script-snap/@description": "Trascina uno script per allinearlo automaticamente ai puntini presenti nell'area del codice.", "script-snap/@name": "Aggancia gli script alla griglia", "script-snap/@preset-name-default": "Predefinito", @@ -282,10 +389,13 @@ "script-snap/@preset-name-whole-block": "Dimensione di un blocco intero", "script-snap/@settings-name-grid": "Dimensione della griglia (px)", "fullscreen/@description": "Corregge alcuni effetti indesiderati della modalità fullscreen, apre il progetto nella modalità fullscreen del tuo browser e nasconde la barra che contiene la bandiera verde.", - "fullscreen/@info-hideToolbarNotice": "Se decidi di nascondere la barra ricorda che puoi usare il tasto Esc per uscire dalla modalità fullscreen.", + "fullscreen/@info-hideToolbarNotice": "Se scegli di non mostrare mai la barra superiore, ricorda che puoi usare il tasto Esc per uscire dalla modalità presentazione.", "fullscreen/@name": "Schermo intero migliorato", "fullscreen/@settings-name-browserFullscreen": "Apre il fullscreen del player nella modalità fullscreen del browser.", - "fullscreen/@settings-name-hideToolbar": "Nascondi la barra in modalità fullscreen", + "fullscreen/@settings-name-toolbar": "Visibilità della barra superiore", + "fullscreen/@settings-select-toolbar-hide": "Mai", + "fullscreen/@settings-select-toolbar-hover": "Quando il mouse è in alto", + "fullscreen/@settings-select-toolbar-show": "Sempre", "hide-stage/@description": "Aggiunge un pulsante vicino ai pulsanti \"stage piccolo\" e \"stage grande\" per nascondere lo stage e l'area degli sprite, rendendo l'area degli script molto più ampia.", "hide-stage/@name": "Nasconde lo stage e l'area degli sprite", "editor-stepping/@description": "Aggiunge un bordo colorato ai blocchi in esecuzione nel progetto.", diff --git a/src/addons/addons-l10n-settings/ja.json b/src/addons/addons-l10n-settings/ja.json index 51a9afe790e..eb9d8d5bfaf 100644 --- a/src/addons/addons-l10n-settings/ja.json +++ b/src/addons/addons-l10n-settings/ja.json @@ -1,15 +1,29 @@ { - "cat-blocks/@description": "2020年のエイプリルフールの「キャットブロック」を追加する。", - "cat-blocks/@info-watch": "「カーソルを向く」オプションを使用すると、エディターが重くなるかもしれません。", + "cat-blocks/@description": "2020年のエイプリルフールにて最初に追加された「キャットブロック」を追加する。", + "cat-blocks/@info-watch": "「カーソルを向く」設定を使用すると、エディターが重くなるかもしれません。", "cat-blocks/@name": "キャットブロック", "cat-blocks/@settings-name-watch": "カーソルを向く", - "editor-devtools/@description": "検索ボックス、メニューオプション、ブロックのコピペ、きれいにする、定義ブロックに移動、その他さまざまな機能を追加する。 Ctrl+Fを押して検索ボックスをフォーカスし、Ctrl+スペースで「名前でブロックを追加」ポップアップを表示し、Ctrl+左右キーで検索履歴を見る。", + "editor-devtools/@description": "メニューオプション、ブロックのコピペ、「きれいにする」などを追加する。", "editor-devtools/@name": "開発者ツール", "editor-devtools/@settings-name-enableCleanUpPlus": "きれいにする +", - "editor-devtools/@settings-name-enableMiddleClickFinder": "変数、カスタムブロック、イベントをマウスの中ボタンでクリックして案内", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "カーソルの位置にブロックを配置", + "find-bar/@description": "スクリプト、コスチューム、音を検索する検索バーを音タブの横に追加する。Ctrl+左右キーで検索履歴から移動する。", + "find-bar/@info-developer-tools": "このアドオンは以前「開発者ツール」の一部でしたが、移動しました。", + "find-bar/@name": "エディター検索バー", + "middle-click-popup/@description": "コードエリアにてマウスの中ボタンを押すか、Ctrl+スペースまたはShift+クリックで表示される入力欄にブロックの名前を入力してドラッグすると、ブロックを追加できる。Shiftキーを押しながらドラッグすると、画面を閉じずに複数のブロックを追加できる。", + "middle-click-popup/@info-developer-tools": "このアドオンは以前「開発者ツール」の一部でしたが、移動しました。", + "middle-click-popup/@name": "名前からブロックを追加", + "middle-click-popup/@settings-name-popup_max_height": "ポップアップの最大の縦幅", + "middle-click-popup/@settings-name-popup_scale": "ポップアップのブロックの大きさ", + "middle-click-popup/@settings-name-popup_width": "ポップアップの横幅", + "jump-to-def/@description": "中マウスボタンやShift+Clickで、カスタムブロックの定義ブロックに移動できるようにする。", + "jump-to-def/@info-developer-tools": "このアドオンは以前「開発者ツール」の一部でしたが、移動しました。", + "jump-to-def/@name": "カスタムブロック定義に移動", + "reorder-custom-inputs/@description": "「ブロックを作る」画面で定義ブロックの入力を並び替えられるようにする。", + "reorder-custom-inputs/@name": "並べ替え可能な定義ブロック", + "reorder-custom-inputs/@settings-name-InsertInputsAfter": "選択中の入力の右隣に新しい入力を追加する", "editor-searchable-dropdowns/@description": "ブロックのドロップダウンの選択肢を検索する。", - "editor-searchable-dropdowns/@name": "ドロップダウン検索", + "editor-searchable-dropdowns/@name": "ブロックドロップダウン検索", "data-category-tweaks-v2/@description": "変数ブロックの表示を改良する。", "data-category-tweaks-v2/@name": "変数ブロック改良", "data-category-tweaks-v2/@settings-name-moveReportersDown": "変数ブロックを変数リストの上に移動", @@ -17,44 +31,52 @@ "data-category-tweaks-v2/@settings-name-separateLocalVariables": "スプライトのみの変数を分離", "block-palette-icons/@description": "ブロックパレットのカテゴリーにアイコンを追加する。", "block-palette-icons/@name": "ブロックパレットアイコン", - "hide-flyout/@description": "ブロックパレットをホバーしていないときに隠す。ロックアイコンをクリックして表示し続けたり、「カテゴリー・クリック」を使うこともできる。", + "hide-flyout/@description": "ブロックパレットをホバーしていないときに隠す。ロックアイコンをクリックして表示し続けたり、「カテゴリー・クリック」モードを使って、ブロックカテゴリーをクリックしたときに表示を切り替えることもできる。", "hide-flyout/@info-hoverExplanation": "「パレット部分のホバー」は、閲覧部分のみ拡大します。誤ってブロックを削除しないようにするには、他のモードを使ってください。", "hide-flyout/@name": "ブロックパレット隠し", - "hide-flyout/@settings-name-speed": "隠すときのアニメーション", + "hide-flyout/@settings-name-lockLoad": "デフォルトで表示する", + "hide-flyout/@settings-name-speed": "アニメーションの速さ", "hide-flyout/@settings-name-toggle": "固定方法", "hide-flyout/@settings-select-speed-default": "既定", "hide-flyout/@settings-select-speed-long": "遅く", - "hide-flyout/@settings-select-speed-none": "なし", + "hide-flyout/@settings-select-speed-none": "即時", "hide-flyout/@settings-select-speed-short": "速く", "hide-flyout/@settings-select-toggle-category": "カテゴリー・クリック", "hide-flyout/@settings-select-toggle-cathover": "カテゴリーのホバー", "hide-flyout/@settings-select-toggle-hover": "パレット部分のホバー", - "hide-flyout/@update": "アドオンが見直され、多くのバグが修正されました。", "mediarecorder/@description": "ステージを録画するボタンをエディターのメニューバーに追加する。", "mediarecorder/@name": "ステージを録画", "drag-drop/@description": "エディターのスプライトペインやコスチュームペインにファイルをドロップしたり、リストや「聞いて待つ」画面にテキストファイルをドロップできるようにする。", "drag-drop/@name": "ファイルをドロップ", "drag-drop/@settings-name-use-hd-upload": "HDアップロードを使用", + "debugger/@description": "「デバッガー」画面をエディターに追加する。「log」、「warn」、「error」ブロックでデバッガーの「ログ」タブに内容を表示する。「breakpoint」ブロックでプロジェクトを一時停止させる。デバッガー画面の「スレッド」タブで実行中のブロックを確認し、一時停止中「次に進む」を押して次のブロックを実行する。「パフォーマンス」タブでFPSとクローン数のグラフを表示する。", "debugger/@name": "デバッガー", + "debugger/@settings-name-fancy_graphs": "グラフのアニメーション (パフォーマンスに影響を与えます)", "debugger/@settings-name-log_broadcasts": "メッセージを記録", "debugger/@settings-name-log_clear_greenflag": "緑の旗が押されたときにログを消去", "debugger/@settings-name-log_clone_create": "クローンの作成を記録", "debugger/@settings-name-log_failed_clone_creation": "クローン作成失敗時に記録", "debugger/@settings-name-log_greenflag": "緑の旗を記録", - "debugger/@update": "デバッガー画面に「スレッド」と「パフォーマンス」タブが追加されました。", "pause/@description": "緑の旗の横に一時停止ボタンを追加する。", + "pause/@info-keybind": "プロジェクトはAlt+X (macOSでは Option+X) でも一時停止できます。", "pause/@name": "一時停止ボタン", "mute-project/@description": "緑の旗をCtr+クリックでミュートする。", "mute-project/@info-macOS": "macOSでは、Ctrlの代わりにCommandキーを押してください。", "mute-project/@name": "プロジェクトをミュート", + "vol-slider/@description": "緑の旗の横に音量スライダーを追加する。", + "vol-slider/@name": "プロジェクト音量スライダー", + "vol-slider/@settings-name-always": "スライダーを常に表示", + "vol-slider/@settings-name-defVol": "デフォルトの音量", "clones/@description": "クローンの合計数をステージの上に表示する。", "clones/@name": "クローンカウンター", + "clones/@settings-name-projectpage": "プロジェクトページで表示", "clones/@settings-name-showicononly": "アイコンのみ表示", "mouse-pos/@description": "ステージの上にマウスの座標を表示する。", - "mouse-pos/@name": "マウスの座標", + "mouse-pos/@name": "マウスの座標を表示", "color-picker/@description": "16進数カラーコードの入力欄を追加する。", "color-picker/@name": "16進数カラーピッカー", "remove-sprite-confirm/@description": "スプライトの削除時に確認画面を表示する。", + "remove-sprite-confirm/@info-restoretip": "誤ってスプライト、コスチューム、音を削除してしまった場合は、メニューバーの「編集」から元に戻せます。", "remove-sprite-confirm/@name": "スプライト削除確認画面", "block-count/@description": "エディターのメニューバーに合計ブロック数を表示する。", "block-count/@name": "ブロックカウント", @@ -73,10 +95,26 @@ "onion-skinning/@settings-select-layering-front": "前", "onion-skinning/@settings-select-mode-merge": "画像をマージ", "onion-skinning/@settings-select-mode-tint": "色合い", + "paint-snap/@description": "コスチュームエディターにて、オブジェクトを枠線やベクターのノードにスナップさせる。", + "paint-snap/@name": "グリッドにスナップ", + "paint-snap/@settings-name-boxCenter": "選択したオブジェクトの中央からスナップ", + "paint-snap/@settings-name-boxCorners": "選択したオブジェクトの角からスナップ", + "paint-snap/@settings-name-boxEdgeMids": "選択したオブジェクトの中点からスナップ", + "paint-snap/@settings-name-enable-default": "既定で有効化", + "paint-snap/@settings-name-guide-color": "ガイド色", + "paint-snap/@settings-name-objectCenters": "オブジェクトの中央にスナップ", + "paint-snap/@settings-name-objectCorners": "オブジェクトの角にスナップ", + "paint-snap/@settings-name-objectEdges": "オブジェクトの端にスナップ", + "paint-snap/@settings-name-objectMidlines": "オブジェクトの中央線にスナップ", + "paint-snap/@settings-name-pageAxes": "ページの座標軸にスナップ", + "paint-snap/@settings-name-pageCenter": "ページの中央にスナップ", + "paint-snap/@settings-name-pageCorners": "ページの角にスナップ", + "paint-snap/@settings-name-pageEdges": "ページの端にスナップ", + "paint-snap/@settings-name-threshold": "スナップ距離", "default-costume-editor-color/@description": "コスチュームエディターの既定の色と輪郭の大きさを変更する。", "default-costume-editor-color/@name": "コスチュームエディターの既定の色を変更", "default-costume-editor-color/@settings-name-fill": "既定の塗りつぶし色", - "default-costume-editor-color/@settings-name-persistence": "ツール変更時に既定値ではなく以前の色を使用する", + "default-costume-editor-color/@settings-name-persistence": "ツール変更時に色をリセットせず、以前の色を使用する", "default-costume-editor-color/@settings-name-stroke": "既定の輪郭色", "default-costume-editor-color/@settings-name-strokeSize": "既定の輪郭の大きさ", "bitmap-copy/@description": "ペイントエディターでビットマップ画像をコピー可能にする。", @@ -84,6 +122,9 @@ "bitmap-copy/@name": "ビットマップ画像をコピー", "2d-color-picker/@description": "コスチュームエディターの鮮やかさと明るさのスライダーを2Dカラーピッカーにする。Shiftキーを押して一方のみを変更する。", "2d-color-picker/@name": "2D カラーピッカー", + "paint-skew/@description": "コスチュームエディターで図形の端をつかんでCtrlキーを押し、図形を変形させる。Altキーを押しながら行うと、中心からせん断できる。", + "paint-skew/@info-useCmdOnMac": "macOSでは、Altキーの代わりにOptionキーを、Ctrlキーの代わりにCmdキーを利用できます。", + "paint-skew/@name": "画像剪断", "better-img-uploads/@description": "「コスチュームをアップロード」ボタンの上に、画像を自動的にSVGに変換して画質を保つ「HDアップロード」ボタンを追加する。", "better-img-uploads/@info-notSuitableEdit": "このアドオンを使ってアップロードした画像は、編集には適しません。", "better-img-uploads/@name": "画像のHD アップロード", @@ -91,6 +132,8 @@ "better-img-uploads/@settings-select-fitting-fill": "伸ばす", "better-img-uploads/@settings-select-fitting-fit": "縮める", "better-img-uploads/@settings-select-fitting-full": "元サイズ", + "pick-colors-from-stage/@description": "コスチュームエディターのカラーピッカーでステージの色を選択できるようにする。", + "pick-colors-from-stage/@name": "ステージの色を選択", "custom-block-shape/@description": "ブロックのパディング、角、切れ込みを調節する。", "custom-block-shape/@info-paddingWarning": "パディングのサイズは他のユーザーには適用されません。", "custom-block-shape/@name": "ブロックの形をカスタマイズ", @@ -105,16 +148,42 @@ "custom-block-shape/@settings-name-cornerSize": "角のサイズ (0-300%)", "custom-block-shape/@settings-name-notchSize": "切れ込みの高さ (0-150%)", "custom-block-shape/@settings-name-paddingSize": "パディングのサイズ (50-200%)", + "editor-square-inputs/@description": "Scratch2.0のように、特定のブロック入力(テキストや色など)を、長方形にする。", + "editor-square-inputs/@name": "正方形のブロック入力", + "editor-square-inputs/@settings-name-color": "色の入力", + "editor-square-inputs/@settings-name-number": "数字の入力", + "editor-square-inputs/@settings-name-text": "テキストの入力", + "zebra-striping/@description": "重なっている同じカテゴリーのブロックの色の彩度を交互に変える。「ゼブラストライピング」とも呼ばれている。", + "zebra-striping/@name": "ブロックの色を交互に変更", + "zebra-striping/@settings-name-intensity": "倍率 (0-100%)", + "zebra-striping/@settings-name-shade": "明るさ", + "zebra-striping/@settings-select-shade-darker": "暗く", + "zebra-striping/@settings-select-shade-lighter": "明るく", + "editor-compact/@description": "Scratch 2.0のように、エディターのボタン、入力、メニューバーなどのサイズを小さくし、コードエリア、コスチュームエディター、コスチュームプレビューなどのスペースを大きくする。", + "editor-compact/@info-hide-icons-update": "メニューバーのアイコンを非表示にするには、「エディターのメニューバーのカスタマイズ」アドオンを使用してください。", + "editor-compact/@name": "コンパクトエディター", + "editor-compact/@settings-name-hideLabels": "コスチュームとサウンドエディターのボタンのラベルを隠す", + "custom-menu-bar/@description": "エディターのナビゲーションバーの特定のアイテムを非表示にしたり、ラベルやアイコンを取り除くことができます。", + "custom-menu-bar/@info-small-screens": "ウィンドウが小さい場合は、ラベルが自動的にアイコンに置き換えられることがあります。", + "custom-menu-bar/@name": "エディターのメニューバーのカスタマイズ", + "custom-menu-bar/@settings-name-menu-labels": "ナビゲーションバーに表示するもの", + "custom-menu-bar/@settings-select-menu-labels-both": "アイコンとラベル", + "custom-menu-bar/@settings-select-menu-labels-icons": "アイコンのみ", + "custom-menu-bar/@settings-select-menu-labels-labels": "ラベルのみ", "editor-theme3/@description": "ブロックの色をカテゴリーごとに変更する。", "editor-theme3/@name": "ブロックの色をカスタマイズ", - "editor-theme3/@preset-description-black": "ブロックの背景色を黒にする", - "editor-theme3/@preset-description-dark": "既定の色を暗くしたバージョン", + "editor-theme3/@preset-description-black": "ブロックの背景を黒く、枠線と文字を色付きにする", + "editor-theme3/@preset-description-contrast": "Scratch 3.0のハイコントラストブロック色", + "editor-theme3/@preset-description-dark": "デフォルトの色をもっと暗くしたもの", + "editor-theme3/@preset-description-new-dark": "デフォルトの色をダークテーマで見やすくしたもの", "editor-theme3/@preset-description-original": "Scratch 2.0の色", - "editor-theme3/@preset-description-tweaks": "Scratch 2.0風のイベント、制御、定義ブロック", + "editor-theme3/@preset-description-tweaks": "Scratch 3.0のブロックの色とScratch 2.0風のイベント、制御、定義ブロック", "editor-theme3/@preset-name-black": "黒", - "editor-theme3/@preset-name-dark": "ダーク", - "editor-theme3/@preset-name-original": "2.0の色", + "editor-theme3/@preset-name-contrast": "ハイコントラスト", + "editor-theme3/@preset-name-original": "Scratch 2.0の色", + "editor-theme3/@preset-name-tweaks": "Scratch 3.0 改良版", "editor-theme3/@settings-name-Pen-color": "拡張機能", + "editor-theme3/@settings-name-comment-color": "コメント", "editor-theme3/@settings-name-control-color": "制御", "editor-theme3/@settings-name-custom-color": "定義", "editor-theme3/@settings-name-data-color": "変数", @@ -131,11 +200,11 @@ "editor-theme3/@settings-select-text-colorOnBlack": "黒背景に色", "editor-theme3/@settings-select-text-colorOnWhite": "白背景に色", "editor-theme3/@settings-select-text-white": "白", - "editor-theme3/@update": "フォーラム内のブロックの色を変更する設定が追加されました。", - "custom-block-text/@description": "ブロック内のテキストの太さを変更したり、影を追加したりする。", + "custom-block-text/@description": "ブロック内のテキストの大きさや太さを変更したり、影を追加したりしてカスタマイズできます。", "custom-block-text/@name": "ブロック内のテキスト装飾変更", "custom-block-text/@settings-name-bold": "太字", "custom-block-text/@settings-name-shadow": "影", + "custom-block-text/@settings-name-size": "文字の大きさ (%)", "editor-colored-context-menus/@description": "コンテキストメニューに色を付ける。", "editor-colored-context-menus/@name": "右クリックメニューを色付け", "editor-stage-left/@description": "Scratch 2.0のように、ステージを左側に表示する。", @@ -146,7 +215,16 @@ "variable-manager/@description": "エディターに変数とリストを管理するためのタブを追加する。", "variable-manager/@name": "変数マネージャー", "search-sprites/@description": "スプライトペインに、スプライトを名前で検索する項目を追加する。", - "search-sprites/@name": "スプライトを検索", + "search-sprites/@name": "スプライトペイン検索", + "sprite-properties/@description": "Scratch 2.0のように、スプライトプロパティ―パネルを既定で隠す。選択されたスプライトの情報ボタンをクリックするか、スプライトをダブルクリックしてプロパティ―パネルを表示する。プロパティ―パネルの閉じるボタンをクリックするか、スプライトをダブルクリックしてプロパティ―パネルを閉じる。", + "sprite-properties/@name": "スプライトプロパティーを隠す", + "sprite-properties/@settings-name-autoCollapse": "スプライトパネル外にマウスが移動したときに自動的に隠す", + "sprite-properties/@settings-name-hideByDefault": "プロパティ―パネルを既定で隠す", + "sprite-properties/@settings-name-transitionDuration": "アニメーションの速さ", + "sprite-properties/@settings-select-transitionDuration-default": "既定", + "sprite-properties/@settings-select-transitionDuration-long": "遅く", + "sprite-properties/@settings-select-transitionDuration-none": "即時", + "sprite-properties/@settings-select-transitionDuration-short": "速く", "gamepad/@description": "USBかBluetoothのコントローラーやゲームパッドを利用する。", "gamepad/@name": "ゲームパッド", "gamepad/@settings-name-hide": "コントローラーが検出されない場合に設定ボタンを隠す", @@ -157,7 +235,6 @@ "folders/@name": "スプライトフォルダー", "block-switching/@description": "ブロックを右クリックして類似のブロックに変える。", "block-switching/@name": "ブロック置換", - "block-switching/@settings-name-border": "枠線", "block-switching/@settings-name-control": "制御ブロック", "block-switching/@settings-name-customargs": "定義ブロックの引数", "block-switching/@settings-name-customargsmode": "表示する定義ブロック引数", @@ -183,22 +260,24 @@ "custom-zoom/@settings-name-autohide": "ズームボタンを隠す", "custom-zoom/@settings-name-maxZoom": "最大値 (100-500%)", "custom-zoom/@settings-name-minZoom": "最小値 (1-100%)", - "custom-zoom/@settings-name-speed": "アニメーションの時間", + "custom-zoom/@settings-name-speed": "アニメーションの速さ", "custom-zoom/@settings-name-startZoom": "初期値 (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "ズームの割合 (50-200%)", "custom-zoom/@settings-select-speed-default": "既定", - "custom-zoom/@settings-select-speed-long": "長", - "custom-zoom/@settings-select-speed-none": "なし", - "custom-zoom/@settings-select-speed-short": "短", - "initialise-sprite-position/@description": "新しいスプライトのデフォルトのX・Y座標を変更する。", + "custom-zoom/@settings-select-speed-long": "遅く", + "custom-zoom/@settings-select-speed-none": "即時", + "custom-zoom/@settings-select-speed-short": "速く", + "copy-reporter/@description": "変数モニターの値を右クリックメニューからコピーしたり、値ブロックのバルーンからコピーしたりする。", + "copy-reporter/@name": "ステージモニターの値をコピー", + "initialise-sprite-position/@description": "新しいスプライトのデフォルトの座標を変更する。", "initialise-sprite-position/@name": "新しいスプライトの位置を変更", - "initialise-sprite-position/@settings-name-duplicate": "スプライト複製時の動作", - "initialise-sprite-position/@settings-name-library": "ランダム", + "initialise-sprite-position/@settings-name-duplicate": "スプライト複製時の位置", + "initialise-sprite-position/@settings-name-library": "ライブラリーのスプライトはランダムに配置する", "initialise-sprite-position/@settings-name-x": "X座標", "initialise-sprite-position/@settings-name-y": "Y座標", - "initialise-sprite-position/@settings-select-duplicate-custom": "指定した座標に移動", - "initialise-sprite-position/@settings-select-duplicate-keep": "元スプライトと同じ座標にする", - "initialise-sprite-position/@settings-select-duplicate-randomize": "ランダムにする", + "initialise-sprite-position/@settings-select-duplicate-custom": "指定したX/Y座標", + "initialise-sprite-position/@settings-select-duplicate-keep": "元スプライトと同じ", + "initialise-sprite-position/@settings-select-duplicate-randomize": "ランダム", "blocks2image/@description": "コードエリアを右クリックしてブロックをSVG/PNGとして出力する。", "blocks2image/@name": "ブロックを画像に出力", "remove-curved-stage-border/@description": "ステージの枠の丸みをなくし、角を見れるようにする。", @@ -237,13 +316,14 @@ "block-cherry-picking/@settings-name-invertDrag": "入力を反転", "hide-new-variables/@description": "新しく作成した変数やリストのモニターを自動で隠す。", "hide-new-variables/@name": "変数を自動で隠す", - "editor-extra-keys/@description": "\"() キーが押された?\" ブロックのドロップダウンに、Enter、ドット、カンマなどのキーを追加する。", + "editor-extra-keys/@description": "\"() キーが押された?\" ブロックのドロップダウンに、Enter、ドット、カンマなどのキーを追加する。これらは、アドオンを有効化しなくても動作する。", "editor-extra-keys/@info-experimentalKeysWarn": "「実験的なキー」には、等号、スラッシュ、セミコロンなどが含まれます。OSやキーボードのレイアウトによっては、うまく動作しないことがあります。", "editor-extra-keys/@info-shiftKeysWarn": "「Shiftキー」設定を有効化すると、Shiftキーと数字キーを押して入力する、ハッシュ、感嘆符などのキーが追加されます。これらのキーは「() キーが押されたとき」ブロックでのみ動作し、OSやキーボードのレイアウトによっては一切動作しないことがあります。", "editor-extra-keys/@name": "キー入力オプションの追加", "editor-extra-keys/@settings-name-experimentalKeys": "実験的なキー", "editor-extra-keys/@settings-name-shiftKeys": "Shiftキー", "hide-delete-button/@description": "削除ボタン(ゴミ箱アイコン)を、スプライト、コスチュームや音から隠す。コンテキストメニューを使えば、通常通り削除できる。", + "hide-delete-button/@info-restoretip": "誤ってスプライト、コスチューム、音を削除してしまった場合は、メニューバーの「編集」から元に戻せます。", "hide-delete-button/@name": "削除ボタンを隠す", "hide-delete-button/@settings-name-costumes": "コスチュームと背景", "hide-delete-button/@settings-name-sounds": "音", @@ -252,13 +332,20 @@ "no-script-bumping/@name": "スクリプト重ね配置", "disable-stage-drag-select/@description": "ステージではShiftキーを押さないとスプライトをドラッグできないようにする。", "disable-stage-drag-select/@name": "ドラッグできないスプライト", - "move-to-top-bottom/@description": "コスチュームや音を一覧の一番上や一番下に移動する右クリックメニュー項目を追加する。以前は「開発者ツール」の一部であった。", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "プロジェクト停止中にドラッグを許可", + "move-to-top-bottom/@description": "コスチュームや音を一覧の一番上や一番下に移動する右クリックメニュー項目を追加する。", + "move-to-top-bottom/@info-developer-tools": "このアドオンは以前「開発者ツール」の一部でしたが、移動しました。", "move-to-top-bottom/@name": "コスチュームを一番上や一番下に移動", + "move-to-top-layer/@description": "スプライトペイン内のスプライトをShift+クリックしてステージの最前面に移動させる。", + "move-to-top-layer/@name": "スプライトを最前面に移動", "disable-paste-offset/@description": "コスチュームエディター上に張り付けるとき、元の場所からずらさずに張り付ける。", + "disable-paste-offset/@info-vanilla": "ブロックをAlt+クリックすると、アドオンなしでもこの動作を行えます。", "disable-paste-offset/@name": "貼り付けたコスチュームの移動を防止", "block-duplicate/@description": "Altキーを押したままスクリプトをドラッグし、スクリプトを複製する。Ctrlキーも押すと、ブロックを個別に複製できる。", "block-duplicate/@info-mac": "macOSでは、Altキーの代わりにOptionキーを、Ctrlキーの代わりにCmdキーを利用できます。", "block-duplicate/@name": "Altキーでスクリプトを複製", + "rename-broadcasts/@description": "メッセージブロックのドロップダウンにメッセージを改名するオプションを追加する。", + "rename-broadcasts/@name": "メッセージ名を変更", "swap-local-global/@description": "変数やリストを改名するときに、「すべてのスプライト用」と「このスプライトのみ」や、クラウド変数を切り替えられるようにする。右クリックメニューに簡単に変更するための項目を追加する。", "swap-local-global/@name": "変数の「すべてのスプライト用」と「このスプライトのみ」を変更", "editor-comment-previews/@description": "最小化されたコメントやブロックに付属しているコメントの内容を、ホバーしてプレビューできるようにする。", @@ -275,6 +362,25 @@ "editor-comment-previews/@settings-select-delay-short": "短", "columns/@description": "Scratch 2.0のように、ブロックカテゴリーメニューを2列に分け、ブロックパレットの上部に配置する。", "columns/@name": "2列カテゴリーメニュー", + "number-pad/@description": "ブロックの数値を編集するときに、Scratchのナンバーパッド入力をタッチスクリーンデバイス以外のすべてのデバイスで表示する。", + "number-pad/@info-explanation": "「() 歩動かす」ブロックなどの数値を変えるときに、ナンバーパッドが表示されるようになります。", + "number-pad/@name": "ナンバーパッドを常に表示", + "editor-number-arrow-keys/@description": "ブロック入力やスプライトペインの入力などの数値を上下キーで変更する。", + "editor-number-arrow-keys/@name": "矢印キーで数値を変更", + "editor-number-arrow-keys/@settings-name-alt": "Altキー押下時の変更値", + "editor-number-arrow-keys/@settings-name-altCustom": "Altキーでの増減値", + "editor-number-arrow-keys/@settings-name-regular": "通常のキーでの変更値", + "editor-number-arrow-keys/@settings-name-regularCustom": "通常のキーでの増減値", + "editor-number-arrow-keys/@settings-name-shift": "Shiftキー押下時の変更値", + "editor-number-arrow-keys/@settings-name-shiftCustom": "Shiftキーでの増減値", + "editor-number-arrow-keys/@settings-name-useCustom": "カスタムの値を使用", + "editor-number-arrow-keys/@settings-select-alt-none": "なし", + "editor-number-arrow-keys/@settings-select-regular-none": "なし", + "editor-number-arrow-keys/@settings-select-shift-none": "なし", + "expanded-backpack/@description": "エディターのバックパックをコスチュームライブラリーのような二次元グリッドにし、サムネイルを拡大する。", + "expanded-backpack/@name": "複数行バックパック", + "expanded-backpack/@settings-name-rows": "表示する行数", + "expanded-backpack/@settings-name-upscale": "コスチュームとスクリプトのサムネイルを拡大", "script-snap/@description": "スクリプトをドラッグして、コードエリアのドットに整列させる。", "script-snap/@name": "スクリプトを整列", "script-snap/@preset-name-default": "デフォルト", @@ -282,10 +388,13 @@ "script-snap/@preset-name-whole-block": "1ブロック", "script-snap/@settings-name-grid": "グリッドのサイズ (px)", "fullscreen/@description": "全画面表示ボタンをクリックしたとき、ブラウザーの全画面表示を有効化したり、緑の旗のツールバーを隠したりする。", - "fullscreen/@info-hideToolbarNotice": "ツールバーを隠した場合は、Escキーで全画面表示から戻れます。", + "fullscreen/@info-hideToolbarNotice": "ツールバーを表示しない場合は、Escキーで全画面表示から戻れます。", "fullscreen/@name": "全画面表示", "fullscreen/@settings-name-browserFullscreen": "ブラウザーの全画面表示を使用", - "fullscreen/@settings-name-hideToolbar": "ツールバーを隠す", + "fullscreen/@settings-name-toolbar": "ツールバーの表示", + "fullscreen/@settings-select-toolbar-hide": "表示しない", + "fullscreen/@settings-select-toolbar-hover": "ホバーされたときのみ", + "fullscreen/@settings-select-toolbar-show": "常に", "hide-stage/@description": "「小さなステージ」と「大きなステージ」ボタンの横に、ステージとスプライトペインを隠してコードエリアを広げるボタンを追加する。", "hide-stage/@name": "ステージとスプライトペインを隠す", "editor-stepping/@description": "実行中のブロックの周りに色のついた枠線を表示する。", diff --git a/src/addons/addons-l10n-settings/ko.json b/src/addons/addons-l10n-settings/ko.json index 7582c6d03fc..cb2a6252f06 100644 --- a/src/addons/addons-l10n-settings/ko.json +++ b/src/addons/addons-l10n-settings/ko.json @@ -1,14 +1,23 @@ { - "cat-blocks/@description": "2020년 만우절의 편집기 고양이 모자 블록을 되돌립니다.", - "cat-blocks/@info-watch": "\"마우스 커서 바라보기\" 설정은 편집기가 열려 있을 때 성능에 영향을 줄 수 있습니다.", + "cat-blocks/@info-watch": "\"마우스 커서 보기\" 설정은 편집기가 열려 있을 때성능에 영향을 미칠 수 있습니다.", "cat-blocks/@name": "고양이 블럭", "cat-blocks/@settings-name-watch": "마우스 커서 바라보기", + "editor-devtools/@description": "블록 복사 붙여넣기, 더 나은 정리 등, 에디터에 새로운 설정을 추가했습니다.", "editor-devtools/@name": "개발자 도구", "editor-devtools/@settings-name-enableCleanUpPlus": "\"블럭 정리하기\" 향상", - "editor-devtools/@settings-name-enableMiddleClickFinder": "변수 마우스 가운데 클릭, 탐색할 사용자 지정 블록 또는 이벤트", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "마우스 커서로 블럭 붙여넣기", - "editor-searchable-dropdowns/@description": "블록 드롭다운을 검색할 수 있도록 합니다.", - "editor-searchable-dropdowns/@name": "검색 가능한 드롭다운", + "find-bar/@description": "스크립트, 모양, 소리 바 옆에 검색 창을 추가합니다. 검색 창을 이용한 후 코드 창에서 Ctrl+Left과 Ctrl+Right를 눌러 이전, 이후 위치로 이동합니다.", + "find-bar/@info-developer-tools": "이 애드온은 과거에 \"개발자 도구\"의 일부였지만 분리되었습니다.", + "find-bar/@name": "에디터 찾기 바", + "middle-click-popup/@info-developer-tools": "이 애드온은 \"개발자 도구\" 애드온의 일부였으나 이곳으로 옮겨졌습니다.", + "middle-click-popup/@name": "이름으로 블록 삽입", + "middle-click-popup/@settings-name-popup_max_height": "팝업 최대 높이", + "middle-click-popup/@settings-name-popup_scale": "팝업 블록 크기", + "jump-to-def/@description": "마우스 중간 버튼 클릭이나 쉬프트+클릭으로 함수 블록의 정의하기 블록으로 이동합니다.", + "jump-to-def/@info-developer-tools": "이 기능은 본래 \"개발자 도구\"의 일부였으나 여기로 이동되었습니다.", + "jump-to-def/@name": "함수 블록의 정의하기 블록으로 이동하기", + "editor-searchable-dropdowns/@description": "블록 드롭 다운에서 검색할 수 있도록 합니다.", + "editor-searchable-dropdowns/@name": "블록 드롭 다운 검색", "data-category-tweaks-v2/@description": "블록 카테고리에서 데이터(\"변수\") 카테고리를 개선합니다.", "data-category-tweaks-v2/@name": "데이터 카테고리 개선", "data-category-tweaks-v2/@settings-name-moveReportersDown": "데이터 블럭을 변수 리스트 앞으로 보내기", @@ -16,15 +25,14 @@ "data-category-tweaks-v2/@settings-name-separateLocalVariables": "지역변수 분리", "block-palette-icons/@description": "색칠된 원형 내부에 블록 카데고리를 식별하는 아이콘을 추가합니다.", "block-palette-icons/@name": "블럭 팔레트 카테고리 아이콘", - "hide-flyout/@description": "사용되지 않은 경우 블록 팔레트를 숨깁니다. 잠금 아이콘을 클릭하여 일시적으로 제자리에 잠그거나 또는 \"카테고리 클릭\" 모드를 사용하세요.", "hide-flyout/@info-hoverExplanation": "\"팔레트 영역 미사용\" 모드는 보이는 영역만 확장합니다. 블록을 삭제하지 않고 해당 영역으로 드래그하려면 다른 모드 중 하나를 사용하세요.", "hide-flyout/@name": "블록 팔레트 자동으로 숨기기", - "hide-flyout/@settings-name-speed": "모션 시간", + "hide-flyout/@settings-name-speed": "동작 속도", "hide-flyout/@settings-name-toggle": "토글 켜기", "hide-flyout/@settings-select-speed-default": "기본", - "hide-flyout/@settings-select-speed-long": "길게", - "hide-flyout/@settings-select-speed-none": "없음", - "hide-flyout/@settings-select-speed-short": "짧게", + "hide-flyout/@settings-select-speed-long": "느리게", + "hide-flyout/@settings-select-speed-none": "즉시", + "hide-flyout/@settings-select-speed-short": "빠르게", "hide-flyout/@settings-select-toggle-category": "카테고리 클릭", "hide-flyout/@settings-select-toggle-cathover": "카테고리에 접근", "hide-flyout/@settings-select-toggle-hover": "팔레트 영역 접근", @@ -35,15 +43,22 @@ "drag-drop/@settings-name-use-hd-upload": "고해상도 업로드 사용하기", "debugger/@name": "디버거", "debugger/@settings-name-log_broadcasts": "신호 기록하기", + "debugger/@settings-name-log_clear_greenflag": "초록 깃발을 누르면 초기화하기", "debugger/@settings-name-log_clone_create": "복제본 생성 기록하기", - "debugger/@settings-name-log_failed_clone_creation": "복제본 개수 제한에 도달했을 때 기록하기", "debugger/@settings-name-log_greenflag": "녹색 깃발 클릭 기록하기", - "pause/@description": "초록 깃발 옆에 일시 정지 버튼을 추가합니다.", + "pause/@description": "시작 버튼 옆에 일시 정지 버튼을 추가합니다.", + "pause/@info-keybind": "프로젝트는 Alt+X 키로도 멈출 수 있습니다 (macOS에서는 Option+X).", "pause/@name": "일시정지 버튼", "mute-project/@description": "녹색 깃발을 Ctrl+클릭하여 프로젝트를 음소거/음소거 해제합니다.", + "mute-project/@info-macOS": "macOS 사용자라면, Ctrl키 대신 Cmd키를 사용하세요.", "mute-project/@name": "프로젝트 플레이어 음소거 모드", + "vol-slider/@description": "정지 버튼 옆에 음량 슬라이더를 추가합니다.", + "vol-slider/@name": "프로젝트 음량 슬라이더", + "vol-slider/@settings-name-defVol": "기본 음량", "clones/@description": "전체 복제본의 수를 편집기 무대 상단에 표시합니다.", "clones/@name": "복제본 개수 표시", + "clones/@settings-name-projectpage": "프로젝트 페이지에서 보이기", + "clones/@settings-name-showicononly": "아이콘만 보이기", "mouse-pos/@description": "마우스의 x/y위치를 편집기 무대의 상단에 표시합니다.", "mouse-pos/@name": "마우스 위치 표시", "color-picker/@description": "색상 선택기에 HEX 코드 입력을 추가합니다.", @@ -67,6 +82,25 @@ "onion-skinning/@settings-select-layering-front": "앞", "onion-skinning/@settings-select-mode-merge": "이미지 병합", "onion-skinning/@settings-select-mode-tint": "단색으로 표시", + "paint-snap/@description": "모양 편집기에서 테두리 상자와 벡터 노드에 물체를 스냅합니다.", + "paint-snap/@name": "모양 편집기 스냅", + "paint-snap/@settings-name-enable-default": "기본으로 활성화하기", + "paint-snap/@settings-name-guide-color": "스냅 가이드 색상", + "paint-snap/@settings-name-objectCenters": "물체 중앙에 스냅", + "paint-snap/@settings-name-objectCorners": "물체 모서리에 스냅", + "paint-snap/@settings-name-objectEdges": "물체 모서리에 스냅", + "paint-snap/@settings-name-objectMidlines": "물체 중앙선에 스냅", + "paint-snap/@settings-name-pageAxes": "페이지 x축과 y축에 스냅하기", + "paint-snap/@settings-name-pageCenter": "페이지 중앙에 스냅하기", + "paint-snap/@settings-name-pageCorners": "페이지 중앙에 스냅", + "paint-snap/@settings-name-pageEdges": "모서리에 스냅", + "paint-snap/@settings-name-threshold": "스냅 거리", + "default-costume-editor-color/@description": "모양 편집기에서 사용되는 기본 색상과 테두리 크기를 변경합니다.", + "default-costume-editor-color/@name": "모양 편집기 기본 색상 변경", + "default-costume-editor-color/@settings-name-fill": "기본 채우기 색", + "default-costume-editor-color/@settings-name-persistence": "도구를 바꿀 때 색상을 초기화하지 않고 이전 색상을 그대로 사용하기", + "default-costume-editor-color/@settings-name-stroke": "기본 외곽선 색", + "default-costume-editor-color/@settings-name-strokeSize": "기본 외곽선 사이즈", "bitmap-copy/@description": "다른 웹사이트나 소프트웨어에 붙여넣을 수 있도록 모양 편집기에서 비트맵 이미지를 시스템 클립보드에 복사합니다.", "bitmap-copy/@info-norightclick": "\"우클릭 → 복사하기\"는 지원하지 않습니다. 당신은 항상 비트맵 이미지를 선택하기 위해선 Ctrl+C를 눌러야 합니다.", "bitmap-copy/@name": "비트맵 사진 복사", @@ -76,9 +110,9 @@ "better-img-uploads/@info-notSuitableEdit": "사진 업로드 후에 편집할 예정이면 고해상도 사진 업로드 버튼을 사용하지 마세요.", "better-img-uploads/@name": "고해상도 사진 업로드", "better-img-uploads/@settings-name-fitting": "사진 크기 변경하기", - "better-img-uploads/@settings-select-fitting-fill": "이미지를 늘려 무대에 채우기", - "better-img-uploads/@settings-select-fitting-fit": "이미지를 줄여 무대에 채우기", "better-img-uploads/@settings-select-fitting-full": "기존 크기", + "pick-colors-from-stage/@description": "모양 편집기의 색상 선택기가 무대에서도 색상을 고를 수 있도록 합니다.", + "pick-colors-from-stage/@name": "모양 편집기에서 무대 색상 고르기", "custom-block-shape/@description": "블록의 높이, 모서리 곡률. 홈 높이를 조정합니다.", "custom-block-shape/@info-paddingWarning": "블럭 높이를 줄이는 것은 당신만 볼 수 있기에 프로젝트를 다른 사용자가 볼 때 스크립트가 겹쳐 보일 수 있습니다.", "custom-block-shape/@name": "블록 모양 사용자 지정", @@ -93,17 +127,34 @@ "custom-block-shape/@settings-name-cornerSize": "모서리 크기 (0-300%)", "custom-block-shape/@settings-name-notchSize": "홈 높이 (0-150%)", "custom-block-shape/@settings-name-paddingSize": "블럭 높이 (50-200%)", + "editor-square-inputs/@settings-name-text": "텍스트 입력", + "zebra-striping/@description": "같은 카테고리의 블록이 서로 포개어져 있을 때, 블록의 색상을 더 연하고 진하게 바꿉니다.", + "zebra-striping/@name": "포개진 블록의 색상 변경", + "zebra-striping/@settings-name-intensity": "채도 (0-100%)", + "zebra-striping/@settings-name-shade": "어둡게", + "zebra-striping/@settings-select-shade-darker": "어둡게", + "zebra-striping/@settings-select-shade-lighter": "더 밝게", + "editor-compact/@description": "Scratch 2.0 처럼 코드 영역, 모양 편집기, 의상 미리보기와 같은 구성 요소를 위한 더 많은 공간을 만들기 위해 편집기의 버튼, 입력 필드, 메뉴 표시줄 및 기타 요소의 크기를 줄입니다.", + "editor-compact/@info-hide-icons-update": "메뉴 표시줄 아이콘을 숨기려면 \"사용자 정의 가능한 메뉴 표시줄\" 애드온을 사용하십시오.", + "editor-compact/@name": "콤팩트 편집기", + "editor-compact/@settings-name-hideLabels": "모양 및 소리 편집기에서 버튼 라벨 숨기기", + "custom-menu-bar/@settings-name-menu-labels": "메뉴 보이기...", "editor-theme3/@description": "편집기의 각 카테고리에 대한 블록 색상을 편집합니다.", - "editor-theme3/@name": "블록 색상 사용자 지정하기", - "editor-theme3/@preset-description-black": "블럭 배경을 검정으로 만듭니다.", - "editor-theme3/@preset-description-dark": "기본 색상의 어두운 버전", + "editor-theme3/@name": "블록 색상 지정하기", + "editor-theme3/@preset-description-black": "블록 배경을 검정으로 설정하고 테두리/텍스트 색상을 설정합니다.", + "editor-theme3/@preset-description-contrast": "스크래치 3.0의 고대비 블록 색상 팔레트", + "editor-theme3/@preset-description-dark": "기본 색상보다 더 진한 버전", + "editor-theme3/@preset-description-new-dark": "다크 테마에서 잘 어울리는 기본 색상의 어두운 버전", "editor-theme3/@preset-description-original": "2.0의 원 색상", - "editor-theme3/@preset-description-tweaks": "2.0에서의 색상과 비슷한 색상의 이벤트, 제어, 새 블록", + "editor-theme3/@preset-description-tweaks": "스크래치 2.0의 색상과 유사한 이벤트, 제어 및 사용자 정의 블록이 포함된 스크래치 3.0의 블록 색", "editor-theme3/@preset-name-black": "검은색", - "editor-theme3/@preset-name-dark": "어두운 테마", - "editor-theme3/@preset-name-original": "2.0 색상", - "editor-theme3/@preset-name-tweaks": "3.0 개선", + "editor-theme3/@preset-name-contrast": "높은 대조", + "editor-theme3/@preset-name-dark": "어둡게", + "editor-theme3/@preset-name-new-dark": "어두운 테마", + "editor-theme3/@preset-name-original": "스크래치 2.0 색", + "editor-theme3/@preset-name-tweaks": "트윅된 스크래치 3.0", "editor-theme3/@settings-name-Pen-color": "확장 기능", + "editor-theme3/@settings-name-comment-color": "댓글", "editor-theme3/@settings-name-control-color": "제어", "editor-theme3/@settings-name-custom-color": "사용자 지정", "editor-theme3/@settings-name-data-color": "변수", @@ -120,18 +171,28 @@ "editor-theme3/@settings-select-text-colorOnBlack": "검은 배경에서의 색", "editor-theme3/@settings-select-text-colorOnWhite": "흰 배경에서의 색", "editor-theme3/@settings-select-text-white": "하양", - "editor-theme3/@update": "토론방에서 블록의 색상을 변경할 수 있는 새로운 설정입니다.", - "custom-block-text/@description": "블록 글자의 두께를 변경하거나 글자 그림자를 선택적으로 추가합니다", "custom-block-text/@name": "블록 글자 스타일 설정", "custom-block-text/@settings-name-bold": "글자 굵게 하기", "custom-block-text/@settings-name-shadow": "글자 아래에 그림자 추가하기", "editor-colored-context-menus/@description": "우클릭 메뉴에 색상을 입힙니다.", "editor-colored-context-menus/@name": "우클릭 메뉴 색상", - "editor-stage-left/@name": "무대 왼쪽에서 보이기", + "editor-stage-left/@description": "스크래치 2.0 처럼 무대를 코드 편집기의 왼쪽으로 옮깁니다.", + "editor-stage-left/@info-reverseOrder": "깃발 버튼과 멈춤 버튼, 전체화면 버튼의 위치를 바꾸려면 \"프로젝트 버튼 위치 반전\" 애드온을 사용하세요.", + "editor-stage-left/@name": "무대를 왼쪽에서 나타내기", + "editor-buttons-reverse-order/@description": "스크래치 2.0처럼 깃발 버튼과 멈춤 버튼을 오른쪽으로, 전체 화면 버튼을 왼쪽으로 옮깁니다.", + "editor-buttons-reverse-order/@name": "프로젝트 버튼 위치 반전", "variable-manager/@description": "변수 및 리스트를 쉽게 업데이트할 수 있도록 편집기의 \"소리\"탭 옆에 탭을 추가합니다.", "variable-manager/@name": "변수 관리자", "search-sprites/@description": "스프라이트 창에 검색창을 추가해 이름으로 스프라이트를 검색합니다.", - "search-sprites/@name": "이름으로 스프라이트 검색", + "sprite-properties/@description": "스크래치 2.0처럼 속성 패널을 숨기는 것을 기본값으로 설정합니다. 현재 선택된 스프라이트의 정보 버튼을 이용하거나 스프라이트를 더블클릭해서 속성 패널을 다시 보입니다. 다시 숨기려면, 패널 접기 버튼을 누르거나 스프라이트를 더블클릭하세요.", + "sprite-properties/@name": "스프라이트 속성 닫기", + "sprite-properties/@settings-name-autoCollapse": "마우스가 스프라이트 패널을 벗어났을 때 패널을 접습니다.", + "sprite-properties/@settings-name-hideByDefault": "패널 접힘을 기본값으로 설정하기", + "sprite-properties/@settings-name-transitionDuration": "동작 속도", + "sprite-properties/@settings-select-transitionDuration-default": "기본", + "sprite-properties/@settings-select-transitionDuration-long": "느리게", + "sprite-properties/@settings-select-transitionDuration-none": "즉시", + "sprite-properties/@settings-select-transitionDuration-short": "빠르게", "gamepad/@description": "USB 또는 Bluetooth 컨트롤러/게임 패드를 사용하여 프로젝트와 상호작용합니다.", "gamepad/@name": "게임패드 지원", "gamepad/@settings-name-hide": "컨트롤러가 감지되지 않았을 때 설정 버튼 숨기기", @@ -141,10 +202,7 @@ "folders/@name": "스프라이트 폴더", "block-switching/@description": "블럭을 마우스 오른쪽 버튼으로 클릭하여 관련 블럭으로 전환합니다.", "block-switching/@name": "블럭 바꾸기", - "block-switching/@settings-name-border": "테두리 넣기", "block-switching/@settings-name-control": "제어 블럭", - "block-switching/@settings-name-customargs": "사용자 지정 블록 인수", - "block-switching/@settings-name-customargsmode": "인수 설정에 사용자 지정 블록을 보입니다.", "block-switching/@settings-name-data": "데이터 블럭", "block-switching/@settings-name-event": "이벤트 블럭", "block-switching/@settings-name-extension": "확장 블럭", @@ -154,30 +212,30 @@ "block-switching/@settings-name-operator": "연산 블럭", "block-switching/@settings-name-sensing": "감지 블럭", "block-switching/@settings-name-sound": "소리 블럭", - "block-switching/@settings-select-customargsmode-all": "스프라이트 내 모든 사용자 지정 블록의 인수", - "block-switching/@settings-select-customargsmode-defOnly": "사용자 지정 블록의 인수", "load-extensions/@description": "음악, 펜, 그리고 다른 확장 기능들을 편집기 블록 카테고리에 자동으로 추가합니다.", "load-extensions/@name": "확장 기능 자동 추가하기", "load-extensions/@settings-name-music": "음악", "load-extensions/@settings-name-pen": "펜", - "load-extensions/@settings-name-text2speech": "음성 합성 변환(TTS)", + "load-extensions/@settings-name-text2speech": "음성 합성 변환 (TTS)", "load-extensions/@settings-name-translate": "번역", "custom-zoom/@description": "프로젝트 코드 편집기에서 줌의 최소, 최대, 속도 및 시작 크기를 사용자 지정하고 조작을 자동으로 숨깁니다", "custom-zoom/@name": "코드 영역 확대/축소 사용자 지정하기", "custom-zoom/@settings-name-autohide": "줌 제어 자동 숨기기", + "custom-zoom/@settings-name-maxZoom": "최대 확대 (100-500%)", "custom-zoom/@settings-name-minZoom": "최소 줌 (1-100%)", - "custom-zoom/@settings-name-speed": "동작 시간 자동 숨기기", + "custom-zoom/@settings-name-speed": "자동 숨기기 속도", "custom-zoom/@settings-name-startZoom": "시작 줌 (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "줌 속도 (50-200%)", "custom-zoom/@settings-select-speed-default": "기본", - "custom-zoom/@settings-select-speed-long": "길게", - "custom-zoom/@settings-select-speed-none": "없음", - "custom-zoom/@settings-select-speed-short": "짧게", - "initialise-sprite-position/@description": "새 스프라이트의 기본 x/y 위치를 변경합니다.", + "custom-zoom/@settings-select-speed-long": "느리게", + "custom-zoom/@settings-select-speed-none": "즉시", + "custom-zoom/@settings-select-speed-short": "빠르게", "initialise-sprite-position/@name": "새 스프라이트 위치 사용자 지정하기", - "initialise-sprite-position/@settings-name-library": "라이브러리 스프라이트의 위치 임의 지정", "initialise-sprite-position/@settings-name-x": "X 좌표", "initialise-sprite-position/@settings-name-y": "Y 좌표", + "initialise-sprite-position/@settings-select-duplicate-custom": "정확한 x/y 포지션", + "initialise-sprite-position/@settings-select-duplicate-keep": "원본 스프라이트와 같게", + "initialise-sprite-position/@settings-select-duplicate-randomize": "랜덤", "blocks2image/@description": "코드 영역을 우클릭해 블럭을 SVG/PNG 사진으로 내보냅니다.", "blocks2image/@name": "블럭을 이미지로 저장", "remove-curved-stage-border/@description": "모서리를 볼 수 있도록 무대 주위의 곡선 테두리를 제거합니다.", @@ -214,14 +272,12 @@ "block-cherry-picking/@info-macContextDisabled": "macOS에서는, Ctrl 키 대신 Cmd키를 사용하세요.", "block-cherry-picking/@name": "Ctrl 키를 눌러 개별 블록 잡기", "block-cherry-picking/@settings-name-invertDrag": "제어 뒤집기", - "hide-new-variables/@description": "새 변수나 리스트가 생성되었을 때 자동으로 모니터를 생성하지 않습니다.", "hide-new-variables/@name": "새 변수 숨기기", - "editor-extra-keys/@description": "\"()키를 눌렀는가?\"와 \"()키를 눌렀을 때\" 블록의 드롭다운에 엔터, 마침표, 쉼표 등의 더 많은 키를 추가힙니다.", "editor-extra-keys/@info-experimentalKeysWarn": "\"실험적 키\"에는 등호, 슬래시, 세미콜론 등이 포합됩니다. 키보드 배열이나 운영 체제에 따라서 작동하지 않을 수도 있습니다.", "editor-extra-keys/@info-shiftKeysWarn": "\"Shift 키\"에는 Shift와 같이 눌러야 하는 해시태그, 느낌표 등이 포합됩니다. 이 키들은 \"()키를 눌렀을 때\"블록에서만 작동하고, 키보드 배열이나 운영 체젱에 따라서 작동하지 않을 수 있습니다.", - "editor-extra-keys/@name": "추가 키 지원하기", - "editor-extra-keys/@settings-name-experimentalKeys": "실험적 키 추가하기", - "editor-extra-keys/@settings-name-shiftKeys": "Shift 키 활성화하기", + "editor-extra-keys/@name": "추가 키 설정", + "editor-extra-keys/@settings-name-experimentalKeys": "실험적 키 보이기", + "editor-extra-keys/@settings-name-shiftKeys": "Shift 키 보이기", "hide-delete-button/@description": "삭제 버튼(쓰래기통 아이콘)을 스프라이트, 모양, 소리에서 삭제합니다. 우클릭 메뉴에서는 여전히 삭제할 수 있습니다.", "hide-delete-button/@name": "삭제 버튼 숨기기", "hide-delete-button/@settings-name-costumes": "모양과 배경", @@ -229,14 +285,20 @@ "hide-delete-button/@settings-name-sprites": "스프라이트", "no-script-bumping/@description": "스크립트를 움직이고 변경해도 스크립트끼리 겹칠 때 스크립트가 돌아다니지 않게 합니다.", "no-script-bumping/@name": "스크립트끼리 겹칠 때 자동 여백 만들지 않기", + "disable-stage-drag-select/@description": "편집기 무대에서(드래그가 가능하도록 설정된 스프라이트 제외) 스프라이트 드래그를 막습니다. 시프트 키를 누르면 스프라이트가 정상적으로 드래그됩니다.", "disable-stage-drag-select/@name": "편집기에서 스프라이트 드래그 끄기", - "move-to-top-bottom/@description": "기존에는 개발자 도구에 있었던 모양이나 소리를 리스트의 맨 아래나 맨 위로 보내는 우클릭 메뉴를 추가합니다.", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "프로젝트가 멈쳐 있을 때 드래그를 가능하게 해줍니다.", + "move-to-top-bottom/@description": "모양이나 음악을 리스트의 시작이나 끝으로 음직일 수 있는 우클릭 매뉴를 추가합니다.", + "move-to-top-bottom/@info-developer-tools": "이 애드온은 과거에 \"개발자 도구\"의 일부였지만 분리되었습니다.", "move-to-top-bottom/@name": "모양 블록을 맨 위로 올리거나 맨 아래로 내리기", "disable-paste-offset/@description": "모양 편집기에서 복사한 모양을 살짝 이동시키지 않고 원래 위치에 붙여넣습니다.", + "disable-paste-offset/@info-vanilla": "아이템을 Alt+클릭해 동일한 행동을 이 애드온 없이도 할 수 있습니다.", "disable-paste-offset/@name": "불여넣어진 아이템 원래 자리에 놓기", "block-duplicate/@description": "Alt 키를 누르면서 스크립트를 드래그해 빠르게 복제합니다. Ctrl 키를 같이 누르면 한 개의 스크립트만 복사됩니다.", "block-duplicate/@info-mac": "맥OS에서는 Alt 키 대신 옵션 키를 이용하고, Ctrl 키 대신 Cmd키를 이용하세요.", "block-duplicate/@name": "Alt 키로 스크립트 복제하기", + "rename-broadcasts/@description": "신호 블록 드롭다운에 신호 이름을 변경할 수 있는 옵션을 제공합니다.", + "rename-broadcasts/@name": "신호 이름 변경하기", "swap-local-global/@description": "기존 변수 또는 목록의 이름을 바꿀 때 추가 설정을 추가합니다. \"모든 스프라이트의 경우\"와 \"이 스프라이트의 경우에만\" 사이에서 변경할 수 있고 변수가 클라우드에 저장되는지 여부를 변경할 수 있습니다. 또한 변수/리스트를 마우스 오른쪽 단추로 클릭하여 범위를 빠르게 변경할 수 있는 설정을 추가합니다.", "swap-local-global/@name": "변수의 '모든 스프라이트에서 사용'과 '이 스프라이트에서만 사용'을 전환하기", "editor-comment-previews/@description": "접혀 있는 주석이나 블록 위에 마우스를 올려놓아 주석의 내용을 미리볼 수 있도록 합니다. 이를 통해 화면 밖에서 주석을 보고, 미리보기로 루프 블록을 아래쪽에서 확인하며, 작은 공간에 많은 긴 주석을 맞추는 등의 작`업을 수행할 수 있습니다.", @@ -251,8 +313,14 @@ "editor-comment-previews/@settings-select-delay-long": "길게", "editor-comment-previews/@settings-select-delay-none": "없음", "editor-comment-previews/@settings-select-delay-short": "짧게", - "columns/@description": "블럭 카테고리 메뉴를 2열로 쪼개 스크래치 2.0처럼 블록 팔레트의 맨 위로 옮깁니다.", + "columns/@description": "블럭 카테고리 메뉴를 두 줄로 쪼개 스크래치 2.0처럼 블록 팔레트의 맨 위로 옮깁니다.", "columns/@name": "2열 카테고리 메뉴", + "number-pad/@name": "숫자 패드 항상 보이기", + "editor-number-arrow-keys/@settings-name-shift": "쉬프트 + 키에서 바꾸기", + "expanded-backpack/@description": "모양 라이브러리처럼 편집기의 개인 저장소를 확장되는 이중 그리드로 배열하고, 특정한 썸네일을 확대합니다.", + "expanded-backpack/@name": "개인 저장소 여러 열로 사용하기", + "expanded-backpack/@settings-name-rows": "표시할 열 수", + "expanded-backpack/@settings-name-upscale": "모양과 스크립트 썸네일을 더 크게 하기", "script-snap/@description": "스크립트를 드래그해 코드 영역 점에 자동으로 정렬합니다.", "script-snap/@name": "스크립트를 격자에 맟추기", "script-snap/@preset-name-default": "기본", @@ -260,10 +328,10 @@ "script-snap/@preset-name-whole-block": "한 블록 크기", "script-snap/@settings-name-grid": "격자 크기 (px)", "fullscreen/@description": "전체 화면 모드에서 발생하는 몇몇 의도하지 않은 효과들을 고치고, 브라우저의 전체 화면 모드로 열 수 있으며, 녹색 깃발 툴바를 숨깁니다.", - "fullscreen/@info-hideToolbarNotice": "만약 툴바 숨기기를 선택했다면, Esc키를 눌러 전체 화면 모드에서 나가세요.", "fullscreen/@name": "향상된 전체 화면", "fullscreen/@settings-name-browserFullscreen": "전체 화면 플레리어를 전체 화면 브라우저 모드에서 열기", - "fullscreen/@settings-name-hideToolbar": "전체 화면에서 툴바 숨기기", + "hide-stage/@description": "무대와 스프라이트 탭을 숨기는 \"무대 숨기기\" 버튼을 추가하여 코드 편집기를 더 크게 사용할 수 있습니다.", + "hide-stage/@name": "무대와 스프라이트 탭 숨기기", "editor-stepping/@description": "프로젝트에서 현재 실행 중인 블록을 색으로 강조합니다.", "editor-stepping/@name": "실행 블록 테두리", "editor-stepping/@settings-name-highlight-color": "강조색" diff --git a/src/addons/addons-l10n-settings/nl.json b/src/addons/addons-l10n-settings/nl.json index 9c17869c38f..550973787a4 100644 --- a/src/addons/addons-l10n-settings/nl.json +++ b/src/addons/addons-l10n-settings/nl.json @@ -1,59 +1,81 @@ { - "cat-blocks/@description": "Brengt de kat-blokken in de editor van 1 April 2020 terug.", - "cat-blocks/@info-watch": "De \"Kijk naar muisaanwijzer\"-optie kan mogelijk de prestaties verminderen wanneer de editor openstaat.", - "cat-blocks/@name": "Kat-blokken", + "cat-blocks/@description": "Brengt de katblokken terug die voor het eerst geïntroduceerd werden op 1 April 2020.", + "cat-blocks/@info-watch": "De instelling \"Kijk naar muisaanwijzer\" vermindert mogelijk prestaties wanneer de editor is geopend.", + "cat-blocks/@name": "Katblokken", "cat-blocks/@settings-name-watch": "Kijk naar muisaanwijzer", - "editor-devtools/@description": "Voegt een zoekbalk en nieuwe menuopties toe aan de editor: blokken kopiëren/plakken, betere opruimer, naar blokdefinitie springen, en meer! Druk op Ctrl+F om de zoekbalk te focussen, Ctrl+Spatie om de \"blok bij naam toevoegen\"-pop-up tevoorschijn te brengen, Ctrl+Links/Rechts om zoekgeschiedenis te navigeren.", + "editor-devtools/@description": "Voegt nieuwe menuopties toe aan de editor: blokken kopiëren/plakken, beter opruimen, en meer!", "editor-devtools/@name": "Ontwikkelaarstools", "editor-devtools/@settings-name-enableCleanUpPlus": "\"Blokken opruimen\" Verbeteren", - "editor-devtools/@settings-name-enableMiddleClickFinder": "Gebruik de middelste muisknop op variabelen, eigen blokken of gebeurtenissen om te navigeren", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Blokken plakken bij muisaanwijzer", - "editor-searchable-dropdowns/@description": "Geeft je de mogelijkheid om blok-dropdownitems te zoeken.", - "editor-searchable-dropdowns/@name": "Doorzoekbare dropdowns", + "find-bar/@description": "Maakt een nieuwe zoekbalk waarmee je scripts, uiterlijken en geluiden kunt zoeken en ernaar kunt springen, naast het geluidentabblad. Gebruik Ctrl+Links en Ctrl+Rechts in het codegebied om te navigeren naar vorige of volgende bezochte posities na het gebruiken van de zoekbalk.", + "find-bar/@info-developer-tools": "Deze addon maakte voorheen deel uit van de \"ontwikkelaarstools\"-addon maar is nu hierheen verhuisd.", + "find-bar/@name": "Zoekbalk in editor", + "middle-click-popup/@description": "Klik met de scrolwiel of Shift+Klik in het codegebied, of druk op Ctrl+Spatie om een blokkenzoeker erbij te pakken. Typ namen van blokken (of delen ervan) en sleep ze in het codegebied. Navigeer met de pijltjestoetsen en Enter, en het ondersteund ook Tab. Om het menu open te houden moet je Shift ingedrukt houden tijdens het slepen.", + "middle-click-popup/@info-developer-tools": "Deze addon maakte voorheen deel uit van de \"ontwikkelaarstools\"-addon maar is nu hierheen verhuisd.", + "middle-click-popup/@name": "Blokken invoegen op naam", + "middle-click-popup/@settings-name-popup_max_height": "Maximale Hoogte van Pop-Up", + "middle-click-popup/@settings-name-popup_scale": "Grootte van Blokken in Pop-Up", + "middle-click-popup/@settings-name-popup_width": "Breedte van Pop-Up", + "jump-to-def/@description": "Spring naar een definitie van een eigen blok met de scrolwielknop of Shift+Klik op het blok.", + "jump-to-def/@info-developer-tools": "Deze addon maakte voorheen deel uit van de \"ontwikkelaarstools\"-addon maar is nu hierheen verhuisd.", + "jump-to-def/@name": "Springen naar definitie van eigen blok", + "reorder-custom-inputs/@description": "Herschik de parameters van aangepaste blokken in het \"Maak een blok\"-scherm.", + "reorder-custom-inputs/@name": "Herschikbare ingangen van aangepaste blokken", + "reorder-custom-inputs/@settings-name-InsertInputsAfter": "Nieuwe ingangen invoegen na geselecteerde ingang", + "editor-searchable-dropdowns/@description": "Geeft je de mogelijkheid om de opties van dropdowns van blokken te zoeken met een zoekbalk.", + "editor-searchable-dropdowns/@name": "Zoekbalk in dropdowns van blokken", "data-category-tweaks-v2/@description": "Maakt aanpassingen aan de Gegevens (\"Variabelen\")-blokcategorie.", "data-category-tweaks-v2/@name": "Gegevenscategorie-aanpassingen", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Verplaats gegevensblokken boven variabelenlijst", "data-category-tweaks-v2/@settings-name-separateListCategory": "Aparte Lijstcategorie", "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Aparte \"Voor Deze Sprite\"-Variabelen", - "block-palette-icons/@description": "Voegt iconen binnen de gekleurde cirkels van blokcategorieën toe.", - "block-palette-icons/@name": "Blokpalet categorie-iconen", - "hide-flyout/@description": "Verbergt het blokpalet als niet gefocust. Klik op het sloticoon om het tijdelijk vast te zetten. Gebruik de \"categorie-klik\"-modus als alternatief.", - "hide-flyout/@info-hoverExplanation": "\"Over paletgebied zweven\" verbreedt alleen het zichtgebied. Als je blokken naar dat gebied wilt slepen zonder dat ze verwijderd worden, gebruik dan een van de andere modi.", + "block-palette-icons/@description": "Voegt pictogrammen toe binnen de gekleurde cirkels van blokcategorieën.", + "block-palette-icons/@name": "Pictogrammen voor categorieën in blokpalet", + "hide-flyout/@description": "Verbergt het blokpalet als je cursor er niet boven zweeft. Klik op het slotpictogram om het tijdelijk vast te zetten, of gebruik de stand \"op categorie klikken\" om het te tonen/verbergen wanneer je op een blokcategorie klikt.", + "hide-flyout/@info-hoverExplanation": "\"Over paletgebied zweven\" verbreedt alleen het zichtveld. Als je blokken naar dat gebied wilt slepen zonder dat ze verwijderd worden, gebruik dan een van de andere modi.", "hide-flyout/@name": "Blokpalet automatisch verbergen", - "hide-flyout/@settings-name-speed": "Animatielengte", - "hide-flyout/@settings-name-toggle": "Aanzetten...", + "hide-flyout/@settings-name-lockLoad": "Standaard openen", + "hide-flyout/@settings-name-speed": "Animatiesnelheid", + "hide-flyout/@settings-name-toggle": "Tonen/verbergen wanneer je cursor...", "hide-flyout/@settings-select-speed-default": "Standaard", - "hide-flyout/@settings-select-speed-long": "Lang", - "hide-flyout/@settings-select-speed-none": "Geen", - "hide-flyout/@settings-select-speed-short": "Kort", - "hide-flyout/@settings-select-toggle-category": "Categorieën klikken", - "hide-flyout/@settings-select-toggle-cathover": "Over categorieën zweven", - "hide-flyout/@settings-select-toggle-hover": "Over paletgebied zweven", - "hide-flyout/@update": "Deze addon is verbeterd en er zijn veel bugs opgelost.", - "mediarecorder/@description": "Voegt een \"opname starten\"-knop aan de editortaakbalk toe die je het speelveld laat opnemen.", - "mediarecorder/@name": "Projectvideo-opnemer", + "hide-flyout/@settings-select-speed-long": "Traag", + "hide-flyout/@settings-select-speed-none": "Meteen", + "hide-flyout/@settings-select-speed-short": "Vlug", + "hide-flyout/@settings-select-toggle-category": "Op een categorie klikt", + "hide-flyout/@settings-select-toggle-cathover": "Over de categorieën zweeft", + "hide-flyout/@settings-select-toggle-hover": "Over het paletgebied zweeft", + "mediarecorder/@description": "Voegt een \"opname starten\"-knop toe aan de editortaakbalk die je het speelveld laat opnemen.", + "mediarecorder/@name": "Video's van project opnemen", "drag-drop/@description": "Laat je afbeeldingen en geluiden slepen van je bestandsverkenner in het spritevenster of kostuum-/geluidlijst. Je kunt ook tekstbestanden naar lijsten of naar \"vraag en wacht\"-invoeren slepen.", "drag-drop/@name": "Bestand slepen en neerzetten", "drag-drop/@settings-name-use-hd-upload": "Gebruik HD-uploads", + "debugger/@description": "Voegt een nieuw \"debugger\"-venster toe in de editor. Je kunt loggen in het \"Logs\"-venster van de debugger met de \"log\", \"waarschuwing\" en \"error\"-blokken. Het \"onderbreking\"-blok pauzeert het project wanneer uitgevoerd. Alle uitvoerende blokkenstapels kun je zien in het \"Threads\"-venster van de debugger, en wanneer gepauzeerd kan de \"Stap\"-knop gebruikt worden om het volgende blok uit te voeren. Een grafiek van frames per seconde en aantal klonen kun je zien in het \"Prestaties\"-venster.", + "debugger/@settings-name-fancy_graphs": "Geanimeerde grafieken (kan prestaties beïnvloeden)", "debugger/@settings-name-log_broadcasts": "Signalen loggen", "debugger/@settings-name-log_clear_greenflag": "Logs wissen op groene vlag", "debugger/@settings-name-log_clone_create": "Klooncreaties loggen", - "debugger/@settings-name-log_failed_clone_creation": "Log wanneer maximale klonen bereikt zijn", - "debugger/@settings-name-log_greenflag": "Groene vlag-kliks loggen", - "debugger/@update": "Nieuwe \"Threads\" en \"Prestaties\"-vensters in de debugger.", - "pause/@description": "Voegt een pauzeerknop toe naast de groene vlag.", + "debugger/@settings-name-log_failed_clone_creation": "Log wanneer kloonlimiet bereikt is", + "debugger/@settings-name-log_greenflag": "Log wanneer groene vlag wordt geklikt", + "pause/@description": "Voegt een knop toe naast de groene vlag om het project te pauzeren.", + "pause/@info-keybind": "Het project kan ook worden gepauzeerd met Alt+X (Option+X op macOS).", "pause/@name": "Pauzeerknop", "mute-project/@description": "Ctrl+Klik de groene vlag om het project te dempen/dempen opheffen.", "mute-project/@info-macOS": "Gebruik de Cmd-toets in plaats van Ctrl op macOS.", "mute-project/@name": "Gedempte projectspeler", + "vol-slider/@description": "Voegt een volumeschuifregelaar toe naast de start-/stopbesturingen", + "vol-slider/@name": "Volumeschuifregelaar in projecten", + "vol-slider/@settings-name-always": "Schuifregelaar altijd tonen", + "vol-slider/@settings-name-defVol": "Standaardvolume", "clones/@description": "Voegt een teller boven het speelveld toe in de editor die het totale aantal klonen laat zien.", "clones/@name": "Kloonteller", + "clones/@settings-name-projectpage": "Weergeven op projectpagina", "clones/@settings-name-showicononly": "Alleen pictogram tonen", - "mouse-pos/@description": "Laat de x/y-posities van je muisaanwijzer zien boven het speelveld in de editor.", - "mouse-pos/@name": "Muispositie", + "mouse-pos/@description": "Geeft de x/y-posities van je muisaanwijzer weer boven het speelveld in de editor.", + "mouse-pos/@name": "Muispositie weergeven", "color-picker/@description": "Voegt hex-codeingangen toe aan kleurenkiezers.", "color-picker/@name": "Hex-kleurenkiezer", "remove-sprite-confirm/@description": "Vraagt of je zeker weet dat je een sprite in een project wilt verwijderen.", + "remove-sprite-confirm/@info-restoretip": "Tip: als je per ongeluk een sprite, uiterlijk of geluid verwijdert, kan je 'm terughalen door in de menubalk op Bewerk te klikken, en dan op Herstel.", "remove-sprite-confirm/@name": "Sprite verwijderen bevestigen", "block-count/@description": "Laat je het totaal aantal blokken in een project zien in de menubalk van de editor. Hoorde vroeger bij \"sprite- en scriptteller\".", "block-count/@name": "Blokkenteller", @@ -72,26 +94,47 @@ "onion-skinning/@settings-select-layering-front": "Voor", "onion-skinning/@settings-select-mode-merge": "Afbeeldingen samenvoegen", "onion-skinning/@settings-select-mode-tint": "Kleurtint", + "paint-snap/@description": "Objecten in de uiterlijkeditor uitlijnen op begrenzende vakken en vectorknooppunten.", + "paint-snap/@name": "Uitlijnen in uiterlijkeditor", + "paint-snap/@settings-name-boxCenter": "Uitlijnen vanaf middelpunt selectie", + "paint-snap/@settings-name-boxCorners": "Uitlijnen vanaf hoeken selectie", + "paint-snap/@settings-name-boxEdgeMids": "Uitlijnen vanaf middelpunten op randen selectie", + "paint-snap/@settings-name-enable-default": "Standaard inschakelen", + "paint-snap/@settings-name-guide-color": "Hulpkleur bij uitlijnen", + "paint-snap/@settings-name-objectCenters": "Uitlijnen op objectmiddelpunten", + "paint-snap/@settings-name-objectCorners": "Uitlijnen op objecthoeken", + "paint-snap/@settings-name-objectEdges": "Uitlijnen op objectranden", + "paint-snap/@settings-name-objectMidlines": "Uitlijnen op objectmiddenlijnen", + "paint-snap/@settings-name-pageAxes": "Uitlijnen op X- en Y-assen van pagina", + "paint-snap/@settings-name-pageCenter": "Uitlijnen op paginamiddelpunt", + "paint-snap/@settings-name-pageCorners": "Uitlijnen op paginahoeken", + "paint-snap/@settings-name-pageEdges": "Uitlijnen op paginaranden", + "paint-snap/@settings-name-threshold": "Uitlijnafstand", "default-costume-editor-color/@description": "Verandert de standaardkleuren en -randgrootte in de uiterlijkeditor.", "default-costume-editor-color/@name": "Aanpasbare standaardkleuren in uiterlijkeditor", "default-costume-editor-color/@settings-name-fill": "Standaard opvulkluur", - "default-costume-editor-color/@settings-name-persistence": "Gebruik vorige kleur in plaats van standaard bij het veranderen van gereedschappen", + "default-costume-editor-color/@settings-name-persistence": "Gebruik vorige kleur in plaats van resetten na het veranderen van gereedschappen", "default-costume-editor-color/@settings-name-stroke": "Standaard randkleur", "default-costume-editor-color/@settings-name-strokeSize": "Standaard randgrootte", "bitmap-copy/@description": "Geeft je de mogelijkheid om bitmapafbeeldingen van de kostuumeditor te kopiëren naar je klembord, zodat je het in andere websites of software kunt plakken.", "bitmap-copy/@info-norightclick": "\"Rechterklik → kopiëren\" is niet ondersteund. Je moet Ctrl+C indrukken terwijl een bitmapafbeelding is geselecteerd.", "bitmap-copy/@name": "Bitmapafbeeldingen kopiëren", - "2d-color-picker/@description": "Vervangt saturatie en helderheidsliders in de kostuumeditor met een 2D-kleurenkiezer. Houd Shift ingedrukt en beweeg de muisaanwijzer om de waarden op een enkele as te veranderen.", + "2d-color-picker/@description": "Vervangt verzadiging- en helderheidschuifregelaars in de uiterlijkeditor met een 2D-kleurenkiezer. Houd Shift ingedrukt en beweeg de muisaanwijzer om de waarden op een enkele as te veranderen.", "2d-color-picker/@name": "2D-kleurenkiezer", - "better-img-uploads/@description": "Voegt een nieuwe knop toe boven de \"upload uiterlijk\"-knop die geüploade bitmapafbeeldingen automatisch converteert naar SVG (vector)-afbeeldingen om de kwaliteit te behouden.", - "better-img-uploads/@info-notSuitableEdit": "Vermijd het gebruiken van de HD-uploadknop als je later nog de afbeelding wilt bewerken.", - "better-img-uploads/@name": "HD-afbeelding uploads", + "paint-skew/@description": "Houd Ctrl ingedrukt terwijl je de schaal van een object aan een zijkant verandert om het scheef te trekken. Houd Alt ingedrukt tijdens het scheeftrekken om het middelpunt van het object op dezelfde plek te houden.", + "paint-skew/@info-useCmdOnMac": "Gebruik op macOS de Command-toets i.p.v. Control en de Option-toets i.p.v. Alt.", + "paint-skew/@name": "Objecten scheeftrekken in uiterlijkeditor", + "better-img-uploads/@description": "Voegt een nieuwe knop toe boven de \"upload uiterlijk\"-knop die geüploade bitmapafbeeldingen automatisch omzet naar SVG-afbeeldingen (vector) om alle kwaliteit te behouden.", + "better-img-uploads/@info-notSuitableEdit": "Vermijd het gebruiken van de HD-uploadknop als je de afbeelding later nog wilt bewerken.", + "better-img-uploads/@name": "HD-afbeeldingen uploaden", "better-img-uploads/@settings-name-fitting": "Afbeeldingsgrootte", - "better-img-uploads/@settings-select-fitting-fill": "Rekken om speelveld te vullen", - "better-img-uploads/@settings-select-fitting-fit": "Krimpen om in speelveld te passen", + "better-img-uploads/@settings-select-fitting-fill": "Strekken om canvas te vullen", + "better-img-uploads/@settings-select-fitting-fit": "Verkleinen om in canvas te passen", "better-img-uploads/@settings-select-fitting-full": "Originele grootte", - "custom-block-shape/@description": "Verander de opvulling, hoekgrootte, en inkepingshoogte van blokken.", - "custom-block-shape/@info-paddingWarning": "De opvulling verminderen is alleen zichtbaar voor jou, dus als anderen je project bekijken, kunnen je scripts elkaar bedekken.", + "pick-colors-from-stage/@description": "Kies kleuren van het speelveld met de kleurenpipet van de uiterlijkeditor.", + "pick-colors-from-stage/@name": "Speelveldkleuren selecteren met kleurenpipet", + "custom-block-shape/@description": "Verander de opvulling, hoekafronding en inkepingshoogte van blokken.", + "custom-block-shape/@info-paddingWarning": "Een verminderde opvulling is alleen zichtbaar voor jou, dus als anderen je project bekijken, kunnen je scripts elkaar bedekken.", "custom-block-shape/@name": "Aanpasbare blokvorm", "custom-block-shape/@preset-description-default2": "Een uiterlijk dat lijkt op Scratch 2.0-blokken", "custom-block-shape/@preset-description-default3": "Het normale uiterlijk van Scratch-3.0 blokken", @@ -101,22 +144,49 @@ "custom-block-shape/@preset-name-default3": "3.0-Blokken", "custom-block-shape/@preset-name-flat2": "2.0 Plat", "custom-block-shape/@preset-name-flat3": "3.0 Plat", - "custom-block-shape/@settings-name-cornerSize": "Hoekgrootte (0-300%)", - "custom-block-shape/@settings-name-notchSize": "Inkepinghoogte (0-150%)", + "custom-block-shape/@settings-name-cornerSize": "Hoekafronding (0-300%)", + "custom-block-shape/@settings-name-notchSize": "Inkepingshoogte (0-150%)", "custom-block-shape/@settings-name-paddingSize": "Opvulling (50-200%)", + "editor-square-inputs/@description": "Maakt bepaalde soorten invoervelden (zoals tekst of kleur) rechthoekig in plaats van rond, zoals in Scratch 2.0.", + "editor-square-inputs/@name": "Rechthoekige invoervelden in blokken", + "editor-square-inputs/@settings-name-color": "Kleur-invoervelden", + "editor-square-inputs/@settings-name-number": "Getal-invoervelden", + "editor-square-inputs/@settings-name-text": "Tekst-invoervelden", + "zebra-striping/@description": "Wisselt de tinten van blokken met dezelfde kleur tussen licht en donker af wanneer ze in elkaar genest zijn. Dit staat ook bekend als zebrastrepen.", + "zebra-striping/@name": "Afwisselende kleuren van geneste blokken", + "zebra-striping/@settings-name-intensity": "Intensiteit (0-100%)", + "zebra-striping/@settings-name-shade": "Tint", + "zebra-striping/@settings-select-shade-darker": "Donkerder", + "zebra-striping/@settings-select-shade-lighter": "Lichter", + "editor-compact/@description": "Verkleint knoppen, invoervelden, de menubalk en andere elementen in de editor, zodat delen zoals het codegebied, de uiterlijkeditor en uiterlijkvoorbeelden meer ruimte hebben zoals het was in Scratch 2.0.", + "editor-compact/@info-hide-icons-update": "Gebruik de addon \"Aanpasbare menubalk\" om pictogrammen in de menubalk te verbergen.", + "editor-compact/@name": "Compacte editor", + "editor-compact/@settings-name-hideLabels": "Knoplabels verbergen in uiterlijk- en geluidseditor", + "custom-menu-bar/@description": "Verberg bepaalde items in de menubalk van de editor of verberg hun labels of pictogrammen.", + "custom-menu-bar/@info-small-screens": "De tekstlabels kunnen automatisch worden vervangen door pictogrammen op kleinere vensters.", + "custom-menu-bar/@name": "Aanpasbare editor-menubalk", + "custom-menu-bar/@settings-name-menu-labels": "Toon...", + "custom-menu-bar/@settings-select-menu-labels-both": "Pictogrammen en labels", + "custom-menu-bar/@settings-select-menu-labels-icons": "Alleen pictogrammen", + "custom-menu-bar/@settings-select-menu-labels-labels": "Alleen labels", "editor-theme3/@description": "Pas blokkleuren aan voor elke categorie in de editor.", "editor-theme3/@name": "Aanpasbare blokkleuren", - "editor-theme3/@preset-description-black": "Maakt blok-achtergronden zwart", - "editor-theme3/@preset-description-dark": "Donkere versies van de standaardkleuren", + "editor-theme3/@preset-description-black": "Maakt blokachtergronden zwart en randen/tekst gekleurd", + "editor-theme3/@preset-description-contrast": "Blokkleurenpalet met hoog contrast van Scratch 3.0", + "editor-theme3/@preset-description-dark": "Nog donkerdere versies van de standaardkleuren", + "editor-theme3/@preset-description-new-dark": "Donkere versies van de standaardkleuren die er goed uitzien in donkere thema's", "editor-theme3/@preset-description-original": "De originele blokkleuren van Scratch 2.0", - "editor-theme3/@preset-description-tweaks": "Gebeurtenissen, Besturing, en Eigen blokken met 2.0-kleuren", + "editor-theme3/@preset-description-tweaks": "De blokkleuren van Scratch 3.0 met Evenementen, Besturing en Mijn blokken die lijken op de kleuren van Scratch 2.0", "editor-theme3/@preset-name-black": "Zwart", - "editor-theme3/@preset-name-dark": "Donker", - "editor-theme3/@preset-name-original": "2.0-kleuren", - "editor-theme3/@preset-name-tweaks": "3.0-Aanpassingen", + "editor-theme3/@preset-name-contrast": "Hoog contrast", + "editor-theme3/@preset-name-dark": "Donkerder", + "editor-theme3/@preset-name-new-dark": "Donker", + "editor-theme3/@preset-name-original": "Scratch 2.0-kleuren", + "editor-theme3/@preset-name-tweaks": "Scratch 3.0 aangepast", "editor-theme3/@settings-name-Pen-color": "extensies", + "editor-theme3/@settings-name-comment-color": "Opmerkingen", "editor-theme3/@settings-name-control-color": "besturen", - "editor-theme3/@settings-name-custom-color": "aanpasbaar", + "editor-theme3/@settings-name-custom-color": "eigen blokken", "editor-theme3/@settings-name-data-color": "variabelen", "editor-theme3/@settings-name-data-lists-color": "lijsten", "editor-theme3/@settings-name-events-color": "gebeurtenissen", @@ -131,11 +201,11 @@ "editor-theme3/@settings-select-text-colorOnBlack": "Gekleurd op zwarte achtergrond", "editor-theme3/@settings-select-text-colorOnWhite": "Gekleurd op witte achtergrond", "editor-theme3/@settings-select-text-white": "Wit", - "editor-theme3/@update": "Nieuwe instelling om het veranderen van kleur van blokken in de forums in te schakelen.", - "custom-block-text/@description": "Verandert de dikte van de bloktekst en voegt eventueel een tekstschaduw toe.", + "custom-block-text/@description": "Geeft je de mogelijkheid om de stijl van de tekst op blokken aan te passen, zoals de lettergrootte, -dikte en -schaduw.", "custom-block-text/@name": "Bewerkbare bloktekststijlen", "custom-block-text/@settings-name-bold": "Dikgedrukte tekst", "custom-block-text/@settings-name-shadow": "Tekstschaduw", + "custom-block-text/@settings-name-size": "Tekstgrootte (%)", "editor-colored-context-menus/@description": "Geeft rechterklikmenu's van blokken een kleur.", "editor-colored-context-menus/@name": "Gekleurde rechterklikmenu's", "editor-stage-left/@description": "Zet het speelveld aan de linkerkant van de editor, zoals in Scratch 2.0.", @@ -146,59 +216,69 @@ "variable-manager/@description": "Voegt een tabblad naast \"geluiden\" toe in de editor om makkelijk variabelen en lijsten aan te passen.", "variable-manager/@name": "Variabele manager", "search-sprites/@description": "Voegt een zoekbalk aan het spritevenster toe om sprites bij naam te zoeken.", - "search-sprites/@name": "Sprites bij naam zoeken", + "search-sprites/@name": "Zoekbalk in spritepaneel", + "sprite-properties/@description": "Verbergt het sprite-eigenschappenpaneel zoals in Scratch 2.0. Klik op de infoknop in de huidige sprite of dubbelklik een sprite om het paneel weer te laten verschijnen. Om het weer te verbergen gebruik je de samenvouwknop in het paneel of dubbelklik een sprite.", + "sprite-properties/@name": "Sprite-eigenschappen samenvouwen", + "sprite-properties/@settings-name-autoCollapse": "Automatisch samenvouwen wanneer muis buiten paneel beweegt", + "sprite-properties/@settings-name-hideByDefault": "Paneel standaard samenvouwen", + "sprite-properties/@settings-name-transitionDuration": "Animatiesnelheid", + "sprite-properties/@settings-select-transitionDuration-default": "Standaard", + "sprite-properties/@settings-select-transitionDuration-long": "Traag", + "sprite-properties/@settings-select-transitionDuration-none": "Meteen", + "sprite-properties/@settings-select-transitionDuration-short": "Vlug", "gamepad/@description": "Gebruik projecten met een USB- of Bluetooth-controller/gamepad", "gamepad/@name": "Gamepad-ondersteuning", "gamepad/@settings-name-hide": "Instellingsknop verbergen als er geen controllers gevonden zijn", "editor-sounds/@description": "Speelt geluiden af wanneer je blokken verbindt of verwijdert.", "editor-sounds/@name": "Editor-geluidseffecten", - "folders/@description": "Voegt mappen toe aan het spritevenster, en ook uiterlijk- en geluidlijsten. Om een map aan te maken, gebruik de rechtermuisknop op een sprite en klik op \"map aanmaken\". Klik op een map om het te openen of te sluiten. Gebruik de rechtermuisknop op een sprite om te zien naar welke mappen je het kunt verplaatsen, of sleep het naar een geopende map. Deze functie werkt door \"[folderName]//\" aan het begin van de namen van je sprites toe te voegen.", + "folders/@description": "Geeft je de mogelijkheid om sprites, uiterlijken en geluiden te sorteren in mappen. Om een map aan te maken gebruik je de rechtermuisknop op een sprite en klik je op \"map aanmaken\". Klik op een map om het te openen of te sluiten. Gebruik de rechtermuisknop op een sprite om te zien naar welke mappen je het kunt verplaatsen, of sleep het naar een geopende map. Deze functie werkt door \"[mapNaam]//\" aan het begin van de namen van je sprites toe te voegen.", "folders/@info-notice-folders-are-public": "Gebruikers met deze functie zullen mappen kunnen zien in je project. Alle anderen zien de sprites normaal (zonder mappen).", "folders/@name": "Spritemappen", - "block-switching/@description": "Rechtermuisknop op een blok om het te wisselen naar een gerelateerde blok.", - "block-switching/@name": "Blokken wisselen", - "block-switching/@settings-name-border": "Rand toevoegen", - "block-switching/@settings-name-control": "Besturen-blokken", - "block-switching/@settings-name-customargs": "Eigen blokken-argumenten", - "block-switching/@settings-name-customargsmode": "Zichtbare eigen blokken-argumentopties", - "block-switching/@settings-name-data": "Gegevens-blokken", - "block-switching/@settings-name-event": "Gebeurtenis-blokken", - "block-switching/@settings-name-extension": "Extensieblokken", - "block-switching/@settings-name-looks": "Uiterlijken-blokken", - "block-switching/@settings-name-motion": "Beweging-blokken", - "block-switching/@settings-name-noop": "Laat optie zien om blok naar zichzelf te wisselen", - "block-switching/@settings-name-operator": "Functies-blokken", - "block-switching/@settings-name-sensing": "Waarnemen-blokken", - "block-switching/@settings-name-sound": "Geluid-blokken", - "block-switching/@settings-select-customargsmode-all": "Argumenten in alle eigen blokken in sprite", - "block-switching/@settings-select-customargsmode-defOnly": "Argumenten in eigen eigen blok", + "block-switching/@description": "Gebruik de rechtermuisknop op een blok om het te verwisselen naar een gerelateerd blok.", + "block-switching/@name": "Blokken verwisselen", + "block-switching/@settings-name-control": "Besturen", + "block-switching/@settings-name-customargs": "Parameters van eigen blokken", + "block-switching/@settings-name-customargsmode": "Parameters van eigen blokken wisselen naar:", + "block-switching/@settings-name-data": "Variabelen & Lijsten", + "block-switching/@settings-name-event": "Gebeurtenissen", + "block-switching/@settings-name-extension": "Extensies", + "block-switching/@settings-name-looks": "Uiterlijken", + "block-switching/@settings-name-motion": "Beweging", + "block-switching/@settings-name-noop": "Toon optie om blok te verwisselen naar zichzelf", + "block-switching/@settings-name-operator": "Functies", + "block-switching/@settings-name-sensing": "Waarnemen", + "block-switching/@settings-name-sound": "Geluid", + "block-switching/@settings-select-customargsmode-all": "Parameters van alle eigen blokken in sprite", + "block-switching/@settings-select-customargsmode-defOnly": "Parameters van dit eigen blok", "load-extensions/@description": "Laat muziek, pen, en andere extensies automatisch zien in de blokcategoriemenu in de editor.", "load-extensions/@name": "Extensies automatisch toevoegen", "load-extensions/@settings-name-music": "Muziek", "load-extensions/@settings-name-text2speech": "Tekst naar Spraak", "load-extensions/@settings-name-translate": "Vertaal", "custom-zoom/@description": "Kies zelf instellingen voor de minimale, maximale, snelheid, en beginzoom van de zoom van scripts in het codegebied, en verberg automatisch de knoppen.", - "custom-zoom/@name": "Aanpasbare codegebied-zoom", - "custom-zoom/@settings-name-autohide": "Zoomknoppen Automatisch Verbergen", + "custom-zoom/@name": "Aanpasbare zoom in codegebied", + "custom-zoom/@settings-name-autohide": "Zoomknoppen automatisch verbergen", "custom-zoom/@settings-name-maxZoom": "Maximale Zoom (100-500%)", "custom-zoom/@settings-name-minZoom": "Minimale Zoom (1-100%)", - "custom-zoom/@settings-name-speed": "Automatisch Verbergen-Animatielengte", + "custom-zoom/@settings-name-speed": "Animatiesnelheid", "custom-zoom/@settings-name-startZoom": "Beginzoom (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "Zoomsnelheid (50-200%)", "custom-zoom/@settings-select-speed-default": "Standaard", - "custom-zoom/@settings-select-speed-long": "Lang", - "custom-zoom/@settings-select-speed-none": "Geen", - "custom-zoom/@settings-select-speed-short": "Kort", - "initialise-sprite-position/@description": "Verander de standaard x/y-positie van nieuwe sprites.", - "initialise-sprite-position/@name": "Aanpasbare nieuwe sprite-positie", - "initialise-sprite-position/@settings-name-duplicate": "Gedrag van gedupliceerde sprites", - "initialise-sprite-position/@settings-name-library": "Geef bibliotheeksprites een willekeurige positie", + "custom-zoom/@settings-select-speed-long": "Traag", + "custom-zoom/@settings-select-speed-none": "Meteen", + "custom-zoom/@settings-select-speed-short": "Vlug", + "copy-reporter/@description": "Geeft je de mogelijkheid om waarden die worden weergegeven door variabelemonitoren (in het rechterklikmenu) en waardeballonnen te kopiëren.", + "copy-reporter/@name": "Waarden van waardeblokken kopiëren", + "initialise-sprite-position/@description": "Pas aan waar nieuwe sprites worden geplaatst op het speelveld.", + "initialise-sprite-position/@name": "Aanpasbare positie van nieuwe sprite", + "initialise-sprite-position/@settings-name-duplicate": "Positie van gedupliceerde sprites", + "initialise-sprite-position/@settings-name-library": "Sprites uit bibliotheek op willekeurige plek plaatsen", "initialise-sprite-position/@settings-name-x": "X-positie", "initialise-sprite-position/@settings-name-y": "Y-positie", - "initialise-sprite-position/@settings-select-duplicate-custom": "Ga naar specifieke x/y-posities", - "initialise-sprite-position/@settings-select-duplicate-keep": "Hetzelfde als de originele sprite houden", + "initialise-sprite-position/@settings-select-duplicate-custom": "Specifieke x/y-positie", + "initialise-sprite-position/@settings-select-duplicate-keep": "Hetzelfde als originele sprite", "initialise-sprite-position/@settings-select-duplicate-randomize": "Willekeurig", - "blocks2image/@description": "Gebruik de rechtermuisknop op het codegebied om blokken te exporteren als SVG/PNG-afbeeldingen.", + "blocks2image/@description": "Gebruik de rechtermuisknop in het codegebied om blokken te exporteren als SVG/PNG-afbeeldingen.", "blocks2image/@name": "Blokken opslaan als afbeelding", "remove-curved-stage-border/@description": "Verwijdert de ronde rand rond het speelveld zodat je de hoeken beter kunt zien.", "remove-curved-stage-border/@name": "Ronde speelveldrand verwijderen", @@ -207,8 +287,8 @@ "transparent-orphans/@settings-name-block": "Blokdoorzichtigheid (%)", "transparent-orphans/@settings-name-dragged": "Gesleepte blokdoorzichtigheid (%)", "transparent-orphans/@settings-name-orphan": "Losse blokdoorzichtigheid (%)", - "paint-by-default/@description": "Verandert de standaardactie van de \"Kies een Sprite/Uiterlijk/Achtergrond/Geluid\"-knoppen, die normaal de bibliotheek openen.", - "paint-by-default/@name": "Standaard sprite tekenen", + "paint-by-default/@description": "Verandert de standaardactie van de \"Kies een sprite/uiterlijk/achtergrond/geluid\"-knoppen, die normaal de bibliotheek openen.", + "paint-by-default/@name": "Aanpasbare standaardactie voor item toevoegen", "paint-by-default/@settings-name-backdrop": "Achtergrond toevoegen", "paint-by-default/@settings-name-costume": "Uiterlijk toevoegen", "paint-by-default/@settings-name-sound": "Geluid toevoegen", @@ -229,50 +309,83 @@ "paint-by-default/@settings-select-sprite-paint": "Teken", "paint-by-default/@settings-select-sprite-surprise": "Verrassing", "paint-by-default/@settings-select-sprite-upload": "Uploaden", - "block-cherry-picking/@description": "Sleep een enkel blok uit een script met de Ctrl-toets (zonder dat alle blokken eronder ook meegaan).", + "block-cherry-picking/@description": "Sleep een enkel blok uit het midden van een script met de Ctrl-toets (zonder dat alle blokken eronder ook meegaan).", "block-cherry-picking/@info-flipControls": "Als \"besturing omdraaien\" aanstaat, is het enkele blokken uit een script slepen normaal. Houdt Ctrl ingedrukt om het hele script te slepen.", "block-cherry-picking/@info-macContextDisabled": "Gebruik de Cmd-toets in plaats van Ctrl op macOS.", "block-cherry-picking/@name": "Enkel blok slepen met Ctrl-toets", "block-cherry-picking/@settings-name-invertDrag": "Besturing omdraaien", - "hide-new-variables/@description": "Geen monitors maken voor nieuwe variabelen of lijsten.", + "hide-new-variables/@description": "Monitors voor nieuwe variabelen of lijsten niet automatisch tonen.", "hide-new-variables/@name": "Nieuwe variabelen verbergen", - "editor-extra-keys/@description": "Voegt meer toetsen toe aan de \"toets () ingedrukt?\" en \"wanneer () is ingedrukt\" blokdropdowns, zoals enter, punt, komma, en meer.", + "editor-extra-keys/@description": "Voegt meer toetsen toe aan de \"toets () ingedrukt?\" en \"wanneer () is ingedrukt\" blokdropdowns, zoals enter, punt, komma, en meer. Deze toetsen werken zelfs voor gebruikers zonder deze addon.", "editor-extra-keys/@info-experimentalKeysWarn": "De \"experimentele toetsen\" bevatten isteken, slash, puntkomma en meer. Dit werkt niet op alle systemen of toetsenborden.", "editor-extra-keys/@info-shiftKeysWarn": "De \"Shifttoetsen\" bevatten toetsen die normaal de Shifttoets en een getaltoets, zoals hashtag, uitroepteken en meer. Deze toetsen werken alleen met de \"wanneer () is ingedrukt\"-blok en werken niet op alle systemen of toetsenborden.", - "editor-extra-keys/@name": "Extra toetsondersteuning", - "editor-extra-keys/@settings-name-experimentalKeys": "Experimentele toetsen aanzetten", - "editor-extra-keys/@settings-name-shiftKeys": "Shifttoetsen aanzetten", + "editor-extra-keys/@name": "Meer toetsopties", + "editor-extra-keys/@settings-name-experimentalKeys": "Experimentele toetsen weergeven", + "editor-extra-keys/@settings-name-shiftKeys": "Shifttoetsen weergeven", "hide-delete-button/@description": "Verbergt de verwijderknop (afvalbakpictogram) in sprites, uiterlijken en geluiden. Ze kunnen nog steeds worden verwijderd in het rechterklikmenu.", + "hide-delete-button/@info-restoretip": "Tip: als je per ongeluk een sprite, uiterlijk of geluid verwijdert, kan je 'm terughalen door in de menubalk op Bewerk te klikken, en dan op Herstel.", "hide-delete-button/@name": "Verwijderknop verbergen", "hide-delete-button/@settings-name-costumes": "Uiterlijken en achtergronden", "hide-delete-button/@settings-name-sounds": "Geluiden", "no-script-bumping/@description": "Laat je je scripts bewegen en veranderen zonder overlappende scripts te laten bewegen.", "no-script-bumping/@name": "Overlappende scripts niet automatisch verplaatsen", - "disable-stage-drag-select/@description": "Maakt het niet meer mogelijk om sprites rond te slepen in de editor, behalve diegene die ingesteld zijn als sleepbaar. Houd Shift ingedrukt om sprites zoals normaal te slepen.", + "disable-stage-drag-select/@description": "Maakt het niet meer mogelijk om sprites rond te slepen in de editor, behalve degenen die specifiek ingesteld zijn als sleepbaar. Houd Shift ingedrukt om sprites zoals normaal te slepen.", "disable-stage-drag-select/@name": "Niet-sleepbare sprites in editor", - "move-to-top-bottom/@description": "Voegt een optie toe in het rechterklikmenu om een uiterlijk of geluid naar boven of beneden te sturen in de lijst. Hoorde eerst bij de ontwikkelaarstools.", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "Slepen toestaan wanneer project is gestopt", + "move-to-top-bottom/@description": "Voegt opties toe in de rechterklikmenu's van uiterlijken of geluiden om ze helemaal boven of beneden in de lijst te plaatsen.", + "move-to-top-bottom/@info-developer-tools": "Deze addon maakte voorheen deel uit van de \"ontwikkelaarstools\"-addon maar is nu hierheen verhuisd.", "move-to-top-bottom/@name": "Verplaats uiterlijk naar boven of beneden", + "move-to-top-layer/@description": "Klik met shift ingedrukt op een sprite in het sprite-paneel om het naar de voorgrond (bovenste laag) van het speelveld te verplaatsen.", + "move-to-top-layer/@name": "Sprite verplaatsen naar voorgrond", "disable-paste-offset/@description": "Plak gekopieerde items op hun originele plek in plaats van een beetje verplaatst in de uiterlijkeditor.", + "disable-paste-offset/@info-vanilla": "Dit kan ook gedaan worden zonder deze addon, namelijk door op het object te klikken met Alt ingedrukt.", "disable-paste-offset/@name": "Geplakte items niet verplaatsen", - "block-duplicate/@description": "Dupliceer snel een script door het te slepen met de Alt-toets ingedrukt. Houd Ctrl ook ingedrukt om alleen een enkel blok te dupliceren in plaats van het hele script eronder.", + "block-duplicate/@description": "Dupliceer snel een script door het te slepen met de alt-toets ingedrukt. Houd ctrl ook ingedrukt om alleen een enkel blok te dupliceren in plaats van het hele script eronder.", "block-duplicate/@info-mac": "Gebruik de Option-toets in plaats van de Alt-toets en de Command-toets in plaats van de Control-toets op macOS.", - "block-duplicate/@name": "Scripts dupliceren met de Alt-toets", - "swap-local-global/@description": "Geeft meer opties voor het hernoemen van variabelen of lijsten: laat je kiezen tussen \"Voor alle sprites\" en \"Alleen voor deze sprite\" en of variabelen voor de cloud moeten zijn. Voegt ook een optie toe voor rechterklikken op een variabele/lijst om snel zijn type te veranderen.", + "block-duplicate/@name": "Scripts dupliceren met alt-toets", + "rename-broadcasts/@description": "Verander de naam van signalen in de dropdowns van signaalblokken.", + "rename-broadcasts/@name": "Signalen hernoemen", + "swap-local-global/@description": "Geeft meer opties voor het hernoemen van variabelen of lijsten: laat je kiezen tussen \"Voor alle sprites\" en \"Alleen voor deze sprite\" en of variabelen in de cloud worden bewaard. Voegt ook een optie toe voor rechterklikken op een variabele/lijst om snel zijn type te veranderen.", "swap-local-global/@name": "Wissel variabelen tussen \"Voor alle sprites\" en \"Alleen voor deze sprite\"", - "editor-comment-previews/@description": "Geeft je de mogelijkheid om de inhoud van opmerkingen te zien door je muisaanwijzer over samengeklapte opmerkingen en blokken te zetten. Hiermee kun je opmerkingen zien die van het scherm af zijn, herhalingsblokken te onderscheiden vanaf de onderkant door zijn voorbeeld, veel grote opmerkingen in een kleine plek passen, en meer.", - "editor-comment-previews/@name": "Editoropmerkingvoorbeelden", + "editor-comment-previews/@description": "Geeft je de mogelijkheid om de inhoud van opmerkingen te zien door de muisaanwijzer over verkleinde opmerkingen en blokken te zweven. Hiermee kun je opmerkingen zien die niet op het scherm zijn, herhalingsblokken onderscheiden vanaf de onderkant, veel grote opmerkingen in een kleine ruimte laten passen, en meer.", + "editor-comment-previews/@name": "Voorbeelden voor editoropmerkingen", "editor-comment-previews/@settings-name-delay": "Uitstellengte", "editor-comment-previews/@settings-name-follow-mouse": "Muisaanwijzer volgen", - "editor-comment-previews/@settings-name-hover-view": "Voorbeeld geven van samengeklapte opmerkingen", - "editor-comment-previews/@settings-name-hover-view-block": "Muisaanwijzer over blokken houden om bijbehorende opmerkingen te zien", - "editor-comment-previews/@settings-name-hover-view-procedure": "Muisaanwijzer over zelfgemaakte blokken houden om definitieopmerkingen te zien", + "editor-comment-previews/@settings-name-hover-view": "Zweven over verkleinde opmerkingen voor voorbeeld", + "editor-comment-previews/@settings-name-hover-view-block": "Zweven over blokken voor voorbeeld van bijbehorende opmerkingen", + "editor-comment-previews/@settings-name-hover-view-procedure": "Zweven over aangepaste blokken voor voorbeeld van definitieopmerkingen", "editor-comment-previews/@settings-name-reduce-animation": "Animaties verminderen", "editor-comment-previews/@settings-name-reduce-transparency": "Doorzichtigheid verminderen", "editor-comment-previews/@settings-select-delay-long": "Lang", "editor-comment-previews/@settings-select-delay-none": "Geen", "editor-comment-previews/@settings-select-delay-short": "Kort", - "columns/@description": "Verdeelt het blokcategoriemenu in 2 kolommen en zet het boven het blokpalet, net zoals in Scratch 2.0.", - "columns/@name": "Categorie-menu met 2 kolommen", + "columns/@description": "Verdeelt het blokcategoriemenu in twee kolommen en zet het boven het blokkenpalet, net zoals in Scratch 2.0.", + "columns/@name": "Categoriemenu met twee kolommen", + "number-pad/@description": "Geef het virtuele getallenpaneel op alle apparaten weer tijdens het bewerken van een getal in een blok, in plaats van alleen op touchscreenapparaten.", + "number-pad/@info-explanation": "Een getallenpaneel komt tevoorschijn wanneer je een getal-input van een blok bewerkt, zoals \"neem () stappen\".", + "number-pad/@name": "Getallenpaneel altijd weergeven", + "editor-number-arrow-keys/@description": "Gebruik de pijltjes voor omhoog en omlaag om getalwaarden van invoervelden te verhogen of te verlagen, bijv. in blokken of de sprite-eigenschappen.", + "editor-number-arrow-keys/@name": "Waarden aanpassen met pijltjestoetsen in editor", + "editor-number-arrow-keys/@settings-name-alt": "Verander bij Alt+Toets", + "editor-number-arrow-keys/@settings-name-altCustom": "Verandering bij Alt+Toets", + "editor-number-arrow-keys/@settings-name-regular": "Verander bij indrukken van normale toets", + "editor-number-arrow-keys/@settings-name-regularCustom": "Verandering bij normaal indrukken van toets", + "editor-number-arrow-keys/@settings-name-shift": "Verander bij Shift+Toets", + "editor-number-arrow-keys/@settings-name-shiftCustom": "Verandering bij Shift+Toets", + "editor-number-arrow-keys/@settings-name-useCustom": "Aangepaste waarden gebruiken", + "editor-number-arrow-keys/@settings-select-alt-hundredth": "0,01", + "editor-number-arrow-keys/@settings-select-alt-none": "Geen", + "editor-number-arrow-keys/@settings-select-alt-tenth": "0,1", + "editor-number-arrow-keys/@settings-select-regular-hundredth": "0,01", + "editor-number-arrow-keys/@settings-select-regular-none": "Geen", + "editor-number-arrow-keys/@settings-select-regular-tenth": "0,1", + "editor-number-arrow-keys/@settings-select-shift-hundredth": "0,01", + "editor-number-arrow-keys/@settings-select-shift-none": "Geen", + "editor-number-arrow-keys/@settings-select-shift-tenth": "0,1", + "expanded-backpack/@description": "Deel de inhoud van de rugzak anders in, vergelijkbaar met de uiterlijkbibliotheek, en vergroot sommige thumbnails.", + "expanded-backpack/@name": "Meerdere rijen in rugzak", + "expanded-backpack/@settings-name-rows": "Aantal weergegeven rijen", + "expanded-backpack/@settings-name-upscale": "Grotere thumbnails voor uiterlijken en scripts", "script-snap/@description": "Sleep een script om zijn positie automatisch uit te lijnen op de codegebied-stippen.", "script-snap/@name": "Scripts uitlijnen op raster", "script-snap/@preset-name-default": "Standaard", @@ -280,10 +393,13 @@ "script-snap/@preset-name-whole-block": "Heel blok", "script-snap/@settings-name-grid": "Rastergrootte (px)", "fullscreen/@description": "Lost een paar ongewenste dingen op in de volledig scherm-modus van de projectspeler, opent het in je browser's volledig scherm-modus, en verbergt de werkbalk met de groene vlag.", - "fullscreen/@info-hideToolbarNotice": "Als je de werkbalk verbergt, onthoud dan dat je Esc kan gebruiken om het volledige scherm uit te gaan.", + "fullscreen/@info-hideToolbarNotice": "Onthoud dat je op Escape kan drukken om het volledige scherm uit te gaan als je de werkbalk verborgen houdt.", "fullscreen/@name": "Verbeterd volledig scherm", "fullscreen/@settings-name-browserFullscreen": "Volledig scherm projectspeler openen in browser-volledig scherm", - "fullscreen/@settings-name-hideToolbar": "Werkbalk verbergen in volledig scherm", + "fullscreen/@settings-name-toolbar": "Zichtbaarheid van werkbalk", + "fullscreen/@settings-select-toolbar-hide": "Nooit", + "fullscreen/@settings-select-toolbar-hover": "Wanneer aangeraakt", + "fullscreen/@settings-select-toolbar-show": "Altijd", "hide-stage/@description": "Voegt een knop naast de knoppen \"speelveld verkleinen\" en \"speelveld vergroten\" toe die het speelveld en spritevenster verbergt, wat het codegebied veel groter maakt.", "hide-stage/@name": "Speelveld en spritevenster verbergen", "editor-stepping/@description": "Voegt een gekleurde markering toe aan de blokken die op dit moment worden uitgevoerd in een project.", diff --git a/src/addons/addons-l10n-settings/pl.json b/src/addons/addons-l10n-settings/pl.json index 9e2f14d3a67..f44ddec401d 100644 --- a/src/addons/addons-l10n-settings/pl.json +++ b/src/addons/addons-l10n-settings/pl.json @@ -1,15 +1,19 @@ { - "cat-blocks/@description": "Przywraca do edytora kocie bloki z prima aprilis 2020.", + "cat-blocks/@description": "Przywraca do edytora kocie bloki z Prima Aprilis 2020.", "cat-blocks/@info-watch": "Opcja „Obserwuj kursor myszy” może wpływać na wydajność, gdy edytor jest otwarty.", "cat-blocks/@name": "Kocie Bloki", "cat-blocks/@settings-name-watch": "Patrz na kursor myszy", - "editor-devtools/@description": "Dodaje pole wyszukiwania i kilka nowych opcji w menu edytora jak: kopiuj/wklej bloki, lepsze sprzątanie bloków, przejdź do definicji bloku i więcej! Naciśnij Ctr+F, aby zacząć wyszukiwanie, i Ctr+Spacja, aby wyświetlić menu \"dodaj blok po nazwie\", oraz Ctr+Prawo/Lewo, aby przenieść się w historii wyszukiwania.", "editor-devtools/@name": "Narzędzia Developerskie", "editor-devtools/@settings-name-enableCleanUpPlus": "Ulepszone „Wyczyść bloki”", - "editor-devtools/@settings-name-enableMiddleClickFinder": "Kliknij środkowym przyciskiem myszy zmienne, niestandardowe bloki lub zdarzenia, aby nawigować", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Wklej bloki w miejscu kursora myszy", - "editor-searchable-dropdowns/@description": "Umożliwia wyszukiwanie zawartości list rozwijanych należących do bloków. ", - "editor-searchable-dropdowns/@name": "Możliwość szukania w liście", + "find-bar/@info-developer-tools": "Ten dodatek był wcześniej częścią dodatku „narzędzia developerskie”, ale został przeniesiony tutaj.", + "middle-click-popup/@info-developer-tools": "Ten dodatek był wcześniej częścią dodatku „narzędzia developerskie”, ale został przeniesiony tutaj.", + "middle-click-popup/@name": "Wstaw bloki według nazwy", + "middle-click-popup/@settings-name-popup_max_height": "Maksymalna Wysokość Okna", + "middle-click-popup/@settings-name-popup_scale": "Rozmiar Bloków W Oknie", + "middle-click-popup/@settings-name-popup_width": "Szerokość Okna", + "jump-to-def/@name": "Przejdź do definicji bloku", + "reorder-custom-inputs/@name": "Przestawne wejścia niestandardowych bloków", "data-category-tweaks-v2/@description": "Zapewnia poprawki dla kategorii bloków Dane („Zmienne”). ", "data-category-tweaks-v2/@name": "Ulepszenia kategorii danych", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Przesuwa bloki danych nad listę zmiennych", @@ -17,19 +21,16 @@ "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Rozdziel zmienne \"Tylko dla tego duszka\"", "block-palette-icons/@description": "Dodaje ikony wewnątrz kolorowych okręgów, które identyfikują kategorie bloków.", "block-palette-icons/@name": "Ikony kategorii w edytorze", - "hide-flyout/@description": "Ukrywa paletę bloków, jeśli na nią nie najedziesz myszką. Kliknij ikonę kłódki, aby tymczasowo zablokować ją w miejscu. Możesz także użyć trybu „kliknięcie kategorii”.", "hide-flyout/@info-hoverExplanation": "Tryb „Wyświetl, gdy najedziesz na listę bloków” tylko rozszerza obszar wyświetlania. Jeśli chcesz mieć możliwość przeciągania bloków do tego obszaru bez ich usuwania w koszu, użyj jednego z pozostałych trybów.", "hide-flyout/@name": "Automatycznie chowana lista bloków", - "hide-flyout/@settings-name-speed": "Czas trwania animacji", + "hide-flyout/@settings-name-speed": "Prędkość animacji", "hide-flyout/@settings-name-toggle": "Wyświetl, gdy...", "hide-flyout/@settings-select-speed-default": "Normalny", - "hide-flyout/@settings-select-speed-long": "Długi", - "hide-flyout/@settings-select-speed-none": "Brak", - "hide-flyout/@settings-select-speed-short": "Krótki", + "hide-flyout/@settings-select-speed-long": "Wolna", + "hide-flyout/@settings-select-speed-short": "Szybka", "hide-flyout/@settings-select-toggle-category": "Klikniesz na kategorię", "hide-flyout/@settings-select-toggle-cathover": "Najedziesz na kategorie", "hide-flyout/@settings-select-toggle-hover": "Najedziesz na listę bloków", - "hide-flyout/@update": "Kod tego dodatku został całkiem zmieniony, oraz wiele błędów zostało naprawionych.", "mediarecorder/@description": "Dodaje przycisk \"Włącz nagrywania\" w panelu pozwalający nagrać scenę.", "mediarecorder/@name": "Nagrywanie Video z projektu", "drag-drop/@description": "Pozwala przesuwać obrazy i dźwięki z Twojego managera plików do miejsca docelowego jak: lista duszków/kostiumów/dźwięków. W dodatku możesz przesuwać pliki tekstowe do pola \"Zapytaj i czekaj.\"", @@ -38,18 +39,20 @@ "debugger/@settings-name-log_broadcasts": "Loguj ogłoszenia", "debugger/@settings-name-log_clear_greenflag": "Wyczyść logi, kiedy projekt wystartuje", "debugger/@settings-name-log_clone_create": "Loguj stworzenie klona", - "debugger/@settings-name-log_failed_clone_creation": "Loguj, kiedy ilość klonów osiągnie maksymalną wartość", + "debugger/@settings-name-log_failed_clone_creation": "Loguj, kiedy limit klonów jest osiągnięty", "debugger/@settings-name-log_greenflag": "Loguj kiedy kliknięto w Zieloną Flagę", - "debugger/@update": "Nowe zakładki „Wątki” i „Wydajność” w oknie debugera. ", - "pause/@description": "Dodaje przycisk pauzy obok zielonej flagi", - "pause/@name": "Przycisk pauzy", + "pause/@name": "Przycisk zatrzymania", "mute-project/@description": "Kliknij na zieloną flagę trzymając Ctr, aby wyciszyć lub od-ciszyć projekt.", "mute-project/@info-macOS": "W systemie macOS, użyj klawiszu Cmd zamiast Ctrl.", "mute-project/@name": "Wycisz odtwarzacz projektu", + "vol-slider/@name": "Suwak głośności projektu", + "vol-slider/@settings-name-defVol": "Domyślna głośność", "clones/@description": "Dodaje licznik nad sceną pokazujący ilość klonów.", "clones/@name": "Licznik klonów", + "clones/@settings-name-projectpage": "Pokaż na stronie projektu", + "clones/@settings-name-showicononly": "Pokaż tylko ikonę", "mouse-pos/@description": "Wyświetla pozycję x/y twojej myszy nad sceną w edytorze.", - "mouse-pos/@name": "Pozycja kursora", + "mouse-pos/@name": "Wyświetlanie pozycji myszy", "color-picker/@description": "Dodaje opcję koloru hex do menu wyboru kolorów.", "color-picker/@name": "Wybieracz koloru hex", "remove-sprite-confirm/@description": "Upewnia się, czy na pewno chcesz usunąć duszka w projekcie.", @@ -70,10 +73,21 @@ "onion-skinning/@settings-select-layering-front": "Przód", "onion-skinning/@settings-select-mode-merge": "Łącz obrazy", "onion-skinning/@settings-select-mode-tint": "Kolor odcienia", + "paint-snap/@name": "Przyczepianie kostiumów w edytorze", + "paint-snap/@settings-name-enable-default": "Włącz domyślnie", + "paint-snap/@settings-name-guide-color": "Kolor zaznaczenia przyciąganych obiektów", + "paint-snap/@settings-name-objectCenters": "Przyczep do środka obiektów", + "paint-snap/@settings-name-objectCorners": "Przyczep do rogów obiektów", + "paint-snap/@settings-name-objectEdges": "Przyczep do boków obiektów", + "paint-snap/@settings-name-objectMidlines": "Przyczep do linii środkowych obiektów", + "paint-snap/@settings-name-pageAxes": "Przyczep do osi X i Y", + "paint-snap/@settings-name-pageCenter": "Przyczep do środka strony", + "paint-snap/@settings-name-pageCorners": "Przyczep do rogów strony", + "paint-snap/@settings-name-pageEdges": "Przyczep do boków strony", + "paint-snap/@settings-name-threshold": "Dystans przyczepiania", "default-costume-editor-color/@description": "Zmienia domyślne parametry narzędzi w edytorze kostiumów.", "default-costume-editor-color/@name": "Domyślne kolory w edytorze kostiumów", "default-costume-editor-color/@settings-name-fill": "Domyślny kolor wypełnienia", - "default-costume-editor-color/@settings-name-persistence": "Używaj poprzedniego koloru zamiast domyślnego po zamianie narzędzia.", "default-costume-editor-color/@settings-name-stroke": "Domyślny kolor zarysu", "default-costume-editor-color/@settings-name-strokeSize": "Domyślna wielkość zarysu", "bitmap-copy/@description": "Pozwala ci kopiować zdjęcie z edytora kostiumu do schowka w systemie, abyś mógł wkleić do innych programów.", @@ -85,8 +99,6 @@ "better-img-uploads/@info-notSuitableEdit": "Unikaj używania przycisku przesyłania HD, jeśli planujesz edytować obraz po przesłaniu.", "better-img-uploads/@name": "Przesyłanie obrazów HD ", "better-img-uploads/@settings-name-fitting": "Zmienianie rozmiaru obrazu", - "better-img-uploads/@settings-select-fitting-fill": "Zwiększ, aby wypełnić scenę ", - "better-img-uploads/@settings-select-fitting-fit": "Zmniejsz, aby dopasować do sceny", "better-img-uploads/@settings-select-fitting-full": "Oryginalny rozmiar", "custom-block-shape/@description": "Dostosuj wielkość obramowania, zaokrąglenia rogów i wysokości bloków.", "custom-block-shape/@info-paddingWarning": "Zmniejszanie wielkości obramowania jest widoczne tylko dla Ciebie, więc gdy Twoje projekty zostaną wyświetlone przez inne Twój kod może nachodzić na siebie.", @@ -102,19 +114,32 @@ "custom-block-shape/@settings-name-cornerSize": "Rozmiar zaokrąglenia rogów (0--300%)", "custom-block-shape/@settings-name-notchSize": "Wielkość nacięcia (0-150%) ", "custom-block-shape/@settings-name-paddingSize": "Rozmiar obramowania (50-200%)", + "editor-square-inputs/@name": "Kwadratowe wejścia tekstowe bloków", + "zebra-striping/@settings-name-intensity": "Intensywność (0-100%)", + "zebra-striping/@settings-name-shade": "Cień", + "zebra-striping/@settings-select-shade-darker": "Ciemniej", + "zebra-striping/@settings-select-shade-lighter": "Jaśniej", + "editor-compact/@name": "Kompaktowy Edytor", + "custom-menu-bar/@settings-name-menu-labels": "Pokaż menu...", + "custom-menu-bar/@settings-select-menu-labels-both": "Ikony i opisy", + "custom-menu-bar/@settings-select-menu-labels-icons": "Tylko ikony", + "custom-menu-bar/@settings-select-menu-labels-labels": "Tylko opisy", "editor-theme3/@description": "Edytuj kolory bloków dla każdej kategorii w edytorze.", "editor-theme3/@name": "Niestandardowe kolory bloków", - "editor-theme3/@preset-description-black": "Zmienia tło bloków na czarne", - "editor-theme3/@preset-description-dark": "Ciemne wersje podstawowych kolorów", + "editor-theme3/@preset-description-contrast": "Paleta kolorów bloków wysokiego kontrastu Scratch 3.0", + "editor-theme3/@preset-description-dark": "Ciemne wersje domyślnych kolorów", + "editor-theme3/@preset-description-new-dark": "Ciemne wersje z domyślnych kolorów które wyglądają dobrze w ciemnych motywach", "editor-theme3/@preset-description-original": "Oryginalne kolory bloków z wersji Scratch 2.0", - "editor-theme3/@preset-description-tweaks": "Kategorie \"zdarzenia\", \"kontrola\", i \"moje bloki\" są kolorach z wersji 2.0", "editor-theme3/@preset-name-black": "Czarny", - "editor-theme3/@preset-name-dark": "Ciemny", - "editor-theme3/@preset-name-original": "Kolory 2.0", - "editor-theme3/@preset-name-tweaks": "Poprawki 3.0 ", + "editor-theme3/@preset-name-contrast": "Wysoki kontrast", + "editor-theme3/@preset-name-dark": "Ciemniejszy", + "editor-theme3/@preset-name-new-dark": "Ciemny", + "editor-theme3/@preset-name-original": "Kolory Scratch 2.0", + "editor-theme3/@preset-name-tweaks": "Scratch 3.0 ulepszone", "editor-theme3/@settings-name-Pen-color": "rozszerzenia", + "editor-theme3/@settings-name-comment-color": "Komentarze", "editor-theme3/@settings-name-control-color": "kontrola", - "editor-theme3/@settings-name-custom-color": "niestandardowy", + "editor-theme3/@settings-name-custom-color": "moje bloki", "editor-theme3/@settings-name-data-color": "zmienne", "editor-theme3/@settings-name-data-lists-color": "listy", "editor-theme3/@settings-name-events-color": "zdarzenia", @@ -129,8 +154,6 @@ "editor-theme3/@settings-select-text-colorOnBlack": "Kolorowe na czarnym tle", "editor-theme3/@settings-select-text-colorOnWhite": "Kolorowe na białym tle", "editor-theme3/@settings-select-text-white": "Biały", - "editor-theme3/@update": "Nowe ustawienie pozwalające zmieniać kolory bloków na forum.", - "custom-block-text/@description": "Zmienia nasycenie tekstu na blokach, opcjonalnie dodaje cień obok nich.", "custom-block-text/@name": "Konfigurowalny styl tekstu bloków", "custom-block-text/@settings-name-bold": "Pogrubiony tekst", "custom-block-text/@settings-name-shadow": "Cień pod tekstem", @@ -144,21 +167,24 @@ "variable-manager/@description": "Dodaje nową zakładkę obok \"dźwięków\" w edytorze, aby łatwo edytować zmienne i listy.", "variable-manager/@name": "Menedżer zmiennych", "search-sprites/@description": "Dodaje pole wyszukiwania w liście duszków, za pomocą którego możesz wyszukać duszka po jego nazwie.", - "search-sprites/@name": "Szukaj duszków po nazwie", + "search-sprites/@name": "Pasek wyszukiwania w panelu duszków", + "sprite-properties/@settings-name-hideByDefault": "Zwijaj panel domyślnie", + "sprite-properties/@settings-name-transitionDuration": "Prędkość animacji", + "sprite-properties/@settings-select-transitionDuration-default": "Domyślna", + "sprite-properties/@settings-select-transitionDuration-long": "Wolna", + "sprite-properties/@settings-select-transitionDuration-none": "Od razu", + "sprite-properties/@settings-select-transitionDuration-short": "Szybka", "gamepad/@description": "Kontroluj projekt za pomocą kontrolera/gamepada używając USB lub Bluetooth.", "gamepad/@name": "Wsparcie dla Gamepadów", "gamepad/@settings-name-hide": "Ukryj przycisk ustawień, gdy system nie wykryje żadnych kontrolerów ", - "editor-sounds/@description": "Pusza efekty dźwiękowe, kiedy połączysz lub rozłączysz bloki.", + "editor-sounds/@description": "Puszcza efekty dźwiękowe, kiedy połączysz lub rozłączysz bloki.", "editor-sounds/@name": "Efekty dźwiękowe w edytorze", "folders/@description": "Dodaje foldery do panelu duszków, a także do listy kostiumów i dźwięków. Aby utworzyć folder, kliknij prawym przyciskiem myszy na dowolnego duszka i wybierz opcję \"utwórz folder\". Kliknij folder, aby go otworzyć lub zamknąć. Naciśnij prawym przycisk myszy na duszku, aby zobaczyć, do jakich folderów możesz go przenieść. Możesz także przeciągnąć go i upuść go do dowolnego otwartego folderu. Ta funkcja działa poprzez dodanie „[nazwa_folderu]//” na początku nazw twoich duszków.", "folders/@info-notice-folders-are-public": "Użytkownicy, którzy mają włączoną tą funkcję będą widzieć foldery w Twoim projekcie. A inne osoby, będą normalnie widzieć listę duszków (bez folderów).", "folders/@name": "Foldery duszków", "block-switching/@description": "Kliknij prawym przyciskiem myszy na blok, aby zamienić go na powiązany blok.", "block-switching/@name": "Zmiana bloków", - "block-switching/@settings-name-border": "Dodaj granicę", "block-switching/@settings-name-control": "Bloki kontroli", - "block-switching/@settings-name-customargs": "Argumenty Moich Bloków", - "block-switching/@settings-name-customargsmode": "Pokaż argumenty Moich Bloków", "block-switching/@settings-name-data": "Bloki danych", "block-switching/@settings-name-event": "Bloki zdarzeń", "block-switching/@settings-name-extension": "Bloki rozszerzeń", @@ -168,8 +194,6 @@ "block-switching/@settings-name-operator": "Bloki operatora", "block-switching/@settings-name-sensing": "Bloki czujników", "block-switching/@settings-name-sound": "Bloki dźwięku", - "block-switching/@settings-select-customargsmode-all": "Argumenty we wszystkich Moich Blokach w duszku", - "block-switching/@settings-select-customargsmode-defOnly": "Argumenty w Moich Blokach", "load-extensions/@description": "Automatycznie pokazuje bloki muzyczne, pióro i inne rozszerzenia do Twojego projektu.", "load-extensions/@name": "Automatycznie dodawaj rozszerzenia", "load-extensions/@settings-name-music": "Muzyka", @@ -181,22 +205,20 @@ "custom-zoom/@settings-name-autohide": "Automatycznie ukrywaj kontrolki przybliżania", "custom-zoom/@settings-name-maxZoom": "Maksymalne Powiększenie (100-500%)", "custom-zoom/@settings-name-minZoom": "Minimalne przybliżenie (1-100%)", - "custom-zoom/@settings-name-speed": "Czas trwania animacji ukrywania", + "custom-zoom/@settings-name-speed": "Prędkość animacji autochowania", "custom-zoom/@settings-name-startZoom": "Początkowe przybliżenie (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "Prędkość przybliżania (50-200%)", "custom-zoom/@settings-select-speed-default": "Domyślny", - "custom-zoom/@settings-select-speed-long": "Długi", - "custom-zoom/@settings-select-speed-none": "Brak", - "custom-zoom/@settings-select-speed-short": "Krótki", - "initialise-sprite-position/@description": "Zmień domyślną pozycję x i y dla nowych duszków.", + "custom-zoom/@settings-select-speed-long": "Wolna", + "custom-zoom/@settings-select-speed-short": "Szybka", "initialise-sprite-position/@name": "Dowolna pozycja nowych duszków", - "initialise-sprite-position/@settings-name-duplicate": "Zachowanie podczas duplikowania duszków", - "initialise-sprite-position/@settings-name-library": "Losuj pozycję duszków w bibliotece", + "initialise-sprite-position/@settings-name-duplicate": "Pozycja dla zduplikowanych duszków", + "initialise-sprite-position/@settings-name-library": "Umieszczaj pozycję duszków z biblioteki w losowej pozycji", "initialise-sprite-position/@settings-name-x": "pozycja X", "initialise-sprite-position/@settings-name-y": "pozycja Y", - "initialise-sprite-position/@settings-select-duplicate-custom": "Pójdź na konkretną pozycje x/y", - "initialise-sprite-position/@settings-select-duplicate-keep": "Zostań w tej samej pozycji co oryginalny duszek", - "initialise-sprite-position/@settings-select-duplicate-randomize": "Pójdź na losową pozycję", + "initialise-sprite-position/@settings-select-duplicate-custom": "Konkretna pozycja x/y", + "initialise-sprite-position/@settings-select-duplicate-keep": "Taka jak oryginalny duszek", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Losowa", "blocks2image/@description": "Kliknij prawym klawiszem w edytorze kodu, aby wyeksportować bloki jako obrazy SVG/PNG.", "blocks2image/@name": "Zapisz bloki jako obraz", "remove-curved-stage-border/@description": "Usuwa zaokrąglone krawędzie sceny, i pozwala zobaczyć jej rogi.", @@ -233,14 +255,12 @@ "block-cherry-picking/@info-macContextDisabled": "W systemie macOS zamiast klawisza Ctrl, należy użyć klawisza Cmd.", "block-cherry-picking/@name": "Złap pojedynczy blok klawiszem Ctrl", "block-cherry-picking/@settings-name-invertDrag": "Odwróć działanie", - "hide-new-variables/@description": "Po stworzeniu listy lub zmiennej nie pokazuj jej podglądu.", "hide-new-variables/@name": "Ukryj nowo stworzone zmienne", - "editor-extra-keys/@description": "Dodaje więcej obsługiwanych przycisków do bloku \"Klawisz () został naciśnięty?\" i \"Gdy klawisz () zostanie kliknięty\", m.in. \"enter\", \"kropka\", \"przecinek\" i więcej.", "editor-extra-keys/@info-experimentalKeysWarn": "Dodaje \"eksperymentalne klawisze\" wliczając \"znak równości\", \"slash\" i więcej! Może nie działać na wszystkich systemach operacyjnych lub na innych ułożeniach klawiatur!", "editor-extra-keys/@info-shiftKeysWarn": "„Klawisze Shift” obejmują klawisze, które zwykle wymagają klawisza Shift i klawisza numerycznego, takie jak \"hashtag\", \"wykrzyknik\" i inne. Te klawisze działają tylko z blokiem „kiedy naciśnięto klawisz ()” i nie działają we wszystkich systemach operacyjnych lub innych układach klawiatury. ", - "editor-extra-keys/@name": "Obsługa dodatkowych klawiszy", - "editor-extra-keys/@settings-name-experimentalKeys": "Włącz klawisze eksperymentalne", - "editor-extra-keys/@settings-name-shiftKeys": "Włącz klawisze Shift", + "editor-extra-keys/@name": "Dodatkowe opcje przycisków", + "editor-extra-keys/@settings-name-experimentalKeys": "Pokaż klawisze eksperymentalne", + "editor-extra-keys/@settings-name-shiftKeys": "Pokaż klawisze Shift", "hide-delete-button/@description": "Ukrywa przycisk usuwania (ikonę kosza na śmieci) przed duszkami, kostiumami i dźwiękami. Nadal można je usunąć za pomocą prawego przycisku myszy.", "hide-delete-button/@name": "Ukryj przycisk usuwania", "hide-delete-button/@settings-name-costumes": "Kostiumy i tła", @@ -250,13 +270,15 @@ "no-script-bumping/@name": "Wyłącz automatyczne przesuwanie nakładających się skryptów", "disable-stage-drag-select/@description": "Blokuje możliwość przesuwania duszków na scenie w edytorze projektu, z wyjątkiem tych, które są ustawione na \"przesuwalne\". Przytrzymać Shift, aby normalnie przesuwać duszki.", "disable-stage-drag-select/@name": "Blokada przesuwania duszków w edytorze", - "move-to-top-bottom/@description": "Dodaje przycisk, który przesuwa kostium lub dźwięk na górę lub na dół listy. Wcześniej część narzędzi developerskich. ", + "move-to-top-bottom/@info-developer-tools": "Ten dodatek był wcześniej częścią dodatku „narzędzia developerskie”, ale został przeniesiony tutaj.", "move-to-top-bottom/@name": "Przenieś kostium do góry albo do dołu", "disable-paste-offset/@description": "Wklej skopiowane kostiumy w jej oryginalnej pozycji, zamiast delikatnie je przesuwać.", "disable-paste-offset/@name": "Nie przesuwaj wklejonych obiektów", "block-duplicate/@description": "Szybko zduplikuj skrypt, przeciągając go, trzymając klawisz Alt. Możesz także przytrzymać również klawisz Ctrl, aby zduplikować tylko pojedynczy blok zamiast całego stosu dołączonego pod nim.", "block-duplicate/@info-mac": "W systemie macOS zamiast klawisza Alt należy użyć klawisza Option, a zamiast klawisza Control - klawisza Command.", "block-duplicate/@name": "Duplikuj skrypt przyciskiem Alt", + "rename-broadcasts/@description": "Dodaje możliwość zmiany nazwy komunikatów w blokach nadawczych.", + "rename-broadcasts/@name": "Zmień ogłoszenie", "swap-local-global/@description": "Dodaje więcej opcji w czasie zmieniania nazwy zmiennej lub listy. Możesz zmienić czy dana zmienna jest dla \"Wszystkich duszków\" lub \"Tylko dla tego duszka\" oraz czy jest zapisywana w chmurze.", "swap-local-global/@name": "Przełącz zmienną między ustawieniami \"Dla wszystkich duszków\" na \"Tylko dla tego duszka\"", "editor-comment-previews/@description": "Pozwala podejrzeć zawartość komentarza najeżdżając na połączone bloki. Możesz nawet zobaczyć komentarze, które zachodzą za ekran. Dodatkowo możesz zmieścić duże komentarze w małej przestrzeni oraz więcej!", @@ -273,6 +295,14 @@ "editor-comment-previews/@settings-select-delay-short": "Krótkie", "columns/@description": "Dzieli menu kategorii bloków na dwie kolumny i przenosi je na górę palety bloków, tak jak w Scratch 2.0.", "columns/@name": "Menu kategorii podzielone na 2 kolumny", + "number-pad/@name": "Zawsze pokazuj klawiaturę numeryczną", + "editor-number-arrow-keys/@settings-name-regular": "Zmiana przy zwykłym naciśnięciu", + "editor-number-arrow-keys/@settings-name-regularCustom": "Zmiana przy zwykłym naciśnięciu", + "editor-number-arrow-keys/@settings-name-shift": "Zmiana przy Shift+Klawisz", + "editor-number-arrow-keys/@settings-select-alt-none": "Brak", + "editor-number-arrow-keys/@settings-select-regular-none": "Nic", + "editor-number-arrow-keys/@settings-select-shift-none": "Nic", + "expanded-backpack/@settings-name-rows": "Liczba pokazanych wierszy", "script-snap/@description": "Po przesunięciu kodu, zostanie on \"przyczepiony\" do kropek tła w edytorze.", "script-snap/@name": "Przyczep fragmenty kodu do wirtualnej siatki", "script-snap/@preset-name-default": "Domyślny", @@ -280,10 +310,8 @@ "script-snap/@preset-name-whole-block": "Cały blok kodu", "script-snap/@settings-name-grid": "Wielkość siatki (px)", "fullscreen/@description": "Naprawia niektóre niepożądane efekty w trybie pełnoekranowym. Otwiera projekt w trybie pełnoekranowym przeglądarki oraz ukrywa pasek z zieloną flagą.", - "fullscreen/@info-hideToolbarNotice": "Jeśli zdecydujesz się ukryć pasek narzędzi, pamiętaj, że możesz użyć klawisza Esc, aby wyjść z trybu pełnoekranowego do odtwarzacza projektów. ", "fullscreen/@name": "Polepszony pełny ekran", "fullscreen/@settings-name-browserFullscreen": "Otwórz pełny ekran, gdy użytkownik jest w trybie pełnoekranowym przeglądarki", - "fullscreen/@settings-name-hideToolbar": "Ukryj pasek narzędzi w pełnym ekranie", "hide-stage/@description": "Dodaje przycisk obok przycisków \"zmniejsz/zwiększ scenę\", który ukrywa scenę i listę duszków,znacznie zwiększając obszar kodowania.", "hide-stage/@name": "Ukryj scenę i listę duszków", "editor-stepping/@description": "Dodaje kolorowe podkreślenie do bloków, których kod wykonuje się w danym momencie.", diff --git a/src/addons/addons-l10n-settings/pt.json b/src/addons/addons-l10n-settings/pt.json index 98544321361..91c6f25e3ef 100644 --- a/src/addons/addons-l10n-settings/pt.json +++ b/src/addons/addons-l10n-settings/pt.json @@ -1,15 +1,19 @@ { - "cat-blocks/@description": "Adiciona de volta os blocos de gato no editor de primeiro de abril de 2020.", - "cat-blocks/@info-watch": "A opção \"Monitorar ponteiro do mouse\" pode piorar a performance com o editor aberto.", "cat-blocks/@name": "Blocos de gato", "cat-blocks/@settings-name-watch": "Monitorar ponteiro do mouse", - "editor-devtools/@description": "Adiciona uma caixa de busca e novas opções de menu ao editor: copiar/colar blocos, organização melhorada, ir para a definição de um bloco customizado, e mais! Aperte Ctrl+F para focar na caixa de localizar, Ctrl+Espaço para abrir o pop-up de \"adicionar bloco por nome\", Ctrl+Esquerda/Direita para navegar através do histórico de busca.", "editor-devtools/@name": "Ferramentas de desenvolvedor", "editor-devtools/@settings-name-enableCleanUpPlus": "Melhorar opção \"Limpar Blocos\"", - "editor-devtools/@settings-name-enableMiddleClickFinder": "Clique com a rodinha do mouse em variáveis, blocos customizados ou eventos para navegar", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Colar blocos na posição do mouse", - "editor-searchable-dropdowns/@description": "Te deixa pesquisar nos dropdowns de blocos.", - "editor-searchable-dropdowns/@name": "Dropdowns buscáveis", + "find-bar/@info-developer-tools": "Este addon fazia parte do addon \"ferramentas de desenvolvedor\" mas foi movido para cá.", + "find-bar/@name": "Barra localizar do editor", + "middle-click-popup/@info-developer-tools": "Este addon fazia parte do addon \"ferramentas de desenvolvedor\" mas foi movido para cá.", + "middle-click-popup/@name": "inserir bloco por nome", + "middle-click-popup/@settings-name-popup_max_height": "Altura máxima do Pop-up", + "middle-click-popup/@settings-name-popup_width": "Largura do Pop-up", + "jump-to-def/@info-developer-tools": "Este addon fazia parte do addon \"ferramentas de desenvolvedor\" mas foi movido para cá.", + "reorder-custom-inputs/@description": "permite reogarnizar parâmetros do bloco customizável na tela de \"Crie um bloco\"", + "reorder-custom-inputs/@name": "entrada de blocos customizável reogarnizável", + "reorder-custom-inputs/@settings-name-InsertInputsAfter": "Insira novas entradas após a entrada selecionada", "data-category-tweaks-v2/@description": "Adiciona melhorias na categoria de Dados (\"Variáveis\").", "data-category-tweaks-v2/@name": "Melhorias na categoria Dados", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Mover blocos de variáveis acima da lista de variáveis", @@ -17,15 +21,14 @@ "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Nova Categoria para Variáveis Apenas para este Ator", "block-palette-icons/@description": "Adiciona ícones dentro dos círculos coloridos nas categorias de bloco.", "block-palette-icons/@name": "Ícones nas categorias da paleta de blocos", - "hide-flyout/@description": "Esconde a paleta de blocos se o mouse não estiver em cima. Clique no ícone do cadeado para trancá-la temporariamente. Você também pode usar o modo \"ao clicar em uma categoria\".", "hide-flyout/@info-hoverExplanation": "O modo \"Passar o mouse na área da paleta\" só aumenta a área visível. Se você quer poder arrastar blocos até aquela área sem jogar eles fora, use outro modo.", "hide-flyout/@name": "Auto-esconder paleta de blocos", - "hide-flyout/@settings-name-speed": "Duração da animação", + "hide-flyout/@settings-name-speed": "Velocidade da animação", "hide-flyout/@settings-name-toggle": "Alternar ao...", "hide-flyout/@settings-select-speed-default": "Padrão", - "hide-flyout/@settings-select-speed-long": "Longa", - "hide-flyout/@settings-select-speed-none": "Imediata", - "hide-flyout/@settings-select-speed-short": "Curta", + "hide-flyout/@settings-select-speed-long": "Lento", + "hide-flyout/@settings-select-speed-none": "Imediato", + "hide-flyout/@settings-select-speed-short": "Rápido", "hide-flyout/@settings-select-toggle-category": "Clicar em uma categoria", "hide-flyout/@settings-select-toggle-cathover": "Passar o mouse em uma categoria", "hide-flyout/@settings-select-toggle-hover": "Passar o mouse na área da paleta", @@ -35,21 +38,24 @@ "drag-drop/@name": "Arrastar arquivos", "drag-drop/@settings-name-use-hd-upload": "Carregar imagens em HD", "debugger/@name": "Depurador", + "debugger/@settings-name-fancy_graphs": "Gráficos animados (pode afetar desempenho)", "debugger/@settings-name-log_broadcasts": "Registrar transmissões de mensagens", "debugger/@settings-name-log_clear_greenflag": "Excluir registros ao clicar na bandeira verde", "debugger/@settings-name-log_clone_create": "Registrar criações de clone", - "debugger/@settings-name-log_failed_clone_creation": "Registrar quando o valor máximo de clones for atingido", + "debugger/@settings-name-log_failed_clone_creation": "Registrar quando o tamanho máximo de clones for atingido", "debugger/@settings-name-log_greenflag": "Registrar quando a bandeira verde for clicada", - "debugger/@update": "Novas abas \"Linhas de execução\" e \"Performance\" na janela de debug.", - "pause/@description": "Adiciona um botão de pausa do lado da bandeira verde.", "pause/@name": "Botão de pausa", "mute-project/@description": "Ctrl+Clique na bandeira verde para mutar/desmutar o projeto.", "mute-project/@info-macOS": "No macOS, use a tecla Cmd ao invés de Ctrl.", "mute-project/@name": "Modo projeto mutado", + "vol-slider/@name": "Slider de volume do projeto", + "vol-slider/@settings-name-always": "Sempre mostrar slider", + "vol-slider/@settings-name-defVol": "Volume padrão", "clones/@description": "Adiciona um contador acima do palco no editor que mostra o número total de clones.", "clones/@name": "Contador de clones", + "clones/@settings-name-showicononly": "Mostrar apenas o ícone", "mouse-pos/@description": "Mostra a posição do mouse próxima à bandeira acima do palco no editor.", - "mouse-pos/@name": "Posição do mouse", + "mouse-pos/@name": "Mostrar posição do mouse", "color-picker/@description": "Adiciona entradas para código hex à paleta de cores.", "color-picker/@name": "Seletor de cor hex", "remove-sprite-confirm/@description": "Pede confirmação antes de deletar um ator dentro de um projeto.", @@ -70,10 +76,10 @@ "onion-skinning/@settings-select-layering-front": "Na frente", "onion-skinning/@settings-select-mode-merge": "Transparente", "onion-skinning/@settings-select-mode-tint": "Colorido", + "paint-snap/@settings-name-enable-default": "Ativar por padrão", "default-costume-editor-color/@description": "Muda o padrão das cores e do tamanho da borda usado pelo editor de fantasias.", "default-costume-editor-color/@name": "Customizar padrões de cor do editor de fantasias", "default-costume-editor-color/@settings-name-fill": "Cor de preenchimento padrão", - "default-costume-editor-color/@settings-name-persistence": "Usar a cor anterior ao invés da padrão quando alternar entre ferramentas", "default-costume-editor-color/@settings-name-stroke": "Cor da borda padrão", "default-costume-editor-color/@settings-name-strokeSize": "Tamanho da borda padrão", "bitmap-copy/@description": "Te deixa copiar uma imagem bitmap do editor de fantasia e colar em outros sites ou programas.", @@ -85,9 +91,8 @@ "better-img-uploads/@info-notSuitableEdit": "Não use o botão de upload HD se você quer poder editar a imagem depois de carregá-la.", "better-img-uploads/@name": "Upload de imagens HD", "better-img-uploads/@settings-name-fitting": "Tamanho da imagem", - "better-img-uploads/@settings-select-fitting-fill": "Esticar para preencher o palco", - "better-img-uploads/@settings-select-fitting-fit": "Diminuir para caber no palco", "better-img-uploads/@settings-select-fitting-full": "Tamanho original", + "pick-colors-from-stage/@name": "Selecionar cores do palco com conta-gotas", "custom-block-shape/@description": "Ajuste o tamanho, raio de canto e altura do encaixe dos blocos do Scratch.", "custom-block-shape/@info-paddingWarning": "Só você pode ver o tamanho customizado que você escolheu pros blocos, então quando outras pessoas verem os seus projetos, os scripts podem ficar amontoados.", "custom-block-shape/@name": "Formato de bloco customizável", @@ -102,17 +107,30 @@ "custom-block-shape/@settings-name-cornerSize": "Raio de canto (0-300%)", "custom-block-shape/@settings-name-notchSize": "Altura do encaixe (0-150%)", "custom-block-shape/@settings-name-paddingSize": "Tamanho do bloco (50-200%)", + "zebra-striping/@settings-name-intensity": "Intensidade (0-100%)", + "zebra-striping/@settings-name-shade": "Sombrear", + "zebra-striping/@settings-select-shade-darker": "Escurecer", + "zebra-striping/@settings-select-shade-lighter": "Clarear", + "editor-compact/@description": "Diminue o tamanho dos botões, campos de entrada, a barra do menu, e outros elementos no editor, resultando em mais espaço para componentes como a área de código, o editor de fantasias, e o pré-visualizador de fantasias, como era o caso do Scratch 2.0", + "editor-compact/@info-hide-icons-update": "Para esconder os icones da barra do menu, use o addon \"Barra do menu customizável\"", + "editor-compact/@name": "Editor compacto", + "editor-compact/@settings-name-hideLabels": "Esconda o texto dos botões na fantasia e no editor de sons.", "editor-theme3/@description": "Edite as cores dos blocos de cada categoria no editor.", "editor-theme3/@name": "Cores de bloco customizadas", - "editor-theme3/@preset-description-black": "Deixa os blocos pretos", - "editor-theme3/@preset-description-dark": "Versões escuras das cores padrão", + "editor-theme3/@preset-description-black": "Deixa os blocos pretos e as bordas/texto coloridos", + "editor-theme3/@preset-description-contrast": "Paleta de cores dos blocos do Scratch 3.0 em alto contraste", + "editor-theme3/@preset-description-dark": "Versões ainda mais escuras das cores padrões", + "editor-theme3/@preset-description-new-dark": "Versões escuras das cores padrões que combinam em temas escuros", "editor-theme3/@preset-description-original": "As cores de blocos originais do Scratch 2.0", - "editor-theme3/@preset-description-tweaks": "Cores inspiradas no 2.0 nos blocos de Evento, Controle e Customizados.", + "editor-theme3/@preset-description-tweaks": "Cores dos blocos do Scratch 3.0 como Eventos, Controle e Blocos customizáveis que se assemelham com as cores do Scratch 2.0", "editor-theme3/@preset-name-black": "Preto", - "editor-theme3/@preset-name-dark": "Escuro", - "editor-theme3/@preset-name-original": "Cores do 2.0", - "editor-theme3/@preset-name-tweaks": "Ajustes ao 3.0", + "editor-theme3/@preset-name-contrast": "Alto contraste", + "editor-theme3/@preset-name-dark": "Mais escuro", + "editor-theme3/@preset-name-new-dark": "Escuro", + "editor-theme3/@preset-name-original": "Cores do Scratch 2.0", + "editor-theme3/@preset-name-tweaks": "Ajustes ao Scratch 3.0", "editor-theme3/@settings-name-Pen-color": "extensões", + "editor-theme3/@settings-name-comment-color": "Comentários", "editor-theme3/@settings-name-control-color": "controle", "editor-theme3/@settings-name-custom-color": "meus blocos", "editor-theme3/@settings-name-data-color": "variáveis", @@ -129,21 +147,24 @@ "editor-theme3/@settings-select-text-colorOnBlack": "Colorido no fundo preto", "editor-theme3/@settings-select-text-colorOnWhite": "Colorido no fundo branco", "editor-theme3/@settings-select-text-white": "Branco", - "editor-theme3/@update": "Nova opção de mudar as cores dos blocos no fórum.", - "custom-block-text/@description": "Muda a grossura do texto nos blocos e pode também adicionar uma sombra ao texto.", "custom-block-text/@name": "Mudar estilo de texto dos blocos", "custom-block-text/@settings-name-bold": "Texto em negrito", "custom-block-text/@settings-name-shadow": "Sombra no texto", "editor-colored-context-menus/@description": "Põe cor no menu que aparece ao clicar em um bloco com o botão direito.", "editor-colored-context-menus/@name": "Menus de contexto coloridos", "editor-stage-left/@description": "Move o palco para o lado esquerdo do editor, como no Scratch 2.0.", - "editor-stage-left/@name": "Mostrar palco do lado esquerdo", - "editor-buttons-reverse-order/@description": "Moverá a bandeira verde e o botão de pare para direita e no modo tela cheia os moverá para a direita, como no Scratch 2.0.", - "editor-buttons-reverse-order/@name": "Reverter ordem dos botões de controle de projeto", + "editor-stage-left/@info-reverseOrder": "Para mudar a posição dos botões acima do palco, use o addon \"inverter ordem dos controles do projeto\".", + "editor-stage-left/@name": "Mostrar palco no lado esquerdo", + "editor-buttons-reverse-order/@description": "Moverá a bandeira verde e o botão de pare para a direita e o modo de tela cheia para a direita, como no Scratch 2.0.", + "editor-buttons-reverse-order/@name": "Inverter a ordem dos botões do controle do projeto", "variable-manager/@description": "Adiciona uma aba do lado de \"Sons\" no editor para facilmente editar variáveis e listas.", "variable-manager/@name": "Administrador de variáveis", "search-sprites/@description": "Adiciona uma barra de busca ao painel de atores para pesquisar por atores pelo nome.", - "search-sprites/@name": "Buscar atores pelo nome", + "sprite-properties/@settings-name-transitionDuration": "Velocidade da animação", + "sprite-properties/@settings-select-transitionDuration-default": "Padrão", + "sprite-properties/@settings-select-transitionDuration-long": "Lento", + "sprite-properties/@settings-select-transitionDuration-none": "Instantâneo", + "sprite-properties/@settings-select-transitionDuration-short": "Rápido", "gamepad/@description": "Interaja com projetos usando um controle USB ou Bluetooth", "gamepad/@name": "Suporte para controle", "gamepad/@settings-name-hide": "Esconder botão de configuração quando não houver controle detectado", @@ -154,10 +175,7 @@ "folders/@name": "Pastas de atores", "block-switching/@description": "Clique com o botão direito em um bloco para trocá-lo por um bloco relacionado.", "block-switching/@name": "Trocar blocos", - "block-switching/@settings-name-border": "Adicionar borda", "block-switching/@settings-name-control": "Blocos de controle", - "block-switching/@settings-name-customargs": "Argumentos do bloco customizado", - "block-switching/@settings-name-customargsmode": "Opções de argumentos do bloco customizado à mostra", "block-switching/@settings-name-data": "Blocos de variáveis e listas", "block-switching/@settings-name-event": "Blocos de evento", "block-switching/@settings-name-extension": "Blocos de extensões", @@ -167,8 +185,6 @@ "block-switching/@settings-name-operator": "Blocos operadores", "block-switching/@settings-name-sensing": "Blocos sensores", "block-switching/@settings-name-sound": "Blocos de som", - "block-switching/@settings-select-customargsmode-all": "Argumentos em todos os blocos customizados neste ator", - "block-switching/@settings-select-customargsmode-defOnly": "Argumentos neste bloco customizado", "load-extensions/@description": "Adiciona as extensões de música, caneta, e outras automaticamente à lista de categorias de blocos.", "load-extensions/@name": "Automaticamente adicionar extensões", "load-extensions/@settings-name-music": "Música", @@ -180,18 +196,20 @@ "custom-zoom/@settings-name-autohide": "Auto-esconder Controles de Zoom", "custom-zoom/@settings-name-maxZoom": "Zoom Máximo (100-500%)", "custom-zoom/@settings-name-minZoom": "Zoom Mínimo (1-100%)", - "custom-zoom/@settings-name-speed": "Duração da Animação de Esconder", + "custom-zoom/@settings-name-speed": "Velocidade da animação de Esconder Automáticamente", "custom-zoom/@settings-name-startZoom": "Zoom Inicial (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "Velocidade de Zoom (50-200%)", "custom-zoom/@settings-select-speed-default": "Padrão", - "custom-zoom/@settings-select-speed-long": "Longa", - "custom-zoom/@settings-select-speed-none": "Imediata", - "custom-zoom/@settings-select-speed-short": "Curta", - "initialise-sprite-position/@description": "Muda a posição x/y padrão de novos atores.", + "custom-zoom/@settings-select-speed-long": "Lento", + "custom-zoom/@settings-select-speed-none": "Imediato", + "custom-zoom/@settings-select-speed-short": "Rápido", + "copy-reporter/@name": "Copiar valores reportados", "initialise-sprite-position/@name": "Posição padrão customizável para novos atores", - "initialise-sprite-position/@settings-name-library": "Posição aleatória para atores da biblioteca", "initialise-sprite-position/@settings-name-x": "Posição X", "initialise-sprite-position/@settings-name-y": "Posição Y", + "initialise-sprite-position/@settings-select-duplicate-custom": "Posição x/y especificada", + "initialise-sprite-position/@settings-select-duplicate-keep": "Igual ao sprite original", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Aleatório", "blocks2image/@description": "Clique com o botão direito na área de scripts para exportar blocos como imagens SVG/PNG.", "blocks2image/@name": "Salvar blocos como imagem", "remove-curved-stage-border/@description": "Remove a borda arredondada do palco, e assim te deixa ver os cantos.", @@ -228,14 +246,11 @@ "block-cherry-picking/@info-macContextDisabled": "No macOS, use a tecla Cmd ao invés de Ctrl.", "block-cherry-picking/@name": "Arrastar um único bloco com a tecla Ctrl", "block-cherry-picking/@settings-name-invertDrag": "Trocar padrão", - "hide-new-variables/@description": "Não criar monitores automaticamente para novos variáveis ou listas.", "hide-new-variables/@name": "Esconder novas variáveis", - "editor-extra-keys/@description": "Adiciona mais teclas às opções do bloco \"tecla () pressionada?\" e \"quando a tecla () for pressionada\", como enter, ponto, vírgula, entre outras.", "editor-extra-keys/@info-experimentalKeysWarn": "Entre as \"teclas experimentais\" estão o sinal de igual, barra, ponto e vírgula, entre outros. Elas podem não funcionar em todos os sistemas operacionais ou layouts de teclado.", "editor-extra-keys/@info-shiftKeysWarn": "Entre as \"teclas Shift\" estão teclas que normalmente requerem apertar a tecla Shift e uma tecla de número, como a hashtag, ponto de exclamação, entre outros. Essas teclas só funcionam no bloco \"quando a tecla () for apertada\" e não funcionam em todos os sistemas operacionais ou layouts de teclado.", - "editor-extra-keys/@name": "Suporte a mais teclas", - "editor-extra-keys/@settings-name-experimentalKeys": "Ativar teclas experimentais", - "editor-extra-keys/@settings-name-shiftKeys": "Ativar teclas Shift", + "editor-extra-keys/@settings-name-experimentalKeys": "Mostrar teclas experimentais", + "editor-extra-keys/@settings-name-shiftKeys": "Mostrar teclas Shift", "hide-delete-button/@description": "Esconde o botão de deletar (ícone da lata de lixo) de atores, fantasias e sons. Eles ainda podem ser deletados clicando com o botão direito do mouse.", "hide-delete-button/@name": "Esconder botão de deletar", "hide-delete-button/@settings-name-costumes": "Fantasias e fundos", @@ -245,13 +260,15 @@ "no-script-bumping/@name": "Não mover scripts sobrepostos automaticamente", "disable-stage-drag-select/@description": "Remove a habilidade de arrastar atores no palco no Editor, exceto aqueles que explicitamente estão definidos como arrastável. Segure Shift enquanto arrasta um personagem pra movê-lo normalmente.", "disable-stage-drag-select/@name": "Atores não arrastáveis no editor", - "move-to-top-bottom/@description": "Adiciona uma opção no menu de botão direito de uma fantasia ou som para movê-lo para o topo ou fundo da lista. Antes parte das ferramentas de desenvolvedor.", + "move-to-top-bottom/@info-developer-tools": "Este addon fazia parte do addon \"ferramentas de desenvolvedor\" mas foi movido para cá.", "move-to-top-bottom/@name": "Mover fantasia ao topo ou ao fundo da lista", + "move-to-top-layer/@name": "Mover sprite para camada da frente", "disable-paste-offset/@description": "Cola itens copiados em sua posição original ao invés de movê-los no editor de fantasia.", "disable-paste-offset/@name": "Não mover itens colados", "block-duplicate/@description": "Duplique um script rapidamente arrastando-o enquanto segura a tecla Alt. Segure Ctrl junto para duplicar só um único bloco ao invés da pilha inteira conectada.", "block-duplicate/@info-mac": "No macOS, use a tecla Option ao invés de Alt e Command ao invés de Ctrl.", "block-duplicate/@name": "Duplicar script segurando Alt", + "rename-broadcasts/@name": "Renomear mensagens", "swap-local-global/@description": "Adiciona mais opções ao renomear uma variável ou lista existente: permite trocar entre a opção \"Para todos os atores\" e \"Apenas para este ator\" e trocar se as variáveis são guardadas na nuvem ou não. Também adiciona uma nova opção ao clicar com o botão direito em uma variável/lista para rapidamente trocar seu acesso.", "swap-local-global/@name": "Trocar variáveis entre \"Para todos os atores\" e \"Apenas para este ator\"", "editor-comment-previews/@description": "Te deixa ver o texto de comentários ao passar o mouse em cima de comentários fechados e blocos. Você pode usar isso para ver comentários fora da tela, identificar um loop pela ponta inferior através de sua pré-visualização, encaixar vários comentários em um espaço pequeno, e mais.", @@ -268,6 +285,10 @@ "editor-comment-previews/@settings-select-delay-short": "Curto", "columns/@description": "Divide o menu de categorias em duas colunas e o move para o topo da paleta de blocos, assim como no Scratch 2.0.", "columns/@name": "Menu de categoria de duas colunas", + "number-pad/@name": "Sempre mostrar o teclado de numeros", + "expanded-backpack/@name": "Múltiplas linhas na mochila", + "expanded-backpack/@settings-name-rows": "Número de linhas exibidas", + "expanded-backpack/@settings-name-upscale": "Thumbnail maior para fantasias e scripts", "script-snap/@description": "Arraste um script para automaticamente alinhas sua posição à grade de pontos.", "script-snap/@name": "Alinhar scripts à grade", "script-snap/@preset-name-default": "Padrão", @@ -275,10 +296,9 @@ "script-snap/@preset-name-whole-block": "Bloco inteiro", "script-snap/@settings-name-grid": "Tamanho da grade (px)", "fullscreen/@description": "Conserta alguns efeitos indesejados no modo tela cheia do player de projeto, ativa o modo tela cheia do seu navegador, e esconde a barra superior, onde tem a bandeira verde.", - "fullscreen/@info-hideToolbarNotice": "Se escolher esconder a barra superior, lembre-se que você pode apertar a tecla Esc para sair do modo tela cheia do projeto.", "fullscreen/@name": "Tela cheia melhorada", "fullscreen/@settings-name-browserFullscreen": "Abrir projeto em tela cheia com o navegador em tela cheia", - "fullscreen/@settings-name-hideToolbar": "Esconder barra superior na tela cheia", + "hide-stage/@description": "Adiciona um botão próximo ao botão de diminuir e aumentar o tamanho do palco que esconde o palco e o painel de sprites, deixando a área de código maior.", "hide-stage/@name": "Esconder painel do palco e sprite", "editor-stepping/@description": "Adiciona uma borda colorida aos blocos que estão rodando em um projeto.", "editor-stepping/@name": "Destacar blocos em execução", diff --git a/src/addons/addons-l10n-settings/ro.json b/src/addons/addons-l10n-settings/ro.json index 61721ed4ace..d65d0f3269c 100644 --- a/src/addons/addons-l10n-settings/ro.json +++ b/src/addons/addons-l10n-settings/ro.json @@ -1,5 +1,4 @@ { - "cat-blocks/@description": "Aduce înapoi în editor blocurile pălărie pisică din Ziua Farselor din 2020.", "cat-blocks/@name": "Blocuri Pisică", "editor-devtools/@name": "Instrumente pentru dezvoltatori", "editor-searchable-dropdowns/@name": "Căutare în listele de opțiuni", @@ -8,19 +7,13 @@ "data-category-tweaks-v2/@settings-name-separateListCategory": "Separă variabilele de liste", "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Separă Variabilele Doar Pentru acest Personaj", "block-palette-icons/@name": "Pictograme ale categoriilor din paleta de blocuri", - "hide-flyout/@description": "Ascunde paleta de blocuri dacă nu se ține mouse-ul deasupra ei. Apasă pe pictograma blochează pentru a o ține la locul ei temporar. Altfel, folosește modul „clic pe categorie”.", "hide-flyout/@info-hoverExplanation": "Modul „Pune cursorul deasupra zonei paletei” doar extinde zona vizuală. Dacă vrei să poți trage blocuri în acea zonă fără ca acestea să fie șterse, folosește unul dintre celelalte moduri.", - "hide-flyout/@settings-name-speed": "Durata animației", "hide-flyout/@settings-name-toggle": "Pornește...", "hide-flyout/@settings-select-speed-default": "Implicit", - "hide-flyout/@settings-select-speed-long": "Lungă", - "hide-flyout/@settings-select-speed-none": "Niciuna", - "hide-flyout/@settings-select-speed-short": "Scurtă", "hide-flyout/@settings-select-toggle-category": "Clic pe categorie", "hide-flyout/@settings-select-toggle-cathover": "Pune cursorul deasupra categoriei", "hide-flyout/@settings-select-toggle-hover": "Pune cursorul deasupra zonei paletei", "drag-drop/@name": "Trage și dă drumul fișierelor", - "pause/@description": "Adaugă un buton de pauză lângă steagul verde.", "pause/@name": "Buton de Pauză", "mute-project/@description": "Ctrl+Apasă pe steag pentru a activa/dezactiva sunetul proiectului.", "clones/@name": "Contor de clone", @@ -53,14 +46,8 @@ "custom-block-shape/@settings-name-cornerSize": "Mărimea colțului (0-300%)", "editor-theme3/@description": "Editează culoarea blocurilor pentru fiecare categorie în editor.", "editor-theme3/@name": "Culori personalizate ale blocurilor", - "editor-theme3/@preset-description-black": "Face fundalul blocurilor negru", - "editor-theme3/@preset-description-dark": "Versiuni întunecate ale culorilor implicite", "editor-theme3/@preset-description-original": "Culorile originale ale blocurilor din Scratch 2.0", - "editor-theme3/@preset-description-tweaks": "Culorile Blocurilor Personalizate, de Evenimente și de Control inspirate din Scratch 2.0", "editor-theme3/@preset-name-black": "Negru", - "editor-theme3/@preset-name-dark": "Întunecat", - "editor-theme3/@preset-name-original": "Culori 2.0", - "editor-theme3/@preset-name-tweaks": "Modificări 3.0", "editor-theme3/@settings-name-Pen-color": "extensii", "editor-theme3/@settings-name-custom-color": "blocuri personalizate", "editor-theme3/@settings-name-data-color": "variabile", @@ -85,7 +72,6 @@ "variable-manager/@description": "Adaugă o filă lângă „sunete” în editor pentru pentru a actualiza ușor variabile și liste.", "variable-manager/@name": "Administrator de Variabile", "search-sprites/@description": "Adaugă o cutie de căutare la panoul personajelor pentru a căuta personaje după nume.", - "search-sprites/@name": "Caută personaje după nume", "gamepad/@name": "Suport gamepad", "editor-sounds/@description": "Redă efecte sonore la conectarea și la ștergerea blocurilor.", "editor-sounds/@name": "Efecte sonore în editor", @@ -93,7 +79,6 @@ "folders/@name": "Dosare de Personaje", "block-switching/@description": "Dați click-dreapta pe un bloc pentru a-l schimba într-unul cu un conținut asemânător.", "block-switching/@name": "Schimbarea blocurilor", - "block-switching/@settings-name-border": "Adaugă margine", "block-switching/@settings-name-control": "Blocuri Control", "block-switching/@settings-name-data": "Blocuri de Liste și Variabile", "block-switching/@settings-name-event": "Evenimente", @@ -109,9 +94,6 @@ "load-extensions/@settings-name-text2speech": "Text în Vorbire", "load-extensions/@settings-name-translate": "Traducere", "custom-zoom/@settings-select-speed-default": "Implicit", - "custom-zoom/@settings-select-speed-long": "Lungă", - "custom-zoom/@settings-select-speed-none": "Niciuna", - "custom-zoom/@settings-select-speed-short": "Scurtă", "blocks2image/@name": "Salvează blocurile ca imagine", "remove-curved-stage-border/@name": "Elimină marginea scenei curbată", "paint-by-default/@name": "Pictează costumele în mod prestabilit", diff --git a/src/addons/addons-l10n-settings/ru.json b/src/addons/addons-l10n-settings/ru.json index bcc769634cc..04b3dbe4933 100644 --- a/src/addons/addons-l10n-settings/ru.json +++ b/src/addons/addons-l10n-settings/ru.json @@ -1,53 +1,76 @@ { - "cat-blocks/@description": "Возвращает обратно в редактор котоблоки с первого апреля 2020.", "cat-blocks/@info-watch": "Когда открыт редактор, параметр \"Следить за указателем мыши\" может влиять на производительность.", "cat-blocks/@name": "Котоблоки", "cat-blocks/@settings-name-watch": "Следить за указателем мыши", + "editor-devtools/@description": "Добавляет новые опции в меню редактора: копирование/вставка блоков,улучшенная очистка,и прочее!", "editor-devtools/@name": "Инструменты разработчика", "editor-devtools/@settings-name-enableCleanUpPlus": "Улучшение \"Очистить блоки\"", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Вставлять блоки под курсором мыши", - "editor-searchable-dropdowns/@description": "Позволяет искать в раскрывающемся списке блоков.", - "editor-searchable-dropdowns/@name": "Поиск в выпадающих списках", + "find-bar/@description": "Добавляет строку поиска чтобы искать скрипты,костюмы и звуки во вкладке звуков.Используйте Ctrl + стрелка влево и Ctrl + стрелка вправо в зоне с кодом,для перехода к ледующей и предыдущей посещённой позиции,после использования строки поиска", + "find-bar/@info-developer-tools": "Этот аддон раньше был частью \"инструментов разработчика\" ,но теперь переехал сюда", + "find-bar/@name": "Строка поиска в редакторе", + "middle-click-popup/@description": "Щёлкните средней кнопкой мыши; щёлкните, задерживая клавишу Shift или же нажмите комбинацию клавиш Ctrl + Пробел, чтобы вызвать окно поиска блоков. Напишите имена блоков (или их частей) и перетащите их в площадь кода, чтобы добавить их в Ваш проект. Навигация через меню может осуществляться с помощью клавиш со стрелками и клавишей Enter. Меню поддерживает автозаполнение с помощью клавиши Tab. Чтобы предотвратить закрытие меню, зажмите Shift во время перетаскивания из меню блоков.", + "middle-click-popup/@info-developer-tools": "Этот аддон раньше был частью \"инструментов разработчика\" ,но теперь переехал сюда", + "middle-click-popup/@name": "Вставлять блоки по имени", + "middle-click-popup/@settings-name-popup_max_height": "Максимальная высота всплывающего окна", + "middle-click-popup/@settings-name-popup_scale": "Размер всплывающего окна блока", + "middle-click-popup/@settings-name-popup_width": "Ширина всплывающего окна", + "jump-to-def/@description": "Вызывает меню с поиском блоков и переменных при одновременном нажатии shift и левого клика мыши либо клика колёсиком мыши", + "jump-to-def/@info-developer-tools": "Этот аддон раньше был частью \"инструментов разработчика\" ,но теперь переехал сюда", + "jump-to-def/@name": "Вызывать быстрое меню вызова блоков", + "reorder-custom-inputs/@description": "Позволяет перемещение параметров пользовательских блоков на экране \"Создать блок\".", + "reorder-custom-inputs/@name": "Перестраиваемые пользовательские входные данные блока", + "reorder-custom-inputs/@settings-name-InsertInputsAfter": "Вставить новые вводы после выбранного ввода", + "data-category-tweaks-v2/@description": "Предоставляет настройки для категории блоков Данных (\"Переменные\").", "data-category-tweaks-v2/@name": "Поправки категории данных ", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Переместить блоки данных выше списка переменных.", "data-category-tweaks-v2/@settings-name-separateListCategory": "Отдельная категория списков.", "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Отделить переменные только для одного спрайта", "block-palette-icons/@description": "Добавляет значки внутри цветных кружков, обозначающих категории блоков.", "block-palette-icons/@name": "Значки категорий на палитре блоков", - "hide-flyout/@description": "Скрывает палитру блоков, если не наведено. Щелкните значок замкА, чтобы временно заблокировать его. Как вариант, используйте режим «щелчок по категории».", + "hide-flyout/@info-hoverExplanation": "Режим \"Наведение на область палитры\" только расширяет область просмотра. Если вы хотите иметь возможность перетаскивать блоки в эту область без их уничтожения, используйте один из других режимов.", "hide-flyout/@name": "Автоскрытие палитры блоков", - "hide-flyout/@settings-name-speed": "Длительность анимации", + "hide-flyout/@settings-name-speed": "Скорость анимации:", "hide-flyout/@settings-name-toggle": "Включить...", "hide-flyout/@settings-select-speed-default": "По умолчанию", - "hide-flyout/@settings-select-speed-long": "Длинный", - "hide-flyout/@settings-select-speed-none": "Nul", - "hide-flyout/@settings-select-speed-short": "Короткий", + "hide-flyout/@settings-select-speed-long": "Медленная", + "hide-flyout/@settings-select-speed-none": "Моментальная", + "hide-flyout/@settings-select-speed-short": "Быстрая", "hide-flyout/@settings-select-toggle-category": "Нажатие категории", "hide-flyout/@settings-select-toggle-cathover": "Наведение на категорию", "hide-flyout/@settings-select-toggle-hover": "Наведение на область палитры", "mediarecorder/@description": "Добавляет кнопку \"начать запись\" в меню редактора, которая позволяет записывать сцену проекта.", "mediarecorder/@name": "Запись проекта на видео", + "drag-drop/@description": "Позволяет перетаскивать файлы с компьютера прямо во вкладку костюмов/звуков спрайта", "drag-drop/@name": "Перетаскивание файлов", "drag-drop/@settings-name-use-hd-upload": "Использовать HD загрузку", + "debugger/@description": "Добавляет новое окно отладчика к редактору. Отладчик позволяет логировать во вкладку «Логи», используя блоки «логировать», «предупредить» и «ошибка». Блок «точки остановки» поставит проект на паузу при выполнении. Все выполняемые потоки могут быть просмотрены в вкладке «Потоки». При остановке проекта кнопка «Шаг вперёд» может быть использована для выполнения следующего блока. График FPS и кол-во клонов могут быть просмотрены в вкладке «Производительность».", "debugger/@name": "Отладчик", + "debugger/@settings-name-fancy_graphs": "Анимированные графики (может повлиять на производительность)", "debugger/@settings-name-log_broadcasts": "Логировать сообщения", "debugger/@settings-name-log_clear_greenflag": "Очистить логи, когда зелёный флаг нажат", "debugger/@settings-name-log_clone_create": "Логировать создания клонов", - "debugger/@settings-name-log_failed_clone_creation": "Логировать, когда макс. кол-во клонов превышено", + "debugger/@settings-name-log_failed_clone_creation": "Заносить в журнал моменты превышения лимита клонов", "debugger/@settings-name-log_greenflag": "Логировать нажатия на зелёный флажок", - "debugger/@update": "Новые вкладки \"Потоки\" и \"Производительность\" в окне отладки.", - "pause/@description": "Добавляет кнопку паузы рядом с зелёным флагом.", "pause/@name": "Кнопка паузы", "mute-project/@description": "Клавиша Ctrl + Клик по зелёному флагу чтобы выключить/включить звук проекта.", "mute-project/@info-macOS": "В macOS используйте клавишу Cmd вместо клавиши Ctrl.", "mute-project/@name": "Беззвучный режим проектов", + "vol-slider/@description": "Добавляет слайдер громкости к элементам управления проектом", + "vol-slider/@name": "Слайдер громкости проекта", + "vol-slider/@settings-name-always": "Всегда показывать ползунок", + "vol-slider/@settings-name-defVol": "Стандартная громкость:", + "clones/@description": "Добавляет счётчик над сценой,который показывает список клонов", "clones/@name": "Счётчик клонов", - "mouse-pos/@name": "Позиция мыши", + "clones/@settings-name-showicononly": "Показывать только иконку", + "mouse-pos/@description": "Отображает координаты курсора мыши x/y в редакторе над сценой.", "color-picker/@description": "Добавляет ввод кодов hex в выбор цветов.", "color-picker/@name": "Выбор цветов типа Hex", "remove-sprite-confirm/@description": "Спрашивает, уверены ли вы при удалении спрайта внутри проекта.", + "remove-sprite-confirm/@name": "Подтверждение удаления спрайтов", "block-count/@description": "Показывает количество блоков в проекте в верхней панели редактора. Раньше было частью «счётчик спрайтов и скриптов».", "block-count/@name": "Счёт блоков", + "onion-skinning/@description": "Показывает полупрозрачное наслоение предыдущих/следующих костюмов в редакторе,как в программе для анимирования.Настройки рядом с кнопками размера", "onion-skinning/@name": "Отображение Onion", "onion-skinning/@settings-name-afterTint": "Следующая тонировка костюма", "onion-skinning/@settings-name-beforeTint": "Предыдущий оттенок костюма", @@ -56,29 +79,51 @@ "onion-skinning/@settings-name-mode": "Режим по умолчанию", "onion-skinning/@settings-name-next": "Следующие костюмы по умолчанию", "onion-skinning/@settings-name-opacity": "Непрозрачность (%)", - "onion-skinning/@settings-name-opacityStep": "Шаг непрозрачности (%)", + "onion-skinning/@settings-name-opacityStep": "Уровень непрозрачности (%)", "onion-skinning/@settings-name-previous": "Предыдущие костюмы по умолчанию", "onion-skinning/@settings-select-layering-behind": "Сзади", "onion-skinning/@settings-select-layering-front": "Впереди", "onion-skinning/@settings-select-mode-merge": "Объединить изображения", "onion-skinning/@settings-select-mode-tint": "Оттенок цвета", + "paint-snap/@description": "Привязывает объекты в редакторе костюмов ,к различным опорам ,как в более профессиональных векторных редакторах", + "paint-snap/@name": "Привязка в редакторе костюмов", + "paint-snap/@settings-name-boxCenter": "Привязки от центра выбора", + "paint-snap/@settings-name-boxCorners": "Привязки от углов выбора", + "paint-snap/@settings-name-boxEdgeMids": "Привязки от границ середины выбора", + "paint-snap/@settings-name-enable-default": "Включено по умолчанию", + "paint-snap/@settings-name-guide-color": "Цвет линий привязки", + "paint-snap/@settings-name-objectCenters": "Привязки к центру объектов", + "paint-snap/@settings-name-objectCorners": "Привязки к углам объектов", + "paint-snap/@settings-name-objectEdges": "Привязки к границам объектов", + "paint-snap/@settings-name-objectMidlines": "Привязки к средним линиям объектов", + "paint-snap/@settings-name-pageAxes": "Привязки к осям x и y", + "paint-snap/@settings-name-pageCenter": "Привязки к центру", + "paint-snap/@settings-name-pageCorners": "Привязки к углам", + "paint-snap/@settings-name-pageEdges": "Привязки к границам", + "paint-snap/@settings-name-threshold": "Дистанция привязки", "default-costume-editor-color/@description": "Меняет цвета по умолчанию и размер контура, которые используются редактором костюмов.", "default-costume-editor-color/@name": "Настраиваемые заводские цвета в редакторе костюмов", "default-costume-editor-color/@settings-name-fill": "Цвет заливки", - "default-costume-editor-color/@settings-name-persistence": "Использовать предыдущий цвет вместо цвета по умолчанию при смены инструментов", + "default-costume-editor-color/@settings-name-persistence": "Использует прошлый цвет,вместо перезапуска", "default-costume-editor-color/@settings-name-stroke": "Цвет контура", "default-costume-editor-color/@settings-name-strokeSize": "Размер контура", + "bitmap-copy/@description": "Позволяет копировать растровое изображение из редактора костюмов в системный буфер обмена, чтобы его можно было вставить на другие веб-сайты или в программное обеспечение.", "bitmap-copy/@info-norightclick": "\"ПКМ → Копировать\" не поддерживается. Вам нужно нажать Ctrl+C пока растровое изображение выбрано.", "bitmap-copy/@name": "Копирование растровых изображений", "2d-color-picker/@description": "Заменяет ползунки насыщенности и яркости в редакторе костюмов двухмерной палитрой цветов. Удерживая нажатой клавишу Shift, перетащите курсор, чтобы изменить значения на одной оси.", "2d-color-picker/@name": "2D-палитра цветов", + "paint-skew/@description": "Держите Ctrl во время масштабирования объекта чтобы перекосить его. Зажмите Alt во время перекоса объекта чтобы перекосить его от центра.", + "paint-skew/@info-useCmdOnMac": "На macOS, используйте клавишу Command вместо клавиши Ctrl и клавишу Option вместо Alt.", + "paint-skew/@name": "Перекос в редакторе костюмов", "better-img-uploads/@description": "Добавляет новую кнопку над кнопкой \"загрузить костюм\", которая автоматически преобразует загруженные растровые изображения в изображения SVG (векторные), чтобы избежать потери качества.", "better-img-uploads/@info-notSuitableEdit": "Избегайте использования кнопки HD загрузки, если вы планируете редактировать изображение после загрузки.", "better-img-uploads/@name": "HD загрузка изображений", "better-img-uploads/@settings-name-fitting": "Размер изображения", - "better-img-uploads/@settings-select-fitting-fill": "Растянуть, чтобы заполнить сцену", - "better-img-uploads/@settings-select-fitting-fit": "Уменьшить, чтобы соответствовать сцене", + "better-img-uploads/@settings-select-fitting-fill": "Растянуть для заполнения холста", + "better-img-uploads/@settings-select-fitting-fit": "Сжать для вмещения в холст", "better-img-uploads/@settings-select-fitting-full": "Оригинальный размер", + "pick-colors-from-stage/@description": "Позволяет пипетке в редакторе костюмов также выбирать цвета из сцены.", + "pick-colors-from-stage/@name": "Выбор цветов на сцене с помощью пипетки", "custom-block-shape/@description": "Отрегулируйте отступы, радиус угла и высоту надреза блоков.", "custom-block-shape/@info-paddingWarning": "Уменьшение размера отступа видно только вам, поэтому, когда ваши проекты просматриваются другими пользователями, ваши скрипты могут перекрываться.", "custom-block-shape/@name": "Настраиваемая форма блоков", @@ -93,19 +138,46 @@ "custom-block-shape/@settings-name-cornerSize": "Размер угла (0-300%)", "custom-block-shape/@settings-name-notchSize": "Высота паза (0-150%)", "custom-block-shape/@settings-name-paddingSize": "Размер отступов (50-200%)", + "editor-square-inputs/@description": "Делает определённые типы вводов (такие, как текстовые и цветовые) прямоугольными, вместо округлённых, как в Scratch 2.0 .", + "editor-square-inputs/@name": "Квадратные вводы блоков", + "editor-square-inputs/@settings-name-color": "Цветовые вводы", + "editor-square-inputs/@settings-name-number": "Числовые вводы", + "editor-square-inputs/@settings-name-text": "Текстовые вводы", + "zebra-striping/@description": "Делает цвета блоков одной категории ,которые вложены в другие блоки этой же категории ярче. Как у зебры.", + "zebra-striping/@name": "Другие цвета вложенных блоков", + "zebra-striping/@settings-name-intensity": "интенсивность (0-100%)", + "zebra-striping/@settings-name-shade": "Оттенок", + "zebra-striping/@settings-select-shade-darker": "затемнение", + "zebra-striping/@settings-select-shade-lighter": "Яркость", + "editor-compact/@description": "Уменьшает размер кнопок, полей ввода, панель меню, и другие части редактора, добавляя свободное место для панели кода, редактора костюмов и предпросмотра костюмов, как было в Scratch 2.0", + "editor-compact/@info-hide-icons-update": "Чтобы спрятать кнопки строки меню, используйте дополнение \"Настраиваемая строка меню\".", + "editor-compact/@name": "Компактный редактор", + "editor-compact/@settings-name-hideLabels": "Скрыть названия кнопок в редакторах костюмов и звуков", + "custom-menu-bar/@description": "Позволяет Вам прятать определённые предметы строки меню или удалять их метки или иконки.", + "custom-menu-bar/@info-small-screens": "Текстовые этикетки могут быть автоматически заменены иконками на маленьких окнах.", + "custom-menu-bar/@name": "Настраиваемая строка меню редактора", + "custom-menu-bar/@settings-name-menu-labels": "Показать меню...", + "custom-menu-bar/@settings-select-menu-labels-both": "Иконки и этикетки", + "custom-menu-bar/@settings-select-menu-labels-icons": "Только иконки", + "custom-menu-bar/@settings-select-menu-labels-labels": "Только этикетки", "editor-theme3/@description": "Отредактируйте цвета блоков для каждой категории в редакторе.", "editor-theme3/@name": "Настраиваемые цвета блоков", - "editor-theme3/@preset-description-black": "Делает фоны блоков чёрными", - "editor-theme3/@preset-description-dark": "Тёмные версии цветов по умолчанию", + "editor-theme3/@preset-description-black": "Делает фон блока чёрным, а границы/текст цветными", + "editor-theme3/@preset-description-contrast": "Высококонтрастная блочная цветовая палитра Scratch'а 3.0", + "editor-theme3/@preset-description-dark": "Ещё более тёмные версии цветов по умолчанию", + "editor-theme3/@preset-description-new-dark": "Темные версии стандартных цветов, которые выглядят лучше с темными темами.", "editor-theme3/@preset-description-original": "Оригинальные цвета блоков из Scratch 2.0", - "editor-theme3/@preset-description-tweaks": "Блоки событий, управления и другие с цветами, вдохновленными 2.0", + "editor-theme3/@preset-description-tweaks": "Цвета блоков Scratch 3.0 с блоками Событий, Управления и Других блоков, которые повторяют цвета Scratch 2.0", "editor-theme3/@preset-name-black": "Чёрный", - "editor-theme3/@preset-name-dark": "Тёмная", - "editor-theme3/@preset-name-original": "Цвета 2.0", - "editor-theme3/@preset-name-tweaks": "3.0 повторение", + "editor-theme3/@preset-name-contrast": "Высокая контрастность", + "editor-theme3/@preset-name-dark": "Темнее", + "editor-theme3/@preset-name-new-dark": "Тёмный", + "editor-theme3/@preset-name-original": "Цвета Scratch 2.0", + "editor-theme3/@preset-name-tweaks": "Улучшенный Scratch 3.0", "editor-theme3/@settings-name-Pen-color": "расширения", + "editor-theme3/@settings-name-comment-color": "Комментарии", "editor-theme3/@settings-name-control-color": "управление", - "editor-theme3/@settings-name-custom-color": "свой", + "editor-theme3/@settings-name-custom-color": "свои блоки", "editor-theme3/@settings-name-data-color": "переменные", "editor-theme3/@settings-name-data-lists-color": "списки", "editor-theme3/@settings-name-events-color": "события", @@ -120,32 +192,42 @@ "editor-theme3/@settings-select-text-colorOnBlack": "Цветной на чёрном фоне", "editor-theme3/@settings-select-text-colorOnWhite": "Цветной на белом фоне", "editor-theme3/@settings-select-text-white": "Белый", - "editor-theme3/@update": "Новая настройка, чтобы предоставлять изменение цветов блоков на форумах.", - "custom-block-text/@description": "Изменяет толщину текста на блоках и дополнительно добавляет тень к тексту.", + "custom-block-text/@description": "Позволяет Вам настраивать стиль текста на блоках, включая регулировку размера, использование жирного текста, или добавление тени.", "custom-block-text/@name": "Настраиваемый стиль текста блоков", "custom-block-text/@settings-name-bold": "Жирный текст", "custom-block-text/@settings-name-shadow": "Тень под текстом", - "editor-colored-context-menus/@description": "Делает контекстные меню, щёлкнутые ПКМ по блоку более красочными.", + "custom-block-text/@settings-name-size": "Размер текста (%)", + "editor-colored-context-menus/@description": "Делает контекстные меню, щёлкнутые правой кнопкой мыши по блоку более красочными.", "editor-colored-context-menus/@name": "Цветные контекстные меню", "editor-stage-left/@description": "Перемещает сцену в левую часть редактора, как в Scratch 2.0.", + "editor-stage-left/@info-reverseOrder": "Чтобы изменить положение кнопок над сценой, используйте аддон «поменять местами флажок и кнопку стоп».", "editor-stage-left/@name": "Отображать сцену на левой стороне", + "editor-buttons-reverse-order/@description": "Переместить кнопки флага и остановки направо,а кнопку полного экрана налево,как в scratch 2.0.", + "editor-buttons-reverse-order/@name": "Перевернуть элементы управления.", "variable-manager/@description": "Добавляет вкладку рядом с \"звуки\" в редакторе для удобного обновления переменных и списков.", "variable-manager/@name": "Менеджер переменных", "search-sprites/@description": "Добавляет поле поиска к панели спрайтов, чтобы искать спрайты по имени.", - "search-sprites/@name": "Поиск спрайтов по имени", + "search-sprites/@name": "Поле поиска в панели спрайтов", + "sprite-properties/@description": "Прячет панель со свойствами спрайта ,как это было в scratch 2.0.Используй кнопку \"i\" на выбранном спрайте ,или нажми два раза на спрайт ,чтобы показать панель со свойствами. Чтобы обратно скрыть панель, нажми на кнопку скрытия на панели ,или же, нажми на спрайт два раза", + "sprite-properties/@name": "Прятать панель со свойствами спрайта", + "sprite-properties/@settings-name-autoCollapse": "Автоматически прятать ,когда будет убрана мышка", + "sprite-properties/@settings-name-hideByDefault": "Спрятать панель изначально", + "sprite-properties/@settings-name-transitionDuration": "Скорость анимации:", + "sprite-properties/@settings-select-transitionDuration-default": "Стандартная", + "sprite-properties/@settings-select-transitionDuration-long": "Медленная", + "sprite-properties/@settings-select-transitionDuration-none": "Моментальная", + "sprite-properties/@settings-select-transitionDuration-short": "Быстрая", "gamepad/@description": "Взаимодействовать с проектами используя USB или Bluetooth контроллер/геймпад.", "gamepad/@name": "Поддержка геймпада", "gamepad/@settings-name-hide": "Спрятать кнопку настроек, если контроллеров не обнаружено", "editor-sounds/@description": "Воспроизводит звуковые эффекты при соединении или удалении блоков.", "editor-sounds/@name": "Звуковые эффекты редактора", + "folders/@description": "Добавляет папки в панель спрайтов,а также костюмов и звуков. Чтобы сделать папку, нажми по спрайту/звуку/костюму, нажми создать папку и назови её, чтобы добавить в папку звук/костюм/спрайт нажми правой кнопкой мыши и выбери добавить к папке", "folders/@info-notice-folders-are-public": "Пользователи, у которых включена эта функция, смогут видеть папки в вашем проекте. Все остальные будут видеть списки спрайтов в обычном режиме (без папок).", "folders/@name": "Папки спрайтов", "block-switching/@description": "Щёлкните правой кнопкой мыши по блоку, чтобы заменить его на связанный блок.", "block-switching/@name": "Замена блоков", - "block-switching/@settings-name-border": "Добавить границу", "block-switching/@settings-name-control": "Блоки управления", - "block-switching/@settings-name-customargs": "Аргументы пользовательских блоков", - "block-switching/@settings-name-customargsmode": "Параметры отображения аргументов пользовательских блоков", "block-switching/@settings-name-data": "Блоки переменных", "block-switching/@settings-name-event": "Блоки событий", "block-switching/@settings-name-extension": "Блоки расширений", @@ -155,36 +237,41 @@ "block-switching/@settings-name-operator": "Блоки операторов", "block-switching/@settings-name-sensing": "Блоки сенсоров", "block-switching/@settings-name-sound": "Блоки звуков", - "block-switching/@settings-select-customargsmode-all": "Аргументы во всех пользовательских блоках спрайта", - "block-switching/@settings-select-customargsmode-defOnly": "Аргументы в собственном пользовательском блоке", "load-extensions/@description": "Автоматически добавляет расширения Музыка, Перо и др. в меню категорий блоков в редакторе.", "load-extensions/@name": "Автоматически добавлять расширения", "load-extensions/@settings-name-music": "Музыка", "load-extensions/@settings-name-pen": "Перо", "load-extensions/@settings-name-text2speech": "Текст в речь", "load-extensions/@settings-name-translate": "Перевод", + "custom-zoom/@description": "Выберите свои настройки максимального размера,минимального,скорость,и начальное увеличение зоны с кодом\nа также,автоскрытие управления.", "custom-zoom/@name": "Настраиваемое масштабирование области кода", "custom-zoom/@settings-name-autohide": "Автоматическое скрытие элементов управления масштабированием", "custom-zoom/@settings-name-maxZoom": "Максимальное увеличение (100-500%)", "custom-zoom/@settings-name-minZoom": "Минимальное увеличение (1-100%)", - "custom-zoom/@settings-name-speed": "Продолжительность анимации скрытия", + "custom-zoom/@settings-name-speed": "Скорость анимации скрытия", "custom-zoom/@settings-name-startZoom": "Начальное увеличение (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "Скорость увеличения (50-200%)", "custom-zoom/@settings-select-speed-default": "По умолчанию", - "custom-zoom/@settings-select-speed-long": "Долго", - "custom-zoom/@settings-select-speed-none": "Нет", - "custom-zoom/@settings-select-speed-short": "Быстро", - "initialise-sprite-position/@description": "Изменяет позицию x/y по умолчанию для новых спрайтов", + "custom-zoom/@settings-select-speed-long": "Медленная", + "custom-zoom/@settings-select-speed-none": "Моментальная", + "custom-zoom/@settings-select-speed-short": "Быстрая", + "copy-reporter/@description": "Добавляет возможность копировать значение переменной (через контекстное меню) и вывод значений блоков.", + "copy-reporter/@name": "Копировать значения вывода", + "initialise-sprite-position/@description": "Изменить местонахождение новых спрайтов на сцене.", "initialise-sprite-position/@name": "Настраиваемая позиция нового спрайта", - "initialise-sprite-position/@settings-name-library": "Случайное расположение спрайтов из библиотеки", + "initialise-sprite-position/@settings-name-duplicate": "Положение для дублированных спрайтов", + "initialise-sprite-position/@settings-name-library": "Размещать спрайты из библиотеки на случайное положение", "initialise-sprite-position/@settings-name-x": "Позиция X", "initialise-sprite-position/@settings-name-y": "Позиция Y", - "blocks2image/@description": "Кликните ПКМ в область кода, чтобы экспортировать блоки как изображения SVG или PNG.", + "blocks2image/@description": "Кликните правой кнопкой мыши в область кода, чтобы экспортировать блоки как изображения SVG или PNG.", "blocks2image/@name": "Сохранить блоки как изображение", "remove-curved-stage-border/@description": "Убирает фигурную обводку вокруг сцены, позволяя увидеть углы.", "remove-curved-stage-border/@name": "Убирает фигурную обводку сцены", + "transparent-orphans/@description": "Добавляет прозрачность блокам в редакторе,с отдельными опциями для отдельных блоков(которые без блока действий),и блоков которые перетаскиваются", "transparent-orphans/@name": "Прозрачность блоков", "transparent-orphans/@settings-name-block": "Прозрачность блоков (%)", + "transparent-orphans/@settings-name-dragged": "прозрачность перетаскиваемых блоков (%)", + "transparent-orphans/@settings-name-orphan": "прозрачность отдельных блоков (%)", "paint-by-default/@description": "Изменяет действие по умолчанию кнопок «выберите спрайт/костюм/фон/звук», которые по умолчанию открывают библиотеку.", "paint-by-default/@name": "Рисовать костюм по умолчанию", "paint-by-default/@settings-name-backdrop": "Добавить фон", @@ -212,15 +299,16 @@ "block-cherry-picking/@info-macContextDisabled": "В macOS используйте клавишу Cmd вместо Ctrl.", "block-cherry-picking/@name": "Вытаскивать отдельный блок с клавишей Ctrl", "block-cherry-picking/@settings-name-invertDrag": "Инвертировать управление", - "hide-new-variables/@description": "Не создавать мониторы автоматически для новых переменных или списков.", + "hide-new-variables/@description": "Не показывать мониторы автоматически для новых переменных или листов.", "hide-new-variables/@name": "Скрывать новые переменные", "editor-extra-keys/@description": "Добавляет больше клавиш в выпадающие списки блоков \"клавиша () нажата?\" и \"когда клавиша () нажата\", такие как Enter, точка, запятая и другие.", "editor-extra-keys/@info-experimentalKeysWarn": "«Экспериментальные клавиши» включают в себя равно, слэш, двоеточие и многое другое. Они могут не работать на всех операционных системах или раскладках клавиатуры.", "editor-extra-keys/@info-shiftKeysWarn": "«Клавиши Shift» включают в себя клавиши, которым нужна клавиша Shift и клавиша цифры по типу хэштега, вопросительного знака и многое др. Эти клавиши работают только с блоком «когда клавиша () нажата» и не работают на всех операционных системах или раскладках клавиатуры.", - "editor-extra-keys/@name": "Поддержка дополнительных клавиш", + "editor-extra-keys/@name": "Дополнительные опции клавиш", "editor-extra-keys/@settings-name-experimentalKeys": "Включить экспериментальные клавиши", "editor-extra-keys/@settings-name-shiftKeys": "Включить кнопки Shift", "hide-delete-button/@description": "Скрывает кнопку удаления (иконка корзины) из спрайтов, костюмов и звуков. Они могут быть удалены из контекстного меню.", + "hide-delete-button/@info-restoretip": "Совет: Если Вы случайно удалите спрайт, костюм или звук, Вы можете отменить удаление, щёлкнув Изменить в строке меню, а потом Восстановить.", "hide-delete-button/@name": "Скрыть кнопку удалить", "hide-delete-button/@settings-name-costumes": "Костюмы и фоны", "hide-delete-button/@settings-name-sounds": "Звуки", @@ -229,14 +317,21 @@ "no-script-bumping/@name": "Не делать автоматически пробел между перекрывающими скриптами", "disable-stage-drag-select/@description": "Удаляет возможность перетаскивать спрайты по сцене в редакторе, за исключением тех, которые установлены как перетаскиваемые. Удерживайте Shift при перетаскивании спрайта, чтобы переместить его в обычном режиме.", "disable-stage-drag-select/@name": "Неперетаскиваемые спрайты в редакторе", - "move-to-top-bottom/@description": "Добавляет кнопку к контекстному меню ПКМ для перемещения костюма в самый верх или в самый низ списка. Первоначально было частью инструментов разработчика.", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "Разрешить перетаскивание спрайтов, когда проект остановлен", + "move-to-top-bottom/@description": "Добавляет новый пункт в контекстное меню костюма или звука, позволяющее переместить его наверх или вниз", + "move-to-top-bottom/@info-developer-tools": "Этот аддон раньше был частью \"инструментов разработчика\" ,но теперь переехал сюда", "move-to-top-bottom/@name": "Переместить костюм на самый вверх или в самый низ", + "move-to-top-layer/@description": "Щёлкните спрайт во время зажатия клавиши Shift внутри панели спрайтов, чтобы выдвинуть его вперёд (верхний слой) сцены.", + "move-to-top-layer/@name": "Выдвинуть спрайт на верхний слой", "disable-paste-offset/@description": "Вставляет скопированные предметы на их оригинальные позиции вместо слегка сдвинутого в редакторе костюмов.", - "disable-paste-offset/@name": "Не двигать вставленные предметы", + "disable-paste-offset/@info-vanilla": "Это можно получить и без аддона, нажав alt+клик по объекту", + "disable-paste-offset/@name": "Не двигать вставленные предметы в редакторе костюмов", "block-duplicate/@description": "Быстро дублирует скрипт, зажимая клавишу Alt и передвигая скрипт. Также зажимайте Ctrl, чтобы дублировать один блок.", "block-duplicate/@info-mac": "Если у Вас macOS, то используйте клавишу ⌥, вместо Alt и клавишу ⌘, вместо Control.", "block-duplicate/@name": "Дублировать скрипт с клавишей Alt", - "swap-local-global/@description": "Добавляет больше опций во время переименования существующей переменной или существующего списка: позволяет переключаться между «Для всех спрайтов», «Только для этого спрайта» и облачными переменнами. Также добавляет новую опцию при нажатии ПКМ по переменной/списку, чтобы быстро сменить свойства.", + "rename-broadcasts/@description": "Позволяет изменять названия сообщений в блоках их передачи и получения", + "rename-broadcasts/@name": "Переименовать сообщения", + "swap-local-global/@description": "Добавляет больше опций во время переименования существующей переменной или существующего списка: позволяет переключаться между «Для всех спрайтов», «Только для этого спрайта» и облачными переменными. Также добавляет новую опцию при нажатии правой кнопкой мыши по переменной/списку, чтобы быстро сменить свойства.", "swap-local-global/@name": "Переключить переменные между «Для всех спрайтов» и «Только для этого спрайта»", "editor-comment-previews/@description": "Позволяет делать превью комментариев, наводя на свёрнутые комментарии и блоки. Вы можете использовать это, чтобы просматривать комментарии, которые вне экрана, определять блок цикла снизу с помощью превью, вместить длинные комментарии в маленькое место и другое.", "editor-comment-previews/@name": "Предварительный просмотр комментариев в редакторе", @@ -252,6 +347,25 @@ "editor-comment-previews/@settings-select-delay-short": "Короткое", "columns/@description": "Разделяет меню категорий блоков на два столбца и перемещает его в верхнюю часть палитры блоков, как в Scratch 2.0.", "columns/@name": "Меню категорий с двумя столбцами", + "number-pad/@description": "Показать виртуальную цифровую клавиатуру Scratch во время редактирования значений цифровых полей в блоках на всех устройствах, а не на устройствах с сенсорным экраном.", + "number-pad/@info-explanation": "Виртуальная цифровая панель появится во время редактирования цифровых полей, таких как \"идти () шагов\".", + "number-pad/@name": "Всегда показывать панель с цифрами", + "editor-number-arrow-keys/@description": "Используйте клавиши со стрелками \"вверх и вниз\" чтобы увеличить или уменьшить числа в числовых входах, таких как поля в блоках или область свойств спрайта.", + "editor-number-arrow-keys/@name": "Увеличение с помощью клавиш со стрелками", + "editor-number-arrow-keys/@settings-name-alt": "Изменение при нажатии Alt + Клавиша", + "editor-number-arrow-keys/@settings-name-altCustom": "Изменение при нажатии Alt + Клавиша", + "editor-number-arrow-keys/@settings-name-regular": "Изменение при обычном нажатии клавиш", + "editor-number-arrow-keys/@settings-name-regularCustom": "Изменение при обычном нажатии клавиш", + "editor-number-arrow-keys/@settings-name-shift": "Изменение при нажатии Shift + Клавиша", + "editor-number-arrow-keys/@settings-name-shiftCustom": "Изменение при нажатии Shift + Клавиша", + "editor-number-arrow-keys/@settings-name-useCustom": "Использовать настраиваемые значения", + "editor-number-arrow-keys/@settings-select-alt-none": "Нет", + "editor-number-arrow-keys/@settings-select-regular-none": "Нет", + "editor-number-arrow-keys/@settings-select-shift-none": "Нет", + "expanded-backpack/@description": "Расставляет контент рюкзака в расширяемую двустороннюю сетку, похожую на библиотеку костюмов, и увеличивает размер определённых икон.", + "expanded-backpack/@name": "Добавлять ряды в рюкзаке", + "expanded-backpack/@settings-name-rows": "Кол-во отображенных рядов", + "expanded-backpack/@settings-name-upscale": "Больше костюмы и предпросмотры скриптов", "script-snap/@description": "Передвиньте скрипт, чтобы автоматически выравнять его позицию к точкам на территории кода.", "script-snap/@name": "Привязывать скрипты к сетке", "script-snap/@preset-name-default": "По умолчанию", @@ -259,10 +373,13 @@ "script-snap/@preset-name-whole-block": "Весь блок", "script-snap/@settings-name-grid": "Размер сетки (в пикселях)", "fullscreen/@description": "Исправляет некоторые неблагоприятные эффекты в полноэкранном режиме плеере проекта, открывает его в полноэкранном режиме Вашего браузера и прячет панель инструментов зелёного флажка.", - "fullscreen/@info-hideToolbarNotice": "Если Вы спрячете панель инструментов, то не забывайте, что Вы можете нажать клавишу Esc, чтобы выйти из полноэкранного режима проекта.", + "fullscreen/@info-hideToolbarNotice": "Если Вы выберите никогда не показывать строку инструментов, то помните, что Вы можете использовать клавишу Esc для выхода из полноэкранного режима проигрывателя проекта.", "fullscreen/@name": "Улучшенный полноэкранный режим", "fullscreen/@settings-name-browserFullscreen": "Открывать полноэкранный режим плеера проектов в полноэкранном режиме браузера", - "fullscreen/@settings-name-hideToolbar": "Спрятать панель инструментов в полном экране", + "fullscreen/@settings-name-toolbar": "Видимость строки инструментов", + "fullscreen/@settings-select-toolbar-hide": "Никогда", + "fullscreen/@settings-select-toolbar-hover": "При наведении курсора мыши", + "fullscreen/@settings-select-toolbar-show": "Всегда", "hide-stage/@description": "Добавляет кнопку рядом с кнопками \"маленькая сцена\" и \"большая сцена\", которая скрывает сцену и область спрайтов, делая область кода намного больше.", "hide-stage/@name": "Скрыть сцену и область спрайтов", "editor-stepping/@description": "Добавляет цветную подсветку к блокам, которые в данный момент выполняются в проекте.", diff --git a/src/addons/addons-l10n-settings/sl.json b/src/addons/addons-l10n-settings/sl.json index 93e409277c9..a88aa0ec293 100644 --- a/src/addons/addons-l10n-settings/sl.json +++ b/src/addons/addons-l10n-settings/sl.json @@ -1,14 +1,29 @@ { - "cat-blocks/@description": "Vrne mačje bloke iz 1. aprila 2020 v urejevalnik.", - "cat-blocks/@info-watch": "Možnost \"spremljaj kazalec miške\" lahko vpliva na hitrost delovanja urejevalnika.", + "cat-blocks/@description": "V urejevalnik znova doda mačje bloke, ki so običajne bloke za dogodke prvič zamenjali za prvi april leta 2020.", + "cat-blocks/@info-watch": "Nastavitev \"spremljaj kazalec miške\" lahko vpliva na hitrost delovanja urejevalnika.", "cat-blocks/@name": "Mačji bloki", "cat-blocks/@settings-name-watch": "Spremljaj kazalec miške", - "editor-devtools/@description": "Doda iskalno polje in nove možnosti v menijih v urejevalnik: kopiranje blokov, boljše čiščenje, skok k definiciji bloka, in drugo! Pritisnite Ctrl+F za premik na iskalno polje, Ctrl+presledek za prikaz okna za dodajanje bloka po imenu, Ctrl+levo/desno za premikanje po zgodovini iskanja.", + "editor-devtools/@description": "V menije v urejevalniku doda nove možnosti: kopiranje blokov, boljše čiščenje in drugo.", + "editor-devtools/@name": "Orodje za razvijalce", "editor-devtools/@settings-name-enableCleanUpPlus": "Izboljšaj možnost \"Počisti bloke\"", - "editor-devtools/@settings-name-enableMiddleClickFinder": "Omogoči klik spremenljivk, mojih blokov ali dogodkov s srednjo miškino tipko za navigacijo", "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Prilepi bloke poleg kazalca miške", - "editor-searchable-dropdowns/@description": "Omogoči iskanje po spustnih menijih blokov.", - "editor-searchable-dropdowns/@name": "Iskanje po spustnih menijih", + "find-bar/@description": "Poleg zavihka Zvoki doda vrstico, s katero lahko poiščete in se premaknete na skripto, videz ali zvok. Uporabite Ctrl+levo ali Ctrl+desno v prostoru za kodo, da se premaknete na prejšnji ali naslednji položaj.", + "find-bar/@info-developer-tools": "Ta funkcija je bila prej del dodatka \"orodje za razvijalce\", vendar smo jo premaknili sem.", + "find-bar/@name": "Iskalna vrstica v urejevalniku", + "middle-click-popup/@description": "Kliknite prostor za kodo s srednjim miškinim gumbom ali med držanjem tipke Shift ali pritisnite Ctrl+presledek, da odprete okno za iskanje blokov. Vnesite imena (ali dele imen) blokov in bloke povlecite v prostor za kodo, da jih dodate v svoj projekt. Po seznamu se lahko premikate s puščicami in tipko Enter. Omogoča tudi samodejno dopolnjevanje s Tab. Med vlečenjem blokov lahko držite Shift, da seznam ostane odprt.", + "middle-click-popup/@info-developer-tools": "Ta funkcija je bila prej del dodatka \"orodje za razvijalce\", vendar smo jo premaknili sem.", + "middle-click-popup/@name": "Iskanje blokov", + "middle-click-popup/@settings-name-popup_max_height": "Največja višina okna za iskanje", + "middle-click-popup/@settings-name-popup_scale": "Velikost blokov v oknu za iskanje", + "middle-click-popup/@settings-name-popup_width": "Širina okna za iskanje", + "jump-to-def/@description": "Omogoči, da se premaknete na definicijo \"mojega bloka\" s srednjim miškinim gumbom ali Shift+klikom.", + "jump-to-def/@info-developer-tools": "Ta funkcija je bila prej del dodatka \"orodje za razvijalce\", vendar smo jo premaknili sem.", + "jump-to-def/@name": "Skoči na definicijo \"mojega bloka\"", + "reorder-custom-inputs/@description": "Omogoči spremembo vrstnega reda parametrov v oknu \"Ustvari blok\".", + "reorder-custom-inputs/@name": "Spremenljiv vrstni red vnosov", + "reorder-custom-inputs/@settings-name-InsertInputsAfter": "Vstavi nove vnose za izbranim vnosom", + "editor-searchable-dropdowns/@description": "Omogoči iskanje možnosti v spustnih menijih blokov.", + "editor-searchable-dropdowns/@name": "Iskanje po spustnih menijih blokov", "data-category-tweaks-v2/@description": "Izboljša kategorijo blokov Podatki (\"Spremenljivke\").", "data-category-tweaks-v2/@name": "Izboljšana kategorija spremenljivk", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Premakni bloke za podatke nad seznam spremenljivk", @@ -16,43 +31,52 @@ "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Ločene spremenljivke samo za to figuro", "block-palette-icons/@description": "V barvne kroge, ki označujejo kategorije blokov, doda ikone.", "block-palette-icons/@name": "Ikone kategorij blokov", - "hide-flyout/@description": "Skrije paleto blokov, če miška ni na njej. Kliknite ikono ključavnice, da jo začasno zaklenete. Lahko pa uporabite tudi način \"Ko kliknem kategorijo\".", + "hide-flyout/@description": "Skrije paleto blokov, dokler nanjo ne premaknete miške. Kliknite ikono ključavnice, da jo začasno zaklenite. Lahko pa uporabite način \"pokaži, ko kliknem kategorijo\", ki paleto pokaže ali skrije, ko kliknete na kategorijo blokov.", "hide-flyout/@info-hoverExplanation": "Način \"ko premaknem miško na območje palete\" poveča samo območje, v katerem so bloki vidni. Če želite tja vleči bloke, ne da bi bili ti izbrisani, uporabite enega od drugih načinov.", "hide-flyout/@name": "Samodejno skrivanje palete blokov", - "hide-flyout/@settings-name-speed": "Trajanje animacije", - "hide-flyout/@settings-name-toggle": "Pokaži ko...", - "hide-flyout/@settings-select-speed-default": "Navadno", - "hide-flyout/@settings-select-speed-long": "Dolgo", - "hide-flyout/@settings-select-speed-none": "Brez", - "hide-flyout/@settings-select-speed-short": "Kratko", + "hide-flyout/@settings-name-lockLoad": "Odpri na začetku", + "hide-flyout/@settings-name-speed": "Hitrost animacije", + "hide-flyout/@settings-name-toggle": "Pokaži, ko...", + "hide-flyout/@settings-select-speed-default": "Navadna", + "hide-flyout/@settings-select-speed-long": "Počasna", + "hide-flyout/@settings-select-speed-none": "Trenutna", + "hide-flyout/@settings-select-speed-short": "Hitra", "hide-flyout/@settings-select-toggle-category": "Kliknem kategorijo", "hide-flyout/@settings-select-toggle-cathover": "Premaknem miško na kategorijo", "hide-flyout/@settings-select-toggle-hover": "Premaknem miško na območje palete", - "hide-flyout/@update": "Ta dodatek je bil izboljšan in veliko napak je bilo popravljenih.", "mediarecorder/@description": "V menijsko vrstico v urejevalniku doda gumb \"začni snemanje\", ki omogoča snemanje odra.", "mediarecorder/@name": "Snemanje videov projekta", - "drag-drop/@description": "Omogoča vlečenje slik in zvokov iz vašega upravitelja datotek v seznam figur, videzov ali zvokov. Lahko povlečete tudi besedilne datoteke v sezname ali v polje, ki ga prikaže blok \"vprašaj in počakaj\".", + "drag-drop/@description": "Omogoči vlečenje slik in zvokov iz vašega upravitelja datotek v seznam figur, videzov ali zvokov. Lahko povlečete tudi besedilne datoteke v sezname ali v polje, ki ga prikaže blok \"vprašaj in počakaj\".", "drag-drop/@name": "Vlečenje datotek v urejevalnik", "drag-drop/@settings-name-use-hd-upload": "Uporabi HD nalaganje slik", + "debugger/@description": "Doda novo okno \"razhroščevanje\" v urejevalnik. Omogoča zapisovanje podatkov na zavihek \"Zapiski\" z bloki \"zapiši\", \"opozorilo\" in \"napaka\". Blok \"breakpoint\" začasno ustavi projekt. Vsa delujoča zaporedja blokov so vidna na zavihku \"Niti\", in ko je projekt zaustavljen, lahko z gumbom \"Korak\" izvedete naslednji blok. Grafa sličic na sekundo in števila dvojnikov figur sta na zavihku \"Učinkovitost\".", "debugger/@name": "Orodje za razhroščevanje", + "debugger/@settings-name-fancy_graphs": "Animacije grafov (lahko vplivajo na hitrost)", "debugger/@settings-name-log_broadcasts": "Zapiši objave", "debugger/@settings-name-log_clear_greenflag": "Izprazni zapiske, ko je kliknjena zelena zastavica", "debugger/@settings-name-log_clone_create": "Zapiši sporočilo o ustvarjanju dvojnika", - "debugger/@settings-name-log_failed_clone_creation": "Zapiši sporočilo, ko je doseženo največje možno število dvojnikov", + "debugger/@settings-name-log_failed_clone_creation": "Zapiši sporočilo, ko je dosežena omejitev števila dvojnikov", "debugger/@settings-name-log_greenflag": "Zapiši klike na zeleno zastavico", - "debugger/@update": "Nova zavihka \"Niti\" in \"Učinkovitost\" v oknu za razhroščevanje.", - "pause/@description": "Doda gumb za premor poleg zelene zastavice.", + "pause/@description": "Zraven zelene zastavice doda gumb, ki začasno ustavi projekt.", + "pause/@info-keybind": "Projekt lahko prekinete tudi z Alt+X (Option+X, če uporabljate macOS).", "pause/@name": "Gumb za premor", "mute-project/@description": "Ctrl+kliknite zeleno zastavico, da vključite ali izključite zvok v projektu.", "mute-project/@info-macOS": "Če uporabljate macOS, uporabite tipko Cmd namesto Ctrl.", "mute-project/@name": "Utišaj predvajalnik projekta", + "vol-slider/@description": "Doda drsnik za glasnost poleg gumbov za nadzor projekta.", + "vol-slider/@name": "Drsnik za glasnost projekta", + "vol-slider/@settings-name-always": "Vedno pokaži drsnik", + "vol-slider/@settings-name-defVol": "Začetna glasnost", "clones/@description": "Nad oder v urejevalniku doda števec, ki prikaže skupno število dvojnikov figur.", "clones/@name": "Števec dvojnikov", + "clones/@settings-name-projectpage": "Pokaži na strani projekta", + "clones/@settings-name-showicononly": "Pokaži samo ikono", "mouse-pos/@description": "Prikaže x/y položaj miške nad odrom v urejevalniku.", - "mouse-pos/@name": "Položaj miške", + "mouse-pos/@name": "Prikaz položaja miške", "color-picker/@description": "Doda polje za vnos šestnajstiške kode, ko izbirate barvo.", "color-picker/@name": "Šestnajstiške barve", "remove-sprite-confirm/@description": "Vpraša, če ste prepričani, preden izbrišete figuro v projektu.", + "remove-sprite-confirm/@info-restoretip": "Namig: Če po pomoti izbrišete figuro, videz ali zvok, lahko to razveljavite tako, da kliknete Uredi v menijski vrstici in nato Povrni.", "remove-sprite-confirm/@name": "Potrditev brisanja figure", "block-count/@description": "Pokaže skupno število blokov v projektu v menijski vrstici urejevalnika. Prej del dodatka \"število figur in skript\".", "block-count/@name": "Števec blokov", @@ -70,6 +94,22 @@ "onion-skinning/@settings-select-layering-front": "Spredaj", "onion-skinning/@settings-select-mode-merge": "Združi slike", "onion-skinning/@settings-select-mode-tint": "Barva", + "paint-snap/@description": "Predmete v urejevalniku videzov samodejno poravna z okvirji predmetov in točkami vektorskih oblik.", + "paint-snap/@name": "Pripenjanje v urejevalniku videzov", + "paint-snap/@settings-name-boxCenter": "Pripni središče izbire", + "paint-snap/@settings-name-boxCorners": "Pripni oglišča izbire", + "paint-snap/@settings-name-boxEdgeMids": "Pripni razpolovišča robov izbire", + "paint-snap/@settings-name-enable-default": "Samodejno vključi", + "paint-snap/@settings-name-guide-color": "Barva vodil za pripenjanje", + "paint-snap/@settings-name-objectCenters": "Pripni na središča predmetov", + "paint-snap/@settings-name-objectCorners": "Pripni na oglišča predmetov", + "paint-snap/@settings-name-objectEdges": "Pripni na robove predmetov", + "paint-snap/@settings-name-objectMidlines": "Pripni na osi predmetov", + "paint-snap/@settings-name-pageAxes": "Pripni na osi x in y strani", + "paint-snap/@settings-name-pageCenter": "Pripni na središče strani", + "paint-snap/@settings-name-pageCorners": "Pripni na oglišča strani", + "paint-snap/@settings-name-pageEdges": "Pripri na robove strani", + "paint-snap/@settings-name-threshold": "Razdalja pripenjanja", "default-costume-editor-color/@description": "Spremeni privzete barve in velikost robov v urejevalniku videzov.", "default-costume-editor-color/@name": "Prilagoditev privzetih barv v urejevalniku videzov", "default-costume-editor-color/@settings-name-fill": "Barva polnila", @@ -81,13 +121,18 @@ "bitmap-copy/@name": "Kopiranje bitnih slik", "2d-color-picker/@description": "Zamenja drsnika za svetlost in nasičenost barv v urejevalniku videzov z 2D drsnikom. Držite tipko Shift med vlečenjem, da spremenite samo vrednost ene osi.", "2d-color-picker/@name": "2D izbira barv", + "paint-skew/@description": "Držite Ctrl in premaknite stranico predmeta, da spremenite nagib. Držite Ctrl in Alt, da ohranite položaj središča.", + "paint-skew/@info-useCmdOnMac": "Če uporabljate macOS, uporabite tipko Command namesto Control in Option namesto Alt.", + "paint-skew/@name": "Nagib v urejevalniku videzov", "better-img-uploads/@description": "Doda nov gumb nad \"naloži videz\", ki samodejno spremeni naložene slike v obliko SVG (vektor), da se izogne zmanjšanju kakovosti.", "better-img-uploads/@info-notSuitableEdit": "Gumba \"naloži HD\" ne uporabljajte, če bi radi naloženo sliko urejali.", "better-img-uploads/@name": "Nalaganje HD slik", "better-img-uploads/@settings-name-fitting": "Velikost slike", - "better-img-uploads/@settings-select-fitting-fill": "Raztegni na velikost odra", - "better-img-uploads/@settings-select-fitting-fit": "Pomanjšaj prevelike slike do velikosti odra", + "better-img-uploads/@settings-select-fitting-fill": "Raztegni na velikost platna", + "better-img-uploads/@settings-select-fitting-fit": "Pomanjšaj prevelike slike do velikosti platna", "better-img-uploads/@settings-select-fitting-full": "Izvirna velikost", + "pick-colors-from-stage/@description": "Omogoči, da s kapalko v urejevalniku videzov izberete tudi barve na odru.", + "pick-colors-from-stage/@name": "Izberi barve na odru s kapalko", "custom-block-shape/@description": "Spremenite velikost, zaobljenost robov in velikost zareze blokov.", "custom-block-shape/@info-paddingWarning": "Spremembo velikosti praznega prostora vidite samo vi, zato se za druge uporabnike skripte v vašem projektu lahko prekrivajo.", "custom-block-shape/@name": "Prilagoditev oblike blokov", @@ -102,17 +147,44 @@ "custom-block-shape/@settings-name-cornerSize": "Zaobljenost robov (0-300%)", "custom-block-shape/@settings-name-notchSize": "Višina zareze (0-150%)", "custom-block-shape/@settings-name-paddingSize": "Velikost praznega prostora (50-200%)", + "editor-square-inputs/@description": "Nekatera okrogla polja na blokih (na primer za vnos besedila in izbiro barv) naredi pravokotna, kot v Scratchu 2.0.", + "editor-square-inputs/@name": "Oglata polja v blokih", + "editor-square-inputs/@settings-name-color": "Polja za izbiro barve", + "editor-square-inputs/@settings-name-number": "Polja za vnos števil", + "editor-square-inputs/@settings-name-text": "Polja za vnos besedila", + "zebra-striping/@description": "Bloke iste kategorije pobarva izmenično s svetlejšimi in temnejšimi odtenki, kadar so postavljeni drug v drugega. To se imenuje tudi zebrine proge.", + "zebra-striping/@name": "Izmenično obarvani ugnezdeni bloki", + "zebra-striping/@settings-name-intensity": "Intenzivnost (0-100%)", + "zebra-striping/@settings-name-shade": "Odtenek", + "zebra-striping/@settings-select-shade-darker": "Temnejši", + "zebra-striping/@settings-select-shade-lighter": "Svetlejši", + "editor-compact/@description": "Zmanjša velikost gumbov, polj za vnos besedila, menijske vrstice in drugih elementov v urejevalniku, da je več prostora za kodo, urejevalnik videzov, sličice figur in podobno, tako kot v Scratchu 2.0.", + "editor-compact/@info-hide-icons-update": "Za skrivanje ikon v menijski vrstici uporabite dodatek \"Prilagoditev menijske vrstice\".", + "editor-compact/@name": "Kompakten urejevalnik", + "editor-compact/@settings-name-hideLabels": "Skrij imena gumbov v urejevalniku videzov in zvokov", + "custom-menu-bar/@description": "Omogoči, da skrijete posamezne predmete v menijski vrstici urejevalnika ali odstranite njihove oznake ali ikone.", + "custom-menu-bar/@info-small-screens": "Besedilne oznake bodo v majhnih oknih samodejno zamenjane z ikonami.", + "custom-menu-bar/@name": "Prilagoditev menijske vrstice urejevalnika", + "custom-menu-bar/@settings-name-menu-labels": "Pokaži...", + "custom-menu-bar/@settings-select-menu-labels-both": "Ikone in oznake", + "custom-menu-bar/@settings-select-menu-labels-icons": "Samo ikone", + "custom-menu-bar/@settings-select-menu-labels-labels": "Samo oznake", "editor-theme3/@description": "Uredite barve blokov za vsako kategorijo v urejevalniku.", "editor-theme3/@name": "Prilagoditev barv blokov", - "editor-theme3/@preset-description-black": "Naredi ozadje blokov črno", - "editor-theme3/@preset-description-dark": "Temne različice običajnih barv", + "editor-theme3/@preset-description-black": "Naredi ozadje blokov črno ter okvirje in besedilo barvno", + "editor-theme3/@preset-description-contrast": "Barve Scratcha 3.0 z večjim kontrastom", + "editor-theme3/@preset-description-dark": "Še temnejše različice običajnih barv", + "editor-theme3/@preset-description-new-dark": "Temne različice običajnih barv, ki jih lahko uporabite skupaj s temnim načinom urejevalnika", "editor-theme3/@preset-description-original": "Originalne barve blokov iz Scratcha 2.0", - "editor-theme3/@preset-description-tweaks": "Bloki za dogodke, krmiljenje in \"moji bloki\" z barvami, podobnimi kot v Scratchu 2.0", + "editor-theme3/@preset-description-tweaks": "Barve blokov kot v Scratchu 3.0, razen blokov Dogodki, Krmiljenje in Moji bloki, ki so podobni Scratchu 2.0", "editor-theme3/@preset-name-black": "Črno", - "editor-theme3/@preset-name-dark": "Temno", + "editor-theme3/@preset-name-contrast": "Višji kontrast", + "editor-theme3/@preset-name-dark": "Temneje", + "editor-theme3/@preset-name-new-dark": "Temno", "editor-theme3/@preset-name-original": "Barve Scratcha 2.0", "editor-theme3/@preset-name-tweaks": "Izboljšane barve Scratcha 3.0", "editor-theme3/@settings-name-Pen-color": "razširitve", + "editor-theme3/@settings-name-comment-color": "Komentarji", "editor-theme3/@settings-name-control-color": "krmiljenje", "editor-theme3/@settings-name-custom-color": "moji bloki", "editor-theme3/@settings-name-data-color": "spremenljivke", @@ -129,22 +201,31 @@ "editor-theme3/@settings-select-text-colorOnBlack": "Barva na črnem ozadju", "editor-theme3/@settings-select-text-colorOnWhite": "Barva na belem ozadju", "editor-theme3/@settings-select-text-white": "Bela", - "editor-theme3/@update": "Nova nastavitev, ki omogoči spreminjanje barv blokov v forumih.", - "custom-block-text/@description": "Spremeni debelino besedila na blokih, lahko pa doda tudi senco.", + "custom-block-text/@description": "Omogoči, da prilagodite slog besedila na blokih. Spremenite lahko velikost, uporabite krepko besedilo ali dodate senco.", "custom-block-text/@name": "Prilagoditev sloga besedila blokov", "custom-block-text/@settings-name-bold": "Krepko besedilo", "custom-block-text/@settings-name-shadow": "Senca pod besedilom", + "custom-block-text/@settings-name-size": "Velikost besedila (%)", "editor-colored-context-menus/@description": "Naredi menije, ki se odprejo, ko kliknete blok z desno miškino tipko, barvne.", "editor-colored-context-menus/@name": "Barvni meniji", "editor-stage-left/@description": "Premakne oder na levo stran urejevalnika, kot v Scratchu 2.0.", "editor-stage-left/@info-reverseOrder": "Če bi radi spremenili položaj gumbov nad odrom, uporabite dodatek \"obratno zaporedje gumbov za nadzor projekta\".", "editor-stage-left/@name": "Pokaži oder na levi strani", - "editor-buttons-reverse-order/@description": "Premakne zeleno zastavico in gumb Ustavi na desno in gumb za celozaslonski način na desno, kot v Scratchu 2.0.", + "editor-buttons-reverse-order/@description": "Premakne zeleno zastavico in gumb Ustavi na desno in gumb za celozaslonski način na levo, kot v Scratchu 2.0.", "editor-buttons-reverse-order/@name": "Obratno zaporedje gumbov za nadzor projekta", "variable-manager/@description": "Doda zavihek za enostavno urejanje spremenljivk in seznamov v urejevalnik, poleg zavihka \"zvoki\".", "variable-manager/@name": "Upravitelj spremenljivk", "search-sprites/@description": "Poleg seznama figur doda polje za iskanje figur glede na ime.", - "search-sprites/@name": "Išči figure po imenu", + "search-sprites/@name": "Polje za iskanje po seznamu figur", + "sprite-properties/@description": "Skrije lastnosti figur, kot v Scratchu 2.0. Za prikaz uporabite gumb za informacije na trenutno izbrani figuri ali dvakrat kliknite figuro. Ponovno se skrije, ko uporabite gumb \"skrči\" pod lastnostmi ali dvakrat kliknete figuro.", + "sprite-properties/@name": "Skrči lastnosti figure", + "sprite-properties/@settings-name-autoCollapse": "Samodejno skrči, ko miška zapusti seznam figur", + "sprite-properties/@settings-name-hideByDefault": "Skrči lastnosti na začetku", + "sprite-properties/@settings-name-transitionDuration": "Hitrost animacije", + "sprite-properties/@settings-select-transitionDuration-default": "Navadna", + "sprite-properties/@settings-select-transitionDuration-long": "Počasna", + "sprite-properties/@settings-select-transitionDuration-none": "Trenutna", + "sprite-properties/@settings-select-transitionDuration-short": "Hitra", "gamepad/@description": "Uporabljajte USB ali Bluetooth igralni plošček v projektih.", "gamepad/@name": "Podpora igralnih ploščkov", "gamepad/@settings-name-hide": "Skrij gumb za nastavitve, ko noben plošček ni zaznan", @@ -155,10 +236,9 @@ "folders/@name": "Mape figur", "block-switching/@description": "Kliknite na blok z desno miškino tipko, da ga zamenjate s podobnim blokom.", "block-switching/@name": "Menjava blokov", - "block-switching/@settings-name-border": "Dodaj okvir", "block-switching/@settings-name-control": "Bloki za krmiljenje", - "block-switching/@settings-name-customargs": "Vnosi \"mojih blokov\"", - "block-switching/@settings-name-customargsmode": "Možnosti za vnose \"mojih blokov\"", + "block-switching/@settings-name-customargs": "Parametri \"mojih blokov\"", + "block-switching/@settings-name-customargsmode": "Možnosti za parametre \"mojih blokov\"", "block-switching/@settings-name-data": "Bloki za podatke", "block-switching/@settings-name-event": "Bloki za dogodke", "block-switching/@settings-name-extension": "Bloki razširitev", @@ -168,8 +248,8 @@ "block-switching/@settings-name-operator": "Operatorji", "block-switching/@settings-name-sensing": "Bloki za zaznavanje", "block-switching/@settings-name-sound": "Bloki za zvok", - "block-switching/@settings-select-customargsmode-all": "Vnosi vseh \"mojih blokov\" v figuri", - "block-switching/@settings-select-customargsmode-defOnly": "Vnosi ustreznega \"mojega bloka\"", + "block-switching/@settings-select-customargsmode-all": "Parametri vseh \"mojih blokov\" v figuri", + "block-switching/@settings-select-customargsmode-defOnly": "Parametri ustreznega \"mojega bloka\"", "load-extensions/@description": "Samodejno pokaže glasbo, svinčnik in druge razširitve na seznamu kategorij blokov v urejevalniku.", "load-extensions/@name": "Samodejno dodaj razširitve", "load-extensions/@settings-name-music": "Glasba", @@ -181,22 +261,24 @@ "custom-zoom/@settings-name-autohide": "Samodejno skrij gumbe za povečavo", "custom-zoom/@settings-name-maxZoom": "Največja povečava (100-500%)", "custom-zoom/@settings-name-minZoom": "Najmanjša povečava (1-100%)", - "custom-zoom/@settings-name-speed": "Trajanje animacije skrivanja gumbov", + "custom-zoom/@settings-name-speed": "Hitrost animacije skrivanja gumbov", "custom-zoom/@settings-name-startZoom": "Začetna povečava (50-500%)", "custom-zoom/@settings-name-zoomSpeed": "Hitrost povečave (50-200%)", "custom-zoom/@settings-select-speed-default": "Navadno", - "custom-zoom/@settings-select-speed-long": "Dolgo", - "custom-zoom/@settings-select-speed-none": "Brez", - "custom-zoom/@settings-select-speed-short": "Kratko", - "initialise-sprite-position/@description": "Spremeni začetni položaj x/y novih figur.", + "custom-zoom/@settings-select-speed-long": "Počasna", + "custom-zoom/@settings-select-speed-none": "Trenutna", + "custom-zoom/@settings-select-speed-short": "Hitra", + "copy-reporter/@description": "Doda možnost kopiranja vrednosti spremenljivk na odru (v meniju desne miškine tipke) in oblačkov okroglih blokov.", + "copy-reporter/@name": "Kopiraj vrednosti okroglih blokov", + "initialise-sprite-position/@description": "Spremeni, kam na odru so postavljene nove figure.", "initialise-sprite-position/@name": "Prilagoditev položaja novih figur", - "initialise-sprite-position/@settings-name-duplicate": "Podvajanje figur", + "initialise-sprite-position/@settings-name-duplicate": "Položaj podvojenih figur", "initialise-sprite-position/@settings-name-library": "Postavi figure iz knjižnice na naključno mesto", "initialise-sprite-position/@settings-name-x": "Položaj X", "initialise-sprite-position/@settings-name-y": "Položaj Y", - "initialise-sprite-position/@settings-select-duplicate-custom": "Pošlji na določene vrednosti x/y", - "initialise-sprite-position/@settings-select-duplicate-keep": "Ohrani položaj originalne figure", - "initialise-sprite-position/@settings-select-duplicate-randomize": "Naključen položaj", + "initialise-sprite-position/@settings-select-duplicate-custom": "Določen položaj x/y", + "initialise-sprite-position/@settings-select-duplicate-keep": "Isti kot pri izvirni figuri", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Naključen", "blocks2image/@description": "Kliknite prostor za kodo z desno miškino tipko, da izvozite bloke kot sliko SVG ali PNG.", "blocks2image/@name": "Shrani bloke kot sliko", "remove-curved-stage-border/@description": "Odstrani zaobljen okvir odra in s tem naredi robove vidne.", @@ -235,13 +317,14 @@ "block-cherry-picking/@settings-name-invertDrag": "Zamenjaj dejanje tipke", "hide-new-variables/@description": "Na novo ustvarjenih spremenljivk in seznamov ne pokaže na odru.", "hide-new-variables/@name": "Skrij nove spremenljivke", - "editor-extra-keys/@description": "V spustni meni blokov \"je pritisnjena tipka ()?\" in \"ko je tipka () pritisnjena\" doda več tipk, na primer Enter, piko, vejico in druge.", + "editor-extra-keys/@description": "V spustni meni blokov \"je pritisnjena tipka ()?\" in \"ko je tipka () pritisnjena\" doda več tipk, na primer Enter, piko, vejico in druge. Tudi uporabniki, ki nimajo tega dodatka, bodo lahko uporabljali te tipke.", "editor-extra-keys/@info-experimentalKeysWarn": "\"Poskusne tipke\" so enačaj, poševnica, podpičje in druge. Morda ne bodo delovale v vseh operacijskih sistemih in na vseh tipkovnicah.", "editor-extra-keys/@info-shiftKeysWarn": "\"Tipke Shift\" so znaki, ki se jih običajno vnese s tipko Shift in tipko za številko, na primer #, ! in druge. Te tipke delujejo samo v bloku \"ko je tipka () pritisnjena\" in ne delujejo v vseh operacijskih sistemih in na vseh tipkovnicah.", "editor-extra-keys/@name": "Dodatne tipke", - "editor-extra-keys/@settings-name-experimentalKeys": "Dodaj poskusne tipke", - "editor-extra-keys/@settings-name-shiftKeys": "Dodaj tipke Shift", + "editor-extra-keys/@settings-name-experimentalKeys": "Pokaži poskusne tipke", + "editor-extra-keys/@settings-name-shiftKeys": "Pokaži tipke Shift", "hide-delete-button/@description": "Skrije gumb za izbris (ikona smetnjaka) figur, videzov in zvokov. Še vedno jih lahko izbrišite v meniju, ki se odpre, ko uporabite desno miškino tipko.", + "hide-delete-button/@info-restoretip": "Namig: Če po pomoti izbrišete figuro, videz ali zvok, lahko to razveljavite tako, da kliknete Uredi v menijski vrstici in nato Povrni.", "hide-delete-button/@name": "Skrij gumb za brisanje", "hide-delete-button/@settings-name-costumes": "Videzi in ozadja", "hide-delete-button/@settings-name-sounds": "Zvoki", @@ -250,13 +333,20 @@ "no-script-bumping/@name": "Ne razmakni prekrivajočih se skript", "disable-stage-drag-select/@description": "Odstrani možnost vlečenja figur na odru v urejevalniku, razen tistih, ki vlečenje omogočijo z ukazom \"možnost premika\". Med vlečenjem figure držite Shift, da jo premaknete na običajen način.", "disable-stage-drag-select/@name": "Onemogoči vlečenje figur v urejevalniku", - "move-to-top-bottom/@description": "V meni desne miškine tipke doda možnost, ki videz ali zvok premakne na vrh ali na dno seznama. Prej del dodatka Developer Tools.", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "Omogoči vlečenje, ko je projekt ustavljen", + "move-to-top-bottom/@description": "V meni desne miškine tipke za videze in zvoke doda možnosti, ki predmet premakneta na vrh ali na dno seznama.", + "move-to-top-bottom/@info-developer-tools": "Ta funkcija je bila prej del dodatka \"orodje za razvijalce\", vendar smo jo premaknili sem.", "move-to-top-bottom/@name": "Premakni videz na vrh ali na dno", + "move-to-top-layer/@description": "Shift+kliknite figuro na seznamu figur, da jo premaknite na sprednjo (zgornjo) plast odra.", + "move-to-top-layer/@name": "Premakni figuro na sprednjo plast", "disable-paste-offset/@description": "V urejevalniku videzov kopiranih predmetov ne premakne, ampak jih prilepi na njihovem prejšnjem položaju.", + "disable-paste-offset/@info-vanilla": "To lahko naredite tudi brez tega dodatka. Kliknite predmet, medtem ko držite tipko Alt.", "disable-paste-offset/@name": "Ne premakni prilepljenih predmetov", "block-duplicate/@description": "Hitro podvojite skripto tako, da jo potegnete, medtem ko držite tipko Alt. Držite tudi tipko Ctrl, da podvojite samo en block namesto vseh povezanih blokov.", "block-duplicate/@info-mac": "Če uporabljate macOS, uporabite tipko Option namesto Alt in Command namesto Control.", "block-duplicate/@name": "Podvoji skripto s tipko Alt", + "rename-broadcasts/@description": "V menije blokov \"objavi\" in \"ko prejmem sporočilo\" doda možnost za preimenovanje sporočila.", + "rename-broadcasts/@name": "Preimenuj sporočila", "swap-local-global/@description": "V okno za preimenovanje spremenljivke ali seznama doda več možnosti: omogoči spremembo spremenljivk \"Za vse figure\" v \"Samo za to figuro\" in obratno ter navadnih spremenljivk v spremenljivke v oblaku. Poleg tega doda novo možnost za hitro spremembo vidnosti, ko kliknete spremenljivko/seznam z desno miškino tipko.", "swap-local-global/@name": "Zamenjaj spremenljivke \"za vse figure\" in \"samo za to figuro\"", "editor-comment-previews/@description": "Pokaže vsebino komentarja, ko premaknete miško na skrčen komentar ali blok. To lahko uporabite na primer za branje komentarjev, ki na zaslonu niso vidni, prepoznavanje zanke na dnu s pomočjo komentarja in dodajanje več dolgih komentarjev v majhen prostor.", @@ -273,18 +363,40 @@ "editor-comment-previews/@settings-select-delay-short": "Kratko", "columns/@description": "Razdeli seznam kategorij blokov na dva stolpca in ga premakne na vrh palete blokov, kot v Scratchu 2.0.", "columns/@name": "Seznam kategorij z dvema stolpcema", - "script-snap/@description": "Potegnite skripto, da se njen položaj samodejno poravna s pikami na ozadju prostora za skripte.", + "number-pad/@description": "Med urejanjem polj za vnos števil v blok pokaže Scratchevo številčnico na vseh napravah, ne le na tistih z zasloni na dotik.", + "number-pad/@info-explanation": "Številčnica bo prikazana med urejanjem polj za vnos števil v blokih, na primer \"pojdi () korakov\".", + "number-pad/@name": "Vedno pokaži številčnico", + "editor-number-arrow-keys/@description": "Uporabite tipki s puščicama gor in dol, da povečate ali zmanjšate številčne vrednosti v poljih za vnos števil, kot so tista v blokih ali v območju z lastnostmi figur.", + "editor-number-arrow-keys/@name": "Sprememba števil v urejevalniku s puščicami", + "editor-number-arrow-keys/@settings-name-alt": "Alt+tipka", + "editor-number-arrow-keys/@settings-name-altCustom": "Alt+tipka", + "editor-number-arrow-keys/@settings-name-regular": "Sprememba ob običajnem pritisku tipke", + "editor-number-arrow-keys/@settings-name-regularCustom": "Sprememba ob običajnem pritisku tipke", + "editor-number-arrow-keys/@settings-name-shift": "Shift+tipka", + "editor-number-arrow-keys/@settings-name-shiftCustom": "Shift+tipka", + "editor-number-arrow-keys/@settings-name-useCustom": "Uporabi druge vrednosti", + "editor-number-arrow-keys/@settings-select-alt-none": "Brez", + "editor-number-arrow-keys/@settings-select-regular-none": "Brez", + "editor-number-arrow-keys/@settings-select-shift-none": "Brez", + "expanded-backpack/@description": "Razvrsti vsebino shrambe v urejevalniku v mrežo, podobno knjižnici videzov, ki jo je mogoče razširiti, in poveča nekatere sličice.", + "expanded-backpack/@name": "Več vrstic v shrambi", + "expanded-backpack/@settings-name-rows": "Število vrstic", + "expanded-backpack/@settings-name-upscale": "Večje sličice videzov in skript", + "script-snap/@description": "Potegnite skripto, da se njen položaj samodejno poravna s pikami na ozadju prostora za kodo.", "script-snap/@name": "Pritrdi skripte na mrežo", "script-snap/@preset-name-default": "Navadno", "script-snap/@preset-name-half-block": "Pol bloka", "script-snap/@preset-name-whole-block": "Cel blok", "script-snap/@settings-name-grid": "Velikost mreže (px)", "fullscreen/@description": "Popravi nekatere težave v celozaslonskem načinu predvajalnika projektov, odpre projekte v celozaslonskem načinu brskalnika in skrije vrstico z zeleno zastavico.", - "fullscreen/@info-hideToolbarNotice": "Če skrijete orodno vrstico, ne pozabite, da lahko uporabite tipko Esc za izhod iz celozaslonskega načina predvajalnika.", + "fullscreen/@info-hideToolbarNotice": "Če izberete možnost, da orodna vrstica nikoli ni vidna, ne pozabite, da lahko uporabite tipko Esc za izhod iz celozaslonskega načina predvajalnika.", "fullscreen/@name": "Izboljšan celozaslonski način", "fullscreen/@settings-name-browserFullscreen": "Odpri celozaslonski predvajalnik projekta v celozaslonskem načinu brskalnika", - "fullscreen/@settings-name-hideToolbar": "Skrij orodno vrstico v celozaslonskem načinu", - "hide-stage/@description": "Zraven gumbov \"manjši oder\" in \"večji oder\" doda gumb, ki skrije oder in seznam figur, kar zelo poveča prostor za kodo.", + "fullscreen/@settings-name-toolbar": "Pokaži orodno vrstico", + "fullscreen/@settings-select-toolbar-hide": "Nikoli", + "fullscreen/@settings-select-toolbar-hover": "Ko premaknem miško na vrh zaslona", + "fullscreen/@settings-select-toolbar-show": "Vedno", + "hide-stage/@description": "Zraven gumbov \"manjši oder\" in \"večji oder\" doda gumb, ki skrije oder in seznam figur, kar naredi prostor za kodo veliko večji.", "hide-stage/@name": "Skrij oder in seznam figur", "editor-stepping/@description": "Doda barven okvir blokom, ki se v projektu trenutno izvajajo.", "editor-stepping/@name": "Obroba trenutno delujočih blokov", diff --git a/src/addons/addons-l10n-settings/tr.json b/src/addons/addons-l10n-settings/tr.json index e4fb4938583..c0798b6ae5a 100644 --- a/src/addons/addons-l10n-settings/tr.json +++ b/src/addons/addons-l10n-settings/tr.json @@ -1,15 +1,28 @@ { - "cat-blocks/@description": "Bir Nisan Şaka Günü 2020'den şapkalı kedi bloklarını geri getirir.", - "cat-blocks/@info-watch": "\"Fare imlecini izle\" seçeneği, editör açıkken performansı etkileyebilir.", + "cat-blocks/@description": "İlk olarak 1 Nisan 2020 günü için eklenen düzenleyici kedi şapkası bloklarını geri getirir.", + "cat-blocks/@info-watch": "\"Fare imlecini izle\" ayarı, düzenleyici açıkken performansı etkileyebilir.", "cat-blocks/@name": "Kedi blokları", "cat-blocks/@settings-name-watch": "Fare imlecini izle", - "editor-devtools/@description": "Düzenleyiciye bir arama kutusu ve yeni menü seçenekleri ekler: blokları kopyala/yapıştır, daha iyi temizle, özel blok tanımına git ve çok daha fazlası! Arama kutusuna odaklanmak için Ctrl+F, \"ada göre blok ekle\" açılır penceresini açmak için Ctrl+Boşluk, arama geçmişinde gezinmek için Ctrl+Sol/Sağ tuşlarına basın.", + "editor-devtools/@description": "Düzenleyiciye yeni menü seçenekleri ekler: blokları kopyalama/yapıştırma, daha iyi çekidüzen verme ve çok daha fazlası!", "editor-devtools/@name": "Geliştirici araçları", "editor-devtools/@settings-name-enableCleanUpPlus": "\"Blokları temizle\"yi geliştir", - "editor-devtools/@settings-name-enableMiddleClickFinder": "Orta fare düğmesine tıklayarak değişkenleri, özel blokları ve olayları yönlendir", - "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Blokları fare imlecine yapıştır", - "editor-searchable-dropdowns/@description": "Blok listelerini aramanıza olanak tanır.", - "editor-searchable-dropdowns/@name": "Arama yapılabilen açılır listeler", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Blokları fare imlecinin bulunduğu konuma yapıştır", + "find-bar/@description": "Sesler sekmesinin yanına kodları, kostümleri ve sesleri bulmak ve onlara gitmek için bir arama çubuğu ekler. Arama çubuğunu kullandıktan sonra önceki veya sonraki ziyaret edilen konuma gitmek için kod alanında Ctrl+Sol ve Ctrl+Sağ tuşlarını kullanın.", + "find-bar/@info-developer-tools": "Bu eklenti öncesinde \"geliştirici araçları\" eklentisinin bir parçasıydı ancak artık buraya taşındı.", + "find-bar/@name": "Düzenleyicide arama çubuğu", + "middle-click-popup/@description": "Bir blok arama penceresi açmak için kod alanındayken fare tekerleği veya Shift ile beraber tıklayın veya Ctrl+Boşluk tuşlarına basın. Blok isimlerini (veya parçalarını) yazın ve bunları projenize eklemek için kod alanına sürükleyin. Menüde ok tuşları ve Enter ile gezinilebilir, Tab ile otomatik tamamlamayı kullanabilirsiniz. Menünün kapanmasını önlemek için blokları dışarı sürüklerken Shift tuşunu basılı tutun.", + "middle-click-popup/@info-developer-tools": "Bu eklenti daha önce \"geliştirici araçları\" eklentisinin bir parçasıydı ancak buraya taşındı.", + "middle-click-popup/@name": "İsmine göre blok ekleme", + "middle-click-popup/@settings-name-popup_max_height": "Açılır Pencerenin Azami Yüksekliği", + "middle-click-popup/@settings-name-popup_scale": "Açılır Penceredeki Blok Boyutu", + "middle-click-popup/@settings-name-popup_width": "Açılır Pencerenin Genişliği", + "jump-to-def/@description": "Orta fare düğmesiyle veya bloğa Shift+Tıklayarak özel bir bloğun tanımına gitmenize izin verir.", + "jump-to-def/@info-developer-tools": "Bu eklenti öncesinde \"geliştirici araçları\" eklentisinin bir parçasıydı ancak artık buraya taşındı.", + "jump-to-def/@name": "Özel blok tanımına git", + "reorder-custom-inputs/@description": "\"Bir Blok Oluştur\" ekranında özel blok değişkenlerinin yeniden düzenlenmesine olanak sağlar.", + "reorder-custom-inputs/@name": "Yeniden düzenlenebilir özel blok girişleri", + "editor-searchable-dropdowns/@description": "Blok açılır menülerinde seçenekleri aratmanıza olanak tanır.", + "editor-searchable-dropdowns/@name": "Açılır blok aratma", "data-category-tweaks-v2/@description": "Verideki (\"Değişkenler\") blok kategorisi için ince ayarlar sağlar.", "data-category-tweaks-v2/@name": "Veri kategorisi ince ayarları", "data-category-tweaks-v2/@settings-name-moveReportersDown": "Veri bloklarını bölümünü değişkenler listesinin üstüne taşır", @@ -17,49 +30,57 @@ "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Ayrı Yalnızca Kukla Değişkenleri", "block-palette-icons/@description": "Blok kategorilerini açıklayan renkli dairelerin içine simgeler ekler.", "block-palette-icons/@name": "Blok paleti kategori simgeleri", - "hide-flyout/@description": "İmleç üzerine getirilmezse blok paletini gizler. Geçici olarak gizlenmesini önlemek için kilit simgesine tıklayın. Alternatif olarak, \"kategori tıklaması\" modunu kullanın.", + "hide-flyout/@description": "İmlecinizle üstüne gelmediğiniz sürece blok paletini gizler. Paneli geçici olarak kilitlemek için kilit simgesine tıklayın. Veya bir blok kategorisine tıkladığınızda onu göstermek/gizlemek için \"kategori tıklaması\" modunu kullanın.", "hide-flyout/@info-hoverExplanation": "\"Palet alanı üzerine gelin\" modu yalnızca görüntüleme alanını genişletir. Blokları çöpe atılmadan o alana sürükleyebilmek istiyorsanız, diğer modlardan birini kullanın.", "hide-flyout/@name": "Otomatik gizlenen blok paleti", - "hide-flyout/@settings-name-speed": "Animasyon süresi", + "hide-flyout/@settings-name-lockLoad": "Varsayılan olarak aç", + "hide-flyout/@settings-name-speed": "Animasyon hızı", "hide-flyout/@settings-name-toggle": "Açık...", "hide-flyout/@settings-select-speed-default": "Varsayılan", - "hide-flyout/@settings-select-speed-long": "Uzun", - "hide-flyout/@settings-select-speed-none": "Yok", - "hide-flyout/@settings-select-speed-short": "Kısa", + "hide-flyout/@settings-select-speed-long": "Yavaş", + "hide-flyout/@settings-select-speed-none": "Anında", + "hide-flyout/@settings-select-speed-short": "Hızlı", "hide-flyout/@settings-select-toggle-category": "Kategori tıklaması", "hide-flyout/@settings-select-toggle-cathover": "Kategori vurgusu", "hide-flyout/@settings-select-toggle-hover": "Palet alanı kaydırıcısı", - "hide-flyout/@update": "Bu eklenti revize edildi ve birçok hatası düzeltildi.", "mediarecorder/@description": "Editörün menü çubuğuna projenizin videosunu kaydetmenizi sağlayan bir \"kaydı başlat\" düğmesi ekler.", "mediarecorder/@name": "Proje video kaydedicisi", "drag-drop/@description": "Dosya yöneticinizden görselleri ve sesleri kukla bölmesine veya kostüm/ses listesine sürükleyebilmenizi sağlar. Ayrıca metin dosyalarını listelere veya \"sor ve bekle\" soru girişlerine sürükleyebilirsiniz.", "drag-drop/@name": "Dosya sürükleme ve bırakma", "drag-drop/@settings-name-use-hd-upload": "HD yüklemeleri kullan", + "debugger/@description": "Düzenleyiciye yeni bir \"hata ayıklayıcı\" penceresi ekler. \"günlük\", \"uyar\" ve \"hata\" bloklarını kullanarak hata ayıklayıcı penceresinin \"Günlükler\" sekmesinde kaydetmeye olanak sağlar. \"Durdurucu\" bloğu, çalıştırıldığında projeyi duraklatır. Çalışan tüm blok yığınları, hata ayıklayıcı penceresinin \"Dizeler\" sekmesinde görüntülenebilir ve duraklatıldığında, sonraki bloğu yürütmek için \"Adım\" düğmesi kullanılabilir. Saniye başına kare grafiği ve ikiz sayısı \"Performans\" sekmesinde görüntülenebilir.", "debugger/@name": "Hata ayıklayıcısı", + "debugger/@settings-name-fancy_graphs": "Animasyonlu grafikler (performansı etkileyebilir)", "debugger/@settings-name-log_broadcasts": "Bir haber salındığında günlüğe kaydet", "debugger/@settings-name-log_clear_greenflag": "Yeşil bayrağa tıklandığında günlükleri temizle", "debugger/@settings-name-log_clone_create": "İkiz oluşturulduğunda günlüğe kaydet", - "debugger/@settings-name-log_failed_clone_creation": "Azami ikiz sayısı aşıldığında günlüğe kaydet", + "debugger/@settings-name-log_failed_clone_creation": "İkiz limiti aşılınca günlüğe kaydet", "debugger/@settings-name-log_greenflag": "Yeşil bayrağa tıklandığında günlüğe kaydet", - "debugger/@update": "Hata ayıklayıcı penceresinde yeni “Blok Dizeleri\" ve \"Performans\" sekmeleri.", - "pause/@description": "Yeşil bayrağın yanına bir duraklat düğmesi ekler.", + "pause/@description": "Yeşil bayrağın hemen yanına projeyi durdurabilmeniz için bir düğme ekler.", + "pause/@info-keybind": "Proje aynı zamanda Alt+X ile durdurulabilir (macOS'ta Option+X)", "pause/@name": "Duraklat butonu", "mute-project/@description": "Projeyi susturmak/susturmayı kaldırmak için yeşil bayrağa ctrl ile tıklayın.", "mute-project/@info-macOS": "MacOS'ta Ctrl tuşu yerine Cmd tuşunu kullanın.", "mute-project/@name": "Sessiz proje oynatma modu", + "vol-slider/@description": "Sesi ayarlamak için yeşil bayrağın yanına bir çubuk ekler.", + "vol-slider/@name": "Projelerde ses ayarı", + "vol-slider/@settings-name-always": "Kaydırıcıyı her zaman göster", + "vol-slider/@settings-name-defVol": "Varsayılan ses düzeyi", "clones/@description": "Düzenleyicide sahnedeki toplam ikiz sayısını gösteren bir sayaç ekler.", "clones/@name": "İkiz sayacı", + "clones/@settings-name-projectpage": "Proje sayfasında göster", "clones/@settings-name-showicononly": "Sadece simgeyi göster", "mouse-pos/@description": "Düzenleyicide farenizin x/y konumunu sahnenin üzerinde görüntüler.", - "mouse-pos/@name": "Fare konumu", - "color-picker/@description": "Renk seçicilere onaltılık kod girişleri ekler.", + "mouse-pos/@name": "Fare konum göstergesi", + "color-picker/@description": "Renk seçicilere on altılık kod girişleri ekler.", "color-picker/@name": "Hex renk seçici", "remove-sprite-confirm/@description": "Bir kuklayı silerken emin olup olmadığınızı sorar.", + "remove-sprite-confirm/@info-restoretip": "İpucu: Yanlışlıkla bir karakteri, kostümü veya sesi silerseniz; menü çubuğunda Düzenle'ye ve ardından Geri Getir'e tıklayarak silme işlemini geri alabilirsiniz.", "remove-sprite-confirm/@name": "Kukla silme onayı", "block-count/@description": "Düzenleyicideki menü çubuğunda bir projedeki toplam blok sayısını gösterir. Daha önce “kukla ve kod sayısı\"nın bir parçasıydı.", "block-count/@name": "Blok sayısı", - "onion-skinning/@description": "Bir kostümü düzenlerken önceki veya sonraki kostümlerin şeffaf hâllerini gösterir. Kostüm editöründeki yakınlaştırma düğmelerinin altındaki düğmelerle kontrol edilir.", - "onion-skinning/@name": "Önceki kostümün izi", + "onion-skinning/@description": "Bir kostümü düzenlerken önceki veya sonraki kostümlerin şeffaf hâllerini gösterir. Kostüm düzenleyicisindeki yakınlaştırma düğmelerinin altındaki düğmelerle kontrol edilir.", + "onion-skinning/@name": "Soğan zarı görünümü", "onion-skinning/@settings-name-afterTint": "Sonraki kostüm tonu", "onion-skinning/@settings-name-beforeTint": "Önceki kostüm tonu", "onion-skinning/@settings-name-default": "Varsayılan olarak etkinleştir", @@ -73,24 +94,45 @@ "onion-skinning/@settings-select-layering-front": "Ön", "onion-skinning/@settings-select-mode-merge": "Görüntüleri birleştir", "onion-skinning/@settings-select-mode-tint": "Renk tonu", + "paint-snap/@description": "Kostüm düzenleyicideki nesneleri sınırlayıcı kutulara ve vektör düğümlerine tutturun.", + "paint-snap/@name": "Kostüm düzenleyicisinde tutturma", + "paint-snap/@settings-name-boxCenter": "Seçim kutusunun merkezinden tuttur", + "paint-snap/@settings-name-boxCorners": "Seçim kutusunun köşelerinden tuttur", + "paint-snap/@settings-name-boxEdgeMids": "Seçim kutusunun kenar orta noktalarından tuttur", + "paint-snap/@settings-name-enable-default": "Varsayılan olarak etkinleştir", + "paint-snap/@settings-name-guide-color": "Kılavuzun tutturma rengi", + "paint-snap/@settings-name-objectCenters": "Nesnelerin merkezlerine tuttur", + "paint-snap/@settings-name-objectCorners": "Nesnelerin köşelerine tuttur", + "paint-snap/@settings-name-objectEdges": "Nesnelerin kenarlarına tuttur", + "paint-snap/@settings-name-objectMidlines": "Nesnelerin orta hatlarına tuttur", + "paint-snap/@settings-name-pageAxes": "Sayfanın x ve y eksenlerine tuttur", + "paint-snap/@settings-name-pageCenter": "Sayfanın merkezine tuttur", + "paint-snap/@settings-name-pageCorners": "Sayfanın köşelerine tuttur", + "paint-snap/@settings-name-pageEdges": "Sayfanın kenarlarına tuttur", + "paint-snap/@settings-name-threshold": "Tutturma mesafesi", "default-costume-editor-color/@description": "Kostüm düzenleyici tarafından kullanılan varsayılan renkleri ve kenarlık boyutunu değiştirir.", "default-costume-editor-color/@name": "Özelleştirilebilir varsayılan kostüm düzenleyicisi renkleri", "default-costume-editor-color/@settings-name-fill": "Varsayılan doldurma rengi", - "default-costume-editor-color/@settings-name-persistence": "Araçlar arasında geçiş yaparken varsayılan yerine önceki rengi kullan", + "default-costume-editor-color/@settings-name-persistence": "Araçları değiştirdikten sonra sıfırlamak yerine önceki rengi kullan", "default-costume-editor-color/@settings-name-stroke": "Varsayılan kenarlık rengi", "default-costume-editor-color/@settings-name-strokeSize": "Varsayılan kenarlık boyutu", "bitmap-copy/@description": "Kostüm düzenleyiciden bir bitmap görüntüsünü sistem panosuna kopyalamanıza izin verir. Böylece görselleri başka sitelerle veya yazılımlarla paylaşabilirsiniz.", "bitmap-copy/@info-norightclick": "\"Sağ tıkla → kopyala\" desteklenmez. Bir bitmap görüntüsü seçiliyken Ctrl + C tuşlarına basmalısınız.", "bitmap-copy/@name": "Bitmap resimleri kopyala", "2d-color-picker/@description": "Kostüm düzenleyicideki doygunluk ve parlaklık kaydırıcılarını 2B renk seçiciyle değiştirir. Tek bir eksendeki değerleri değiştirmek için imleci sürüklerken Shift tuşunu basılı tutun.", - "2d-color-picker/@name": "2D renk seçici", + "2d-color-picker/@name": "2B renk seçici", + "paint-skew/@description": "Bir nesneyi yamuklaştırmak için yanlarından ölçeklendirirken Ctrl tuşuna basılı tutun. Bir nesneyi merkezinden yamuklaştırmak için yamuklaştırırken Alt tuşuna basılı tutun.", + "paint-skew/@info-useCmdOnMac": "macOS'ta Control tuşu yerine Command tuşunu ve Alt tuşu yerine de Option tuşunu kullanın.", + "paint-skew/@name": "Kostüm düzenleyicide yamuklaştırma", "better-img-uploads/@description": "Kalite kaybını önlemek için, yüklenen bitmap görüntüleri otomatik olarak SVG (vektörel) görüntülere dönüştüren \"kostüm yükle\" düğmesinin üzerine yeni bir düğme ekler.", "better-img-uploads/@info-notSuitableEdit": "Resmi yükledikten sonra düzenlemeyi düşünüyorsanız, HD yükle düğmesini kullanmaktan kaçının.", "better-img-uploads/@name": "HD görsel yüklemeleri", "better-img-uploads/@settings-name-fitting": "Görüntü boyutlandırma", - "better-img-uploads/@settings-select-fitting-fill": "Sahneyi doldurmak için gerdir", - "better-img-uploads/@settings-select-fitting-fit": "Sahneye sığdırmak için küçült", + "better-img-uploads/@settings-select-fitting-fill": "Tuvali doldurmak için gerdir", + "better-img-uploads/@settings-select-fitting-fit": "Tuvale sığdırmak için küçült", "better-img-uploads/@settings-select-fitting-full": "Orijinal boyut", + "pick-colors-from-stage/@description": "Kostüm düzenleyicideki damla aracının sahnedeki renkleri de seçmesine izin verir.", + "pick-colors-from-stage/@name": "Damla aracı ile sahnedeki renkleri seç", "custom-block-shape/@description": "Blokların dolgusunu, köşe yarıçapını ve çentik yüksekliğini ayarlayın.", "custom-block-shape/@info-paddingWarning": "Dolgu boyutunun küçültülmesi yalnızca sizin tarafınızdan görülebilir. Bu nedenle projeleriniz diğer kullanıcılar tarafından görüntülendiğinde komut dosyalarınız çakışabilir.", "custom-block-shape/@name": "Özelleştirilebilir blok şekli", @@ -105,17 +147,40 @@ "custom-block-shape/@settings-name-cornerSize": "Köşe boyutu (%0-300)", "custom-block-shape/@settings-name-notchSize": "Çentik yüksekliği (%0-150)", "custom-block-shape/@settings-name-paddingSize": "Dolgu boyutu (%50-200)", + "editor-square-inputs/@settings-name-color": "Renk girişleri", + "editor-square-inputs/@settings-name-text": "Metin girişleri", + "zebra-striping/@description": "Aynı tür blokların, birbiri içine yerleştirildiğinde açık ve koyu tonlar arasında geçiş yapmasını sağlar. Bu aynı zamanda zebra çizgileri olarak da bilinir.", + "zebra-striping/@name": "İç içe olan blok renklerini değiştir", + "zebra-striping/@settings-name-intensity": "Yoğunluk (%0-100)", + "zebra-striping/@settings-name-shade": "Ton", + "zebra-striping/@settings-select-shade-darker": "Daha koyu", + "zebra-striping/@settings-select-shade-lighter": "Daha açık", + "editor-compact/@description": "Scratch 2.0'da olduğu gibi düzenleyicideki butonların, girdi alanlarının, menü çubuğunun ve diğer ögelerin boyutunu büyütürken, kod alanı, kostüm düzenleyici ve kostüm ön izlemeleri gibi bileşenlerin arasında daha fazla boşluk bırakır.", + "editor-compact/@info-hide-icons-update": "Gezinme çubuğu ikonlarını gizlemek için, \"Özelleştirilebilir gezinme çubuğu\" eklentisini kullanın.", + "editor-compact/@name": "Kompakt düzenleyici", + "editor-compact/@settings-name-hideLabels": "Kostüm ve ses düzenleyicide buton etiketlerini gizle", + "custom-menu-bar/@description": "Belirli düzenleyici menü çubuğu ögelerini gizlemenize veya bu ögelerin başlıklarını veya simgelerini kaldırmanıza olanak tanır.", + "custom-menu-bar/@info-small-screens": "Daha küçük ekranlarda metin başlıkları otomatik olarak simgelerle değiştirilebilir.", + "custom-menu-bar/@settings-name-menu-labels": "Menüde şunları göster: ", + "custom-menu-bar/@settings-select-menu-labels-both": "Simgeler ve etiketler", + "custom-menu-bar/@settings-select-menu-labels-icons": "Sadece simgeler", + "custom-menu-bar/@settings-select-menu-labels-labels": "Sadece başlıklar", "editor-theme3/@description": "Düzenleyicide her bir kategori için blok renklerini düzenleyin.", "editor-theme3/@name": "Özelleştirilebilir blok renkleri", - "editor-theme3/@preset-description-black": "Blok arka planlarını siyah yapar", - "editor-theme3/@preset-description-dark": "Varsayılan renklerin koyu versiyonları", + "editor-theme3/@preset-description-black": "Blok arka planlarını siyah yapar ve kenarlıkları/metni renkli hale getirir", + "editor-theme3/@preset-description-contrast": "Scratch 3.0'ın yüksek kontrastlı blok rengi paleti", + "editor-theme3/@preset-description-dark": "Varsayılan renklerin daha koyu hali", + "editor-theme3/@preset-description-new-dark": "Varsayılan renklerin karanlık temalarda daha iyi gözüken koyu versiyonları", "editor-theme3/@preset-description-original": "Scratch 2.0'dan orijinal blok renkleri", - "editor-theme3/@preset-description-tweaks": "2.0'dan ilham alan renklerle Olaylar, Kontrol ve Özel bloklar", + "editor-theme3/@preset-description-tweaks": "Scratch 3.0'ın blok renklerinin, Scratch 2.0'ın Olaylar, Kontrol ve Özel bloklarının renkleriyle birleştirilmiş hali", "editor-theme3/@preset-name-black": "Siyah", - "editor-theme3/@preset-name-dark": "Koyu", - "editor-theme3/@preset-name-original": "2.0 Renkleri", - "editor-theme3/@preset-name-tweaks": "3.0 İnce Ayarları", + "editor-theme3/@preset-name-contrast": "Yüksek kontrast", + "editor-theme3/@preset-name-dark": "Daha Koyu", + "editor-theme3/@preset-name-new-dark": "Koyu", + "editor-theme3/@preset-name-original": "Scratch 2.0 renkleri", + "editor-theme3/@preset-name-tweaks": "Düzenlenmiş Scratch 3.0", "editor-theme3/@settings-name-Pen-color": "uzantılar", + "editor-theme3/@settings-name-comment-color": "Yorumlar", "editor-theme3/@settings-name-control-color": "kontrol", "editor-theme3/@settings-name-custom-color": "özel", "editor-theme3/@settings-name-data-color": "değişkenler", @@ -127,16 +192,16 @@ "editor-theme3/@settings-name-operators-color": "operatörler", "editor-theme3/@settings-name-sensing-color": "algılama", "editor-theme3/@settings-name-sounds-color": "ses", - "editor-theme3/@settings-name-text": "Yazı rengi", + "editor-theme3/@settings-name-text": "Metin rengi", "editor-theme3/@settings-select-text-black": "Siyah", "editor-theme3/@settings-select-text-colorOnBlack": "Siyah arka plan üzerine renkli", "editor-theme3/@settings-select-text-colorOnWhite": "Beyaz arka plan üzerine renkli", "editor-theme3/@settings-select-text-white": "Beyaz", - "editor-theme3/@update": "Forumlardaki blokların renklerini değiştirmeye olanak sağlayan yeni ayar.", - "custom-block-text/@description": "Bloklardaki metnin kalınlığını değiştirir ve isteğe bağlı olarak bir metin gölgesi ekler.", + "custom-block-text/@description": "Boyutu ayarlama, kalın metin kullanma veya gölge ekleme dâhil olmak üzere bloklardaki metnin stilini özelleştirmenize olanak tanır.", "custom-block-text/@name": "Özelleştirilebilir blok metin stili", "custom-block-text/@settings-name-bold": "Kalın metin", "custom-block-text/@settings-name-shadow": "Metin altında gölge", + "custom-block-text/@settings-name-size": "Metin boyutu (%)", "editor-colored-context-menus/@description": "Blok sağ tıklandığında çıkan bağlam menülerini renkli hale getirir.", "editor-colored-context-menus/@name": "Renkli bağlam menüleri", "editor-stage-left/@description": "Sahneyi Scratch 2.0'daki gibi editörün sol tarafına taşır.", @@ -147,21 +212,29 @@ "variable-manager/@description": "Editörde \"sesler\" sekmesinin yanına değişken ve listelerinizi kolaylıkla yönetebileceğiniz bir sekme ekler.", "variable-manager/@name": "Değişken yöneticisi", "search-sprites/@description": "Karakterleri ismine göre aramak için kukla bölmesine bir arama kutusu ekler.", - "search-sprites/@name": "İsmine göre kukla arama", + "search-sprites/@name": "Kukla panelinde arama kutusu", + "sprite-properties/@description": "Varsayılan olarak - Scratch 2.0'daki gibi - kukla özellikleri panelini gizler. Özellikler panelini tekrar göstermek için seçili kuklanın üzerindeki bilgi düğmesine veya kuklaya çift tıklayın. Tekrar gizlemek için özellikler panelindeki daraltma düğmesine veya kuklaya çift tıklayın.", + "sprite-properties/@name": "Daraltılmış kukla özellikleri", + "sprite-properties/@settings-name-autoCollapse": "Fare kukla panelinden çıktığında otomatik olarak daralt", + "sprite-properties/@settings-name-hideByDefault": "Varsayılan olarak paneli daralt", + "sprite-properties/@settings-name-transitionDuration": "Animasyon hızı", + "sprite-properties/@settings-select-transitionDuration-default": "Varsayılan", + "sprite-properties/@settings-select-transitionDuration-long": "Yavaş", + "sprite-properties/@settings-select-transitionDuration-none": "Ani", + "sprite-properties/@settings-select-transitionDuration-short": "Hızlı", "gamepad/@description": "Bir USB veya Bluetooth denetleyicisi/oyun kumandası kullanarak projelerle etkileşim kurun.", "gamepad/@name": "Oyun kumandası desteği", "gamepad/@settings-name-hide": "Hiçbir denetleyici algılanmadığında ayarlar düğmesini gizle", "editor-sounds/@description": "Blokları bağladığınızda veya sildiğinizde ses efektleri çalar.", - "editor-sounds/@name": "Editör ses efektleri", + "editor-sounds/@name": "Düzenleyicide ses efektleri", "folders/@description": "Kostüm, ses ve kukla bölmesine klasörler ekleme imkânı tanıt. Bir klasör oluşturmak için herhangi bir kuklaya sağ tıklayın ve \"klasör oluştur\" seçeneğine tıklayın. Klasörü açmak veya kapatmak için bir klasöre tıklayın. Bir kuklayı hangi klasörlere taşıyabileceğinizi görmek için sağ tıklayın veya alternatif olarak açık bir klasöre sürükleyip bırakın. Bu özellik, kuklalarınızın adlarının başına \"[klasörAdı]//\" ekleyerek çalışır.", "folders/@info-notice-folders-are-public": "Sadece bu özelliği etkinleştiren kullanıcılar, projenizdeki klasörleri görebilir. Diğer herkes kuklaların listelerini normal olarak görecektir (klasör olmayacaktır).", "folders/@name": "Kukla klasörleri", "block-switching/@description": "İlgili bloğa geçmek için bloğa sağ tıklayın.", "block-switching/@name": "Blok değiştirme", - "block-switching/@settings-name-border": "Sınır ekle", "block-switching/@settings-name-control": "Kontrol blokları", - "block-switching/@settings-name-customargs": "Özel blok argümanları", - "block-switching/@settings-name-customargsmode": "Gösterilen özel blok argümanları seçenekleri", + "block-switching/@settings-name-customargs": "Özel blok değişkenleri", + "block-switching/@settings-name-customargsmode": "Görünecek olan özel blok değişkenleri seçenekleri", "block-switching/@settings-name-data": "Veri blokları", "block-switching/@settings-name-event": "Olay blokları", "block-switching/@settings-name-extension": "Uzantı blokları", @@ -171,8 +244,8 @@ "block-switching/@settings-name-operator": "Operatör blokları", "block-switching/@settings-name-sensing": "Algılama blokları", "block-switching/@settings-name-sound": "Ses blokları", - "block-switching/@settings-select-customargsmode-all": "Kukla'daki tüm özel bloklardaki argümanlar", - "block-switching/@settings-select-customargsmode-defOnly": "Kendi özel bloğundaki argümanlar", + "block-switching/@settings-select-customargsmode-all": "Kukladaki tüm özel bloklardaki değişkenler", + "block-switching/@settings-select-customargsmode-defOnly": "Kendi özel bloklarındaki değişkenler", "load-extensions/@description": "Düzenleyicideki blok kategorisi menüsünde müzik, kalem ve diğer uzantıları otomatik olarak gösterir.", "load-extensions/@name": "Eklentileri otomatik olarak ekle", "load-extensions/@settings-name-music": "Müzik", @@ -184,22 +257,24 @@ "custom-zoom/@settings-name-autohide": "Büyütme Kontrollerini Otomatik Gizle", "custom-zoom/@settings-name-maxZoom": "En Fazla Yakınlaştırma (%100-500)", "custom-zoom/@settings-name-minZoom": "Minimum Yakınlaştırma (%1-100)", - "custom-zoom/@settings-name-speed": "Animasyon geçişini otomatik gizle", + "custom-zoom/@settings-name-speed": "Otomatik Gizleme Animasyon Hızı", "custom-zoom/@settings-name-startZoom": "Başlangıç Büyüklüğü (%50-500)", "custom-zoom/@settings-name-zoomSpeed": "Büyütme Hızı (%50-200)", "custom-zoom/@settings-select-speed-default": "Varsayılan", - "custom-zoom/@settings-select-speed-long": "Uzun", - "custom-zoom/@settings-select-speed-none": "Yok", - "custom-zoom/@settings-select-speed-short": "Kısa", - "initialise-sprite-position/@description": "Yeni kuklanın varsayılan x/y konumunu değiştirin.", + "custom-zoom/@settings-select-speed-long": "Yavaş", + "custom-zoom/@settings-select-speed-none": "Anında", + "custom-zoom/@settings-select-speed-short": "Hızlı", + "copy-reporter/@description": "Değişken ekranları tarafından görüntülenen değerleri kopyalama (sağ tıklama bağlam menüsünden) ve haberci balonlarını engelleme seçeneği ekler.", + "copy-reporter/@name": "Haberci değerlerini kopyala", + "initialise-sprite-position/@description": "Yeni oluşan kuklaların sahnede olacağı yeri değiştirin.", "initialise-sprite-position/@name": "Özelleştirilebilir yeni eklenen kukla konumu", - "initialise-sprite-position/@settings-name-duplicate": "Kuklalar çoğaltıldığında gerçekleşecek davranış", - "initialise-sprite-position/@settings-name-library": "Kütüphaneden gelen kuklalarının yerlerini rastgele belirle", + "initialise-sprite-position/@settings-name-duplicate": "Çoğaltılan kukla konumu", + "initialise-sprite-position/@settings-name-library": "Kütüphaneden gelen kuklaları rastgele konumlandır", "initialise-sprite-position/@settings-name-x": "X konumu", "initialise-sprite-position/@settings-name-y": "Y konumu", - "initialise-sprite-position/@settings-select-duplicate-custom": "Belirtilen x/y değerlerine gönder", - "initialise-sprite-position/@settings-select-duplicate-keep": "Orijinal kuklayla aynı konumda tut", - "initialise-sprite-position/@settings-select-duplicate-randomize": "Rastgele bir konuma gönder", + "initialise-sprite-position/@settings-select-duplicate-custom": "Özel x/y konumu", + "initialise-sprite-position/@settings-select-duplicate-keep": "Orijinal kuklayla aynı", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Rastgele", "blocks2image/@description": "Blokları SVG/PNG olarak dışa aktarmak için kod alanına sağ tıklayın.", "blocks2image/@name": "Blokları resim olarak kaydedin", "remove-curved-stage-border/@description": "Sahnenin etrafındaki kavisli çerçeveyi kaldırır. Bu sayede sahnenin köşelerinin görünmesine izin verir.", @@ -234,17 +309,18 @@ "block-cherry-picking/@description": "Ctrl tuşuna basılı tutarken tek bir bloğu (aşağısına eklenen tüm yığınla birlikte almak yerine) kodun aralarından alabilme yeteneği ekler.", "block-cherry-picking/@info-flipControls": "\"Kontrolleri çevir\" etkinleştirilmişse, blokları tek tek almak varsayılan davranış olacaktır. Yığının tamamını almak için Ctrl tuşuna basılı tutun.", "block-cherry-picking/@info-macContextDisabled": "macOS'ta Ctrl tuşu yerine Cmd tuşunu kullanın.", - "block-cherry-picking/@name": "Ctrl tuşu ile tek bir blok alın", + "block-cherry-picking/@name": "Ctrl tuşu ile tek bir blok al", "block-cherry-picking/@settings-name-invertDrag": "Kontrolleri çevir", - "hide-new-variables/@description": "Yeni oluşturulan değişkenler veya listeler için otomatik olarak görüntüler oluşturmayın.", + "hide-new-variables/@description": "Yeni oluşturulan değişkenler veya listelerin ekranlarının otomatik olarak gösterilmemesini sağlar.", "hide-new-variables/@name": "Yeni eklenen değişkenleri gizle", - "editor-extra-keys/@description": "\"() tuşuna basıldı mı?\" ve \"() tuşuna basıldığında\" bloklarındaki açılır menülere enter, nokta, virgül ve çok daha fazla seçenek ekler.", + "editor-extra-keys/@description": "\"() tuşuna basılı mı?\" ve \"() tuşuna basıldığında\" bloklarının açılır menülerine enter, nokta ve virgül gibi fazladan tuşlar tuşlar ekler. Bu anahtarlar, bu eklentiye sahip olmayan kullanıcılarda bile çalışacaktır.", "editor-extra-keys/@info-experimentalKeysWarn": "\"Deneysel tuşlar\" eşittir, eğik çizgi, noktalı virgül ve daha fazlasını içerir. Tüm işletim sistemlerinde veya klavye düzenlerinde çalışmayabilirler.", "editor-extra-keys/@info-shiftKeysWarn": "\"Shift tuşları\", çoğunlukla Shift tuşunu ve bir sayı tuşunu gerektiren tuşları içerir, heştek, ünlem işareti ve daha fazlası gibi. Bu tuşlar yalnızca \"() tuşuna basıldığında\" bloğu ile çalışır ve tüm işletim sistemlerinde veya klavye düzenlerinde çalışmaz.", - "editor-extra-keys/@name": "Daha fazla tuş desteği", - "editor-extra-keys/@settings-name-experimentalKeys": "Deneysel tuşları etkinleştir", - "editor-extra-keys/@settings-name-shiftKeys": "Shift tuşlarını etkinleştir", + "editor-extra-keys/@name": "Fazladan tuş seçenekleri", + "editor-extra-keys/@settings-name-experimentalKeys": "Deneysel tuşları göster", + "editor-extra-keys/@settings-name-shiftKeys": "Shift tuşlarını göster", "hide-delete-button/@description": "Kuklalarda, kostümlerde ve seslerde silme düğmesini (çöp kutusu simgesini) gizler. Sağ tıklama bağlam menüsü kullanılarak yine de silinebilirler.", + "hide-delete-button/@info-restoretip": "İpucu: Yanlışlıkla bir karakteri, kostümü veya sesi silerseniz; menü çubuğunda Düzenle'ye ve ardından Geri Getir'e tıklayarak silme işlemini geri alabilirsiniz.", "hide-delete-button/@name": "Sil düğmesini gizle", "hide-delete-button/@settings-name-costumes": "Kostümler ve dekorlar", "hide-delete-button/@settings-name-sounds": "Sesler", @@ -253,13 +329,20 @@ "no-script-bumping/@name": "Üst üste binen kodları otomatik olarak yana kaydırmama", "disable-stage-drag-select/@description": "Özellikle sürüklenebilir olarak ayarlanmış olanlar dışında, düzenleyicideyken sahnedeki kuklaları sürükleme özelliğini kaldırır. Bir kuklayı normal şekilde taşımak için sürüklerken Shift tuşuna basılı tutun.", "disable-stage-drag-select/@name": "Düzenleyicide sürüklenemeyen kuklalar", - "move-to-top-bottom/@description": "Bir kostümü veya sesi listenin üstüne veya altına taşımak için sağ tıklama bağlam menüsü öğesi ekler. Önceden geliştirici araçlarının bir parçasıydı.", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "Proje durmuşken sürüklemeye izin ver", + "move-to-top-bottom/@description": "Kostümleri ve sesleri, listenin en üstüne ya da en altına taşımak için sağ tıklama bağlam menüsüne seçenekler ekler.", + "move-to-top-bottom/@info-developer-tools": "Bu eklenti öncesinde \"geliştirici araçları\" eklentisinin bir parçasıydı ancak artık buraya taşındı.", "move-to-top-bottom/@name": "Kostümü yukarı veya aşağı taşı", + "move-to-top-layer/@description": "Kukla bölmesindeki bir kuklayı sahnenin en üstüne (en üst katmana) taşımak için Shift+Tıklama yapın.", + "move-to-top-layer/@name": "Kuklayı ön katmana götür", "disable-paste-offset/@description": "Çoğaltılan ögeleri kostüm düzenleyicide hafifçe kaydırmak yerine orijinal konumlarına yapıştırın.", - "disable-paste-offset/@name": "Yapıştırılan öğeleri kenara kaydırmama", + "disable-paste-offset/@info-vanilla": "Bu davranış bu eklenti olmadan da ögeye Alt+Tıklamayla gerçekleştirilebilir.", + "disable-paste-offset/@name": "Yapıştırılan ögeleri kenara kaydırmama", "block-duplicate/@description": "Alt tuşunu basılı tutarken bir kodu sürükleyerek onu hızlıca çoğaltın. Altına eklenen yığının tamamı yerine yalnızca tek bir bloğu çoğaltmak için Ctrl tuşuna da basılı tutun.", "block-duplicate/@info-mac": "macOS’ta Alt tuşu yerine Option tuşunu ve Kontrol tuşu yerine Komut tuşunu kullanın.", "block-duplicate/@name": "Alt tuşuyla kodu çoğalt", + "rename-broadcasts/@description": "Haber bloklarının açılır listelerine haber mesajlarını yeniden adlandırmak için bir seçenek ekler.", + "rename-broadcasts/@name": "Haberleri yeniden adlandırma", "swap-local-global/@description": "Mevcut bir değişkeni veya listeyi yeniden adlandırırken daha fazla seçenek ekler: \"Tüm kuklalar için\" ve \"Yalnızca bu kukla için\" arasında değişiklik yapılmasına ve değişkenlerin bulutta depolanıp depolanmayacağına izin verir. Ayrıca durumunu hızlı bir şekilde değiştirmek için değişkene/listeye sağ tıklandığında yeni bir seçenek ekler.", "swap-local-global/@name": "\"Tüm kuklalar için\" ve \"Yalnızca bu kukla için\" arasında geçiş yapma", "editor-comment-previews/@description": "Fareyle daraltılmış yorumların ve blokların üzerine gelerek yorumların içeriğinin ön izlemesini görmeye olanak tanır. Bunu ekran dışındaki yorumları görüntülemek için, ön izlemesiyle alttan bir döngü bloğu belirlemek için, birçok uzun yorumu küçük bir alana sığdırmak için ve çok daha fazlası için kullanabilirsiniz.", @@ -276,6 +359,25 @@ "editor-comment-previews/@settings-select-delay-short": "Kısa", "columns/@description": "Blok kategorisi menüsünü iki sütuna böler ve Scratch 2.0'daki gibi blok paletini en üstüne taşır.", "columns/@name": "İki sütunlu kategori menüsü", + "number-pad/@description": "Yalnızca dokunmatik ekranlı cihazlar yerine tüm cihazlarda bloklardaki sayı alanlarını düzenlerken Scratch'in sanal sayısal tuş takımını gösterir.", + "number-pad/@info-explanation": "\"() adım git\" gibi bloklardaki sayı girişlerini düzenlerken bir sayısal tuş takımı gösterir.", + "number-pad/@name": "Sayısal tuş takımını her zaman göster", + "editor-number-arrow-keys/@description": "Bloklar veya karakter özellikleri alanı gibi sayısal giriş alanlarındaki sayı değerlerini arttırmak veya azaltmak için yukarı ve aşağı ok tuşlarını kullanın.", + "editor-number-arrow-keys/@name": "Düzenleyicide ok tuşuyla arttırma", + "editor-number-arrow-keys/@settings-name-alt": "Alt+Tuş yapıldığında şu kadar arttır/azalt", + "editor-number-arrow-keys/@settings-name-altCustom": "Alt+Tuş ile Değiştir", + "editor-number-arrow-keys/@settings-name-regular": "Tuşa normal basıldığında şu kadar arttır/azalt", + "editor-number-arrow-keys/@settings-name-regularCustom": "Varsayılan tuşa basıldığında değiştir", + "editor-number-arrow-keys/@settings-name-shift": "Shift+Tuş yapıldığında şu kadar arttır/azalt", + "editor-number-arrow-keys/@settings-name-shiftCustom": "Shift+Tuş ile Değiştir", + "editor-number-arrow-keys/@settings-name-useCustom": "Özel değerler kullan", + "editor-number-arrow-keys/@settings-select-alt-none": "Yapma", + "editor-number-arrow-keys/@settings-select-regular-none": "Yapma", + "editor-number-arrow-keys/@settings-select-shift-none": "Yapma", + "expanded-backpack/@description": "Düzenleyici sırt çantasının içeriğini, kostüm kitaplığına benzer şekilde genişletilebilir iki eksenli bir ızgara halinde düzenler ve belirli küçük resimlerin boyutunu büyütür.", + "expanded-backpack/@name": "Sırt çantasında birden fazla satır", + "expanded-backpack/@settings-name-rows": "Görüntülenen satır sayısı", + "expanded-backpack/@settings-name-upscale": "Daha büyük kostüm ve kod küçük resimleri", "script-snap/@description": "Bloğu otomatik olarak kod alanı noktalarına hizalamak için bir kodu hareket ettirin.", "script-snap/@name": "Kodları ızgaraya hizala", "script-snap/@preset-name-default": "Varsayılan", @@ -283,10 +385,8 @@ "script-snap/@preset-name-whole-block": "Tam blok", "script-snap/@settings-name-grid": "Izgara boyutu (piksel)", "fullscreen/@description": "Proje oynatıcısının tam ekran modundaki bazı istenmeyen efektlerini düzeltir, tarayıcınızın tam ekran modunda açar ve yeşil bayrak araç çubuğunu gizler.", - "fullscreen/@info-hideToolbarNotice": "Araç çubuğunu gizlemeyi seçerseniz, proje oynatıcısının tam ekran modundan çıkmak için Esc tuşunu kullanabileceğinizi unutmayın.", "fullscreen/@name": "Geliştirilmiş tam ekran", "fullscreen/@settings-name-browserFullscreen": "Tam ekran proje oynatıcısını, tam ekran tarayıcı modunda aç", - "fullscreen/@settings-name-hideToolbar": "Tam ekrandayken araç çubuğunu gizle", "hide-stage/@description": "Sahne alanını ve kukla bölmesini gizleyen \"küçük sahne\" ve \"büyük sahne\" düğmelerinin yanına bir düğme daha ekleyerek kod alanını çok daha büyük hâle getirir.", "hide-stage/@name": "Sahneyi ve kukla bölmesini gizle", "editor-stepping/@description": "Projede çalışmakta olan bloklara renkli bir vurgu ekler.", diff --git a/src/addons/addons-l10n-settings/zh-cn.json b/src/addons/addons-l10n-settings/zh-cn.json new file mode 100644 index 00000000000..bb3d785480f --- /dev/null +++ b/src/addons/addons-l10n-settings/zh-cn.json @@ -0,0 +1,405 @@ +{ + "cat-blocks/@description": "重新获取2020年愚人节首次推出的编辑器猫猫帽子积木。", + "cat-blocks/@info-watch": "当编辑器打开时,“看向鼠标”设置可能会影响性能。", + "cat-blocks/@name": "猫积木", + "cat-blocks/@settings-name-watch": "跟随鼠标", + "editor-devtools/@description": "为编辑器添加了新的菜单选项:复制/粘贴积木,更好的积木整理,以及更多功能!", + "editor-devtools/@name": "开发者工具", + "editor-devtools/@settings-name-enableCleanUpPlus": "增强“整理积木”", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "在鼠标指针处粘贴积木", + "find-bar/@description": "可以查找并跳转至积木,造型和声音。电脑用户可以按Ctrl+←和Ctrl+→来导航至上一个或下一个积木。", + "find-bar/@info-developer-tools": "此插件曾是“开发者工具”的一部分,后来放到了这里。", + "find-bar/@name": "查找积木", + "middle-click-popup/@description": "鼠标中键或Shift+左键单击代码区域,或者按Ctrl+空格键弹出积木搜索窗口。输入积木名称(或部分名称),然后将积木拖入代码区以添加到项目中。可以使用上下键和Enter键导航菜单,支持Tab键自动补全。为了防止菜单关闭,可以在拖出积木时按住Shift键。", + "middle-click-popup/@info-developer-tools": "这个插件之前是“开发者工具”插件的一部分,但现在移到了这里。", + "middle-click-popup/@name": "根据名字插入积木", + "middle-click-popup/@settings-name-popup_max_height": "弹窗的最大高度", + "middle-click-popup/@settings-name-popup_scale": "弹窗中积木的大小", + "middle-click-popup/@settings-name-popup_width": "弹窗的宽度", + "jump-to-def/@description": "可以让你用鼠标滚轮或Shift+鼠标左键跳转至自制积木的代码。", + "jump-to-def/@info-developer-tools": "此插件曾是“开发者工具”的一部分,后来移到了这里。", + "jump-to-def/@name": "跳至自制积木", + "reorder-custom-inputs/@description": "允许在“制作新的积木”页面,重新排列自制积木的参数顺序。", + "reorder-custom-inputs/@name": "可重新排序的自制积木参数", + "reorder-custom-inputs/@settings-name-InsertInputsAfter": "在选中的输入框后插入新的输入框", + "editor-searchable-dropdowns/@description": "让你能够搜索积木下拉菜单中的选项", + "editor-searchable-dropdowns/@name": "积木下拉菜单搜索框", + "data-category-tweaks-v2/@description": "给变量区不同种类的变量分组", + "data-category-tweaks-v2/@name": "变量区分组", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "将变量/列表设置积木移到变量和列表上方", + "data-category-tweaks-v2/@settings-name-separateListCategory": "列表单独分组", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "分离“仅适用于当前角色”的变量", + "block-palette-icons/@description": "在标识块类别的彩色圆圈内添加图标。", + "block-palette-icons/@name": "积木调色板类别图标", + "hide-flyout/@description": "隐藏积木栏,除非鼠标悬停在积木栏上方。点击锁定图标来固定积木栏,也可以使用“类别区点击”模式,当点击积木类别图标时显示/隐藏积木栏。", + "hide-flyout/@info-hoverExplanation": "“积木区悬停”模式可能会将你的脚本删除。你还可以试试其他模式。", + "hide-flyout/@name": "自动隐藏积木区", + "hide-flyout/@settings-name-lockLoad": "默认打开", + "hide-flyout/@settings-name-speed": "动画速度", + "hide-flyout/@settings-name-toggle": "模式", + "hide-flyout/@settings-select-speed-default": "默认", + "hide-flyout/@settings-select-speed-long": "缓慢", + "hide-flyout/@settings-select-speed-none": "立即", + "hide-flyout/@settings-select-speed-short": "快速", + "hide-flyout/@settings-select-toggle-category": "类别区点击", + "hide-flyout/@settings-select-toggle-cathover": "类别区悬停", + "hide-flyout/@settings-select-toggle-hover": "积木区悬停", + "mediarecorder/@description": "在编辑器菜单栏添加“开始录制”按钮,用于录制作品的舞台区。", + "mediarecorder/@name": "作品录制工具", + "drag-drop/@description": "让你将文件直接拖入角色区并导入!当然,你还能将文字文件拖入文字输入框中。", + "drag-drop/@name": "文件拖放", + "drag-drop/@settings-name-use-hd-upload": "使用高清图片上传", + "debugger/@description": "向编辑器添加一个新的“调试器”窗口。允许使用“日志”、“警告”和“错误”积木在调试器窗口的日志选项卡中记录日志。当执行“断点”积木时,作品将暂停。可以在调试器窗口的“线程”选项卡中查看所有正在运行的积木栈,并且在暂停时,可以使用“单步执行”按钮执行下一个积木。在“性能”选项卡中,可以查看每秒帧数和克隆数量的曲线图。", + "debugger/@name": "调试器", + "debugger/@settings-name-fancy_graphs": "带动画的曲线图(可能影响性能)", + "debugger/@settings-name-log_broadcasts": "记录广播日志", + "debugger/@settings-name-log_clear_greenflag": "当绿旗被点击时清除日志", + "debugger/@settings-name-log_clone_create": "记录克隆日志", + "debugger/@settings-name-log_failed_clone_creation": "当克隆体数量超出限制时,产生日志", + "debugger/@settings-name-log_greenflag": "记录绿旗点击日志", + "pause/@description": "在绿旗按钮旁边增加一个暂停作品的按钮。", + "pause/@info-keybind": "作品也可以用Alt+X暂停 (macOS上是Option+X)。", + "pause/@name": "暂停按钮", + "mute-project/@description": "Ctrl+鼠标左键点击小绿旗切换静音或取消静音。", + "mute-project/@info-macOS": "在 macOS 上,用 Cmd 键代替 Ctrl 键。", + "mute-project/@name": "静音", + "vol-slider/@description": "在绿旗旁添加一个声音滑动条", + "vol-slider/@name": "项目声音滑动条", + "vol-slider/@settings-name-always": "总是显示音量滑竿", + "vol-slider/@settings-name-defVol": "默认音量", + "clones/@description": "在编辑器中的舞台上方添加一个计数器,显示克隆体总数。", + "clones/@name": "克隆计数器", + "clones/@settings-name-projectpage": "显示在作品页面", + "clones/@settings-name-showicononly": "只显示图标", + "mouse-pos/@description": "在编辑器的舞台上方显示鼠标x/y坐标。", + "mouse-pos/@name": "显示鼠标坐标", + "color-picker/@description": "在取色器增加一个16进制颜色代码的输入框。", + "color-picker/@name": "16进制取色器", + "remove-sprite-confirm/@description": "当你在项目中删除一个角色时,询问是否确认。", + "remove-sprite-confirm/@info-restoretip": "提示:如果您不小心删除了角色、造型或声音,您可以通过单击菜单栏中的编辑,然后点击还原来恢复删除内容。", + "remove-sprite-confirm/@name": "删除角色确认框", + "block-count/@description": "在编辑器菜单栏上显示作品里积木的总数。原先是拓展“角色和积木数量”的一部分。", + "block-count/@name": "积木数量", + "onion-skinning/@description": "在编辑造型时显示上一个或下一个造型的透明叠加层。由造型编辑器下方,缩放按钮旁边的按钮控制。", + "onion-skinning/@name": "洋葱皮", + "onion-skinning/@settings-name-afterTint": "后面造型染色", + "onion-skinning/@settings-name-beforeTint": "前面造型染色", + "onion-skinning/@settings-name-default": "默认开启", + "onion-skinning/@settings-name-layering": "默认图层位置", + "onion-skinning/@settings-name-mode": "默认模式", + "onion-skinning/@settings-name-next": "默认的后面造型数", + "onion-skinning/@settings-name-opacity": "不透明度(%)", + "onion-skinning/@settings-name-opacityStep": "不透明度步长(%)", + "onion-skinning/@settings-name-previous": "默认的前面造型数", + "onion-skinning/@settings-select-layering-behind": "后面", + "onion-skinning/@settings-select-layering-front": "前面", + "onion-skinning/@settings-select-mode-merge": "融合图片", + "onion-skinning/@settings-select-mode-tint": "颜色染色", + "paint-snap/@description": "将造型编辑器中的对象吸附到边界框和矢量点。", + "paint-snap/@name": "造型编辑器吸附", + "paint-snap/@settings-name-boxCenter": "从选中框中心对齐", + "paint-snap/@settings-name-boxCorners": "从选中框角落对齐", + "paint-snap/@settings-name-boxEdgeMids": "从选中框边缘中点对齐", + "paint-snap/@settings-name-enable-default": "默认开启", + "paint-snap/@settings-name-guide-color": "吸附引导色", + "paint-snap/@settings-name-objectCenters": "吸附到物体中心", + "paint-snap/@settings-name-objectCorners": "吸附到物体角落", + "paint-snap/@settings-name-objectEdges": "吸附到物体边缘", + "paint-snap/@settings-name-objectMidlines": "吸附到物体中线", + "paint-snap/@settings-name-pageAxes": "吸附到页面x和y轴", + "paint-snap/@settings-name-pageCenter": "吸附到页面中心", + "paint-snap/@settings-name-pageCorners": "吸附到页面角落", + "paint-snap/@settings-name-pageEdges": "吸附到页面边缘", + "paint-snap/@settings-name-threshold": "吸附距离", + "default-costume-editor-color/@description": "更改造型编辑器的颜色和轮廓大小。", + "default-costume-editor-color/@name": "自定义缺省造型编辑器颜色", + "default-costume-editor-color/@settings-name-fill": "默认填充色", + "default-costume-editor-color/@settings-name-persistence": "在切换工具时,使用之前使用的颜色而不是重置颜色", + "default-costume-editor-color/@settings-name-stroke": "默认轮廓色", + "default-costume-editor-color/@settings-name-strokeSize": "默认轮廓大小", + "bitmap-copy/@description": "允许你将位图图片从造型编辑器复制到系统剪贴板中,以便将其粘贴到其他网站或软件中。", + "bitmap-copy/@info-norightclick": "不支持“右键点击→复制”。你必须在选择位图图像时按Ctrl+C来复制。", + "bitmap-copy/@name": "位图复制", + "2d-color-picker/@description": "用 2D 颜色选择器替换角色编辑器中的饱和度和亮度滑块。在拖动光标的同时按住 Shift 以更改单个轴上的值。", + "2d-color-picker/@name": "2D 颜色选择器", + "paint-skew/@description": "在侧边缩放对象时,按住 Ctrl 键以倾斜它。在倾斜对象时按住 Alt 键以从中心倾斜它。", + "paint-skew/@info-useCmdOnMac": "在 macOS 上,使用 Command 键代替 Control 键,使用 Option 键代替 Alt 键。", + "paint-skew/@name": "在造型编辑器中倾斜", + "better-img-uploads/@description": "在“上传造型”按钮上方添加一个新按钮,该按钮自动将上传的位图图像转换为 SVG(矢量)图像,以避免丢失质量。", + "better-img-uploads/@info-notSuitableEdit": "如果您打算在上传后编辑图像,请避免使用高清图片上传按钮。", + "better-img-uploads/@name": "高清图片上传", + "better-img-uploads/@settings-name-fitting": "图片大小", + "better-img-uploads/@settings-select-fitting-fill": "拉伸以填充画布", + "better-img-uploads/@settings-select-fitting-fit": "缩小以适应画布", + "better-img-uploads/@settings-select-fitting-full": "原始大小", + "pick-colors-from-stage/@description": "允许造型编辑器中的取色器在舞台上取色。", + "pick-colors-from-stage/@name": "在舞台上使用选色器", + "custom-block-shape/@description": "随意更改积木形状!", + "custom-block-shape/@info-paddingWarning": "这些设置的效果只有你能看到。当其他用户浏览你的作品时,作品中的积木可能会重叠。", + "custom-block-shape/@name": "自定义积木形状", + "custom-block-shape/@preset-description-default2": "很向 Scratch 2.0 积木的形状", + "custom-block-shape/@preset-description-default3": "Scratch 3.0 积木的正常显示", + "custom-block-shape/@preset-description-flat2": "去除了凹口和边角的 Scratch 2.0 块", + "custom-block-shape/@preset-description-flat3": "去除了凹口和边角的 Scratch 3.0 块", + "custom-block-shape/@preset-name-default2": "2.0 积木", + "custom-block-shape/@preset-name-default3": "3.0 积木", + "custom-block-shape/@preset-name-flat2": "扁平化 2.0 积木", + "custom-block-shape/@preset-name-flat3": "扁平化 3.0 积木", + "custom-block-shape/@settings-name-cornerSize": "圆角大小 (0-300%)", + "custom-block-shape/@settings-name-notchSize": "缺口高度 (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "内边距 (50-200%)", + "editor-square-inputs/@description": "让特定积木输入类型(如文本、颜色框)变成方形而不是圆形,就像 Scratch 2.0 中的那样。", + "editor-square-inputs/@name": "方形积木输入", + "editor-square-inputs/@settings-name-color": "颜色输入框", + "editor-square-inputs/@settings-name-number": "数字输入框", + "editor-square-inputs/@settings-name-text": "文本输入框", + "zebra-striping/@description": "让同类的积木像斑马一样交替在亮色与暗色间。", + "zebra-striping/@name": "交替积木颜色", + "zebra-striping/@settings-name-intensity": "强烈度(0-100)", + "zebra-striping/@settings-name-shade": "阴影", + "zebra-striping/@settings-select-shade-darker": "暗色", + "zebra-striping/@settings-select-shade-lighter": "亮色", + "editor-compact/@description": "缩小编辑器中按钮,输入区,菜单栏等元素的大小,让代码区,造型编辑器和造型预览区域更大,和 Scratch 2.0 相似", + "editor-compact/@info-hide-icons-update": "使用“自定义菜单栏”插件隐藏菜单栏图标", + "editor-compact/@name": "紧凑的编辑器", + "editor-compact/@settings-name-hideLabels": "隐藏造型和声音编辑器中的按钮标签", + "custom-menu-bar/@description": "允许你隐藏特定的菜单栏内容,或移除他们的标签或图标。", + "custom-menu-bar/@info-small-screens": "在小窗口中时,自动将文本标签替换为小图标。", + "custom-menu-bar/@name": "自定义编辑器菜单栏", + "custom-menu-bar/@settings-name-menu-labels": "显示菜单……", + "custom-menu-bar/@settings-select-menu-labels-both": "图标和标签", + "custom-menu-bar/@settings-select-menu-labels-icons": "只显示图标", + "custom-menu-bar/@settings-select-menu-labels-labels": "只显示标签", + "editor-theme3/@description": "设定编辑器中每一类积木的颜色", + "editor-theme3/@name": "自定义积木颜色", + "editor-theme3/@preset-description-black": "使积木变为黑色背景彩色文字", + "editor-theme3/@preset-description-contrast": "Scratch 3.0 高对比度积木颜色", + "editor-theme3/@preset-description-dark": "比默认颜色更加暗的颜色", + "editor-theme3/@preset-description-new-dark": "比默认颜色稍微暗的颜色,适合暗黑主题", + "editor-theme3/@preset-description-original": "Scratch 2.0 的积木颜色", + "editor-theme3/@preset-description-tweaks": "使用 Scratch 3.0 中的颜色,其中事件、控制和自定义积木使用 Scratch 2.0 中的颜色", + "editor-theme3/@preset-name-black": "黑", + "editor-theme3/@preset-name-contrast": "高对比度", + "editor-theme3/@preset-name-dark": "更暗", + "editor-theme3/@preset-name-new-dark": "暗色", + "editor-theme3/@preset-name-original": "Scratch 2.0 颜色", + "editor-theme3/@preset-name-tweaks": "Scratch 3.0 调整", + "editor-theme3/@settings-name-Pen-color": "扩展程序", + "editor-theme3/@settings-name-comment-color": "积木批注", + "editor-theme3/@settings-name-control-color": "控制", + "editor-theme3/@settings-name-custom-color": "自制积木", + "editor-theme3/@settings-name-data-color": "变量", + "editor-theme3/@settings-name-data-lists-color": "列表", + "editor-theme3/@settings-name-events-color": "事件", + "editor-theme3/@settings-name-input-color": "输入框颜色", + "editor-theme3/@settings-name-looks-color": "外观", + "editor-theme3/@settings-name-motion-color": "运动", + "editor-theme3/@settings-name-operators-color": "运算", + "editor-theme3/@settings-name-sensing-color": "侦测", + "editor-theme3/@settings-name-sounds-color": "声音", + "editor-theme3/@settings-name-text": "文字颜色", + "editor-theme3/@settings-select-text-black": "黑色", + "editor-theme3/@settings-select-text-colorOnBlack": "黑底彩字", + "editor-theme3/@settings-select-text-colorOnWhite": "白底彩字", + "editor-theme3/@settings-select-text-white": "白色", + "custom-block-text/@description": "让你可以自定义积木上的文本样式,包括调整大小、使用粗体文本或添加阴影。", + "custom-block-text/@name": "个性化积木文本样式", + "custom-block-text/@settings-name-bold": "粗体", + "custom-block-text/@settings-name-shadow": "文字加阴影", + "custom-block-text/@settings-name-size": "文本大小(%)", + "editor-colored-context-menus/@description": "使积木的右键菜单背景颜色与积木的颜色对应。", + "editor-colored-context-menus/@name": "彩色右键菜单", + "editor-stage-left/@description": "像 Scratch 2.0 中一样在编辑器中将舞台移动到左侧。", + "editor-stage-left/@info-reverseOrder": "为了更改舞台上方按钮的位置,使用“项目控件反向顺序”插件", + "editor-stage-left/@name": "将舞台移到左侧", + "editor-buttons-reverse-order/@description": "将绿旗和停止按钮向右移动,将全屏按钮向左移动,就像在 Scratch 2.0 中一样。", + "editor-buttons-reverse-order/@name": "项目控件反向顺序", + "variable-manager/@description": "在编辑器中的“声音”旁边添加一个选项卡,以便轻松更新变量和列表。", + "variable-manager/@name": "变量管理器", + "search-sprites/@description": "在角色面板内增加一个搜索框,以按名字搜索角色", + "search-sprites/@name": "角色面板的搜索框", + "sprite-properties/@description": "默认情况下隐藏角色属性面板,就像在Scratch 2.0中一样。点击选定角色上的信息按钮或双击角色,可以显示属性面板。若要再次隐藏面板,点击面板中的折叠按钮或双击角色。", + "sprite-properties/@name": "折叠角色属性", + "sprite-properties/@settings-name-autoCollapse": "当鼠标离开时自动收起角色面板", + "sprite-properties/@settings-name-hideByDefault": "默认收起角色面板", + "sprite-properties/@settings-name-transitionDuration": "动画速度", + "sprite-properties/@settings-select-transitionDuration-default": "默认", + "sprite-properties/@settings-select-transitionDuration-long": "缓慢", + "sprite-properties/@settings-select-transitionDuration-none": "立刻", + "sprite-properties/@settings-select-transitionDuration-short": "快速", + "gamepad/@description": "使用 USB 或蓝牙控制器/游戏手柄与项目交互。", + "gamepad/@name": "游戏手柄支持", + "gamepad/@settings-name-hide": "未检测到控制器时隐藏设置按钮", + "editor-sounds/@description": "连接或删除积木时播放音效。", + "editor-sounds/@name": "编辑器音效", + "folders/@description": "将文件夹添加到角色窗格,以及造型和声音列表。 要创建文件夹,请右键单击任何角色并单击“创建文件夹”。 单击文件夹以打开或关闭它。 右键单击角色以查看可以将其移动到哪些文件夹,或者将其拖放到打开的文件夹中。 此功能通过在您的角色名称的开头添加“[文件夹名称]//”来工作。", + "folders/@info-notice-folders-are-public": "启用此功能的用户将能够看到您项目中的文件夹。 其他任何人都会正常看到角色列表(没有文件夹)。", + "folders/@name": "角色文件夹", + "block-switching/@description": "右键单击一个积木将其切换到相关积木。", + "block-switching/@name": "切换积木", + "block-switching/@settings-name-control": "控制积木", + "block-switching/@settings-name-customargs": "自制积木参数", + "block-switching/@settings-name-customargsmode": "显示自制积木的参数选项", + "block-switching/@settings-name-data": "数据积木", + "block-switching/@settings-name-event": "事件积木", + "block-switching/@settings-name-extension": "扩展积木", + "block-switching/@settings-name-looks": "外观积木", + "block-switching/@settings-name-motion": "运动积木", + "block-switching/@settings-name-noop": "显示切换积木为自己的选项", + "block-switching/@settings-name-operator": "运算积木", + "block-switching/@settings-name-sensing": "侦测积木", + "block-switching/@settings-name-sound": "声音积木", + "block-switching/@settings-select-customargsmode-all": "角色中所有自制积木的参数", + "block-switching/@settings-select-customargsmode-defOnly": "当前自制积木的参数", + "load-extensions/@description": "自动显示音乐、画笔、或其他拓展程序,无需手动操作。", + "load-extensions/@name": "自动添加扩展", + "load-extensions/@settings-name-music": "音乐", + "load-extensions/@settings-name-pen": "画笔", + "load-extensions/@settings-name-text2speech": "文字转语音", + "load-extensions/@settings-name-translate": "翻译", + "custom-zoom/@description": "为代码区域中积木缩放的最小值、最大值、速度和起始大小选择自定义设置,并自动隐藏控件。", + "custom-zoom/@name": "自定义代码区域缩放", + "custom-zoom/@settings-name-autohide": "自动隐藏缩放控件", + "custom-zoom/@settings-name-maxZoom": "最大缩放 (100-500%)", + "custom-zoom/@settings-name-minZoom": "最小缩放 (1-100%)", + "custom-zoom/@settings-name-speed": "自动隐藏动画的速度", + "custom-zoom/@settings-name-startZoom": "起始缩放 (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "缩放速度 (50-200%)", + "custom-zoom/@settings-select-speed-default": "默认", + "custom-zoom/@settings-select-speed-long": "缓慢", + "custom-zoom/@settings-select-speed-none": "立即", + "custom-zoom/@settings-select-speed-short": "快速", + "copy-reporter/@description": "在变量显示器 (右键菜单),以及在积木返回值气泡上增加一个复制值的选项。", + "copy-reporter/@name": "复制返回值积木的值", + "initialise-sprite-position/@description": "改变新创建的角色被放置在舞台的位置。", + "initialise-sprite-position/@name": "自定义新角色位置", + "initialise-sprite-position/@settings-name-duplicate": "复制角色的位置", + "initialise-sprite-position/@settings-name-library": "将角色库中的角色放置在随机位置", + "initialise-sprite-position/@settings-name-x": "X 坐标", + "initialise-sprite-position/@settings-name-y": "Y 坐标", + "initialise-sprite-position/@settings-select-duplicate-custom": "特定的x/y坐标", + "initialise-sprite-position/@settings-select-duplicate-keep": "和原角色相同", + "initialise-sprite-position/@settings-select-duplicate-randomize": "随机", + "blocks2image/@description": "右键单击代码区域以将积木导出为 SVG/PNG 图像。", + "blocks2image/@name": "保存积木为图像", + "remove-curved-stage-border/@description": "移除舞台周围的弯曲边框,让您可以看到角落。", + "remove-curved-stage-border/@name": "移除弯曲的舞台边框", + "transparent-orphans/@description": "调整编辑器中块的透明度,为孤立块(顶部没有帽子块的那些)和正在拖动的块提供单独的选项。", + "transparent-orphans/@name": "积木透明度", + "transparent-orphans/@settings-name-block": "积木透明度 (%)", + "transparent-orphans/@settings-name-dragged": "正在拖动的块透明度 (%)", + "transparent-orphans/@settings-name-orphan": "孤立积木的透明度 (%)", + "paint-by-default/@description": "更改直接点击“选择一个角色/造型/背景/声音”按钮,默认打开“库”。", + "paint-by-default/@name": "更改直接点击“选择一个…”的操作", + "paint-by-default/@settings-name-backdrop": "直接添加背景", + "paint-by-default/@settings-name-costume": "直接添加造型", + "paint-by-default/@settings-name-sound": "直接添加声音", + "paint-by-default/@settings-name-sprite": "直接添加角色", + "paint-by-default/@settings-select-backdrop-library": "库", + "paint-by-default/@settings-select-backdrop-paint": "绘制", + "paint-by-default/@settings-select-backdrop-surprise": "随机", + "paint-by-default/@settings-select-backdrop-upload": "上传", + "paint-by-default/@settings-select-costume-library": "库", + "paint-by-default/@settings-select-costume-paint": "绘制", + "paint-by-default/@settings-select-costume-surprise": "随机", + "paint-by-default/@settings-select-costume-upload": "上传", + "paint-by-default/@settings-select-sound-library": "库", + "paint-by-default/@settings-select-sound-record": "录制", + "paint-by-default/@settings-select-sound-surprise": "随机", + "paint-by-default/@settings-select-sound-upload": "上传", + "paint-by-default/@settings-select-sprite-library": "库", + "paint-by-default/@settings-select-sprite-paint": "绘制", + "paint-by-default/@settings-select-sprite-surprise": "随机", + "paint-by-default/@settings-select-sprite-upload": "上传", + "block-cherry-picking/@description": "让你可以按住 Ctrl 键把单个积木从积木组中拖出(而不是积木以及后面连接的所有积木)。", + "block-cherry-picking/@info-flipControls": "如果启用了\"翻转控件\",则单独抓取积木将是默认行为。 按住Ctrl拖动整个脚本。", + "block-cherry-picking/@info-macContextDisabled": "在 macOS 上,用 Cmd 键代替 Ctrl 键。", + "block-cherry-picking/@name": "按 Ctrl 键拖动单个积木", + "block-cherry-picking/@settings-name-invertDrag": "翻转控件", + "hide-new-variables/@description": "不自动显示新创建的变量或列表的显示器。", + "hide-new-variables/@name": "隐藏新变量", + "editor-extra-keys/@description": "为“按下()键?”和“当按下()键?”积木增加更多按键选项,例如enter、点、逗号键,以及更多。这些按键甚至可对没有安装此插件的用户起作用。", + "editor-extra-keys/@info-experimentalKeysWarn": "\"实验按键\"包括等号、斜杠、分号等。 它们可能不适用于所有操作系统或键盘布局。", + "editor-extra-keys/@info-shiftKeysWarn": "\"Shift键\"包括通常需要Shift键和数字键的键,如井号,感叹号等。 这些键仅适用于\"当 () 被点击\"块,不适用于所有操作系统或键盘布局。", + "editor-extra-keys/@name": "更多按键选项", + "editor-extra-keys/@settings-name-experimentalKeys": "显示实验按键", + "editor-extra-keys/@settings-name-shiftKeys": "显示shift键", + "hide-delete-button/@description": "隐藏了角色、造型和声音中的删除按钮(垃圾桶图标)。它们仍然可以使用右键菜单删除。", + "hide-delete-button/@info-restoretip": "提示:如果你不小心删除了角色、造型或声音,你可以通过点击菜单栏中的“编辑”按钮,然后单击“还原”来恢复删除。", + "hide-delete-button/@name": "隐藏删除按钮", + "hide-delete-button/@settings-name-costumes": "造型和背景", + "hide-delete-button/@settings-name-sounds": "声音", + "hide-delete-button/@settings-name-sprites": "角色", + "no-script-bumping/@description": "允许移动和修改脚本,而不会导致重叠的脚本四处移动。", + "no-script-bumping/@name": "不要自动设置重叠脚本的空间", + "disable-stage-drag-select/@description": "禁止在编辑器中在舞台上拖动角色,那些明确设置为可拖动的角色除外。需要按住 Shift 才能在编辑器中正常拖动不可拖动的角色。", + "disable-stage-drag-select/@name": "编辑器内不可拖拽的角色", + "disable-stage-drag-select/@settings-name-drag_while_stopped": "在作品停止时允许拖动", + "move-to-top-bottom/@description": "在造型和音频页的右键菜单中添加移到列表顶部或底部的选项。", + "move-to-top-bottom/@info-developer-tools": "此插件曾是“开发者工具”的一部分,后来移到了这里。", + "move-to-top-bottom/@name": "把造型移到顶部或底部", + "move-to-top-layer/@description": "Shift+单击角色栏中的角色,将其移动到舞台的前面(顶层)。", + "move-to-top-layer/@name": "将角色移到最前面", + "disable-paste-offset/@description": "在同一个造型中复制粘贴形状时在原始位置粘贴,不向右下偏移", + "disable-paste-offset/@info-vanilla": "也可以通过Alt+单击物体实现原地复制,无需插件。", + "disable-paste-offset/@name": "粘贴形状时不偏移", + "block-duplicate/@description": "按住 Ait 键拖动积木可以复制积木。", + "block-duplicate/@info-mac": "在 macOS 上用 Option 键代替 Alt 键。", + "block-duplicate/@name": "按住 Alt 键复制积木", + "rename-broadcasts/@description": "在广播语句的下拉列表中添加重命名广播的选项", + "rename-broadcasts/@name": "重命名广播", + "swap-local-global/@description": "重命名存在的变量或者列表的时候添加更多功能:把变量在“适用于所有角色”与“仅适用于当前角色”和云变量与普通变量之间转换。也可以右键点击变量,在右键菜单中直接进行转换。", + "swap-local-global/@name": "把变量或者列表在“适用于所有角色”和“仅适用于当前角色”之间转换", + "editor-comment-previews/@description": "让你能够把鼠标放在积木或者折叠的注释上面预览注释的内容。可以用这一点来查看连接的太远的注释,通过查看积木注释来从底下判断处于哪个循环积木,把很长的单行注释折叠到比较小的地方,等等。", + "editor-comment-previews/@name": "预览注释", + "editor-comment-previews/@settings-name-delay": "延迟", + "editor-comment-previews/@settings-name-follow-mouse": "跟随鼠标", + "editor-comment-previews/@settings-name-hover-view": "指向折叠的注释时预览内容", + "editor-comment-previews/@settings-name-hover-view-block": "指向积木时预览其注释的内容", + "editor-comment-previews/@settings-name-hover-view-procedure": "指向自制积木时预览其定义的注释的内容", + "editor-comment-previews/@settings-name-reduce-animation": "无弹出动画", + "editor-comment-previews/@settings-name-reduce-transparency": "不透明", + "editor-comment-previews/@settings-select-delay-long": "长", + "editor-comment-previews/@settings-select-delay-none": "无", + "editor-comment-previews/@settings-select-delay-short": "短", + "columns/@description": "将积木分类菜单分成两列,并把分类栏移到积木列表的顶部,就像在 Scratch 2.0 中那样。", + "columns/@name": "双列分类菜单", + "number-pad/@description": "在所有设备上编辑积木的数字参数时显示Scratch的虚拟数字键盘,而不仅仅是在触屏设备上显示。", + "number-pad/@info-explanation": "在编辑如“移动()步”等代码块中的数字输入时,会显示数字键盘。", + "number-pad/@name": "始终显示数字键盘", + "editor-number-arrow-keys/@description": "使用上下键增减数字输入框中的值,例如积木的数字框或角色属性输入框。", + "editor-number-arrow-keys/@name": "在编辑器中上下键增减值", + "editor-number-arrow-keys/@settings-name-alt": "按下 Alt + 按键时改变", + "editor-number-arrow-keys/@settings-name-altCustom": "按下 Alt + 按键时改变", + "editor-number-arrow-keys/@settings-name-regular": "按下常规按键时改变", + "editor-number-arrow-keys/@settings-name-regularCustom": "按下常规按键时改变", + "editor-number-arrow-keys/@settings-name-shift": "按下 Shift + 按键时改变", + "editor-number-arrow-keys/@settings-name-shiftCustom": "按下 Shift + 按键时改变", + "editor-number-arrow-keys/@settings-name-useCustom": "使用自定义值", + "editor-number-arrow-keys/@settings-select-alt-none": "无", + "editor-number-arrow-keys/@settings-select-regular-none": "无", + "editor-number-arrow-keys/@settings-select-shift-none": "无", + "expanded-backpack/@description": "将编辑器背包的内容排列成一个可扩展的双向网格,类似于造型库,并增加某些缩略图的大小。", + "expanded-backpack/@name": "多行背包", + "expanded-backpack/@settings-name-rows": "显示的行数", + "expanded-backpack/@settings-name-upscale": "更大的造型和脚本缩略图", + "script-snap/@description": "积木拖动之后会自动和积木区的格点对齐。", + "script-snap/@name": "把积木吸附到网格", + "script-snap/@preset-name-default": "默认", + "script-snap/@preset-name-half-block": "半个积木的高度", + "script-snap/@preset-name-whole-block": "整个积木的高度", + "script-snap/@settings-name-grid": "格点距离(像素)", + "fullscreen/@description": "修复了一些全屏模式下一些不希望的效果。全屏时同时让浏览器全屏并且隐藏绿旗所在工具栏。", + "fullscreen/@info-hideToolbarNotice": "如果你选择不显示工具栏,请记住你可以使用Esc键来退出项目播放器的全屏模式。", + "fullscreen/@name": "增强全屏", + "fullscreen/@settings-name-browserFullscreen": "点击全屏时同时让浏览器进入全屏模式", + "fullscreen/@settings-name-toolbar": "工具栏可见性", + "fullscreen/@settings-select-toolbar-hide": "从不", + "fullscreen/@settings-select-toolbar-hover": "当鼠标悬停时", + "fullscreen/@settings-select-toolbar-show": "总是", + "hide-stage/@description": "在“小舞台”和“大舞台”按钮旁边添加一个按钮,隐藏舞台和角色窗格,使代码区域更大。", + "hide-stage/@name": "隐藏舞台和角色窗格", + "editor-stepping/@description": "项目运行时高亮正在运行的积木", + "editor-stepping/@name": "给运行中的积木显示边框", + "editor-stepping/@settings-name-highlight-color": "高亮色" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/zh-tw.json b/src/addons/addons-l10n-settings/zh-tw.json new file mode 100644 index 00000000000..aa283b7e653 --- /dev/null +++ b/src/addons/addons-l10n-settings/zh-tw.json @@ -0,0 +1,292 @@ +{ + "cat-blocks/@info-watch": "“觀察鼠標光標”設置可能會影響編輯器打開時的性能。", + "cat-blocks/@name": "貓積木", + "cat-blocks/@settings-name-watch": "注視游標", + "editor-devtools/@description": "向編輯器添加新的列表選項:複製 / 貼上、更好地清理等!", + "editor-devtools/@name": "開發者工具", + "editor-devtools/@settings-name-enableCleanUpPlus": "增強的「整理積木」功能", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "在游標停駐處貼上積木", + "find-bar/@description": "讓你快速找到程式、造型、音效的查找工具。在你開始查找後,你還可以在程式編輯區裡用 Ctrl+向左鍵、Ctrl+向右鍵來找到上一個、下一個所要查找的內容。", + "find-bar/@info-developer-tools": "這個擴充功能之前是在「開發工具」裡,現在移至這兒了!", + "find-bar/@name": "查找程式功能", + "middle-click-popup/@info-developer-tools": "此插件以前是“開發人員工具”插件的一部分,但已移至此處。", + "middle-click-popup/@name": "編輯積木的名字", + "jump-to-def/@description": "讓你能用滑鼠中鍵或是 Shift+左鍵來快速找到函式的定義。", + "jump-to-def/@info-developer-tools": "這個擴充功能之前是在「開發工具」裡,現在移至這兒了!", + "jump-to-def/@name": "移至函式定義積木", + "data-category-tweaks-v2/@description": "讓積木類別中的資料(變量、清單)有更好的分類。", + "data-category-tweaks-v2/@name": "更好的資料分類", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "將積木移動到創建資料的上方", + "data-category-tweaks-v2/@settings-name-separateListCategory": "單獨將清單分類", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "把適用於當前角色的資料分類", + "block-palette-icons/@description": "除了以顏色分類積木,在裡面加上類別圖示。", + "block-palette-icons/@name": "積木分類圖示", + "hide-flyout/@info-hoverExplanation": "「懸停在工具箱上」模式可能會在你拖曳編輯區上的積木時不小心移除,如果你怕出事,可以先試試其它模式。", + "hide-flyout/@name": "自動隱藏程式工具箱", + "hide-flyout/@settings-name-speed": "動畫速度", + "hide-flyout/@settings-name-toggle": "觸發條件", + "hide-flyout/@settings-select-speed-default": "預設", + "hide-flyout/@settings-select-speed-long": "慢", + "hide-flyout/@settings-select-speed-none": "立即", + "hide-flyout/@settings-select-speed-short": "快速", + "hide-flyout/@settings-select-toggle-category": "點擊類別時", + "hide-flyout/@settings-select-toggle-cathover": "懸停在類別上", + "hide-flyout/@settings-select-toggle-hover": "懸停在工具箱上", + "mediarecorder/@description": "在程式編輯頁上的工具列添加一個「開始錄影」的功能,讓你可以將專案運行的過程錄製下來。", + "mediarecorder/@name": "專案視頻錄製", + "drag-drop/@description": "讓你可以把檔案直接拖入角色面板區然後直接上傳,當然,你還能將文字文件拖曳到文字輸入框裡。", + "drag-drop/@name": "拖曳檔案上傳", + "drag-drop/@settings-name-use-hd-upload": "使用高清圖片上傳", + "debugger/@name": "偵錯器", + "debugger/@settings-name-log_broadcasts": "記錄廣播訊息", + "debugger/@settings-name-log_clear_greenflag": "當綠旗被點擊後清除紀錄", + "debugger/@settings-name-log_clone_create": "記錄分身創建", + "debugger/@settings-name-log_greenflag": "記錄綠旗點擊", + "pause/@name": "編譯器暫停按鈕", + "mute-project/@description": "在你點擊綠旗時同時按住 Ctrl 鍵可以切換靜音模式。", + "mute-project/@info-macOS": "在 macOS 上,用 Cmd 鍵代替 Ctrl 鍵。", + "mute-project/@name": "專案播放時靜音", + "vol-slider/@description": "在綠旗控制項旁添加一個可以調整音量的控制桿。", + "vol-slider/@name": "專案音量控制桿", + "vol-slider/@settings-name-defVol": "預設音量", + "clones/@description": "在舞台上方添加一個計數器,顯示當前建立的分身數量。", + "clones/@name": "分身計數器", + "clones/@settings-name-showicononly": "只顯示圖標", + "mouse-pos/@description": "當鼠標在舞台上移動時,顯示所停駐的座標位置。", + "color-picker/@description": "在選色器裡添加一個可以直接輸入十六進制色碼的欄位。", + "color-picker/@name": "代碼選色器", + "remove-sprite-confirm/@description": "當你刪除專案的某個角色前,顯示一個確認的詢問視窗。", + "remove-sprite-confirm/@name": "角色刪除確認", + "block-count/@description": "在編輯器的工具列上顯示目前專案已使用的程式積木數量。這個擴充功能是之前「角色與程式計數」的一部分。", + "block-count/@name": "程式積木計數", + "onion-skinning/@description": "當編輯造型時,以半透明的方式顯示上一個或下一個造型,有助於製作動畫。在編輯器下方縮放控制旁有額外的控制按鈕。", + "onion-skinning/@name": "動畫描圖紙", + "onion-skinning/@settings-name-afterTint": "下個造型要染的顏色", + "onion-skinning/@settings-name-beforeTint": "上個造型要染的顏色", + "onion-skinning/@settings-name-default": "預設啟用", + "onion-skinning/@settings-name-layering": "預設圖層排列", + "onion-skinning/@settings-name-mode": "預設顯示模式", + "onion-skinning/@settings-name-next": "預設顯示下個造型", + "onion-skinning/@settings-name-opacity": "透明度(%)", + "onion-skinning/@settings-name-opacityStep": "透明漸進(%)", + "onion-skinning/@settings-name-previous": "預設顯示上個造型", + "onion-skinning/@settings-select-layering-behind": "在後面", + "onion-skinning/@settings-select-layering-front": "在前面", + "onion-skinning/@settings-select-mode-merge": "合併", + "onion-skinning/@settings-select-mode-tint": "染色", + "paint-snap/@settings-name-pageAxes": "對齊頁面 x 位置和 y 位置軸", + "paint-snap/@settings-name-pageCenter": "去中心", + "paint-snap/@settings-name-pageCorners": "轉到屏幕角落", + "paint-snap/@settings-name-threshold": "改變的距離", + "default-costume-editor-color/@description": "變更在造型編輯器上填滿與外框的預選色彩,以及線條的預設寬度。", + "default-costume-editor-color/@name": "自訂造型編輯器上工具預設值", + "default-costume-editor-color/@settings-name-fill": "填滿的預設色彩", + "default-costume-editor-color/@settings-name-persistence": "切換工具後使用上一個顏色而非預設顏色", + "default-costume-editor-color/@settings-name-stroke": "外框的預設色彩", + "default-costume-editor-color/@settings-name-strokeSize": "外框的預設寬度", + "bitmap-copy/@description": "允許你直接複製繪圖編輯器上的點陣圖,然後貼到其它的網站或是軟體上。", + "bitmap-copy/@info-norightclick": "不支援「滑鼠右鍵 → 複製」的方式,請使用 Ctrl + C 的快速鍵。", + "bitmap-copy/@name": "點陣圖像複製功能", + "2d-color-picker/@description": "用二維選色器取代編輯器中的彩度與亮度控制桿。在拖曳游標的同時按住 Shift 鍵可以只調整直向或橫向的值。", + "2d-color-picker/@name": "二維選色器", + "better-img-uploads/@description": "在「上傳造型」按鈕的上方添加一個按鈕,可以將上傳的點陣圖自動轉換成向量圖(SVG),以避免丟失質量。", + "better-img-uploads/@info-notSuitableEdit": "如果你在上傳圖片還需要編輯,請不要使用高清圖片上傳功能。", + "better-img-uploads/@name": "高清圖片上傳", + "better-img-uploads/@settings-name-fitting": "圖像尺寸", + "better-img-uploads/@settings-select-fitting-full": "原始尺寸", + "pick-colors-from-stage/@description": "允許造型或背景編輯器上的揀色工具能夠挑選舞台視窗裡的顏色。", + "pick-colors-from-stage/@name": "揀色工具能選到舞台裡的色彩", + "custom-block-shape/@description": "調整積木內邊距、圓角、缺口高度。", + "custom-block-shape/@info-paddingWarning": "這些設置的效果只有你才看得到,如果是其它使用者觀看你的程式時,可能會有程式重疊的問題。", + "custom-block-shape/@name": "自訂程式積木外形", + "custom-block-shape/@preset-description-default2": "與 Scratch 2.0 相似的積木外觀", + "custom-block-shape/@preset-description-default3": "Scratch 3.0 版所顯示的積木形狀", + "custom-block-shape/@preset-description-flat2": "把 Scratch 2.0 的積木去除圓角與缺口", + "custom-block-shape/@preset-description-flat3": "把 Scratch 3.0 的積木去除圓角與缺口", + "custom-block-shape/@preset-name-default2": "2.0 積木外形", + "custom-block-shape/@preset-name-default3": "3.0 積木外形", + "custom-block-shape/@preset-name-flat2": "2.0 積木扁平化", + "custom-block-shape/@preset-name-flat3": "3.0 積木扁平化", + "custom-block-shape/@settings-name-cornerSize": "圓角率(0-300%)", + "custom-block-shape/@settings-name-notchSize": "缺口高度(0-150%)", + "custom-block-shape/@settings-name-paddingSize": "內邊距(50-200%)", + "zebra-striping/@description": "讓控制類程式在巢狀化的時候,能夠替換裡面程式的積木顏色,這樣會比較好辨識(這種高亮語法的方式叫 zebra striping)。", + "zebra-striping/@name": "替換巢狀程式顏色", + "zebra-striping/@settings-name-intensity": "程式(0-100%)", + "zebra-striping/@settings-name-shade": "陰影", + "zebra-striping/@settings-select-shade-darker": "變暗", + "zebra-striping/@settings-select-shade-lighter": "變亮", + "editor-theme3/@description": "修改編輯器上每種積木的色彩。", + "editor-theme3/@name": "自訂積木色彩", + "editor-theme3/@preset-description-original": "修改成與 Scratch 2.0 版一樣的積木顔色", + "editor-theme3/@preset-name-black": "黑色", + "editor-theme3/@settings-name-Pen-color": "擴充功能", + "editor-theme3/@settings-name-comment-color": "註解", + "editor-theme3/@settings-name-control-color": "控制", + "editor-theme3/@settings-name-custom-color": "函式積木", + "editor-theme3/@settings-name-data-color": "變數", + "editor-theme3/@settings-name-data-lists-color": "清單", + "editor-theme3/@settings-name-events-color": "事件", + "editor-theme3/@settings-name-input-color": "函式積木輸入欄位", + "editor-theme3/@settings-name-looks-color": "外觀", + "editor-theme3/@settings-name-motion-color": "動作", + "editor-theme3/@settings-name-operators-color": "運算", + "editor-theme3/@settings-name-sensing-color": "偵測", + "editor-theme3/@settings-name-sounds-color": "音效", + "editor-theme3/@settings-name-text": "文字顔色", + "editor-theme3/@settings-select-text-black": "黑色", + "editor-theme3/@settings-select-text-colorOnBlack": "為文字著色,背景改成黑色", + "editor-theme3/@settings-select-text-colorOnWhite": "為文字著色,背景改成白色", + "editor-theme3/@settings-select-text-white": "白色", + "custom-block-text/@name": "自訂積木文字樣式", + "custom-block-text/@settings-name-bold": "粗體字", + "custom-block-text/@settings-name-shadow": "文字加陰影", + "editor-colored-context-menus/@description": "在程式積木上點擊右鍵會開啟選單,讓開啟的選單有和積木相同的背景顏色。", + "editor-colored-context-menus/@name": "讓右鍵選單有顏色", + "editor-stage-left/@description": "將舞台區移動到編輯器畫面的左側,就像 Scratch 2.0 那樣。", + "editor-stage-left/@info-reverseOrder": "如果要修改專案預覽視窗上的按鈕位置,可以使用另一個擴充功能 - 「對調專案控制項工具的順序」。", + "editor-stage-left/@name": "將舞台顯示在編輯器左側", + "editor-buttons-reverse-order/@description": "在專案預覽視窗的上方有些按鈕,把右邊的綠旗與停止按鈕,與左邊的顯示模式按鈕對調顯示順序,就像 Scratch 2.0 那樣。", + "editor-buttons-reverse-order/@name": "對調專案控制項工具的順序", + "variable-manager/@description": "在編輯器的音效頁籤右側添加一個變量與清單的頁籤,讓你更方便的管理它們。", + "variable-manager/@name": "變數管理器", + "search-sprites/@description": "在角色面板添加一個搜尋欄位,用來查找以名稱查找角色。", + "sprite-properties/@settings-name-transitionDuration": "動畫速度", + "sprite-properties/@settings-select-transitionDuration-long": "顯示", + "sprite-properties/@settings-select-transitionDuration-short": "快", + "gamepad/@description": "用 USB 或藍芽控制器(遊戲手柄)與專案互動。", + "gamepad/@name": "遊戲手柄支持", + "gamepad/@settings-name-hide": "當未偵測到遊戲手柄時隱藏設置按鈕。", + "editor-sounds/@description": "在你貼合或刪除積木的時候發出音效。", + "editor-sounds/@name": "編輯器音效", + "folders/@description": "將文件夾添加到角色面板,造型和音效清單上也可以。要創建資料夾,請在任何物件上點擊右鍵,使用選單中「創建資料夾」功能。建立後,點擊資料夾可以開啟或是關閉它。在其它物件上點右鍵可以指定放進哪個資料夾,也可以用拖曳的方式。", + "folders/@info-notice-folders-are-public": "啟用這個功能後,只有你自己看得到資料夾,其他用戶是看不到的。", + "folders/@name": "角色資料夾", + "block-switching/@description": "在編輯區上用滑鼠右鍵點擊積木,就能選擇相關的積木進行切換。", + "block-switching/@name": "程式積木切換", + "block-switching/@settings-name-control": "控制類積木", + "block-switching/@settings-name-data": "資料類積木", + "block-switching/@settings-name-event": "事件類積木", + "block-switching/@settings-name-extension": "擴展類積木", + "block-switching/@settings-name-looks": "外觀類積木", + "block-switching/@settings-name-motion": "動作類積木", + "block-switching/@settings-name-noop": "能切換的積木中包含自己", + "block-switching/@settings-name-operator": "運算類積木", + "block-switching/@settings-name-sensing": "偵測類積木", + "block-switching/@settings-name-sound": "音效類積木", + "load-extensions/@description": "在新建專案時自動添加音樂、畫筆或其它的擴展到編輯器上。", + "load-extensions/@name": "自動添加擴展應用", + "load-extensions/@settings-name-music": "音樂", + "load-extensions/@settings-name-pen": "畫筆", + "load-extensions/@settings-name-text2speech": "文字轉語音", + "load-extensions/@settings-name-translate": "翻譯", + "custom-zoom/@description": "自訂縮小、放大的閾值、速度還有初始的縮放率,還可以設定是否顯示縮放控制項。", + "custom-zoom/@name": "自訂程式編輯區的縮放率", + "custom-zoom/@settings-name-autohide": "自動隱藏縮放控制項", + "custom-zoom/@settings-name-maxZoom": "最大可放大到(100-500%)", + "custom-zoom/@settings-name-minZoom": "最小可縮小到(1-100%)", + "custom-zoom/@settings-name-speed": "自動隱藏動畫速度", + "custom-zoom/@settings-name-startZoom": "初始的縮放率(50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "縮放速度(50-200%)", + "custom-zoom/@settings-select-speed-default": "預設", + "custom-zoom/@settings-select-speed-long": "慢", + "custom-zoom/@settings-select-speed-none": "立即", + "custom-zoom/@settings-select-speed-short": "快速", + "initialise-sprite-position/@name": "自訂新建角色位置", + "initialise-sprite-position/@settings-name-x": "X 座標", + "initialise-sprite-position/@settings-name-y": "Y 座標", + "blocks2image/@description": "在程式編輯區上點擊滑鼠右鍵,可以把指定的積木匯出成 SVG/PNG 圖像。", + "blocks2image/@name": "保存積木為圖像", + "remove-curved-stage-border/@description": "拿掉舞台四周的圓角修飾,讓你能看見舞台的四個角。", + "remove-curved-stage-border/@name": "移除舞台邊緣圓角", + "transparent-orphans/@description": "調整編輯器中積木的透明度,可以為單一塊積木或是正在拖曳的積木個別設定透明值。", + "transparent-orphans/@name": "積木透明度", + "transparent-orphans/@settings-name-block": "程式區塊透明度(%)", + "transparent-orphans/@settings-name-dragged": "正在拖曳的積木透明度(%)", + "transparent-orphans/@settings-name-orphan": "單一積木透明度(%)", + "paint-by-default/@description": "選個角色/選個造型/選個背景/選個音效這些大按鈕預設都是從範例庫中選擇,改成其他操作,像是畫個造型、畫個背景…", + "paint-by-default/@name": "更改「選個xx」按鈕的預設操作", + "paint-by-default/@settings-name-backdrop": "添加背景", + "paint-by-default/@settings-name-costume": "添加造型", + "paint-by-default/@settings-name-sound": "添加音效", + "paint-by-default/@settings-name-sprite": "添加角色", + "paint-by-default/@settings-select-backdrop-library": "範例庫", + "paint-by-default/@settings-select-backdrop-paint": "繪畫", + "paint-by-default/@settings-select-backdrop-surprise": "驚喜", + "paint-by-default/@settings-select-backdrop-upload": "上傳", + "paint-by-default/@settings-select-costume-library": "範例庫", + "paint-by-default/@settings-select-costume-paint": "繪畫", + "paint-by-default/@settings-select-costume-surprise": "驚喜", + "paint-by-default/@settings-select-costume-upload": "上傳", + "paint-by-default/@settings-select-sound-library": "範例庫", + "paint-by-default/@settings-select-sound-record": "錄製", + "paint-by-default/@settings-select-sound-surprise": "驚喜", + "paint-by-default/@settings-select-sound-upload": "上傳", + "paint-by-default/@settings-select-sprite-library": "範例庫", + "paint-by-default/@settings-select-sprite-paint": "繪畫", + "paint-by-default/@settings-select-sprite-surprise": "驚喜", + "paint-by-default/@settings-select-sprite-upload": "上傳", + "block-cherry-picking/@description": "讓你可以按住 Ctrl 鍵把單個積木從程式區塊裡拖曳出來(原來會拖曳出黏在後面的所有積木)。", + "block-cherry-picking/@info-flipControls": "如果啟用「功能反轉」,那麼拖曳單個積木就會變成預設動作,按住 Ctrl 則會變成拖曳整個程式區塊。", + "block-cherry-picking/@info-macContextDisabled": "在 macOS 上,用 Cmd 鍵代替 Ctrl 鍵。", + "block-cherry-picking/@name": "按住 Ctrl 鍵拖曳單個程式積木", + "block-cherry-picking/@settings-name-invertDrag": "功能反轉", + "hide-new-variables/@name": "隱藏新的變數面板", + "editor-extra-keys/@description": "添加更多的鍵到“key () pressed?” 和“按下 () 鍵時”,例如'enter'、點、逗號等。 這些鍵甚至對沒有 Scratch Addons 的用戶也有效。", + "editor-extra-keys/@info-experimentalKeysWarn": "「實驗中按鍵」包含等號、斜槓號、分號等。它們可能不適用於所有操作系統或是鍵盤佈局。", + "editor-extra-keys/@info-shiftKeysWarn": "「Shift 按鍵」通常是結合鍵,像是 Shift+數字鍵,像是井字符號、感嘆號等。這些按鍵僅適用於「當()鍵被按下」積木,而且也不一定能在所有操作系統或鍵盤佈局上使用。", + "editor-extra-keys/@name": "額外的按鈕選項", + "editor-extra-keys/@settings-name-experimentalKeys": "顯示實驗鍵", + "editor-extra-keys/@settings-name-shiftKeys": "顯示 shift 按鈕 ", + "hide-delete-button/@description": "隱藏角色、造型、音效上的刪除按鈕(垃圾桶圖示)。如果要刪除,要在項目上點擊滑鼠右鍵,使用選單上的刪除功能。", + "hide-delete-button/@name": "隱藏刪除按鈕", + "hide-delete-button/@settings-name-costumes": "造型與背景", + "hide-delete-button/@settings-name-sounds": "音效", + "hide-delete-button/@settings-name-sprites": "角色", + "no-script-bumping/@description": "讓你在移動或修改程式時,不會因為一時的程式重疊導致程式原來的位置被亂改變。", + "no-script-bumping/@name": "停止自動分開重疊的程式", + "disable-stage-drag-select/@description": "移除原來在編輯器上可以任意拖曳舞台上的角色的功能。除非設定該角色為可拖曳,或是你可以按住 Shift 鍵加以拖曳。", + "disable-stage-drag-select/@name": "編輯器內不可拖曳角色", + "move-to-top-bottom/@description": "在造型或是音效項目右鍵開啟選單時,會有移至最上面、移至最下面的選項。", + "move-to-top-bottom/@info-developer-tools": "這個擴充功能之前是在「開發工具」裡,現在移至這兒了!", + "move-to-top-bottom/@name": "移至最上面或最下面", + "disable-paste-offset/@description": "在造型編輯器上使用複製貼上功能時,在原位置貼上,不要向右下偏移。", + "disable-paste-offset/@info-vanilla": "在沒有此Addon的情況下,也可以通過 Alt+click來做這件事。", + "disable-paste-offset/@name": "複製圖案時不要偏移", + "block-duplicate/@description": "透過按住 Alt 按鍵與拖曳程式積木,能讓你更快的複製整個程式區塊。加上 Ctrl 鍵則可以複製出你停駐的單個積木。", + "block-duplicate/@info-mac": "macOS 上使用 Option 按鍵代替 Alt 鍵,Command 鍵取代 Ctrl 鍵。", + "block-duplicate/@name": "按住 Alt 鍵以複製積木", + "rename-broadcasts/@description": "添加一個選項以在boardcasts塊的下拉列表中重命名廣播消息的名字。", + "rename-broadcasts/@name": "重新命名廣播訊息", + "swap-local-global/@description": "在本來的重新命名變數或清單的面板上添加了更多功能:在「適用於所有角色」和「僅適用當前角色」之間轉換。也可以用滑鼠右鍵點擊變數,在功能表中直接轉換。", + "swap-local-global/@name": "在「適用於所有角色」和「僅適用當前角色」之間轉換", + "editor-comment-previews/@description": "當你把游標停駐在積木或者摺疊的註解上,能夠馬上預覽到註解的內容。當連接的註解離積木太遠,或是很多註解需要摺疊時,這會很有用。", + "editor-comment-previews/@name": "預覽註解", + "editor-comment-previews/@settings-name-delay": "延遲時間", + "editor-comment-previews/@settings-name-follow-mouse": "跟隨滑鼠游標", + "editor-comment-previews/@settings-name-hover-view": "停駐在已摺疊註解時預覽內容", + "editor-comment-previews/@settings-name-hover-view-block": "停駐在已連接註解的積木上時預覽註解內容", + "editor-comment-previews/@settings-name-hover-view-procedure": "停駐在函式積木上時顯示定義的註解內容", + "editor-comment-previews/@settings-name-reduce-animation": "減少彈出動畫", + "editor-comment-previews/@settings-name-reduce-transparency": "減少透明度", + "editor-comment-previews/@settings-select-delay-long": "較長", + "editor-comment-previews/@settings-select-delay-none": "無", + "editor-comment-previews/@settings-select-delay-short": "較短", + "columns/@description": "把工具箱的積木分類改成兩列顯示,並把面板放置在編輯器頂部,就像 Scratch 2.0 版那樣。", + "columns/@name": "兩列式積木選單", + "number-pad/@name": "一直顯示數字鍵盤", + "script-snap/@description": "在程式編輯區上拖曳程式時,會自動與畫面的網格貼齊。", + "script-snap/@name": "程式積木貼齊網格", + "script-snap/@preset-name-default": "預設", + "script-snap/@preset-name-half-block": "半個積木", + "script-snap/@preset-name-whole-block": "整個積木", + "script-snap/@settings-name-grid": "格點間距(像素)", + "fullscreen/@description": "修復了一些全屏顯示模式下的一些問題,讓全屏時同時讓瀏覽器也以全屏展開,且可以選擇隱藏綠旗等工具列。", + "fullscreen/@name": "增強全屏", + "fullscreen/@settings-name-browserFullscreen": "全屏模式時同時讓瀏覽器進入全屏", + "hide-stage/@description": "在專案預覽視窗上添加一個按鈕,用來隱藏舞台和角色面板,按鈕按鈕後能讓編輯區的空間變大。", + "hide-stage/@name": "添加隱藏舞台與角色面板按鈕", + "editor-stepping/@description": "專案運行時,以顏色高亮正在執行的程式積木。", + "editor-stepping/@name": "高亮執行中的程式", + "editor-stepping/@settings-name-highlight-color": "高亮顏色" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/de.json b/src/addons/addons-l10n/de.json index b45d6099e87..6de8c6c3336 100644 --- a/src/addons/addons-l10n/de.json +++ b/src/addons/addons-l10n/de.json @@ -1,52 +1,29 @@ { - "editor-devtools/bottom": "an unterste Stelle verschieben", + "_general/blocks/anticlockwise": "im Gegenuhrzeigersinn", + "_general/blocks/clockwise": "im Uhrzeigersinn", + "_general/blocks/green-flag": "Flagge", "editor-devtools/clean-plus": "Blöcke aufräumen +", - "editor-devtools/code-tab-features": "Code-Tab-Funktionen", "editor-devtools/copy-all": "Alle Kopieren", "editor-devtools/copy-block": "Kopieren", - "editor-devtools/copy-to-clipboard": "In Zwischenablage kopieren", - "editor-devtools/copy-to-clipboard-desc": "Wenn mit der rechten Maustaste auf einen Block geklickt wird, stehen 3 neue Optionen zur Verfügung: Alle Kopieren, Block Kopieren und Block Ausschneiden. Die Option Alles Kopieren kopiert alles einschließlich die Blöcke unterhalb des angeklickten Blockes in die Zwischenablage. Block Kopieren kopiert nur den angeklickten Block und seinen Inhalt, sonst nichts, was sich darunter befindet. Block Ausschneiden kopiert ihn und entfernt ihn aus dem Arbeitsbereich.", - "editor-devtools/costume-tab-features": "Kostüm-Tab Funktionen", - "editor-devtools/ctrl-lr": "Strg + Links, Strg + Rechts", - "editor-devtools/ctrl-lr-costume-desc": "Diese Tasten navigieren dich zum vorherigen/nächsten Kostüm in der Figur.", - "editor-devtools/ctrl-lr-desc": "Navigiere im Codebereich zur vorherigen / nächsten besuchten Position (nach Verwendung der zum-Block-navigieren oder Suchleiste). Auf diese Weise kann mit einem Mittelklick auf einen Benutzerdefinierten Block zu seiner Definition gesprungen und danach mit Strg + Links zur Stelle, an der man sich zuvor befunden hat, zurückgekehrt werden.", - "editor-devtools/ctrl-space": "Strg + Leertaste, Mittelklick oder Umschalt + Klick", - "editor-devtools/ctrl-space-desc": "Erstellt ein Pop-up, in dem du den Namen eines Blocks (oder nur Teile davon) eingeben kannst, um den Block dann von dort aus in deinem Code verwenden zu können. Halt während dem Ziehen die Umschalttaste gedrückt, um das EIngabefeld geöffnet zu lassen.", "editor-devtools/cut-block": "Ausschneiden", - "editor-devtools/deep": "Tief", - "editor-devtools/find": "Finden", - "editor-devtools/find-bar": "Suchleiste", - "editor-devtools/find-bar-costume-desc": "Klicke, um alle Kostüme nach Namen aufzulisten und gib etwas ein, um eines zu finden. Wähle mit den Pfeiltasten oder der Maus einen Namen, um direkt zu diesem Kostüm zu gelangen.", - "editor-devtools/find-placeholder": "Finden (Strg + F)", - "editor-devtools/help": "Hilfe", - "editor-devtools/help-make-space": "Platz machen", - "editor-devtools/help-make-space-desc": "Mache mehr Platz um ein Skript, indem du mit der rechten Maustaste auf einen Codestapel klickst und \"Platz machen\" auswählst.", - "editor-devtools/help-new": "★Neu★", - "editor-devtools/help-title": "Scratch 3-Entwicklertools", - "editor-devtools/improved-tidy-up": "Verbessertes Aufräumen von Blöcken", - "editor-devtools/improved-tidy-up-desc": "Klicke mit der rechten Maustaste auf das Skriptfenster, um das Menü aufzurufen, und die Option zum Aufräumen der Blöcke wird durch die Option Blöcke aufräumen + ersetzt worden sein. Wenn diese Option angeklickt wird, bleiben Skriptspalten erhalten, es wird versucht, die Kommentare richtig auszurichten und alle verwaisten Variablen usw. zu entfernen.", - "editor-devtools/insert": "Einfügen", - "editor-devtools/interactive-find-bar": "Interaktive Suchleiste (Strg + F)", - "editor-devtools/interactive-find-bar-desc": "Finde und springe schnell zu jedem Benutzerdefinierten Block, jeder Variable, jedem Ereignis- oder Startblock, der in einer Figur definiert ist, indem du auf die neue Suchleiste rechts neben den Skripte-, Kostüme- und Klänge-Tabs klickst. Beginne mit der Eingabe, um die Liste herunterzufiltern. Verwende die Pfeiltasten oben und unten, um zwischen den möglichen Einträgen zu wechseln, und die Pfeile links und rechts, um zwischen allen gefundenen Instanzen dieses Blocks zu wechseln.", "editor-devtools/lists": "Listen", "editor-devtools/make-space": "Platz machen", - "editor-devtools/middleclick": "Gehe Zu", - "editor-devtools/middleclick-desc": "Bei Benutzung der mittleren Maustaste oder Umschalt + Klick auf einer Variable oder einem Benutzerdefinierten Block springt man zu seiner Definition oder öffnet ihn in der interaktiven Suchleiste.", - "editor-devtools/orphaned": "{count, plural, one {Entwicklertools: 1 alleinstehenden Variablenblock löschen?} other {Entwicklertools: # alleinstehende Variablenblöcke löschen?} }", + "editor-devtools/orphaned": "{count, plural, one {1 alleinstehenden Variablenblock löschen?} other {# alleinstehende Variablenblöcke löschen?} }", "editor-devtools/paste": "Einfügen", - "editor-devtools/paste-from-clipboard": "Aus Zwischenablage einfügen", - "editor-devtools/paste-from-clipboard-desc": "Fügt von der Zwischenablage ein, aber an der Stelle, an der sich der Mauszeiger befindet, damit du es dann platzieren kannst (und nicht wie bei der aktuellen Scratch-Implementierung an der Stelle vom kopierten Block).", - "editor-devtools/replace": "Entwicklertools: Alle {name} in dieser Figur austauschen mit der Variable namens:", - "editor-devtools/start-typing": "Beginne mit der Eingabe...", + "editor-devtools/replace": "Alle {name} in dieser Figur austauschen mit der Variable namens:", "editor-devtools/swap": "{var} in dieser Figur austauschen", - "editor-devtools/swap-variable": "Variable in Figur austauschen", - "editor-devtools/swap-variable-desc": "Klicke mit der rechten Maustaste auf eine Variable in den Skripten für diese neue Option. Mit ihr kannst du alle Verweise auf diese Variable in der aktuellen Figur auf einmal auf eine andere Variable umtauschen. Eignet sich hervorragend, wenn ein Fehler gemacht wurde und von einer Variable zu einer anderen gewechselt werden soll oder um von \"Für alle Figuren\" zu \"Nur für diese Figur\" zu wechseln. Diese Option wird die alte Variable nicht entfernen und wird keine Variablen in anderen Figuren beeinflussen.", - "editor-devtools/top": "an oberste Stelle verschieben", - "editor-devtools/unused-list": "{count, plural, one {Entwicklertools: 1 unbenutzte lokale Liste entfernen? Hier ist sie:\n} other {Entwicklertools: # unbenutzte lokale Listen entfernen? Hier sind sie:\n} }", - "editor-devtools/unused-var": "{count, plural, one {Entwicklertools: 1 unbenutzte lokale Variable löschen? Hier ist sie:\n} other {Entwicklertools: # unbenutzte lokale Variablen löschen? Hier sind sie:\n} }", + "editor-devtools/unused-list": "{count, plural, one {1 unbenutzte lokale Liste entfernen? Hier ist sie:\n} other {# unbenutzte lokale Listen entfernen? Hier sind sie:\n} }", + "editor-devtools/unused-var": "{count, plural, one {1 unbenutzte lokale Variable löschen? Hier ist sie:\n} other {# unbenutzte lokale Variablen löschen? Hier sind sie:\n} }", "editor-devtools/var-not-exist": "Diese Variable existiert nicht...", "editor-devtools/variables": "Variablen", - "editor-devtools/youtube": "YouTube-Tutorials", + "find-bar/complex-broadcast": "(Parameter)", + "find-bar/event": "Ereignis {name}", + "find-bar/find-placeholder": "Finden (Strg+F)", + "find-bar/list-global": "LISTE {name}", + "find-bar/list-local": "Liste {name}", + "find-bar/var-global": "VARIABLE {name}", + "find-bar/var-local": "Variable {name}", + "middle-click-popup/start-typing": "Beginne mit der EIngabe...", "editor-searchable-dropdowns/createBroadcast": "Nachricht „{name}“ erstellen", "editor-searchable-dropdowns/createGlobalList": "Liste „{name}“ für alle Figuren erstellen", "editor-searchable-dropdowns/createGlobalVariable": "Variable „{name}“ für alle Figuren erstellen", @@ -59,13 +36,13 @@ "hide-flyout/unlock": "Palette loslösen", "mediarecorder/cancel": "Abbrechen", "mediarecorder/click-flag": "Warte...", - "mediarecorder/click-flag-description": "Klicke die Grüne Flagge, um die Aufnahme zu starten. Klicke auf diesen Button, um sie zu beenden.", + "mediarecorder/click-flag-description": "Klicke auf die Grüne Flagge, um die Aufnahme zu starten. Klicke auf diese Schaltfläche, um sie zu beenden.", "mediarecorder/option-title": "Aufnahmeoptionen", "mediarecorder/record": "Aufnehmen", "mediarecorder/record-after-flag": "Aufnahme erst starten, wenn die Grüne Flagge angeklickt wird", "mediarecorder/record-audio": "Projektklänge einschließen", "mediarecorder/record-audio-description": "Dies schließt Text zu Sprache nicht ein.", - "mediarecorder/record-description": "Die Bühne wird als WebM-Datei aufgenommen. Du kannst sie auf deinem Computer speichern, wenn die Aufnahme beendet ist.", + "mediarecorder/record-description": "Nimmt die Bühne als Datei im Format {extension} auf. Du kannst die Aufnahme am Ende auf deinem Computer speichern.\nHinweis: Variablen- und Listenanzeigen werden nicht sichtbar sein.", "mediarecorder/record-duration": "Aufnahmedauer (in Sekunden)", "mediarecorder/record-mic": "Mikrofonklänge einschließen", "mediarecorder/record-until-stop": "Aufnahme anhalten, wenn das Projekt gestoppt wird", @@ -95,10 +72,14 @@ "debugger/log-msg-flag-clicked": "Grüne Flagge angeklickt.", "debugger/no-logs": "Es gibt keine Logs zum Anzeigen.", "debugger/no-threads-running": "Es werden momentan keine Threads ausgeführt.", + "debugger/performance-clonecount-graph-tooltip": "Klone: {clones}", + "debugger/performance-clonecount-title": "Klone", "debugger/step": "Schritt", "debugger/step-desc": "Führt einen Block aus.", + "debugger/tab-performance": "Leistung", "debugger/unknown-sprite": "(unbekannte Figur)", "debugger/unpause": "Fortsetzen", + "pause/play": "Fortfahren", "clones/clones": "Klone: {cloneCount}", "color-picker/hex": "Hexadezimal-Farbe", "remove-sprite-confirm/confirm": "Möchtest du diese Figur löschen?", @@ -115,19 +96,41 @@ "onion-skinning/settings": "Einstellungen für Onion Skinning", "onion-skinning/tint": "Färbung", "onion-skinning/toggle": "Onion Skinning umschalten", + "paint-snap/boxCenter": "Auswahlmitte", + "paint-snap/boxCorners": "Auswahlecken", + "paint-snap/boxEdgeMids": "Mittelpunkte von Auswahlrändern", + "paint-snap/objectCenters": "Objektmitten", + "paint-snap/objectCorners": "Objektecken", + "paint-snap/objectEdges": "Objektecken", + "paint-snap/objectMidlines": "Objektmittellinien", + "paint-snap/off": "Aus", + "paint-snap/on": "Ein", + "paint-snap/pageAxes": "X- und Y- Achsen der Seite ", + "paint-snap/pageCenter": "Seitenmitte", + "paint-snap/pageCorners": "Seitenecken", + "paint-snap/pageEdges": "Seitenrand", + "paint-snap/settings": "Einstellungen für Einrasten", + "paint-snap/snapFrom": "Einrasten von:", + "paint-snap/snapTo": "Einrasten an:", + "paint-snap/threshold": "Einrasteabstand", + "paint-snap/toggle": "Einrasten umschalten", "2d-color-picker/shade": "Schattieren", "better-img-uploads/upload": "In HD hochalden", "variable-manager/for-all-sprites": "Variablen für alle Figuren", "variable-manager/for-this-sprite": "Variablen für diese Figur", "variable-manager/search": "Suchen", + "variable-manager/too-big": "Klicke hier, um diesen langen Wert anzuzeigen.", "variable-manager/variables": "Variablen", "search-sprites/placeholder": "Figuren suchen", + "sprite-properties/close-properties-panel-tooltip": "Eigenschaften schließen", + "sprite-properties/open-properties-panel-tooltip": "Eigenschaften öffnen", "gamepad/axes-a-b": "Achsen {a} & {b}", "gamepad/axis-arrows": "Pfeiltasten", "gamepad/axis-custom": "Benutzerdefiniert", "gamepad/axis-none": "Keine", "gamepad/browser-support": "Dieser Browser und dieses Betriebssystem haben bekannte Bugs, die die Verwendung dieses Addons erschweren könnten. Versuche einen anderen Browser, falls du auf Probleme stößt.", "gamepad/button-n": "Knopf {n}", + "gamepad/clear": "Alle Steuerungen löschen", "gamepad/config-header": "Dieser Kommentar enthält die Konfiguration für Gamepad-Steuerung in Tools von Drittanbietern oder Websites wie https://turbowarp.org/\nNicht eigenhändig bearbeiten", "gamepad/key-click": "Klicken", "gamepad/key-down": "Unten", @@ -138,8 +141,9 @@ "gamepad/key-up": "Oben", "gamepad/keyinput-title": "Klicke und drücke eine Taste oder klicke, um Knopf zu wechseln. Drücke Esc zum abbrechen. Löschen oder Entf zum Löschen.", "gamepad/no-controllers": "Keine Controller gefunden. Schließe einen an und drücke einen der Knöpfe.", + "gamepad/reset": "Alle Steuerungen zu Projektstandards zurücksetzen", "gamepad/settings": "Gamepad-Einstellungen", - "gamepad/store-in-project": "Speichere diese Einstellungen im Projekt, um die Standardkonfiguration zu ersetzen (Experimentelles Werkzeug für Projektentwickler)", + "gamepad/store-in-project": "Die oben angeführten Mappings im Projekt speichern. Nach dem Speichern des Projekts werden sie die neue Standardkonfiguration sein.", "folders/add-to-folder": "zu Ordner \"{folder}\" hinzufügen", "folders/closed-folder": "Ordner", "folders/confirm-backpack-folder": "Den ganzen Ordner im Lager speichern?", @@ -159,6 +163,8 @@ "block-switching/control_repeat_until": "wiederhole bis", "block-switching/control_wait_until": "warte bis", "block-switching/data_changevariableby": "ändere Variable um", + "block-switching/data_deletealloflist": "Alle löschen", + "block-switching/data_deleteoflist": "Element löschen", "block-switching/data_hidelist": "verstecke Liste", "block-switching/data_hidevariable": "verstecke Variable", "block-switching/data_insertatlist": "füge Element ein", @@ -175,6 +181,8 @@ "block-switching/looks_changeeffectby": "ändere Effekt um", "block-switching/looks_changesizeby": "ändere Größe um", "block-switching/looks_costumenumbername": "Kostümnummer oder -name", + "block-switching/looks_goforwardbackwardlayers": "gehe Ebenen nach vorne oder hinten", + "block-switching/looks_gotofrontback": "gehe zu vorederste oder hinterste Ebene", "block-switching/looks_hide": "verstecke dich", "block-switching/looks_nextbackdrop": "nächstes Bühnenbild", "block-switching/looks_nextcostume": "nächstes Kostüm", @@ -209,14 +217,18 @@ "block-switching/pen_setPenHueToNumber": "setze Farbton auf", "block-switching/pen_setPenShadeToNumber": "setze Helligkeit auf", "block-switching/pen_setPenSizeTo": "setze Größe auf", + "block-switching/sensing_coloristouchingcolor": "Farbe berührt Farbe?", "block-switching/sensing_mousex": "Maus-x-Position", "block-switching/sensing_mousey": "Maus-y-Position", + "block-switching/sensing_touchingcolor": "wird Farbe berührt?", "block-switching/sound_changeeffectby": "ändere Effekt um", "block-switching/sound_changevolumeby": "ändere Lautstärke um", "block-switching/sound_play": "Start", "block-switching/sound_playuntildone": "spiele Klang ganz", "block-switching/sound_seteffectto": "setze Effekt auf", "block-switching/sound_setvolumeto": "setze Lautstärke auf", + "copy-reporter/copy-to-clipboard": "Kopieren", + "copy-reporter/copy-value": "Wert kopieren", "blocks2image/error_blocks_not_added": "Füge Blöcke zum Arbeitsbereich hinzu!", "blocks2image/export_all_to_PNG": "Alle als PNG exportieren", "blocks2image/export_all_to_SVG": "Alle als SVG exportieren", @@ -225,6 +237,10 @@ "editor-extra-keys/enter-key": "Enter", "move-to-top-bottom/bottom": "an letzte Stelle verschieben", "move-to-top-bottom/top": "an erste Stelle verschieben", + "move-to-top-layer/move-to-front-layer": "gehe zu vorderster Ebene", + "rename-broadcasts/RENAME_BROADCAST": "Nachricht umbenennen", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Nachricht umbenennen", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Alle \"{name}\"-Nachrichten umbenennen nach:", "swap-local-global/cant-convert-cloud": "Cloudvariablen können nicht in nur für diese Figur umgewandelt werden.", "swap-local-global/cant-convert-conflict": "Konnte nicht umwandeln, weil Konflikte mit Variablen in einer anderen Figur auftreten würden: {sprites}", "swap-local-global/cant-convert-stage": "Die Bühne kann nicht Variablen nur für diese Figur haben.", diff --git a/src/addons/addons-l10n/en.json b/src/addons/addons-l10n/en.json index 4e702a63fcc..cf08ee293eb 100644 --- a/src/addons/addons-l10n/en.json +++ b/src/addons/addons-l10n/en.json @@ -1,53 +1,29 @@ { - "editor-devtools/bottom": "send to bottom", + "_general/blocks/anticlockwise": "anti-clockwise", + "_general/blocks/clockwise": "clockwise", + "_general/blocks/green-flag": "flag", "editor-devtools/clean-plus": "Clean up Blocks +", - "editor-devtools/code-tab-features": "Code Tab Features", "editor-devtools/copy-all": "Copy All", "editor-devtools/copy-block": "Copy Block", - "editor-devtools/copy-to-clipboard": "Copy to Clipboard", - "editor-devtools/copy-to-clipboard-desc": "Right click a block and 3 new options are available to Copy All, Copy Block, and Cut Block. The Copy All will copy to the clipboard everything including and below the block you clicked on. Copy block will only copy the current block and its contents, but nothing below. And cut block will copy it and remove it from the code area.", - "editor-devtools/costume-tab-features": "Costumes Tab Features", - "editor-devtools/ctrl-lr": "Ctrl + Left, Ctrl + Right", - "editor-devtools/ctrl-lr-costume-desc": "These keys navigate you to the previous / next costume in the sprite.", - "editor-devtools/ctrl-lr-desc": "Navigate to previous / next visited position in the code area (after using the navigate to block or find bar). This allows you to middle click a custom block to go to its definition, then press ctrl + Left to go back to where you were before.", - "editor-devtools/ctrl-space": "Ctrl + Space, Middle Click, or Shift + Click", - "editor-devtools/ctrl-space-desc": "Pops up a floating input box where you can type the name of a block (or parts of it) and drag the block into the code to make use of it right there. Hold Shift while dragging to avoid closing the box when adding multiple blocks at once.", "editor-devtools/cut-block": "Cut Block", - "editor-devtools/deep": "Deep", - "editor-devtools/find": "Find", - "editor-devtools/find-bar": "Find Bar", - "editor-devtools/find-bar-costume-desc": "Click to list all costumes by name, and type to locate one. Use the arrow keys or mouse to click a name to jump straight to that costume.", - "editor-devtools/find-placeholder": "Find (Ctrl+F)", - "editor-devtools/help": "Help", - "editor-devtools/help-make-space": "Make Space", - "editor-devtools/help-make-space-desc": "Make extra space around a script by right clicking on the script and choosing \"Make Space\".", - "editor-devtools/help-new": "★New★", - "editor-devtools/help-title": "Scratch 3 Developer Tools", - "editor-devtools/improved-tidy-up": "Improved Code Clean Up", - "editor-devtools/improved-tidy-up-desc": "Right click on the code area to pop up the menu and the Clean up Blocks option will have been replaced by a Clean up Blocks + option. Use this to tidy your scripts and it will preserve your scripts columns as well as attempt to align the comments and remove all those orphaned variables, etc.", - "editor-devtools/insert": "Insert", - "editor-devtools/interactive-find-bar": "Interactive Find Bar (Ctrl + F)", - "editor-devtools/interactive-find-bar-desc": "Quickly find and jump to any Custom Block, Variable, Event, or Hat block defined in a sprite by clicking on the new find bar located to the right of the Code, Costumes and Sounds tabs. Begin typing to filter down the list. Use the up and down arrow keys to switch between the possible entries, and the left and right arrows to cycle between all found instances of that block.", "editor-devtools/lists": "lists", "editor-devtools/make-space": "Make Space", - "editor-devtools/middleclick": "Jump To", - "editor-devtools/middleclick-desc": "Using the middle mouse button or Shift + Click on a variable or custom block allows you to jump to its definition or open it in the interactive find bar.", "editor-devtools/orphaned": "{count, plural, one {Developer tools: Delete 1 orphaned reporter block?} other {Developer tools: Delete # orphaned reporter blocks?} }", "editor-devtools/paste": "Paste", - "editor-devtools/paste-from-clipboard": "Paste from Clipboard", - "editor-devtools/paste-from-clipboard-desc": "Pastes from the clipboard, but importantly pastes it where your mouse cursor is so you can then place it (rather than placing it where you copied it from like the current scratch implementation).", "editor-devtools/replace": "Developer tools: Switch all {name} in this sprite for the variable named:", - "editor-devtools/start-typing": "Start Typing...", "editor-devtools/swap": "Swap {var} in Sprite", - "editor-devtools/swap-variable": "Swap Variable in Sprite", - "editor-devtools/swap-variable-desc": "Right click a variable in your scripts for this new option. It allows you to switch all references to this variable in the current sprite all in one go to another variable. This is great for when you made a mistake and want to switch from one variable to another or need to change from a 'for all sprites' to a 'for this sprite only'. This option will not remove the old variable and will not affect any other sprites variables.", - "editor-devtools/top": "send to top", - "editor-devtools/tutorials": "Tutorials", "editor-devtools/unused-list": "{count, plural, one {Developer tools: Delete 1 unused local list? Here it is:\n} other {Developer tools: Delete # unused local lists? Here they are:\n} }", "editor-devtools/unused-var": "{count, plural, one {Developer tools: Delete 1 unused local variable? Here it is:\n} other {Developer tools: Delete # unused local variables? Here they are:\n} }", "editor-devtools/var-not-exist": "That variable does not exist...", "editor-devtools/variables": "variables", - "editor-devtools/youtube": "YouTube tutorials", + "find-bar/complex-broadcast": "(expression)", + "find-bar/event": "event {name}", + "find-bar/find-placeholder": "Find (Ctrl+F)", + "find-bar/list-global": "LIST {name}", + "find-bar/list-local": "list {name}", + "find-bar/var-global": "VAR {name}", + "find-bar/var-local": "var {name}", + "middle-click-popup/start-typing": "Start Typing...", "editor-searchable-dropdowns/createBroadcast": "Create message \"{name}\"", "editor-searchable-dropdowns/createGlobalList": "Create list \"{name}\" for all sprites", "editor-searchable-dropdowns/createGlobalVariable": "Create variable \"{name}\" for all sprites", @@ -62,11 +38,11 @@ "mediarecorder/click-flag": "Waiting...", "mediarecorder/click-flag-description": "Click the green flag to start recording. Click this button to stop.", "mediarecorder/option-title": "Record Options", - "mediarecorder/record": "Start Recording", + "mediarecorder/record": "Record", "mediarecorder/record-after-flag": "Do not start recording until the Green Flag is clicked", "mediarecorder/record-audio": "Include project sounds", "mediarecorder/record-audio-description": "This does not include Text-to-Speech.", - "mediarecorder/record-description": "Record the stage as a WebM file. You can save it to your computer after the recording is finished.", + "mediarecorder/record-description": "Record the stage as a {extension} file. You can save it to your computer after the recording is finished.\nNote: variable and list monitors will not be visible.", "mediarecorder/record-duration": "Record Duration (in seconds)", "mediarecorder/record-mic": "Include sounds from microphone", "mediarecorder/record-until-stop": "Stop recording after the project has stopped", @@ -97,14 +73,20 @@ "debugger/log-msg-flag-clicked": "Green flag clicked.", "debugger/no-logs": "There are no logs to display.", "debugger/no-threads-running": "No threads running.", + "debugger/performance-clonecount-graph-tooltip": "Clones: {clones}", + "debugger/performance-clonecount-title": "Clones", + "debugger/performance-framerate-graph-tooltip": "FPS: {fps}", + "debugger/performance-framerate-title": "FPS", "debugger/step": "Step", "debugger/step-desc": "Executes one block.", "debugger/tab-logs": "Logs", + "debugger/tab-performance": "Performance", "debugger/tab-threads": "Threads", "debugger/thread": "Thread {id}", "debugger/unknown-sprite": "(unknown sprite)", "debugger/unpause": "Resume", "pause/pause": "Pause", + "pause/play": "Resume", "clones/clones": "clones: {cloneCount}", "color-picker/hex": "hex color", "remove-sprite-confirm/confirm": "Do you want to delete the sprite?", @@ -121,13 +103,34 @@ "onion-skinning/settings": "Onion Skinning Settings", "onion-skinning/tint": "Tint", "onion-skinning/toggle": "Toggle Onion Skinning", + "paint-snap/boxCenter": "Center of selection", + "paint-snap/boxCorners": "Corners of selection", + "paint-snap/boxEdgeMids": "Selection edge midpoints", + "paint-snap/objectCenters": "Centers of objects", + "paint-snap/objectCorners": "Corners of objects", + "paint-snap/objectEdges": "Edges of objects", + "paint-snap/objectMidlines": "Midlines of objects", + "paint-snap/off": "Off", + "paint-snap/on": "On", + "paint-snap/pageAxes": "Page x and y axes", + "paint-snap/pageCenter": "Center of the page", + "paint-snap/pageCorners": "Corners of the page", + "paint-snap/pageEdges": "Edges of the page", + "paint-snap/settings": "Snap Settings", + "paint-snap/snapFrom": "Snap from:", + "paint-snap/snapTo": "Snap to:", + "paint-snap/threshold": "Snapping distance", + "paint-snap/toggle": "Toggle Snapping", "2d-color-picker/shade": "Shade", "better-img-uploads/upload": "HD Upload", "variable-manager/for-all-sprites": "Variables for all sprites", "variable-manager/for-this-sprite": "Variables for this sprite", "variable-manager/search": "Search", + "variable-manager/too-big": "Click to display very large value.", "variable-manager/variables": "Variables", "search-sprites/placeholder": "Search sprites...", + "sprite-properties/close-properties-panel-tooltip": "Collapse properties panel", + "sprite-properties/open-properties-panel-tooltip": "Open properties panel", "gamepad/axes-a-b": "Axes {a} & {b}", "gamepad/axis-arrows": "Arrow Keys", "gamepad/axis-cursor": "Cursor", @@ -149,7 +152,7 @@ "gamepad/no-controllers": "No controllers detected. Try plugging one in and pressing a button on it.", "gamepad/reset": "Reset all controls to project defaults", "gamepad/settings": "Gamepad Settings", - "gamepad/store-in-project": "Store these settings in the project to override the default configuration (Experimental tool for project creators)", + "gamepad/store-in-project": "Store the mappings set above inside the project. After saving the project, these mappings will become the new default configuration.", "folders/add-to-folder": "add to folder: {folder}", "folders/closed-folder": "Folder", "folders/confirm-backpack-folder": "Save entire folder to backpack?", @@ -169,6 +172,8 @@ "block-switching/control_repeat_until": "repeat until", "block-switching/control_wait_until": "wait until", "block-switching/data_changevariableby": "change variable", + "block-switching/data_deletealloflist": "delete all", + "block-switching/data_deleteoflist": "delete item", "block-switching/data_hidelist": "hide list", "block-switching/data_hidevariable": "hide variable", "block-switching/data_insertatlist": "insert item", @@ -185,6 +190,8 @@ "block-switching/looks_changeeffectby": "change effect", "block-switching/looks_changesizeby": "change size", "block-switching/looks_costumenumbername": "costume number or name", + "block-switching/looks_goforwardbackwardlayers": "go forward or backward layers", + "block-switching/looks_gotofrontback": "go to front or back layer", "block-switching/looks_hide": "hide", "block-switching/looks_nextbackdrop": "next backdrop", "block-switching/looks_nextcostume": "next costume", @@ -227,14 +234,18 @@ "block-switching/pen_setPenHueToNumber": "set hue", "block-switching/pen_setPenShadeToNumber": "set shade", "block-switching/pen_setPenSizeTo": "set size", + "block-switching/sensing_coloristouchingcolor": "color touching color", "block-switching/sensing_mousex": "mouse x", "block-switching/sensing_mousey": "mouse y", + "block-switching/sensing_touchingcolor": "touching color", "block-switching/sound_changeeffectby": "change effect", "block-switching/sound_changevolumeby": "change volume", "block-switching/sound_play": "start", "block-switching/sound_playuntildone": "play until done", "block-switching/sound_seteffectto": "set effect", "block-switching/sound_setvolumeto": "set volume", + "copy-reporter/copy-to-clipboard": "Copy", + "copy-reporter/copy-value": "copy value", "blocks2image/error_blocks_not_added": "Add blocks to workspace!", "blocks2image/export_all_to_PNG": "Export all as PNG", "blocks2image/export_all_to_SVG": "Export all as SVG", @@ -243,6 +254,10 @@ "editor-extra-keys/enter-key": "enter", "move-to-top-bottom/bottom": "move to bottom", "move-to-top-bottom/top": "move to top", + "move-to-top-layer/move-to-front-layer": "move to front layer", + "rename-broadcasts/RENAME_BROADCAST": "Rename message", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Rename Message", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Rename all \"{name}\" messages to:", "swap-local-global/cant-convert-cloud": "Cloud variables can't be converted to this sprite only.", "swap-local-global/cant-convert-conflict": "Can't convert because it would conflict with variables in another sprite: {sprites}", "swap-local-global/cant-convert-stage": "The stage can't have variables for this sprite only.", diff --git a/src/addons/addons-l10n/es.json b/src/addons/addons-l10n/es.json index fc14fb4f192..22040d4c5c0 100644 --- a/src/addons/addons-l10n/es.json +++ b/src/addons/addons-l10n/es.json @@ -1,52 +1,26 @@ { - "editor-devtools/bottom": "enviar abajo", + "_general/blocks/anticlockwise": "contrario a las agujas del reloj", + "_general/blocks/clockwise": "según las agujas del reloj", + "_general/blocks/green-flag": "bandera", "editor-devtools/clean-plus": "Ordenar Bloques +", - "editor-devtools/code-tab-features": "Funciones de la Pestaña de Código", "editor-devtools/copy-all": "Copiar Todos", "editor-devtools/copy-block": "Copiar Bloque", - "editor-devtools/copy-to-clipboard": "Copiar al Portapapeles", - "editor-devtools/copy-to-clipboard-desc": "Haga click derecho a un bloque y 3 nuevas opciones estarán disponisbles: Copiar Todos, Copiar Bloque y Cortar Bloque. El botón Copiar Todos copiará todo incluido abajo del bloque que clickeaste. Copiar Bloque solo copiará el bloque actual y sus contenidos, pero nada de abajo. Cortar Bloque lo copiará y lo eliminará del área de código.", - "editor-devtools/costume-tab-features": "Funciones de la Pestaña de Disfraces", - "editor-devtools/ctrl-lr": "Ctrl + Izquierda, Ctrl + Derecha", - "editor-devtools/ctrl-lr-costume-desc": "Estas flechas le permiten navegar al anterior o próximo disfraz del objeto.", - "editor-devtools/ctrl-lr-desc": "Navegue a la posición siguiente o anterior del área de código (luego de usar la función \"navegar a bloque\" o la barra de búsqueda). Esto le permite hacer click medio en un bloque propio para ir a su definición, luego presione Ctrl + Izquierda para volver donde estaba antes.", - "editor-devtools/ctrl-space": "Ctrl + Espacio, Click medio o Shift + Click", - "editor-devtools/ctrl-space-desc": "Pone una ventana flotante donde puedes escribir el nombre de un bloque (o partes de él) y arrastrar el bloque al código para usarlo allí. Deje apretado Shift mientras arrastra para evitar cerrar la ventana al agregar muchos bloques al mismo tiempo.", "editor-devtools/cut-block": "Cortar Bloque", - "editor-devtools/deep": "Profundo", - "editor-devtools/find": "Buscar", - "editor-devtools/find-bar": "Barra de Búsqueda", - "editor-devtools/find-bar-costume-desc": "Haga click para listar todos los disfraces por nombre, y escriba para encontrar uno solo. Use las flechas o el ratón para clickear un nombre e ir directamente a ese disfraz.", - "editor-devtools/find-placeholder": "Buscar (Ctrl+F)", - "editor-devtools/help": "Ayuda", - "editor-devtools/help-make-space": "Hacer Espacio", - "editor-devtools/help-make-space-desc": "Haga espacio extra alrededor de un script haciéndole click derecho y eligiendo \"Hacer Espacio\".", - "editor-devtools/help-new": "★Nuevo★", - "editor-devtools/help-title": "Herramientas de Desarrollador de Scratch 3", - "editor-devtools/improved-tidy-up": "Ordenado de Bloques Mejorado", - "editor-devtools/improved-tidy-up-desc": "Haga click derecho en el área de código para mostrar el menú y la opción de ordenar bloques será reemplazada por una opción de \"Ordenar Bloques +\". Use esto para ordenar sus scripts, preservando las columnas como también intentando alinear los comentarios y quitar todas las variables huérfanas, etc.", - "editor-devtools/insert": "Insertar", - "editor-devtools/interactive-find-bar": "Barra de Búsqueda Interactiva (Ctrl + F)", - "editor-devtools/interactive-find-bar-desc": "Rápidamente busque y salte a cualquier bloque propio, variable, evento o bloque sombrero definido en un objeto clickeando en la nueva barra de búsqueda ubicada a la derecha de las pestañas de Código, Disfraces y Sonidos. Empiece a escribir para filtrar la lista. Use las teclas arriba y abajo para cambiar entre las posibles entradas y las flechas izquierda y derecha para revisar cada resultado de ese bloque.", "editor-devtools/lists": "listas", "editor-devtools/make-space": "Hacer Espacio", - "editor-devtools/middleclick": "Saltar a", - "editor-devtools/middleclick-desc": "Usando el botón del medio del ratón o Shift + Click en una variable o bloque propio, puedes saltar a su definición o abrirlo en la barra de búsqueda interactiva.", "editor-devtools/orphaned": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 bloque reportero huérfano?} many {Herramientas de desarrollador: ¿borrar # bloques reporteros huérfanos?} other {Herramientas de desarrollador: ¿borrar # bloques reporteros huérfanos?} }", "editor-devtools/paste": "Pegar", - "editor-devtools/paste-from-clipboard": "Pegar del Portapapeles", - "editor-devtools/paste-from-clipboard-desc": "Pega del portapapeles, pero lo pega donde está su cursor del ratón para que puedas posicionarlo (en vez de ponerlo donde lo copió, como la implementación actual de Scratch).", "editor-devtools/replace": "Herramientas de desarrollador: cambiar todos los {name} en este objeto por la variable llamada:", - "editor-devtools/start-typing": "Empiece a escribir...", "editor-devtools/swap": "Intercambiar Variable {var} en Objeto", - "editor-devtools/swap-variable": "Intercambiar Variable en Objeto", - "editor-devtools/swap-variable-desc": "Haga click derecho a una variable en la parte de código para esta nueva opción. Te permite intercambiar todas las referencias a esta variable en el objeto actual a otra variable. Esto es bueno para cuando cometió un error y quiere cambiar todas las referencias a una variable a otra o tiene que cambiar \"para todos los objetos\" a \"solo para este objeto\". Esta opción no quitará la variable antigua y no afectará las variables de otros objetos.", - "editor-devtools/top": "enviar arriba", - "editor-devtools/tutorials": "Tutoriales", "editor-devtools/unused-list": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 lista local sin usar? Esta es:\n} many {Herramientas de desarrollador: ¿borrar # listas locales sin usar? Estas son:\n} other {Herramientas de desarrollador: ¿borrar # listas locales sin usar? Estas son:\n} }", "editor-devtools/unused-var": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 variable local sin usar? Estas son:\n} many {Herramientas de desarrollador: ¿borrar # variables locales sin usar? Estas son:\n} other {Herramientas de desarrollador: ¿borrar # variables locales sin usar? Estas son:\n} }", "editor-devtools/var-not-exist": "Esa variable no existe..", - "editor-devtools/youtube": "Tutoriales en YouTube", + "find-bar/complex-broadcast": "(expresión)", + "find-bar/event": "evento {name}", + "find-bar/find-placeholder": "Buscar (Ctrl+F)", + "find-bar/list-global": "LISTA {name}", + "find-bar/list-local": "lista {name}", + "middle-click-popup/start-typing": "Empiece a escribir...", "editor-searchable-dropdowns/createBroadcast": "Crear mensaje \"{name}\"", "editor-searchable-dropdowns/createGlobalList": "Crear lista \"{name}\" para todos los objetos", "editor-searchable-dropdowns/createGlobalVariable": "Crear variable \"{name}\" para todos los objetos", @@ -61,11 +35,11 @@ "mediarecorder/click-flag": "Esperando...", "mediarecorder/click-flag-description": "Haga click en la bandera verde para empezar a grabar. Haga click en este botón para parar.", "mediarecorder/option-title": "Opciones de grabación", - "mediarecorder/record": "Empezar Grabación", + "mediarecorder/record": "Grabar", "mediarecorder/record-after-flag": "No empezar grabación hasta que haga click en la Bandera Verde", "mediarecorder/record-audio": "Incluir sonidos del proyecto", "mediarecorder/record-audio-description": "Esto no incluye Text-to-Speech.", - "mediarecorder/record-description": "Graba el escenario como un archivo WebM. Puede guardarlo en su computadora luego de que termina la grabación.", + "mediarecorder/record-description": "Grabe el escenario como un archivo {extension}. Puede guardarlo en su computadora luego de que la grabación haya finalizado.\nNota: los monitores de variables y listas no serán visibles.", "mediarecorder/record-duration": "Duración (en segundos)", "mediarecorder/record-mic": "Incluir sonidos del micrófono", "mediarecorder/record-until-stop": "Parar grabación luego de que el proyecto se detenga", @@ -74,7 +48,7 @@ "mediarecorder/start-delay": "Demora para empezar (en segundos)", "mediarecorder/starting-in": "Empezando en {secs}...", "mediarecorder/stop": "Detener Grabación", - "debugger/block-log": "loguear", + "debugger/block-log": "loguear %s", "debugger/block-warn": "advertir %s", "debugger/cannot-pause-player": "El bloque breakpoint solo se puede usar mientras esté en el editor.", "debugger/clear": "Vaciar", @@ -94,11 +68,13 @@ "debugger/no-threads-running": "No hay hilos ejecutándose.", "debugger/step": "Paso", "debugger/step-desc": "Ejecuta un bloque.", + "debugger/tab-performance": "Rendimiento", "debugger/tab-threads": "Hilos", "debugger/thread": "Hilo {id}", "debugger/unknown-sprite": "(objeto desconocido)", "debugger/unpause": "Continuar", "pause/pause": "Pausar", + "pause/play": "Reanudar", "color-picker/hex": "color hex", "remove-sprite-confirm/confirm": "¿Quiere borrar este objeto?", "block-count/blocks": "{num, plural, one {1 bloques} many {# bloques} other {# bloques}}", @@ -114,18 +90,40 @@ "onion-skinning/settings": "Ajustes de Capa Sobre Capa", "onion-skinning/tint": "Teñir", "onion-skinning/toggle": "Activar/desactivar capa sobre capa", + "paint-snap/boxCenter": "Centro de selección", + "paint-snap/boxCorners": "Esquinas de selección", + "paint-snap/boxEdgeMids": "Seleccionar puntos medios de lados", + "paint-snap/objectCenters": "Centros de objetos", + "paint-snap/objectCorners": "Esquinas de objetos", + "paint-snap/objectEdges": "Lados de objetos", + "paint-snap/objectMidlines": "Líneas centrales de objetos", + "paint-snap/off": "Apagado", + "paint-snap/on": "Encendido", + "paint-snap/pageAxes": "Ejes x e y de la página", + "paint-snap/pageCenter": "Centro de la página", + "paint-snap/pageCorners": "Esquinas de la página", + "paint-snap/pageEdges": "Lados de la página", + "paint-snap/settings": "Configuración de ajuste de posición", + "paint-snap/snapFrom": "Ajustar desde:", + "paint-snap/snapTo": "Ajustar a:", + "paint-snap/threshold": "Distancia de ajuste", + "paint-snap/toggle": "Alternar activación del ajuste de posición", "2d-color-picker/shade": "Tonalidad", "better-img-uploads/upload": "Subida HD", "variable-manager/for-all-sprites": "Variables para todos los objetos", "variable-manager/for-this-sprite": "Variables para este objeto", "variable-manager/search": "Buscar", + "variable-manager/too-big": "Click para mostrar un valor muy grande.", "search-sprites/placeholder": "Buscar objetos...", + "sprite-properties/close-properties-panel-tooltip": "Colapsar panel de propiedades", + "sprite-properties/open-properties-panel-tooltip": "Abrir panel de propiedades", "gamepad/axes-a-b": "Ejes {a} y {b}", "gamepad/axis-arrows": "Flechas del Teclado", "gamepad/axis-custom": "Personalizado", "gamepad/axis-none": "Ninguno", "gamepad/browser-support": "Este navegador y sistema operativo tienen bugs conocidos que pueden causar que este addon sea difícil de usar. Pruebe otro navegador si encuentra problemas.", "gamepad/button-n": "Botón {n}", + "gamepad/clear": "Borrar todos los controles", "gamepad/config-header": "Este comentario contiene configuración de soporte de mando de videojuegos para herramientas de terceros o páginas web como https://turbowarp.org/\nNo editar a mano", "gamepad/key-down": "Abajo", "gamepad/key-left": "Izquierda", @@ -135,8 +133,9 @@ "gamepad/key-up": "Arriba", "gamepad/keyinput-title": "Haga click y presione una tecla para cambiar el botón. Esc para cancelar. Retroceso o Suprimir para borrar.", "gamepad/no-controllers": "No se detectó ningún mando. Intente conectar uno y presionar cualquier botón de él.", + "gamepad/reset": "Restablecer todos los controles a los predeterminados del proyecto", "gamepad/settings": "Ajustes del Mando", - "gamepad/store-in-project": "Guardar estos ajustes en el proyecto para reemplazar la configuración por defecto (herramienta experimental para creadores de proyectos)", + "gamepad/store-in-project": "Guardar estos ajustes dentro del proyecto. Luego de guardar el proyecto, estos ajustes se convertirán en la nueva configuración predeterminada.", "folders/add-to-folder": "agregar a carpeta: {folder}", "folders/closed-folder": "Carpeta", "folders/confirm-backpack-folder": "¿Guardar carpeta entera en la mochila?", @@ -156,6 +155,8 @@ "block-switching/control_repeat_until": "repetir hasta que", "block-switching/control_wait_until": "esperar hasta que", "block-switching/data_changevariableby": "cambiar/sumar variable", + "block-switching/data_deletealloflist": "eliminar todo", + "block-switching/data_deleteoflist": "eliminar ítem", "block-switching/data_hidelist": "esconder lista", "block-switching/data_hidevariable": "esconder variable", "block-switching/data_insertatlist": "insertar elemento", @@ -171,6 +172,8 @@ "block-switching/looks_changeeffectby": "cambiar/sumar efecto", "block-switching/looks_changesizeby": "cambiar/sumar tamaño", "block-switching/looks_costumenumbername": "número o nombre de disfraz", + "block-switching/looks_goforwardbackwardlayers": "avanzar o retroceder capas", + "block-switching/looks_gotofrontback": "ir a la capa delantera o trasera", "block-switching/looks_hide": "ocultar", "block-switching/looks_nextbackdrop": "siguiente fondo", "block-switching/looks_nextcostume": "siguiente disfraz", @@ -206,14 +209,18 @@ "block-switching/pen_setPenHueToNumber": "fijar matiz de color", "block-switching/pen_setPenShadeToNumber": "fijar sombra de color", "block-switching/pen_setPenSizeTo": "fijar tamaño", + "block-switching/sensing_coloristouchingcolor": "color tocando color", "block-switching/sensing_mousex": "posición x del ratón", "block-switching/sensing_mousey": "posición y del ratón", + "block-switching/sensing_touchingcolor": "tocando color", "block-switching/sound_changeeffectby": "cambiar/sumar efecto", "block-switching/sound_changevolumeby": "cambiar/sumar volumen", "block-switching/sound_play": "iniciar", "block-switching/sound_playuntildone": "tocar sonido hasta terminar", "block-switching/sound_seteffectto": "fijar efecto", "block-switching/sound_setvolumeto": "fijar volumen", + "copy-reporter/copy-to-clipboard": "Copiar", + "copy-reporter/copy-value": "copiar valor", "blocks2image/error_blocks_not_added": "Agregue bloques al workspace", "blocks2image/export_all_to_PNG": "Exportar todos como PNG", "blocks2image/export_all_to_SVG": "Exportar todos como SVG", @@ -221,6 +228,10 @@ "blocks2image/export_selected_to_SVG": "Exportar bloque como SVG", "move-to-top-bottom/bottom": "mover al fondo", "move-to-top-bottom/top": "movar a la cima", + "move-to-top-layer/move-to-front-layer": "mover a capa delantera", + "rename-broadcasts/RENAME_BROADCAST": "Renombrar mensaje", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Renombrar Mensaje", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Renombrar todos los mensajes \"{name}\" a:", "swap-local-global/cant-convert-cloud": "Variables en la nube no pueden ser convertidas a solo para este objeto", "swap-local-global/cant-convert-conflict": "No se pudo convertir porque entraría en conflicto con variables en otro objeto: {sprites}", "swap-local-global/cant-convert-stage": "El escenario no puede tener variables solo para este objeto.", diff --git a/src/addons/addons-l10n/fi.json b/src/addons/addons-l10n/fi.json new file mode 100644 index 00000000000..47830e8ebe2 --- /dev/null +++ b/src/addons/addons-l10n/fi.json @@ -0,0 +1,265 @@ +{ + "_general/blocks/anticlockwise": "vastapäivään", + "_general/blocks/clockwise": "myötäpäivään", + "_general/blocks/green-flag": "lippu", + "editor-devtools/clean-plus": "Siivoa lohkot +", + "editor-devtools/copy-all": "Kopioi kaikki", + "editor-devtools/copy-block": "Kopioi lohko", + "editor-devtools/cut-block": "Leikkaa lohko", + "editor-devtools/lists": "listalohkot", + "editor-devtools/make-space": "Tee tilaa", + "editor-devtools/orphaned": "{count, plural, one {Kehittäjän työkalut: Poistetaanko 1 yksin jätetty ilmoituslohko?} other {Kehittäjän työkalut: Poistetaanko # yksin jätettyä ilmoituslohkoa?} }", + "editor-devtools/paste": "Liitä", + "editor-devtools/replace": "Kehittäjän työkalut: Muuta kaikki tämän hahmon koodissa käytetyt {name} -nimiset muuttujat muuttujaksi nimeltä:", + "editor-devtools/swap": "Vaihda hahmon koodissa käytetyt {var}", + "editor-devtools/unused-list": "{count, plural, one {Kehittäjän työkalut: Poistetaanko 1 käyttämätön lista? Se on tässä:\n} other {Kehittäjän työkalut: Poistetaanko # käyttämätöntä listaa? Ne ovat tässä:\n} }", + "editor-devtools/unused-var": "{count, plural, one {Kehittäjän työkalut: Poistetaanko 1 käyttämätön muuttuja? Se on tässä:\n} other {Kehittäjän työkalut: Poistetaanko # käyttämätöntä muuttujaa? Ne ovat tässä:\n} }", + "editor-devtools/var-not-exist": "Tätä muuttujaa ei ole olemassa...", + "editor-devtools/variables": "muuttujalohkot", + "find-bar/complex-broadcast": "(lauseke)", + "find-bar/event": "tapahtuma {name}", + "find-bar/find-placeholder": "Etsi (Ctrl+F)", + "find-bar/list-global": "LISTA {name}", + "find-bar/list-local": "lista {name}", + "find-bar/var-global": "MUUTTUJA {name}", + "find-bar/var-local": "muuttuja {name}", + "middle-click-popup/start-typing": "Aloita kirjoittaminen...", + "editor-searchable-dropdowns/createBroadcast": "Luo viesti \"{name}\"", + "editor-searchable-dropdowns/createGlobalList": "Luo lista \"{name}\" kaikille hahmoille", + "editor-searchable-dropdowns/createGlobalVariable": "Luo muuttuja \"{name}\" kaikille hahmoille", + "editor-searchable-dropdowns/createLocalList": "Luo lista \"{name}\" vain tälle hahmolle", + "editor-searchable-dropdowns/createLocalVariable": "Luo muuttuja \"{name}\" vain tälle hahmolle", + "data-category-tweaks-v2/for-all-sprites": "Kaikille hahmoille:", + "data-category-tweaks-v2/for-this-sprite-only": "Vain tälle hahmolle:", + "data-category-tweaks-v2/list-category": "Listat", + "hide-flyout/lock": "Lukitse paletti", + "hide-flyout/unlock": "Poista paletin lukitus", + "mediarecorder/cancel": "Peru", + "mediarecorder/click-flag": "Odotetaan...", + "mediarecorder/click-flag-description": "Aloita nauhoittaminen klikkaamalla vihreää lippua. Pysäytä napauttamalla tätä painiketta.", + "mediarecorder/option-title": "Nauhoitusasetukset", + "mediarecorder/record": "Nauhoita", + "mediarecorder/record-after-flag": "Älä aloita nauhoitusta ennen kuin vihreää lippua on klikattu.", + "mediarecorder/record-audio": "Sisällytä projektin äänet", + "mediarecorder/record-audio-description": "Tämä ei sisällä teksti puheeksi -toimintoa.", + "mediarecorder/record-description": "Nauhoita esiintymislavaa {extension}-tiedostona. Voit tallentaa nauhoiteen tietokoneellesi, kun nauhoitus on lopetettu.\nHuomaa: muuttujien ja listojen näyttimet eivät ole näkyvissä.", + "mediarecorder/record-duration": "Nauhoituksen kesto (sekunteina)", + "mediarecorder/record-mic": "Sisällytä mikrofonin äänet", + "mediarecorder/record-until-stop": "Lopeta nauhoittaminen projektin päättymisen jälkeen.", + "mediarecorder/record-until-stop-disabled": "Sinun täytyy ottaa käyttöön \"{afterFlagOption}\" -toiminto, jotta voit käyttää tätä toimintoa.", + "mediarecorder/start": "Aloita", + "mediarecorder/start-delay": "Alkuviive (sekunteina)", + "mediarecorder/starting-in": "Alkaa {secs} sekunnissa... ", + "mediarecorder/stop": "Lopeta nauhoitus", + "debugger/block-breakpoint": "keskeytyskohta", + "debugger/block-error": "kirjaa virhe %s", + "debugger/block-log": "kirjaa lokimerkintä %s", + "debugger/block-warn": "kirjaa varoitus %s", + "debugger/cannot-pause-player": "Keskeytyskohtalohkoa voidaan käyttää vain editorissa.", + "debugger/clear": "Tyhjennä", + "debugger/clone-of": "Klooni hahmosta {sprite}", + "debugger/close": "Sulje", + "debugger/console": "Lokimerkinnät", + "debugger/debug": "Virheenkorjaus", + "debugger/empty-string": "(tyhjä merkkijono)", + "debugger/enter-format": "Anna latausformaatti:", + "debugger/export": "Lataa", + "debugger/export-desc": "Muokkaa latausformaattia napauttamalla samalla, kun pidät vaihtonäppäintä painettuna.", + "debugger/icon-error": "Virhe", + "debugger/icon-warn": "Varoitus", + "debugger/log-msg-broadcasted": "Viesti '{broadcast}' lähetettiin.", + "debugger/log-msg-clone-cap": "Kloonin luominen hahmosta '{sprite}' epäonnistui, yli 300 kloonia ei voi luoda.", + "debugger/log-msg-clone-created": "Klooni hahmosta '{sprite}' luotu.", + "debugger/log-msg-flag-clicked": "Vihreää lippua klikattu.", + "debugger/no-logs": "Näytettäviä lokimerkintöjä ei ole.", + "debugger/no-threads-running": "Ei säikeitä käynnissä.", + "debugger/performance-clonecount-graph-tooltip": "Kloonit: {clones}", + "debugger/performance-clonecount-title": "Kloonit", + "debugger/performance-framerate-graph-tooltip": "Kuvataajuus: {fps} ruutua sekunnissa", + "debugger/performance-framerate-title": "Kuvataajuus", + "debugger/step": "Vaihe", + "debugger/step-desc": "Suorittaa yhden lohkon.", + "debugger/tab-logs": "Lokimerkinnät", + "debugger/tab-performance": "Suorituskyky", + "debugger/tab-threads": "Säikeet", + "debugger/thread": "Säie {id}", + "debugger/unknown-sprite": "(tuntematon hahmo)", + "debugger/unpause": "Jatka", + "pause/pause": "Keskeytä", + "pause/play": "Jatka", + "clones/clones": "kloonit: {cloneCount}", + "color-picker/hex": "heksadesimaaliväri", + "remove-sprite-confirm/confirm": "Tahdotko poistaa hahmon?", + "block-count/blocks": "{num, plural, one {1 lohko} other {# lohkoa}}", + "onion-skinning/behind": "Taakse", + "onion-skinning/front": "Eteen", + "onion-skinning/layering": "Kerrostus", + "onion-skinning/merge": "Yhdistä", + "onion-skinning/mode": "Tila", + "onion-skinning/next": "Seuraavat asusteet", + "onion-skinning/opacity": "Peittävyys (%)", + "onion-skinning/opacityStep": "Peittävyysvaihe (%)", + "onion-skinning/previous": "Edelliset asusteet", + "onion-skinning/settings": "Sipulin kuorinnan asetukset", + "onion-skinning/tint": "Värjää", + "onion-skinning/toggle": "Vaihda sipulin kuorintaa", + "paint-snap/boxCenter": "Valinnan keskipisteestä", + "paint-snap/boxCorners": "Valinnan kulmista", + "paint-snap/boxEdgeMids": "Valinnan reunojen keskipisteistä", + "paint-snap/objectCenters": "Objektien keskipisteisiin", + "paint-snap/objectCorners": "Objektien kulmiin", + "paint-snap/objectEdges": "Objektien reunoihin", + "paint-snap/objectMidlines": "Objektien keskilinjoille", + "paint-snap/off": "Pois päältä", + "paint-snap/on": "Päällä", + "paint-snap/pageAxes": "Muokkausalueen x- ja y-koordinaatteihin", + "paint-snap/pageCenter": "Muokkausalueen keskipisteeseen", + "paint-snap/pageCorners": "Muokkausalueen kulmiin", + "paint-snap/pageEdges": "Muokkausalueen reunoihin", + "paint-snap/settings": "Kiinnityksen asetukset", + "paint-snap/snapFrom": "Kiinnitä:", + "paint-snap/snapTo": "Kiinnitä:", + "paint-snap/threshold": "Kiinnitysetäisyys", + "paint-snap/toggle": "Kytke kiinnittäminen päälle/pois", + "2d-color-picker/shade": "Varjo", + "better-img-uploads/upload": "HD-lataus", + "variable-manager/for-all-sprites": "Kaikkien hahmojen muuttujat", + "variable-manager/for-this-sprite": "Tämän hahmon muuttujat", + "variable-manager/search": "Etsi", + "variable-manager/too-big": "Näytä erittäin suuri arvo napauttamalla.", + "variable-manager/variables": "Muuttujat", + "search-sprites/placeholder": "Etsi hahmoja...", + "sprite-properties/close-properties-panel-tooltip": "Kutista asetusruutu", + "sprite-properties/open-properties-panel-tooltip": "Avaa asetusruutu", + "gamepad/axes-a-b": "Akselit {a} ja {b}", + "gamepad/axis-arrows": "Nuolinäppäimet", + "gamepad/axis-cursor": "Kursori", + "gamepad/axis-custom": "Mukautettu", + "gamepad/axis-none": "Ei mitään", + "gamepad/browser-support": "Tässä selaimessa ja käyttöjärjestelmässä on tiedossa olevia bugeja, jotka voivat vaikeuttaa tämän lisäosan käyttöä. Kokeile toista selainta, jos kohtaat ongelmia.", + "gamepad/button-n": "Painike {n}", + "gamepad/clear": "Tyhjennä kaikki ohjaimet", + "gamepad/config-header": "Tämä kommentti sisältää peliohjaintuen määritykset kolmannen osapuolen työkaluissa tai verkkosivustoissa, kuten https://turbowarp.org/\nÄlä muokkaa käsin", + "gamepad/key-click": "Napautus", + "gamepad/key-down": "Alas", + "gamepad/key-left": "Vasen", + "gamepad/key-none": "(ei mitään)", + "gamepad/key-right": "Oikea", + "gamepad/key-space": "Välilyönti", + "gamepad/key-up": "Ylös", + "gamepad/keyinput-title": "Napauta ja paina näppäintä tai vaihda painiketta napauttamalla. Peru painamalla escape-painiketta. Tyhjennä backspace tai delete-painikkeilla.", + "gamepad/no-controllers": "Ohjainta ei olla havaittu. Yritä kytkeä sellainen ja painaa sen painiketta.", + "gamepad/reset": "Palauta kaikki ohjaimet projektin oletusasetuksiin", + "gamepad/settings": "Peliohjainasetukset", + "gamepad/store-in-project": "Säilytä yllä asetetut määritykset projektin sisällä. Projektin tallentamisen jälkeen näistä määrityksistä tulee uusi oletusrakenne.", + "folders/add-to-folder": "lisää kansioon: {folder}", + "folders/closed-folder": "Kansio", + "folders/confirm-backpack-folder": "Tallennetaanko koko kansio reppuun?", + "folders/create-folder": "luo kansio", + "folders/name-not-allowed": "Kansion nimi ei ole kelvollinen.", + "folders/name-prompt": "Kansion nimi:", + "folders/name-prompt-title": "Luo kansio", + "folders/open-folder": "Avattu", + "folders/remove-folder": "poista kansio", + "folders/remove-from-folder": "poista kansiosta", + "folders/rename-folder": "nimeä kansio uudelleen", + "folders/rename-folder-prompt": "Nimeä kansio uudelleen nimellä:", + "folders/rename-folder-prompt-title": "Nimeä kansio uudelleen", + "block-switching/control_forever": "ikuisesti", + "block-switching/control_if": "jos", + "block-switching/control_if_else": "jos... , niin tai muuten", + "block-switching/control_repeat_until": "toista kunnes", + "block-switching/control_wait_until": "odota kunnes", + "block-switching/data_changevariableby": "lisää muuttujaan", + "block-switching/data_deletealloflist": "poista kaikki", + "block-switching/data_deleteoflist": "poista kohde", + "block-switching/data_hidelist": "piilota lista", + "block-switching/data_hidevariable": "piilota muuttuja", + "block-switching/data_insertatlist": "lisää kohde listaan", + "block-switching/data_replaceitemoflist": "korvaa listan kohde", + "block-switching/data_setvariableto": "aseta muuttuja", + "block-switching/data_showlist": "näytä lista", + "block-switching/data_showvariable": "näytä muuttuja", + "block-switching/debugger_error": "kirjaa virhe", + "block-switching/debugger_log": "kirjaa lokimerkintä", + "block-switching/debugger_warn": "kirjaa varoitus", + "block-switching/event_broadcast": "lähetä", + "block-switching/event_broadcastandwait": "lähetä ja odota", + "block-switching/looks_backdropnumbername": "taustaluku tai -nimi", + "block-switching/looks_changeeffectby": "lisää tehosteeseen", + "block-switching/looks_changesizeby": "kasvata kokoa", + "block-switching/looks_costumenumbername": "asusteluku tai -nimi", + "block-switching/looks_goforwardbackwardlayers": "mene tasoja eteen- tai taaksepäin", + "block-switching/looks_gotofrontback": "mene etu- tai taka-alalle", + "block-switching/looks_hide": "piilota", + "block-switching/looks_nextbackdrop": "seuraava tausta", + "block-switching/looks_nextcostume": "seuraava asuste", + "block-switching/looks_say": "sano", + "block-switching/looks_sayforsecs": "sano sekuntien ajan", + "block-switching/looks_seteffectto": "aseta tehoste", + "block-switching/looks_setsizeto": "aseta koko", + "block-switching/looks_show": "näytä", + "block-switching/looks_switchbackdropto": "vaihda taustaksi", + "block-switching/looks_switchbackdroptoandwait": "vaihda taustaksi ja odota", + "block-switching/looks_think": "ajattele", + "block-switching/looks_thinkforsecs": "ajattele sekuntien ajan", + "block-switching/motion_changexby": "lisää x:n arvoon", + "block-switching/motion_changeyby": "lisää y:n arvoon", + "block-switching/motion_setx": "aseta x:n arvoksi", + "block-switching/motion_sety": "aseta y:n arvoksi", + "block-switching/motion_turnleft": "käänny vasemmalle", + "block-switching/motion_turnright": "käänny oikealle", + "block-switching/motion_xposition": "x-sijainti", + "block-switching/motion_yposition": "y-sijainti", + "block-switching/music_changeTempo": "lisää tempoa", + "block-switching/music_setTempo": "aseta tempoksi", + "block-switching/operator_and": "ja", + "block-switching/operator_mod": "jakojäännös", + "block-switching/operator_or": "tai", + "block-switching/pen_changePenColorParamBy": "lisää parametrin arvoon", + "block-switching/pen_changePenHueBy": "lisää värisävyyn", + "block-switching/pen_changePenShadeBy": "lisää varjoon", + "block-switching/pen_changePenSizeBy": "kasvata kokoa", + "block-switching/pen_penDown": "kynä alas", + "block-switching/pen_penUp": "kynä ylös", + "block-switching/pen_setPenColorParamTo": "aseta parametri", + "block-switching/pen_setPenHueToNumber": "aseta värisävyksi", + "block-switching/pen_setPenShadeToNumber": "aseta varjoksi", + "block-switching/pen_setPenSizeTo": "aseta koko", + "block-switching/sensing_coloristouchingcolor": "koskettaako väri väriä", + "block-switching/sensing_mousex": "hiiren x-sijainti", + "block-switching/sensing_mousey": "hiiren y-sijainti", + "block-switching/sensing_touchingcolor": "koskettaako väriä", + "block-switching/sound_changeeffectby": "lisää tehostetta", + "block-switching/sound_changevolumeby": "lisää äänenvoimakkuutta", + "block-switching/sound_play": "soita", + "block-switching/sound_playuntildone": "soita loppuun", + "block-switching/sound_seteffectto": "aseta tehosteeksi", + "block-switching/sound_setvolumeto": "aseta äänenvoimakkuudeksi", + "copy-reporter/copy-to-clipboard": "Kopioi", + "copy-reporter/copy-value": "kopioi arvo", + "blocks2image/error_blocks_not_added": "Lisää lohkoja työtilaan!", + "blocks2image/export_all_to_PNG": "Lataa kaikki PNG-kuvana", + "blocks2image/export_all_to_SVG": "Lataa kaikki SVG-tiedostona", + "blocks2image/export_selected_to_PNG": "Lataa lohko PNG-kuvana", + "blocks2image/export_selected_to_SVG": "Lataa lohko SVG-tiedostona", + "move-to-top-bottom/bottom": "siirrä alas", + "move-to-top-bottom/top": "siirrä ylös", + "move-to-top-layer/move-to-front-layer": "mene etualalle", + "rename-broadcasts/RENAME_BROADCAST": "Nimeä viesti uudelleen", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Nimeä viesti uudelleen", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Nimeä kaikki \"{name}\"-viestit uudelleen:", + "swap-local-global/cant-convert-cloud": "Pilvimuuttujia ei voi muuntaa vain tälle hahmolle.", + "swap-local-global/cant-convert-conflict": "Ei voida muuntaa, koska se olisi ristiriidassa toisen hahmon muuttujien kanssa: {sprites}", + "swap-local-global/cant-convert-stage": "Esiintymislavalla ei voi olla muuttujia vain tälle hahmolle.", + "swap-local-global/cant-convert-to-local": "Ei voida muuntaa, koska useat hahmot käyttävät sitä:{sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Ei voida muuntaa, koska toinen hahmo käyttää sitä: {sprite}", + "swap-local-global/edit": "Muokkaa ominaisuuksia:", + "swap-local-global/edit-list-header": "Muokkaa listaa", + "swap-local-global/edit-list-option": "Nimeä lista uudelleen tai muokkaa sitä", + "swap-local-global/edit-variable-header": "Muokkaa muuttujaa", + "swap-local-global/edit-variable-option": "Nimeä muuttuja uudelleen tai muokkaa sitä", + "swap-local-global/to-global": "Muunna \"Kaikille hahmoille\" -muotoon", + "swap-local-global/to-local": "Muunna \"Vain tälle hahmolle\" -muotoon", + "hide-stage/hide-stage": "Piilota esiintymislava" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/fr.json b/src/addons/addons-l10n/fr.json index c893f8c6340..35a98f35332 100644 --- a/src/addons/addons-l10n/fr.json +++ b/src/addons/addons-l10n/fr.json @@ -1,57 +1,32 @@ { - "editor-devtools/bottom": "envoyer en bas", + "_general/blocks/anticlockwise": "sens inverse des aiguilles d'une montre", + "_general/blocks/clockwise": "sens des aiguilles d'une montre", + "_general/blocks/green-flag": "drapeau", "editor-devtools/clean-plus": "Nettoyer les blocs +", - "editor-devtools/code-tab-features": "Fonctionnalités De l'Onglet de Code", "editor-devtools/copy-all": "Tout Copier", "editor-devtools/copy-block": "Copier Le Bloc", - "editor-devtools/copy-to-clipboard": "Copier dans le Presse-Papiers", - "editor-devtools/copy-to-clipboard-desc": "Faites un clic droit sur un bloc et 3 nouvelles options seront disponibles : Copier tout, Copier le Bloc et Couper le Bloc. Le bouton Copier Tout copiera le bloc entier dans le presse-papiers, comprenant les blocs intégrés dans celui-ci et ceux accrochés au dessous. Copier le Bloc copiera uniquement le bloc ainsi que les blocs intégrés dans celui-ci, mais aucun en dessous. Couper le Bloc copiera le bloc et le supprimera ensuite de l'espace de travail.", - "editor-devtools/costume-tab-features": "Fonctionnalités De l'Onglet Des Costumes", - "editor-devtools/ctrl-lr": "Ctrl + Gauche, Ctrl + Droite", - "editor-devtools/ctrl-lr-costume-desc": "Ces touches vous font naviguer au précédent/prochain costume dans le sprite.", - "editor-devtools/ctrl-lr-desc": "Naviguer à la précédente/prochaine position visitée dans la fenêtre de code (après avoir utilisé aller au bloc ou la barre de recherche). Cela vous permet d'effectuer un clic du milieu sur un bloc personnalisé pour aller à sa définition, puis d'appuyer sur Ctrl+Gauche pour revenir là où vous étiez juste avant.", - "editor-devtools/ctrl-space": "Ctrl + Espace, Clic mollete ou Maj + Clic", - "editor-devtools/ctrl-space-desc": "Affiche une boîte de texte dans laquelle vous pouvez taper le nom d'un bloc (ou une partie de celui-ci) et glisser le bloc dans votre code pour l'utiliser directement.", "editor-devtools/cut-block": "Couper le bloc", - "editor-devtools/deep": "Profond", - "editor-devtools/find": "Chercher", - "editor-devtools/find-bar": "Barre De Recherche", - "editor-devtools/find-bar-costume-desc": "Cliquez pour lister tous les costumes par nom, et écrivez son nom pour le trouver. Utilisez les flèches ou la souris pour cliquer sur le nom et aller directement au costume.", - "editor-devtools/find-placeholder": "Chercher (Ctrl + F)", - "editor-devtools/help": "Aide", - "editor-devtools/help-make-space": "Espacer", - "editor-devtools/help-make-space-desc": "Ajoute de l'espace supplémentaire autour d'un script en faisant un clic droit sur le script et en choisissant \"Espacer\".", - "editor-devtools/help-new": "★ Nouveau ★", - "editor-devtools/help-title": "Outils de Développement pour Scratch 3", - "editor-devtools/improved-tidy-up": "Nettoyage Des Blocs Amélioré", - "editor-devtools/improved-tidy-up-desc": "Faites un clic droit dans la zone des scripts pour afficher le menu, où l'option \"Nettoyer les blocs\" aura été remplacée par l'option \"Nettoyer les blocs +\" . Utilisez-la pour ranger vos scripts tout en conservant vos colonnes de scripts et tentera d'aligner les commentaires et de supprimer toutes les variables non utilisées, etc.", - "editor-devtools/insert": "Insérer", - "editor-devtools/interactive-find-bar": "Barre De Recherche Interactive (Ctrl + F)", - "editor-devtools/interactive-find-bar-desc": "Trouvez rapidement n'importe quel bloc personnalisé, variable, événement ou bloc chapeau défini dans un sprite en cliquant sur la nouvelle barre de recherche à droite des onglets code, costumes et son. Commencez par écrire pour filtrer la liste le plus possible. Utilisez les flèches haut et bas pour changer entre les différentes possibilités, et utilisez les flèches gauche et droite pour trouver chaque copie de ce bloc dans votre code.", "editor-devtools/lists": "listes", "editor-devtools/make-space": "Espacer", - "editor-devtools/middleclick": "Sauter Vers", - "editor-devtools/middleclick-desc": "Utiliser le clic mollete sur une variable ou un bloc personnalisé vous permet d'aller directement à sa définition ou l'ouvre dans la barre de recherche interactive.", "editor-devtools/orphaned": "{count, plural, one {Outils développeur : Supprimer 1 bloc de valeur seul ?} many {Outils développeur : Supprimer les # blocs de valeur seuls ?} other {Outils développeur : Supprimer les # blocs de valeur seuls ?} }", "editor-devtools/paste": "Coller", - "editor-devtools/paste-from-clipboard": "Coller à partir du presse-papiers", - "editor-devtools/paste-from-clipboard-desc": "Colle depuis le presse-papiers, mais surtout le colle où votre souris se situe pour pouvoir le placer (meilleur que le placer là où vous l'avez copié, système actuellement implémenté dans Scratch)", "editor-devtools/replace": "Outils développeur : Remplacer toutes les utilisations de la variable {name} dans ce sprite par la variable nommée :", - "editor-devtools/start-typing": "Commencez à écrire...", "editor-devtools/swap": "Remplacer la variable \"{var}\" dans le sprite", - "editor-devtools/swap-variable": "Echanger des Variables dans un Sprite", - "editor-devtools/swap-variable-desc": "Faites un clic droit sur une variable dans votre code pour cette nouvelle option. Elle vous permet d'échanger toutes les références à cette variable dans le sprite actuel d'un seul coup vers une autre variable. C'est idéal lorsque vous avez fait une erreur et que vous voulez échanger d'une variable à une autre ou que vous voulez changer de \"pour tous les sprites\" à \"pour ce sprite uniquement\". Cette option ne supprimera pas l'ancienne variable et n'affectera aucun autre variable du sprite.", - "editor-devtools/top": "envoyer en haut", - "editor-devtools/tutorials": "Tutoriels", "editor-devtools/unused-list": "{count, plural, one {Outils développeur : Supprimer 1 liste locale inutilisée ? La voici :\n} many {Outils développeur : Supprimer # listes locales inutilisées ? Les voici :\n} other {Outils développeur : Supprimer # listes locales inutilisées ? Les voici :\n} }", "editor-devtools/unused-var": "{count, plural, one {Outils développeur : Supprimer 1 variable locale inutilisée ? Là voilà :\n} many {Outils développeur : Supprimer les # variables locales inutilisées ? Les voici :\n} other {Outils développeur : Supprimer les # variables locales inutilisées ? Les voici :\n} }", "editor-devtools/var-not-exist": "Cette variable n'existe pas...", - "editor-devtools/youtube": "Tutoriels YouTube", - "editor-searchable-dropdowns/createBroadcast": "Créer le message \"{name}\"", - "editor-searchable-dropdowns/createGlobalList": "Créer la liste \"{name}\" pour tous les sprites", - "editor-searchable-dropdowns/createGlobalVariable": "Créer la variable \"{name}\" pour tous les sprites", - "editor-searchable-dropdowns/createLocalList": "Créer la liste \"{name}\" pour ce sprite uniquement", - "editor-searchable-dropdowns/createLocalVariable": "Créer la variable \"{name}\" pour ce sprite uniquement", + "find-bar/event": "événement{name}", + "find-bar/find-placeholder": "Rechercher (Ctrl + F)", + "find-bar/list-global": "LISTE{name}", + "find-bar/list-local": "liste{name}", + "find-bar/var-global": "VARIABLE{name}", + "find-bar/var-local": "variable{name}", + "middle-click-popup/start-typing": "Commencez à taper…", + "editor-searchable-dropdowns/createBroadcast": "Créer un message nommé \"{name}\"", + "editor-searchable-dropdowns/createGlobalList": "Créer une liste \"{name}\" pour tous les sprites", + "editor-searchable-dropdowns/createGlobalVariable": "Créer une variable \"{name}\" pour tous les sprites", + "editor-searchable-dropdowns/createLocalList": "Créer une liste \"{name}\" pour ce sprite uniquement", + "editor-searchable-dropdowns/createLocalVariable": "Créer une variable \"{name}\" pour ce sprite uniquement", "data-category-tweaks-v2/for-all-sprites": "Pour tous les sprites :", "data-category-tweaks-v2/for-this-sprite-only": "Pour ce sprite uniquement :", "data-category-tweaks-v2/list-category": "Listes", @@ -61,11 +36,10 @@ "mediarecorder/click-flag": "En attente...", "mediarecorder/click-flag-description": "Cliquez sur le drapeau vert pour démarrer l'enregistrement. Cliquez sur ce bouton pour arrêter.", "mediarecorder/option-title": "Options d'enregistrement", - "mediarecorder/record": "Démarrer l'Enregistrement", + "mediarecorder/record": "Enregistrer l'écran", "mediarecorder/record-after-flag": "Ne démarrez pas l'enregistrement tant que le drapeau vert n'est pas été cliqué", "mediarecorder/record-audio": "Inclure les sons du projet", "mediarecorder/record-audio-description": "Cela n'inclut pas la synthèse vocale.", - "mediarecorder/record-description": "Enregistrer la scène en fichier WebM. Vous pouvez le sauvegarder sur votre ordinateur une fois l'enregistrement terminé.", "mediarecorder/record-duration": "Durée de l'enregistrement (en secondes)", "mediarecorder/record-mic": "Inclure les sons du microphone", "mediarecorder/record-until-stop": "Arrêter l'enregistrement quand le projet se termine", @@ -102,6 +76,7 @@ "debugger/tab-threads": "Processus", "debugger/unknown-sprite": "(sprite inconnu)", "debugger/unpause": "Reprendre", + "pause/play": "Reprendre", "clones/clones": "clones : {cloneCount}", "color-picker/hex": "couleur hexa", "remove-sprite-confirm/confirm": "Voulez-vous supprimer le sprite ?", @@ -117,18 +92,38 @@ "onion-skinning/settings": "Paramètres de Pelure d'Oignon", "onion-skinning/tint": "Teinte", "onion-skinning/toggle": "Activer la Pelure d'Oignon", + "paint-snap/boxCenter": "Centre de la sélection", + "paint-snap/boxCorners": "Coins de la sélection", + "paint-snap/boxEdgeMids": "Points centraux des bordures de la sélection", + "paint-snap/objectCenters": "Centres des objets", + "paint-snap/objectCorners": "Coins des objets", + "paint-snap/objectEdges": "Bords des objets", + "paint-snap/objectMidlines": "Lignes centrales des objets", + "paint-snap/pageAxes": "Axes x et y de la page", + "paint-snap/pageCenter": "Centre de la page", + "paint-snap/pageCorners": "Coins de la page", + "paint-snap/pageEdges": "Bords de la page", + "paint-snap/settings": "Réglages du Snap", + "paint-snap/snapFrom": "Ancrer à partir de :", + "paint-snap/snapTo": "Snap à :", + "paint-snap/threshold": "Distance d'ancrage", + "paint-snap/toggle": "Activer/Désactiver l'ancrage", "2d-color-picker/shade": "Nuancier", "better-img-uploads/upload": "Charger HD", "variable-manager/for-all-sprites": "Variables pour tous les sprites", "variable-manager/for-this-sprite": "Variables de ce sprite", "variable-manager/search": "Rechercher", + "variable-manager/too-big": "Cliquez pour afficher une très grande valeur.", "search-sprites/placeholder": "Rechercher des sprites...", + "sprite-properties/close-properties-panel-tooltip": "Réduire le panneau des propriétés", + "sprite-properties/open-properties-panel-tooltip": "Ouvrir le panneau des propriétés", "gamepad/axis-arrows": "Flèches", "gamepad/axis-cursor": "Curseur", "gamepad/axis-custom": "Personnalisé", "gamepad/axis-none": "Aucun", "gamepad/browser-support": "Ce navigateur et ce système d'exploitation ont des bugs connus qui peuvent rendre cet addon difficile à utiliser. Essayez un autre navigateur si vous rencontrez des problèmes.", "gamepad/button-n": "Bouton {n}", + "gamepad/clear": "Effacer tous les contrôles", "gamepad/config-header": "Ce commentaire contient la configuration pour le support de la manette dans d'autres outils et sites web, tels que https://turbowarp.org/\nNe le modifiez pas à la main", "gamepad/key-click": "Clic", "gamepad/key-down": "Bas", @@ -140,8 +135,9 @@ "gamepad/key-up": "Haut", "gamepad/keyinput-title": "Cliquez et appuyez sur une touche ou cliquez pour modifier le bouton. Échap pour annuler. Retour arrière ou supprimer pour effacer.", "gamepad/no-controllers": "Aucuns contrôleurs détectés. Essayez d'en brancher un et d'appuyer sur un bouton.", + "gamepad/reset": "Réinitialiser tous les contrôles aux paramètres par défaut du projet", "gamepad/settings": "Paramètres de la manette", - "gamepad/store-in-project": "Stockez ces paramètres dans le projet pour remplacer la configuration par défaut (Outil expérimental pour les créateurs de projets)", + "gamepad/store-in-project": "Enregistrez les paramètres dans le projet. Après avoir enregistré, ces paramètres deviendront les paramètres par défaut.", "folders/add-to-folder": "ajouter au dossier : {folder}", "folders/closed-folder": "Dossier", "folders/confirm-backpack-folder": "Sauvegarder tout le dossier dans le sac-à-dos ?", @@ -161,6 +157,8 @@ "block-switching/control_repeat_until": "répéter jusqu'à ce que", "block-switching/control_wait_until": "attendre jusqu'à ce que", "block-switching/data_changevariableby": "ajouter à la variable", + "block-switching/data_deletealloflist": "Suprimmer tout", + "block-switching/data_deleteoflist": "supprimer l'élément", "block-switching/data_hidelist": "cacher la liste", "block-switching/data_hidevariable": "cacher la variable", "block-switching/data_insertatlist": "insérer l'élément", @@ -177,6 +175,8 @@ "block-switching/looks_changeeffectby": "ajouter à l'effet", "block-switching/looks_changesizeby": "ajouter à la taille", "block-switching/looks_costumenumbername": "numéro ou nom du costume", + "block-switching/looks_goforwardbackwardlayers": "déplacer dans les plans vers l'avant ou l'arrière", + "block-switching/looks_gotofrontback": "aller au premier ou à l'arrière plan", "block-switching/looks_hide": "cacher", "block-switching/looks_nextbackdrop": "arrière-plan suivant", "block-switching/looks_nextcostume": "costume suivant", @@ -212,14 +212,18 @@ "block-switching/pen_setPenHueToNumber": "mettre la couleur à", "block-switching/pen_setPenShadeToNumber": "mettre la luminosité à", "block-switching/pen_setPenSizeTo": "mettre la taille à", + "block-switching/sensing_coloristouchingcolor": "couleur touche couleur", "block-switching/sensing_mousex": "souris x", "block-switching/sensing_mousey": "souris y", + "block-switching/sensing_touchingcolor": "couleur touchée", "block-switching/sound_changeeffectby": "ajouter à l'effet", "block-switching/sound_changevolumeby": "ajouter au volume", "block-switching/sound_play": "débute", "block-switching/sound_playuntildone": "jouer jusqu'au bout", "block-switching/sound_seteffectto": "mettre l'effet à", "block-switching/sound_setvolumeto": "mettre le volume à", + "copy-reporter/copy-to-clipboard": "Copier", + "copy-reporter/copy-value": "copier la valeur", "blocks2image/error_blocks_not_added": "Ajoute des blocs à l'espace de travail  !", "blocks2image/export_all_to_PNG": "Tout exporter au format PNG", "blocks2image/export_all_to_SVG": "Tout exporter au format SVG", @@ -228,6 +232,10 @@ "editor-extra-keys/enter-key": "entrée", "move-to-top-bottom/bottom": "Déplacé en bas", "move-to-top-bottom/top": "Déplacé en haut", + "move-to-top-layer/move-to-front-layer": "passer à la couche avant", + "rename-broadcasts/RENAME_BROADCAST": "Renommer le message", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Renommer le message", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Renommer tous les messages \"{name}\" en :", "swap-local-global/cant-convert-cloud": "Les variables cloud ne peuvent pas être converties uniquement dans ce sprite.", "swap-local-global/cant-convert-conflict": "Impossible d'effectuer la conversion car cela entrerait en conflit avec les variables d'un autre sprite : {sprites}", "swap-local-global/cant-convert-stage": "La scène ne peut pas avoir de variables uniquement pour ce sprite.", diff --git a/src/addons/addons-l10n/hu.json b/src/addons/addons-l10n/hu.json index 7bc8b8a1d93..7e2636b3d83 100644 --- a/src/addons/addons-l10n/hu.json +++ b/src/addons/addons-l10n/hu.json @@ -1,53 +1,26 @@ { - "editor-devtools/bottom": "küldés alulra", "editor-devtools/clean-plus": "Rendrakás +", - "editor-devtools/code-tab-features": "Kód Sáv Funkciók", - "editor-devtools/copy-all": "Minden Másolása", + "editor-devtools/copy-all": "Összes Másolása", "editor-devtools/copy-block": "Blokk Másolása", - "editor-devtools/copy-to-clipboard": "Másolás a Vágólapra", - "editor-devtools/copy-to-clipboard-desc": "Kattints jobb egérgombbal egy blokkra és 3 új opció lesz elérhető, ezek a Minden Másolása, Blokk Másolása és a Blokk Kivágása. A Minden Másolása opció vágólapra másolja a blokkot és az alatta elhelyezkedő többi blokkot is. A Blokk Másolása csak a jelenlegi blokkot fogja másolni, alóla semmit. A blokk kivágása pedig kimásolja, majd eltávolvítja a blokkot a kód mezőből.", - "editor-devtools/costume-tab-features": "Jelmezek Fül Funkciók", - "editor-devtools/ctrl-lr": "Ctrl + Bal, Ctrl + Jobb", - "editor-devtools/ctrl-lr-costume-desc": "Ezek a gombok az előző / következő jelmezhez navigálnak az adott szereplőben.", - "editor-devtools/ctrl-lr-desc": "Navigálás előző / következő látogatott pozícióhoz a kód mezőben (miután használtad a navigálás blokkhoz funkciót vagy a keresőmezőt). Lehetővé teszi, hogy középső egérgombbal rákattints egy saját blokkra és a definíciójához ugorj, ezt követően a ctrl + balra nyíllal visszatérhetsz oda, ahol korábban voltál.", - "editor-devtools/ctrl-space": "Ctrl + Szóköz, Középső egérgomb, vagy Shift + Kattintás", - "editor-devtools/ctrl-space-desc": "Megjelenít egy lebegő gépelő ablakot, ahova beírhatod egy blokknak a nevét (vagy részleteket belőle) és behúzhatod a blokkot a kódba, hogy ott hasznát vehesd. Ha egyszerre több blokkot akarsz hozzáadni, a Shift nyomvatartásával nyitvatarthatod az ablakot.", "editor-devtools/cut-block": "Blokk Kivágása", - "editor-devtools/deep": "Mély", - "editor-devtools/find": "Keresés", - "editor-devtools/find-bar": "Keresőmező", - "editor-devtools/find-bar-costume-desc": "Kattints minden jelmez rendezéséhez név szerint, majd gépelj, hogy kereshess. Használd a nyilakat vagy kattints az egérrel, hogy válassz egy jelmezt, amelyhez odaugrasz.", - "editor-devtools/find-placeholder": "Keresés (Ctrl+F)", - "editor-devtools/help": "Súgó", - "editor-devtools/help-make-space": "Csinálj Helyet", - "editor-devtools/help-make-space-desc": "Csinálj extra helyet az adott kód körül, azzal hogy jobb kattintasz rá és a \"Csinálj Helyet\" opciót választod.", - "editor-devtools/help-new": "★Új★", - "editor-devtools/help-title": "Scratch 3 Fejlesztői Eszközök", - "editor-devtools/improved-tidy-up": "Fejlesztett Kód Rendrakás", - "editor-devtools/improved-tidy-up-desc": "Jobb kattints a kódoló területre, hogy megjelenítsd a menüt és a Rendrakás opció helyén egy Rendrakás + opciót fogsz találni. Használd ezt, hogy feltakaríts a kódok között az oszlopokat is figyelembe véve, illetve mozgatva a kommenteket és eltávolítva az összes kódon kívüli változót, stb.", - "editor-devtools/insert": "Beszúrás", - "editor-devtools/interactive-find-bar": "Interaktív Keresőmező (Ctrl + F)", - "editor-devtools/interactive-find-bar-desc": "Találj meg és ugorj gyorsan bármely Egyéni Blokkhoz, Változóhoz, Üzenethez, vagy Felső blokkhoz egy szereplőben, azzal hogy rákattintasz az új keresőmezőre, amely a Kód, Jelmezek és Hangok fülektől jobbra található. Kezdj el gépelni, hogy leszűrd a listát. Használd a fel és a le nyilakat, hogy váltogass a lehetséges opciók közt, illetve a balra és jobbra nyilakat, hogy válts a blokk összes talált előfordulási helye közt.", "editor-devtools/lists": "listák", "editor-devtools/make-space": "Csinálj Helyet", - "editor-devtools/middleclick": "Ugorj a definícióhoz", - "editor-devtools/middleclick-desc": "A középső egérgomb, vagy a Shift gomb használata mellett változók, vagy saját blokkokra történő kattintás esetén lehetővé teszi, hogy rögtön odaugorj a definiáláshoz, vagy megnyissad az interaktív keresőmezőt.", "editor-devtools/orphaned": "{count, plural, one {Fejlesztői eszközök: Törölni szeretnél 1 kódon kívüli értékadó blokkot?} other {Fejlesztői eszközök: Törölni szeretnél # kódon kívüli értékadó blokkot?} }", "editor-devtools/paste": "Beillesztés", - "editor-devtools/paste-from-clipboard": "Másolás a Vágólapról", - "editor-devtools/paste-from-clipboard-desc": "Bemásolja a vágólapról a lemásolt blokkokat, de fontos, hogy oda másolja, ahol a kurzorod éppen van, szóval te helyezheted el (a helyett, hogy ugyanoda tenné, mint a jelenlegi scratch implementáció).", "editor-devtools/replace": "Fejlesztői eszközök: Lecserélsz minden {name} változót ebben a szereplőben egy másik változóra, amit úgy hívnak:", - "editor-devtools/start-typing": "Kezdj Gépelni...", "editor-devtools/swap": "{var} cserélye a Szereplőben", - "editor-devtools/swap-variable": "Változó Cseréje a Szereplőben", - "editor-devtools/swap-variable-desc": "Jobb kattints egy változóra a kódjaidban ezért az új opcióért. Megengedi, hogy egyszerre kicserélj minden hivatkozást az adott változóra a jelenlegi szereplőben egy másik változóra. Ez akkor jó, amikor hibát követsz el és át kell válts egy másik változóra egy szereplőben vagy váltanod kell a 'Minden szereplőé'-ről 'A kiválasztott szereplőé'-re. Ez az opció nem fogja eltávolítani az eredeti változót és más szereplők változóit sem cseréli le.", - "editor-devtools/top": "küldés felülre", - "editor-devtools/tutorials": "Tutorialok", "editor-devtools/unused-list": "{count, plural, one {Fejlesztői eszközök: Törölni szeretnél 1 nem használt helyi listát? Itt van:\n} other {Fejlesztői eszközök: Törölni szeretnél # nem használt heliy listát? Itt vannak:\n} }", "editor-devtools/unused-var": "{count, plural, one {Fejlesztői eszközök: Törölni szeretnél 1 nem használt helyi változót? Itt van:\n} other {Fejlesztői eszközök: Törölni szeretnél # nem használt helyi változót? Itt vannak:\n} }", "editor-devtools/var-not-exist": "Ez a változó nem létezik...", "editor-devtools/variables": "változók", - "editor-devtools/youtube": "YouTube tutorialok", + "find-bar/complex-broadcast": "(kifejezés)", + "find-bar/event": "{name} esemény", + "find-bar/find-placeholder": "Keresés (Ctrl+F)", + "find-bar/list-global": "{name} LISTA", + "find-bar/list-local": "{name} lista", + "find-bar/var-global": "{name} VÁLT.", + "find-bar/var-local": "{name} vált.", + "middle-click-popup/start-typing": "Kezdjen el gépelni...", "editor-searchable-dropdowns/createBroadcast": "\"{name}\" üzenet létrehozása", "editor-searchable-dropdowns/createGlobalList": "\"{name}\" lista létrehozása minden szereplőnek", "editor-searchable-dropdowns/createGlobalVariable": "\"{name}\" változó létrehozása minden szereplőnek", @@ -62,11 +35,10 @@ "mediarecorder/click-flag": "Várakozás...", "mediarecorder/click-flag-description": "Kattints a zöld zászlóra a felvételhez. Kattints erre a gombra, hogy leállítsd a felvételt.", "mediarecorder/option-title": "Felvétel Opciók", - "mediarecorder/record": "Felvétel Indítása", + "mediarecorder/record": "Felvétel", "mediarecorder/record-after-flag": "Ne kezdődjön el a felvétel, amíg a zöld zászlóra rá nem kattintasz", "mediarecorder/record-audio": "Projekt hangok felvétele", "mediarecorder/record-audio-description": "Ez nem tartalmaz Text-to-Speech-t.", - "mediarecorder/record-description": "Felveheted a színpadot WebM fájlként. Ezt elmentheted a számítógépedre miután a felvétel véget ért.", "mediarecorder/record-duration": "Felvétel Időtartama (másodperc)", "mediarecorder/record-mic": "Mikrofon hangjának felvétele", "mediarecorder/record-until-stop": "Felvétel leállítása miután a projekt megállt", @@ -97,9 +69,13 @@ "debugger/log-msg-flag-clicked": "A zöld zászló le volt nyomva.", "debugger/no-logs": "Nincs esemény feljegyezve.", "debugger/no-threads-running": "Nincsenek éppen futó szálak.", + "debugger/performance-clonecount-graph-tooltip": "Klónok:{clones}", + "debugger/performance-clonecount-title": "Klónok", + "debugger/performance-framerate-title": "FPS: képkocka per másodperc", "debugger/step": "Továbblépés", "debugger/step-desc": "Lefuttat egy blokkot", "debugger/tab-logs": "Napló", + "debugger/tab-performance": "Teljesítmény", "debugger/tab-threads": "Szálak", "debugger/thread": "Szál {id}", "debugger/unknown-sprite": "(névtelen szereplő)", @@ -121,13 +97,34 @@ "onion-skinning/settings": "Onion Skinning beállítások", "onion-skinning/tint": "Árnyalás", "onion-skinning/toggle": "Onion Skinning bekapcsolása", + "paint-snap/boxCenter": "Kijelölés közepe", + "paint-snap/boxCorners": "Kijelölés közepei", + "paint-snap/boxEdgeMids": "Kijelölés széleinek felezőpontjai", + "paint-snap/objectCenters": "Objektumok közepei", + "paint-snap/objectCorners": "Objektumok sarkai", + "paint-snap/objectEdges": "Objektumok szélei", + "paint-snap/objectMidlines": "Objektumok középvonalai", + "paint-snap/off": "Ki", + "paint-snap/on": "Be", + "paint-snap/pageAxes": "Lap x és y tengelyei", + "paint-snap/pageCenter": "Lap közepe", + "paint-snap/pageCorners": "Lap sarkai", + "paint-snap/pageEdges": "Lap szélei", + "paint-snap/settings": "Illesztés beállításai", + "paint-snap/snapFrom": "Illesztés innen:", + "paint-snap/snapTo": "Illessztés ide:", + "paint-snap/threshold": "Illesztési távolság", + "paint-snap/toggle": "Illesztés átváltása", "2d-color-picker/shade": "Árnyalat", "better-img-uploads/upload": "HD feltöltés", "variable-manager/for-all-sprites": "Változók minden szereplőnek", "variable-manager/for-this-sprite": "Változók ennek a szereplőnek", "variable-manager/search": "Keresés", + "variable-manager/too-big": "Kattints a nagyon hosszú érték megjelenítéséhez.", "variable-manager/variables": "Változók", "search-sprites/placeholder": "Szereplők keresése...", + "sprite-properties/close-properties-panel-tooltip": "Tulajdonságok panel összecsukása", + "sprite-properties/open-properties-panel-tooltip": "Tulajdonságok panel megnyitása", "gamepad/axes-a-b": "Tengelyek {a} & {b}", "gamepad/axis-arrows": "Nyíl-billentyűk", "gamepad/axis-cursor": "Kurzor", @@ -148,7 +145,6 @@ "gamepad/no-controllers": "Nem található kontroller. Próbálj csatlakoztatni egyet, majd egy gombot megnyomni rajta.", "gamepad/reset": "Minden vezérlő visszaállítása a projekt alapértelmezettjére", "gamepad/settings": "Gamepad beállítások", - "gamepad/store-in-project": "Tárold ezeket a beállításokat a projektben, hogy felülírd az alapértelmezett konfigurációkat (Kísérleti segítőeszköz projekt-készítőknek)", "folders/add-to-folder": "hozzáadás ehhez a mappához: {folder}", "folders/closed-folder": "Mappa", "folders/confirm-backpack-folder": "Egész mappa mentése a hátizsákba?", @@ -168,6 +164,8 @@ "block-switching/control_repeat_until": "ismételd eddig", "block-switching/control_wait_until": "várj eddig", "block-switching/data_changevariableby": "változó változzon", + "block-switching/data_deletealloflist": "összes törlése", + "block-switching/data_deleteoflist": "elem törlése", "block-switching/data_hidelist": "lista tűnjön el", "block-switching/data_hidevariable": "változó tűnjön el", "block-switching/data_insertatlist": "illessz be elemet", @@ -184,6 +182,8 @@ "block-switching/looks_changeeffectby": "effekt változzon", "block-switching/looks_changesizeby": "méret változzon", "block-switching/looks_costumenumbername": "jelmez sorszáma vagy neve", + "block-switching/looks_goforwardbackwardlayers": "menj előre vagy hátra rétegeket", + "block-switching/looks_gotofrontback": "legelső vagy leghátsó rétegre küldés", "block-switching/looks_hide": "tűnj el", "block-switching/looks_nextbackdrop": "következő háttér", "block-switching/looks_nextcostume": "következő jelmez", @@ -219,20 +219,28 @@ "block-switching/pen_setPenHueToNumber": "színárnyalat legyen", "block-switching/pen_setPenShadeToNumber": "árnyalat legyen", "block-switching/pen_setPenSizeTo": "méret legyen", + "block-switching/sensing_coloristouchingcolor": "szín érint színt", "block-switching/sensing_mousex": "egér x", "block-switching/sensing_mousey": "egér y", + "block-switching/sensing_touchingcolor": "szín érintése", "block-switching/sound_changeeffectby": "effekt változzon", "block-switching/sound_changevolumeby": "hangerő változzon", "block-switching/sound_playuntildone": "játszd végig", "block-switching/sound_seteffectto": "effekt legyen", "block-switching/sound_setvolumeto": "hangerő legyen", + "copy-reporter/copy-to-clipboard": "Másolás", + "copy-reporter/copy-value": "érték kimásolása", "blocks2image/error_blocks_not_added": "Blokk hozzáadása a munkaterülethez!", - "blocks2image/export_all_to_PNG": "Minden exportálása PNG-ként", - "blocks2image/export_all_to_SVG": "Minden exportálása SVG-ként", - "blocks2image/export_selected_to_PNG": "Blokk exportálása SVG-ként", - "blocks2image/export_selected_to_SVG": "Exportáld a blokkokat SVG-ként", + "blocks2image/export_all_to_PNG": "Összes exportálása PNG-ként", + "blocks2image/export_all_to_SVG": "Összes exportálása SVG-ként", + "blocks2image/export_selected_to_PNG": "Blokk exportálása PNG-ként", + "blocks2image/export_selected_to_SVG": "Blokk exportálása SVG-ként", "move-to-top-bottom/bottom": "áthelyezés legalulra", "move-to-top-bottom/top": "áthelyezés legfelülre", + "move-to-top-layer/move-to-front-layer": "kerülj legelőre", + "rename-broadcasts/RENAME_BROADCAST": "Üzenet átnevezése", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Üzenet Átnevezése", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Az összes „{name}” üzenet átnevezése erre:", "swap-local-global/cant-convert-cloud": "Megosztott változókat nem lehet átkonvertálni a kiválasztott szereplőévé.", "swap-local-global/cant-convert-conflict": "Nem konvertálható, mert szembeütközne más szereplőben található változókkal: {sprites}", "swap-local-global/cant-convert-stage": "A színpadnak nem lehetnek kiválsztott szereplői változói.", diff --git a/src/addons/addons-l10n/it.json b/src/addons/addons-l10n/it.json index 1863d429f35..d5d9ff70f7c 100644 --- a/src/addons/addons-l10n/it.json +++ b/src/addons/addons-l10n/it.json @@ -1,53 +1,27 @@ { - "editor-devtools/bottom": "sposta in ultima posizione", + "_general/blocks/anticlockwise": "antiorario", + "_general/blocks/clockwise": "orario", + "_general/blocks/green-flag": "bandiera", "editor-devtools/clean-plus": "Riordina i Blocchi (+)", - "editor-devtools/code-tab-features": "Funzioni Scheda Codice", "editor-devtools/copy-all": "Copia Tutti", "editor-devtools/copy-block": "Copia il Blocco", - "editor-devtools/copy-to-clipboard": "Copia negli Appunti", - "editor-devtools/copy-to-clipboard-desc": "Il clic destro su un blocco rende disponibili 3 nuove opzioni Copia Tutti, Copia un Blocco e Taglia un Blocco. Copia Tutti copierà negli appunti il blocco e tutti i blocchi sotto di esso. Copia Blocco copierà solo il blocco corrente e i blocchi in esso contenuti. Taglia Blocco invece lo copierà e lo rimuoverà al contempo dall'area degli script.", - "editor-devtools/costume-tab-features": "Funzioni nella Scheda dei Costumi", - "editor-devtools/ctrl-lr": "Ctrl + Destra, Ctrl + Sinistro", - "editor-devtools/ctrl-lr-costume-desc": "Usa questi tasti per navigare al costume precedente/seguente nello sprite.", - "editor-devtools/ctrl-lr-desc": "Naviga alla posizione visitata precedentemente/successivamente nell'area degli script (dopo aver usato la funzione naviga al blocco o la barra di ricerca). Questo ti permette di fare clic centralmente su un blocco personalizzato per andare alla sua definizione e di tornare poi dove eri prima premendo Ctrl + Sinistra.", - "editor-devtools/ctrl-space": "Ctrl + Spazio, Pulsante Centrale o Shift + Click", - "editor-devtools/ctrl-space-desc": "Fa comparire una casella dove puoi inserire il nome del blocco (o parte del nome) e trascinare poi direttamente nel codice il blocco trovato. Tieni premuto Shift mentre lo trascini per evitare di chiudere la casella nel caso tu voglia aggiungere più blocchi.", "editor-devtools/cut-block": "Taglia il Blocco", - "editor-devtools/deep": "Profondo", - "editor-devtools/find": "Trova", - "editor-devtools/find-bar": "Barra di Ricerca", - "editor-devtools/find-bar-costume-desc": "Clicca per vedere l'elenco di tutti i costumi ordinato per nome, e inserisci il nome per trovarne uno. Usa le frecce o il mouse per cliccare un nome e andare direttamente a quel costume.", - "editor-devtools/find-placeholder": "Trova (Ctrl + F)", - "editor-devtools/help": "Aiuto", - "editor-devtools/help-make-space": "Fai Spazio", - "editor-devtools/help-make-space-desc": "Crea spazio maggiore attorno ad uno script cliccandolo con il tasto destro e selezionando \"Fai Spazio\"", - "editor-devtools/help-new": "★Nuovo★", - "editor-devtools/help-title": "Strumenti per Sviluppatori di Scratch 3", - "editor-devtools/improved-tidy-up": "Funzione migliorata di Riordino degli Script ", - "editor-devtools/improved-tidy-up-desc": "Clicca con il tasto destro nell'area degli script per far comparire il menu e l'opzione Riordina i Blocchi sarà stata rimpiazzata dall'opzione Riordina i blocchi (+). Puoi usarla per riordinare gli script preservando le colonne in cui li hai disposti ma anche per provare ad allineare i commenti e per rimuovere le variabili inutilizzate, ecc.", - "editor-devtools/insert": "Inserisci", - "editor-devtools/interactive-find-bar": "Barra di Ricerca Interattiva (Ctrl + F)", - "editor-devtools/interactive-find-bar-desc": "Trova e passa rapidamente a qualunque Blocco Personalizzato, Variabile, Evento o Cappello definito in uno sprite cliccando la nuova barra di ricerca che trovi a destra delle schede Codice, Costumi e Suoni. Usa le frecce su e giù per scorrere le opzioni e le frecce destra e sinistra per spostarti da un'istanza all'altra del blocco.", "editor-devtools/lists": "liste", "editor-devtools/make-space": "Fai Spazio", - "editor-devtools/middleclick": "Vai a", - "editor-devtools/middleclick-desc": "L'uso del pulsante centrale del mouse o di Shift+Click su una variabile o su un blocco personalizzato permette di passare alla sua definizione o di aprirlo nella barra di ricerca interattiva.", "editor-devtools/orphaned": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 blocco monitor non collegato agli script?} many {Strumenti per sviluppatori: Rimuovere # blocchi monitor non collegati agli script?} other {Strumenti per sviluppatori: Rimuovere # blocchi monitor non collegati agli script?} }", "editor-devtools/paste": "Incolla", - "editor-devtools/paste-from-clipboard": "Incolla dagli Appunti", - "editor-devtools/paste-from-clipboard-desc": "Incolla dagli appunti nel punto in cui si trova il cursore del mouse in modo che tu possa posizionare i blocchi in quel punto (invece di posizionarli nel punto da cui li hai copiati, come accade normalmente in Scratch).", "editor-devtools/replace": "Strumenti per sviluppatori: Scambia tutti le occorrenze della variabile {name} in questo sprite con la variabile:", - "editor-devtools/start-typing": "Inizia a Scrivere...", "editor-devtools/swap": "Scambia {var} nello Sprite", - "editor-devtools/swap-variable": "Sostituisci Variabile nello Sprite", - "editor-devtools/swap-variable-desc": "Clic destro su una variabile nei tuoi script. Ti permette di sostituire tutti i riferimenti a questa variabile nello sprite attuale con un'altra variabile. Questo è utile per quando fai un errore e vuoi passare da una variabile a un'altra o se hai bisogno di passare da 'Per tutti gli sprite' a 'Solo per questo sprite' o viceversa. La variabile vecchia non verrà rimossa.", - "editor-devtools/top": "porta in prima posizione", - "editor-devtools/tutorials": "Tutorial", "editor-devtools/unused-list": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 lista locale inutilizzata? Eccola qui:\n} many {Strumenti per sviluppatori: Rimuovere # liste locali inutilizzate? Eccole qui:\n} other {Strumenti per sviluppatori: Rimuovere # liste locali inutilizzate? Eccole qui:\n} }", "editor-devtools/unused-var": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 variabile locale inutilizzata? Eccola qui:\n} many {Strumenti per sviluppatori: Rimuovere # variabili locali inutilizzate? Eccole qui:\n} other {Strumenti per sviluppatori: Rimuovere # variabili locali inutilizzate? Eccole qui:\n} }", "editor-devtools/var-not-exist": "Questa variabile non esiste...", "editor-devtools/variables": "variabili", - "editor-devtools/youtube": "Tutorial YouTube", + "find-bar/complex-broadcast": "(espressione)", + "find-bar/event": "situazione {name}", + "find-bar/find-placeholder": "Cerca (Ctrl+F)", + "find-bar/list-global": "LISTA {name}", + "find-bar/list-local": "lista {name}", + "middle-click-popup/start-typing": "Inizia a Scrivere...", "editor-searchable-dropdowns/createBroadcast": "Crea il messaggio \"{name}\"", "editor-searchable-dropdowns/createGlobalList": "Crea la lista \"{name}\" per tutti gli sprite", "editor-searchable-dropdowns/createGlobalVariable": "Crea la variabile \"{name}\" per tutti gli sprite.", @@ -62,11 +36,11 @@ "mediarecorder/click-flag": "In attesa...", "mediarecorder/click-flag-description": "Clicca la bandiera verde per avviare la registrazione. Clicca questo tasto per fermarla.", "mediarecorder/option-title": "Opzioni Registrazione", - "mediarecorder/record": "Avvia Registrazione", + "mediarecorder/record": "Registra", "mediarecorder/record-after-flag": "Non avviare la registrazione finché non viene cliccata la bandiera verde", "mediarecorder/record-audio": "Includi suoni del progetto", "mediarecorder/record-audio-description": "Questo non include l'estensione Da Testo A Voce", - "mediarecorder/record-description": "Registra lo stage come file WebM. Puoi salvarlo sul tuo computer quando la registrazione termina.", + "mediarecorder/record-description": "Registra lo stage come file {extension}. Quando la registrazione termina puoi salvarla sul tuo computer.\nNota: i monitor delle variabili e delle liste non saranno visibili.", "mediarecorder/record-duration": "Durata Registrazione (in secondi)", "mediarecorder/record-mic": "Includi i suoni del microfono", "mediarecorder/record-until-stop": "Arresta la registrazione quando il progetto viene fermato", @@ -94,6 +68,8 @@ "debugger/log-msg-flag-clicked": "Bandiera verde cliccata.", "debugger/no-logs": "Non ci sono log da mostrare.", "debugger/no-threads-running": "Nessun thread in esecuzione.", + "debugger/performance-clonecount-graph-tooltip": "Cloni: {clones}", + "debugger/performance-clonecount-title": "Cloni", "debugger/step": "Passi", "debugger/step-desc": "Esegue un blocco.", "debugger/tab-logs": "Log", @@ -101,6 +77,7 @@ "debugger/unknown-sprite": "(sprite sconosciuto)", "debugger/unpause": "Riprendi", "pause/pause": "Pausa", + "pause/play": "Riprendi", "clones/clones": "cloni: {cloneCount}", "color-picker/hex": "colore esadecimale", "remove-sprite-confirm/confirm": "Vuoi cancellare lo sprite?", @@ -117,13 +94,34 @@ "onion-skinning/settings": "Impostazioni Onion Skin", "onion-skinning/tint": "Colore", "onion-skinning/toggle": "Attiva/Disattiva Onion Skin", + "paint-snap/boxCenter": "Centro della selezione", + "paint-snap/boxCorners": "Angoli della selezione", + "paint-snap/boxEdgeMids": "Punti mediani sui bordi della selezione", + "paint-snap/objectCenters": "Centri degli oggetti", + "paint-snap/objectCorners": "Angoli degli oggetti", + "paint-snap/objectEdges": "Bordi degli oggetti", + "paint-snap/objectMidlines": "Linea mediana degli oggetti", + "paint-snap/off": "Disattivato", + "paint-snap/on": "Attivo", + "paint-snap/pageAxes": "Assi x e y della pagina", + "paint-snap/pageCenter": "Centro della pagina", + "paint-snap/pageCorners": "Angoli della pagina", + "paint-snap/pageEdges": "Bordi della pagina", + "paint-snap/settings": "Impostazioni Magnete", + "paint-snap/snapFrom": "Attiva magnete da:", + "paint-snap/snapTo": "Attacca a:", + "paint-snap/threshold": "DIstanza di attivazione del magnete", + "paint-snap/toggle": "Attiva/Disattiva Magnete", "2d-color-picker/shade": "Ombreggiatura", "better-img-uploads/upload": "Caricamento HD", "variable-manager/for-all-sprites": "Variabili per tutti gli sprite", "variable-manager/for-this-sprite": "Variabili di questo sprite", "variable-manager/search": "Cerca", + "variable-manager/too-big": "Clicca per mostrare valori molto grandi.", "variable-manager/variables": "Variabili", "search-sprites/placeholder": "Cerca sprite...", + "sprite-properties/close-properties-panel-tooltip": "Nascondi il pannello delle informazioni", + "sprite-properties/open-properties-panel-tooltip": "Apri il pannello delle informazioni", "gamepad/axes-a-b": "Assi {a} & {b}", "gamepad/axis-arrows": "Tasti Freccia", "gamepad/axis-cursor": "Cursore", @@ -144,7 +142,7 @@ "gamepad/no-controllers": "Nessun controller rilevato. Prova a collegarne uno e a premere un pulsante del controller.", "gamepad/reset": "Riporta i controli a quelli predefiniti", "gamepad/settings": "Impostazioni Gamepad", - "gamepad/store-in-project": "Memorizza queste impostazioni nel progetto per evitare le configurazioni predefinite (Tool sperimentale per i creatori di progetti)", + "gamepad/store-in-project": "Memorizza queste impostazioni nel progetto. Dopo aver salvato il progetto, queste impostazioni diventeranno la nuova configurazione predefinita.", "folders/add-to-folder": "inserisci nella cartella: {folder}", "folders/closed-folder": "Cartella", "folders/confirm-backpack-folder": "Salvare l'intera cartella nella valigetta?", @@ -164,6 +162,8 @@ "block-switching/control_repeat_until": "ripeti fino a quando", "block-switching/control_wait_until": "attendi fino a quando", "block-switching/data_changevariableby": "cambia variabile di", + "block-switching/data_deletealloflist": "cancella tutto", + "block-switching/data_deleteoflist": "cancella elemento", "block-switching/data_hidelist": "nascondi la lista", "block-switching/data_hidevariable": "nascondi la variabile", "block-switching/data_insertatlist": "inserisci elemento alla posizione di", @@ -179,6 +179,8 @@ "block-switching/looks_changeeffectby": "cambia effetto di", "block-switching/looks_changesizeby": "cambia dimensione di", "block-switching/looks_costumenumbername": "numero o nome costume", + "block-switching/looks_goforwardbackwardlayers": "vai avanti o indietro di livello", + "block-switching/looks_gotofrontback": "vai in primo o in secondo piano", "block-switching/looks_hide": "nascondi", "block-switching/looks_nextbackdrop": "passa allo sfondo seguente", "block-switching/looks_nextcostume": "passa al costume seguente", @@ -214,14 +216,18 @@ "block-switching/pen_setPenHueToNumber": "porta colore a", "block-switching/pen_setPenShadeToNumber": "porta ombreggiatura a", "block-switching/pen_setPenSizeTo": "porta dimensione a", + "block-switching/sensing_coloristouchingcolor": "il colore sta toccando il colore", "block-switching/sensing_mousex": "x del mouse", "block-switching/sensing_mousey": "y del mouse", + "block-switching/sensing_touchingcolor": "sta toccando il colore", "block-switching/sound_changeeffectby": "cambia effetto di", "block-switching/sound_changevolumeby": "cambia volume di", "block-switching/sound_play": "avvia", "block-switching/sound_playuntildone": "riproduci suono e attendi la fine", "block-switching/sound_seteffectto": "porta effetto a", "block-switching/sound_setvolumeto": "porta volume a", + "copy-reporter/copy-to-clipboard": "Copia", + "copy-reporter/copy-value": "copia valore", "blocks2image/error_blocks_not_added": "Aggiungi i blocchi al tuo workspace!", "blocks2image/export_all_to_PNG": "Esporta tutto come PNG", "blocks2image/export_all_to_SVG": "Esporta tutto come SVG", @@ -230,6 +236,10 @@ "editor-extra-keys/enter-key": "invio", "move-to-top-bottom/bottom": "porta in fondo", "move-to-top-bottom/top": "porta in cima", + "move-to-top-layer/move-to-front-layer": "porta in primo piano", + "rename-broadcasts/RENAME_BROADCAST": "Rinomina messaggio", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Rinomina Messaggio", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Rinomina tutti i messaggi \"{name}\" come:", "swap-local-global/cant-convert-cloud": "Le variabili cloud non possono essere convertite a \"Solo per questo sprite\"", "swap-local-global/cant-convert-conflict": "Impossibile convertire perché entrerebbe in conflitto con le variabili di un altro sprite: {sprites}", "swap-local-global/cant-convert-stage": "Lo stage non può avere variabili \"Solo per questo sprite\".", diff --git a/src/addons/addons-l10n/ja.json b/src/addons/addons-l10n/ja.json index e0d582027d9..8fe3ec3f3f6 100644 --- a/src/addons/addons-l10n/ja.json +++ b/src/addons/addons-l10n/ja.json @@ -1,53 +1,29 @@ { - "editor-devtools/bottom": "一番下に移動", + "_general/blocks/anticlockwise": "左回り", + "_general/blocks/clockwise": "右回り", + "_general/blocks/green-flag": "緑の旗", "editor-devtools/clean-plus": "きれいにする +", - "editor-devtools/code-tab-features": "コードタブの機能", "editor-devtools/copy-all": "すべてコピー", "editor-devtools/copy-block": "ブロックをコピー", - "editor-devtools/copy-to-clipboard": "クリップボードにコピー", - "editor-devtools/copy-to-clipboard-desc": "右クリックメニューに「すべてコピー」「ブロックをコピー」「ブロックを切り取り」を追加する。「すべてコピー」で選択したブロックとそれ以下のブロックをコピー。「ブロックをコピー」で選択したブロックをコピー。「ブロックを切り取り」で、ブロックをコピーして削除。", - "editor-devtools/costume-tab-features": "コスチュームタブの機能", - "editor-devtools/ctrl-lr": "Ctrl+左右キー", - "editor-devtools/ctrl-lr-costume-desc": "スプライトのコスチュームを前のコスチューム・次のコスチュームにする。", - "editor-devtools/ctrl-lr-desc": "中ボタンクリックや検索バーを使用後、使用前の場所に移動する。これで、中ボタンクリックで定義ブロックを確認し、すぐに戻ることができる。", - "editor-devtools/ctrl-space": "Ctrl+スペース・中ボタンクリック・Shiftクリック", - "editor-devtools/ctrl-space-desc": "表示される入力欄にブロックの名前を入力してドラッグすると、ブロックを追加できる。Shiftキーを押しながらドラッグすると、画面を閉じずに複数のブロックを追加できる。", "editor-devtools/cut-block": "ブロックを切り取り", - "editor-devtools/deep": "再帰的に検索", - "editor-devtools/find": "検索", - "editor-devtools/find-bar": "検索バー", - "editor-devtools/find-bar-costume-desc": "クリックしてコスチューム一覧を表示し、入力して絞り込む。矢印キーやマウスでクリックしてコスチュームを選択する。", - "editor-devtools/find-placeholder": "検索 (Ctrl+F)", - "editor-devtools/help": "ヘルプ", - "editor-devtools/help-make-space": "スペースを確保", - "editor-devtools/help-make-space-desc": "スクリプトを右クリックして「スペースを確保」を押して、スクリプトの周りにスペースを確保する。", - "editor-devtools/help-new": "新機能!", - "editor-devtools/help-title": "Scratch 3 開発者ツール", - "editor-devtools/improved-tidy-up": "「きれいにする」改善", - "editor-devtools/improved-tidy-up-desc": "コードエリアを右クリックしたときに表示されるコンテキストメニューの「きれいにする」を「きれいにする +」で置き換える。スクリプトやコメントを整列させ、未使用の変数を削除する。", - "editor-devtools/insert": "挿入", - "editor-devtools/interactive-find-bar": "検索バー (Ctrl+F)", - "editor-devtools/interactive-find-bar-desc": "タブの横の検索バーをクリックし、スプライト内の定義ブロック、変数、イベント、ハットブロックに移動する。入力し、上下キーでブロックの種類を選び、左右キーでブロックを選ぶ。", "editor-devtools/lists": "リスト", "editor-devtools/make-space": "スペースを確保", - "editor-devtools/middleclick": "定義へ移動", - "editor-devtools/middleclick-desc": "中ボタンクリックかShiftクリックで、定義ブロックに移動したり検索バーを開く。", "editor-devtools/orphaned": "{count, plural, other {開発者ツール: 未使用の値ブロックを # 個見つけました。削除しますか?} }", "editor-devtools/paste": "貼り付け", - "editor-devtools/paste-from-clipboard": "クリップボードを貼り付け", - "editor-devtools/paste-from-clipboard-desc": "クリップボードの中身をマウスの位置に貼り付け。", "editor-devtools/replace": "開発者ツール: このスプライト内の変数{name}をすべて置き換える:", - "editor-devtools/start-typing": "入力してください...", "editor-devtools/swap": "スプライト内の{var}を一括切り替え", - "editor-devtools/swap-variable": "スプライト内の変数を入れ替え", - "editor-devtools/swap-variable-desc": "変数を右クリックし、スプライト内のすべての変数を別の変数に置き換える。古い変数は削除せず、他のスプライトは変更しない。", - "editor-devtools/top": "一番上に移動", - "editor-devtools/tutorials": "チュートリアル", "editor-devtools/unused-list": "{count, plural, other {開発者ツール: 未使用のこのスプライトのみのリストを # 個見つけました。削除しますか? 以下が一覧です:\n} }", "editor-devtools/unused-var": "{count, plural, other {開発者ツール: 未使用のこのスプライトのみの変数を # 個見つけました。削除しますか? 以下が一覧です:\n} }", "editor-devtools/var-not-exist": "その変数は存在しません。", "editor-devtools/variables": "変数", - "editor-devtools/youtube": "YouTubeチュートリアル", + "find-bar/complex-broadcast": "(式)", + "find-bar/event": "イベント {name}", + "find-bar/find-placeholder": "検索 (Ctrl+F)", + "find-bar/list-global": "リスト {name}", + "find-bar/list-local": "スプライトリスト {name}", + "find-bar/var-global": "変数 {name}", + "find-bar/var-local": "スプライト変数 {name}", + "middle-click-popup/start-typing": "入力する...", "editor-searchable-dropdowns/createBroadcast": "メッセージ「{name}」を作成", "editor-searchable-dropdowns/createGlobalList": "すべてのスプライト用のリスト「{name}」を作成", "editor-searchable-dropdowns/createGlobalVariable": "すべてのスプライト用の変数「{name}」を作成", @@ -62,11 +38,11 @@ "mediarecorder/click-flag": "待機中...", "mediarecorder/click-flag-description": "緑の旗を押して録画を開始してください。このボタンを押すと録画を中止できます。", "mediarecorder/option-title": "録画のオプション", - "mediarecorder/record": "録画を開始", + "mediarecorder/record": "録画", "mediarecorder/record-after-flag": "緑の旗を押して録画を開始する", "mediarecorder/record-audio": "プロジェクトを録音する", "mediarecorder/record-audio-description": "音声合成は含まれません。", - "mediarecorder/record-description": "ステージをWebMファイルとして録画します。録画後はコンピューター上に保存できます。", + "mediarecorder/record-description": "ステージを{extension}ファイルとして録画します。録画後はコンピューター上に保存できます。変数やリストモニターは録画されません。", "mediarecorder/record-duration": "録画時間 (秒)", "mediarecorder/record-mic": "マイクの音を録音する", "mediarecorder/record-until-stop": "プロジェクトの停止後に録画も停止する", @@ -97,14 +73,18 @@ "debugger/log-msg-flag-clicked": "緑の旗が押されました。", "debugger/no-logs": "表示する内容がありません。", "debugger/no-threads-running": "実行中のスレッドはありません。", + "debugger/performance-clonecount-graph-tooltip": "クローン: {clones}", + "debugger/performance-clonecount-title": "クローン", "debugger/step": "次に進む", "debugger/step-desc": "ブロックを一つずつ実行する。", "debugger/tab-logs": "ログ", + "debugger/tab-performance": "パフォーマンス", "debugger/tab-threads": "スレッド", "debugger/thread": "スレッド {id}", "debugger/unknown-sprite": "(不明なスプライト)", "debugger/unpause": "再開", "pause/pause": "一時停止", + "pause/play": "再開", "clones/clones": "クローン: {cloneCount}", "color-picker/hex": "16進数カラーコード", "remove-sprite-confirm/confirm": "スプライトを削除したいですか?", @@ -121,13 +101,34 @@ "onion-skinning/settings": "半透明エディターの設定", "onion-skinning/tint": "色合い", "onion-skinning/toggle": "半透明にする", + "paint-snap/boxCenter": "選択したオブジェクトの中央", + "paint-snap/boxCorners": "選択したオブジェクトの角", + "paint-snap/boxEdgeMids": "選択したオブジェクトの中点", + "paint-snap/objectCenters": "オブジェクトの中央", + "paint-snap/objectCorners": "オブジェクトの角", + "paint-snap/objectEdges": "オブジェクトの端", + "paint-snap/objectMidlines": "オブジェクトの中央線", + "paint-snap/off": "オフ", + "paint-snap/on": "オン", + "paint-snap/pageAxes": "ページの座標軸", + "paint-snap/pageCenter": "ページの中央", + "paint-snap/pageCorners": "ページの角", + "paint-snap/pageEdges": "ページの端", + "paint-snap/settings": "スナップ設定", + "paint-snap/snapFrom": "スナップ元:", + "paint-snap/snapTo": "スナップ先:", + "paint-snap/threshold": "スナップ距離", + "paint-snap/toggle": "スナップを有効化", "2d-color-picker/shade": "濃さ", "better-img-uploads/upload": "HD アップロード", "variable-manager/for-all-sprites": "すべてのスプライト用の変数", "variable-manager/for-this-sprite": "このスプライトの変数", "variable-manager/search": "検索", + "variable-manager/too-big": "クリックして非常に大きな値を表示", "variable-manager/variables": "変数", "search-sprites/placeholder": "スプライトを検索...", + "sprite-properties/close-properties-panel-tooltip": "プロパティ―パネルを閉じる", + "sprite-properties/open-properties-panel-tooltip": "プロパティ―パネルを開く", "gamepad/axes-a-b": "軸 {a} と {b}", "gamepad/axis-arrows": "矢印キー", "gamepad/axis-cursor": "カーソル", @@ -148,7 +149,7 @@ "gamepad/no-controllers": "コントローラーが接続されていません。接続して、ボタンを押してください。", "gamepad/reset": "プロジェクトの既定にリセット", "gamepad/settings": "ゲームパッド設定", - "gamepad/store-in-project": "プロジェクトに初期設定を保存する (プロジェクト作成者のための実験的機能)", + "gamepad/store-in-project": "プロジェクト内に設定したマッピングを保存する。プロジェクトの保存後、これが新しいデフォルト設定になります。", "folders/add-to-folder": "フォルダー {folder} に追加", "folders/closed-folder": "フォルダー", "folders/confirm-backpack-folder": "フォルダーをバックパックしますか?", @@ -165,9 +166,11 @@ "block-switching/control_forever": "ずっと", "block-switching/control_if": "もし", "block-switching/control_if_else": "もし... でなければ", - "block-switching/control_repeat_until": "...回繰り返す", + "block-switching/control_repeat_until": "...まで繰り返す", "block-switching/control_wait_until": "...まで待つ", "block-switching/data_changevariableby": "変数を...ずつ変える", + "block-switching/data_deletealloflist": "項目をすべて削除", + "block-switching/data_deleteoflist": "項目を削除", "block-switching/data_hidelist": "リスト...を隠す", "block-switching/data_hidevariable": "変数...を隠す", "block-switching/data_insertatlist": "挿入する", @@ -184,6 +187,8 @@ "block-switching/looks_changeeffectby": "画像効果を...ずつ変える", "block-switching/looks_changesizeby": "大きさを...ずつ変える", "block-switching/looks_costumenumbername": "コスチュームの番号・名前", + "block-switching/looks_goforwardbackwardlayers": "手前に出す・奥に下げる", + "block-switching/looks_gotofrontback": "最前面や最背面へ移動", "block-switching/looks_hide": "隠す", "block-switching/looks_nextbackdrop": "次の背景", "block-switching/looks_nextcostume": "次のコスチューム", @@ -219,14 +224,18 @@ "block-switching/pen_setPenHueToNumber": "ペンの色を...にする", "block-switching/pen_setPenShadeToNumber": "ペンの濃さを...にする", "block-switching/pen_setPenSizeTo": "ペンの太さを...にする", + "block-switching/sensing_coloristouchingcolor": "色が色に触れた", "block-switching/sensing_mousex": "マウスのx座標", "block-switching/sensing_mousey": "マウスのy座標", + "block-switching/sensing_touchingcolor": "色に触れた", "block-switching/sound_changeeffectby": "音の効果を...ずつ変える", "block-switching/sound_changevolumeby": "音量を...ずつ変える", "block-switching/sound_play": "...の音を鳴らす", "block-switching/sound_playuntildone": "終わるまで...の音を鳴らす", "block-switching/sound_seteffectto": "音の効果を...にする", "block-switching/sound_setvolumeto": "音量を...%にする", + "copy-reporter/copy-to-clipboard": "コピー", + "copy-reporter/copy-value": "値をコピー", "blocks2image/error_blocks_not_added": "ブロックを追加してください。", "blocks2image/export_all_to_PNG": "すべてをPNGとして出力", "blocks2image/export_all_to_SVG": "すべてをSVGとして出力", @@ -235,6 +244,10 @@ "editor-extra-keys/enter-key": "Enter", "move-to-top-bottom/bottom": "一番下に移動", "move-to-top-bottom/top": "一番上に移動", + "move-to-top-layer/move-to-front-layer": "最前面に移動", + "rename-broadcasts/RENAME_BROADCAST": "メッセージ名を変更", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "メッセージ名を変更", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "メッセージ \"{name}\" をすべて以下の名前に変える:", "swap-local-global/cant-convert-cloud": "クラウド変数を「このスプライトのみ」に設定することはできません。", "swap-local-global/cant-convert-conflict": "他のスプライトで名前が衝突するため変更できません: {sprites}", "swap-local-global/cant-convert-stage": "ステージは「このスプライトのみ」変数を持つことができません。", diff --git a/src/addons/addons-l10n/ko.json b/src/addons/addons-l10n/ko.json index bdac115fa6b..aba5effcf71 100644 --- a/src/addons/addons-l10n/ko.json +++ b/src/addons/addons-l10n/ko.json @@ -1,53 +1,26 @@ { - "editor-devtools/bottom": "아래로 보내기", "editor-devtools/clean-plus": "블럭 정리하기 +", - "editor-devtools/code-tab-features": "코드 탭 기능", "editor-devtools/copy-all": "모두 복사하기", "editor-devtools/copy-block": "블럭 복사하기", - "editor-devtools/copy-to-clipboard": "클립보드에 추가하기", - "editor-devtools/copy-to-clipboard-desc": "블록은 우클릭하면 모두 복사하기, 블록 복사하기, 블록 잘라내기라는 세 설정이 있습니다. 모두 복사하기는 블록의 아래에 있는 블록까지 포함해 모두 복사합니다. 블록 복사하기는 현재 블록과 그 내용만 복사합니다. 블록 잘라내기는 복사 후 코드 영역에서 제거됩니다.", - "editor-devtools/costume-tab-features": "모양 탭 기능", - "editor-devtools/ctrl-lr": "Ctrl + 좌클릭, Ctrl +우클릭", - "editor-devtools/ctrl-lr-costume-desc": "이런 키는 스프라이트의 이전/다음 모양으로 이동합니다.", - "editor-devtools/ctrl-lr-desc": "블록이나 탐색창으로 이동한 후 코드 영역의 이전/다음 위치로 이동합니다. 이렇게 하면 사용자 지정 블록을 마우스 휠 단추로 클릭하여 함수의 정의로 이동할 수 있고, Ctrl + 왼쪽 화살표을 눌러 이전 위치로 돌아갈 수 있습니다.", - "editor-devtools/ctrl-space": "Ctrl + Space, 휠클릭, Shift + Click", - "editor-devtools/ctrl-space-desc": "블록 이름(또는 블록 일부)을 입력하고 해당 블록을 코드로 드래그해 바로 사용할 수 있는 입력 상자를 엽니다. 드래그하는 동안 Shift를 눌러 많은 블록들을 한번에 눌러 박스가 닫히는 것을 방지하세요.", "editor-devtools/cut-block": "블럭 잘라내기", - "editor-devtools/deep": "깊은", - "editor-devtools/find": "검색", - "editor-devtools/find-bar": "검색창", - "editor-devtools/find-bar-costume-desc": "모든 모양을 이름별로 나열하려면 클릭하고 이름을 입력하여 찾습니다. 화살표 키 또는 마우스를 사용하여 이름을 클릭하면 해당 모양으로 바로 이동할 수 있습니다.", - "editor-devtools/find-placeholder": "검색 (Ctrl + F)", - "editor-devtools/help": "도움말", - "editor-devtools/help-make-space": "여백 만들기", - "editor-devtools/help-make-space-desc": "스크립트를 우클릭 후 \"여백 만들기\"버튼을 골라 스크립트 주위에 여백의 공간을 생성합니다", - "editor-devtools/help-new": "★새 기능★", - "editor-devtools/help-title": "스크래치 3 개발자 도구", - "editor-devtools/improved-tidy-up": "개선된 코드 정리", - "editor-devtools/improved-tidy-up-desc": "코드 영역에서 우클릭 메뉴를 열면 블럭 정리하기 설정이 블록 정리하기 +로 변경되어 있을 것입니다. 이것을 이용해 스크립트를 정리하고 코드의 열을 보존하며, 주석을 스크립트와 맞추고 사용되지 않는 변수를 제거합니다.", - "editor-devtools/insert": "삽입", - "editor-devtools/interactive-find-bar": "대화형 탐색 표시줄(Ctrl + F)", - "editor-devtools/interactive-find-bar-desc": "코드, 모양, 소리 탭의 오른쪽에 검색창을 클릭해 스프라이트의 사용자 지정 블록, 변수, 이벤트 또는 모자 블록을 빠르게 찾아 이동합니다. 위쪽 및 아래쪽 화살표 키를 사용하여 가능한 항목 사이를 전환하고 왼쪽 및 오른쪽 화살표를 사용하여 해당 블록의 검색 결과를 전환합니다.", "editor-devtools/lists": "리스트", "editor-devtools/make-space": "여백 만들기", - "editor-devtools/middleclick": "넘어가기:", - "editor-devtools/middleclick-desc": "휠버튼이나 Shift + 클릭을 이용해 변수 또는 사용자 지정 블록을 정의로 이동하거나 반응형 검색창에서 열 수 있습니다.", "editor-devtools/orphaned": "{count, plural, other {개발자 도구: #개의 사용하지 않는 리포터 블럭을 삭제하시겠습니까?} }", "editor-devtools/paste": "붙여넣기", - "editor-devtools/paste-from-clipboard": "클립보드에서 붙여넣기", - "editor-devtools/paste-from-clipboard-desc": "클립보드에서 붙여넣지만 중요한 것은 마우스 커서가 있는 위치에 붙여넣기 때문에 현재 스크래치처럼 복사한 위치에 붙여넣는 것이 아니라 배치할 수 있습니다.", "editor-devtools/replace": "개발자 도구: 다음에 나올 이름의 변수에 대해 이 스프라이트의 모든 {name}을(를) 전환합니다:", - "editor-devtools/start-typing": "작성 시작하기", "editor-devtools/swap": "스프라이트에서 {var} 치환하기", - "editor-devtools/swap-variable": "스프라이트에서 변수 치환하기", - "editor-devtools/swap-variable-desc": "이 새 설정의 스크립트에서 변수를 마우스 오른쪽 버튼으로 누르세요. 현재 스프라이트에 있는 해당 변수를 모두 다른 변수로 한 번에 전환할 수 있습니다. 이 기능은 실수하여 한 변수에서 다른 변수로 전환하거나 '모든 스프라이트에서 이 스프라이트 전용'으로 변경해야 할 경우에 적합합니다. 이 옵션은 이전 변수를 제거하지 않으며 다른 스프라이트 변수에도 영향을 주지 않습니다.", - "editor-devtools/top": "위로 보내기", - "editor-devtools/tutorials": "튜토리얼", - "editor-devtools/unused-list": "{count, plural, other {개발자 도구: #개의 사용하지 않는 지역 리스트를 제거하시겠습니까? 사용하지 않는 지역 리스트:} }", - "editor-devtools/unused-var": "{count, plural, other {개발자 도구: #개의 사용하지 않는 지역변수를 삭제하시겠습니까?} }", + "editor-devtools/unused-list": "{count, plural, other {개발자 도구: #개의 사용하지 않는 지역 리스트를 제거하시겠습니까? 사용하지 않는 지역 리스트:\n} }", + "editor-devtools/unused-var": "{count, plural, other {개발자 도구: #개의 사용하지 않는 지역변수를 삭제하시겠습니까?\n} }", "editor-devtools/var-not-exist": "이 변수는 존재하지 않습니다.", "editor-devtools/variables": "변수", - "editor-devtools/youtube": "YouTube 튜토리얼", + "find-bar/complex-broadcast": "(식)", + "find-bar/event": "이벤트 {name}", + "find-bar/find-placeholder": "찾기 (Ctrl+F)", + "find-bar/list-global": "리스트 {name}", + "find-bar/list-local": "리스트 {name}", + "find-bar/var-global": "변수 {name}", + "find-bar/var-local": "변수 {name}", + "middle-click-popup/start-typing": "입력 시작...", "editor-searchable-dropdowns/createBroadcast": "메시지 \"{name}\"을(를) 생성하기", "editor-searchable-dropdowns/createGlobalList": "전역 리스트 \"{name}\"을(를) 생성하기", "editor-searchable-dropdowns/createGlobalVariable": "전역변수 \"{name}\"을(를) 생성하기", @@ -56,15 +29,16 @@ "data-category-tweaks-v2/for-all-sprites": "전역적으로 사용됨:", "data-category-tweaks-v2/for-this-sprite-only": "지역적으로 사용됨:", "data-category-tweaks-v2/list-category": "리스트", + "hide-flyout/lock": "팔레트 잠그기", + "hide-flyout/unlock": "팔레트 잠금 해제하기", "mediarecorder/cancel": "취소", "mediarecorder/click-flag": "기다려 주세요...", "mediarecorder/click-flag-description": "초록 깃발을 눌러 녹화를 시작합니다. 이 버튼을 눌러 종료하세요.", "mediarecorder/option-title": "녹화 설정", - "mediarecorder/record": "녹화 시작", + "mediarecorder/record": "녹화", "mediarecorder/record-after-flag": "초록 깃발을 클릭할 때까지 녹화를 시작하지 않습니다.", "mediarecorder/record-audio": "프로젝트 소리 포함", "mediarecorder/record-audio-description": "이것은 TTS가 포함되지 않습니다.", - "mediarecorder/record-description": "무대를 WebM 파일로 녹화합니다. 녹화가 완료된 후 컴퓨터에 저장할 수 있습니다.", "mediarecorder/record-duration": "녹화 시간(초)", "mediarecorder/record-mic": "마이크를 통한 소리 포함", "mediarecorder/record-until-stop": "프로젝트가 멈췄을 때 녹화를 종료합니다.", @@ -95,14 +69,18 @@ "debugger/log-msg-flag-clicked": "녹색 깃발이 클릭되었습니다.", "debugger/no-logs": "표시할 기록이 없습니다.", "debugger/no-threads-running": "실행 중인 작업 없음.", + "debugger/performance-clonecount-graph-tooltip": "복제본: {clones}", + "debugger/performance-clonecount-title": "복제본", "debugger/step": "절차", "debugger/step-desc": "한 블록을 실행합니다.", "debugger/tab-logs": "기록", + "debugger/tab-performance": "성능", "debugger/tab-threads": "실행 중인 작업", "debugger/thread": "작업 {id}", "debugger/unknown-sprite": "(알 수 없는 스프라이트)", "debugger/unpause": "재개하기", "pause/pause": "일시정지", + "pause/play": "재개하기", "clones/clones": "복제본 {cloneCount}개", "color-picker/hex": "HEX 색상", "remove-sprite-confirm/confirm": "이 스프라이트를 정말로 삭제하시겠습니까?", @@ -113,19 +91,40 @@ "onion-skinning/merge": "병합", "onion-skinning/mode": "모드", "onion-skinning/next": "다음 모양", - "onion-skinning/opacity": "불투명도 (%)", + "onion-skinning/opacity": "투명도 (%)", "onion-skinning/opacityStep": "투명도 스푸마토 (%)", "onion-skinning/previous": "전 모양", "onion-skinning/settings": "어니언 스키닝 설정", "onion-skinning/tint": "단색 표시", "onion-skinning/toggle": "어니언 스키닝 켜기", + "paint-snap/boxCenter": "선택한 대상의 중앙", + "paint-snap/boxCorners": "선택한 대상의 모서리", + "paint-snap/boxEdgeMids": "선택한 대상의 중앙", + "paint-snap/objectCenters": "물체의 중앙", + "paint-snap/objectCorners": "물체의 모서리", + "paint-snap/objectEdges": "물체의 모서리", + "paint-snap/objectMidlines": "물체의 중앙선", + "paint-snap/off": "끔", + "paint-snap/on": "켬", + "paint-snap/pageAxes": "페이지의 x축과 y축", + "paint-snap/pageCenter": "페이지 중앙", + "paint-snap/pageCorners": "페이지의 모서리", + "paint-snap/pageEdges": "페이지 가장자리", + "paint-snap/settings": "스냅 설정", + "paint-snap/snapFrom": "스냅이 될 대상:", + "paint-snap/snapTo": "스냅을 할 대상:", + "paint-snap/threshold": "스냅 거리", + "paint-snap/toggle": "스냅 토글", "2d-color-picker/shade": "음영", "better-img-uploads/upload": "고해상도 사진 업로드", "variable-manager/for-all-sprites": "전역변수", "variable-manager/for-this-sprite": "지역변수", "variable-manager/search": "찾기", + "variable-manager/too-big": "클릭해 매우 큰 값 보기", "variable-manager/variables": "변수", "search-sprites/placeholder": "스프라이트 검색...", + "sprite-properties/close-properties-panel-tooltip": "속성 패널 닫기", + "sprite-properties/open-properties-panel-tooltip": "속성 패널 열기", "gamepad/axes-a-b": "축 {a}와 {b}", "gamepad/axis-arrows": "방향키", "gamepad/axis-cursor": "커서", @@ -145,24 +144,27 @@ "gamepad/keyinput-title": "클릭과 키를 누르거나 바꾸기 버튼을 누르세요. Esc로 취소합니다. Backspace나 delete로 지웁니다.", "gamepad/no-controllers": "감지된 컨트롤러가 없습니다. 하나를 꽂고 버튼을 눌러 보세요.", "gamepad/settings": "게임패드 설정", - "gamepad/store-in-project": "이 설정을 프로젝트에 저장하여 기본 구성을 덮어씌웁니다.(프로젝트 제작자들을 위한 실험 도구)", "folders/add-to-folder": "폴더를 {folder}에 추가하기", "folders/closed-folder": "폴더", "folders/confirm-backpack-folder": "전체 폴더를 저장소에 담으시겠습니까?", "folders/create-folder": "폴더 생성", "folders/name-not-allowed": "잘못된 폴더 이름", "folders/name-prompt": "폴더 이름:", + "folders/name-prompt-title": "폴더 만들기", "folders/open-folder": "열림", "folders/remove-folder": "폴더 삭제하기", "folders/remove-from-folder": "폴더에서 삭제하기", "folders/rename-folder": "폴더 이름 변경하기", "folders/rename-folder-prompt": "폴더 이름 변경:", + "folders/rename-folder-prompt-title": "폴더의 이름을 다시 정하기", "block-switching/control_forever": "무한 반복하기", "block-switching/control_if": "만약", "block-switching/control_if_else": "만약... 아니라면", "block-switching/control_repeat_until": "까지 기다리기", "block-switching/control_wait_until": "까지 기다리기", "block-switching/data_changevariableby": "변수 변경하기", + "block-switching/data_deletealloflist": "모두 삭제하기", + "block-switching/data_deleteoflist": "항목 삭제하기", "block-switching/data_hidelist": "리스트 숨기기", "block-switching/data_hidevariable": "변수 숨기기", "block-switching/data_insertatlist": "항목 넣기", @@ -179,6 +181,8 @@ "block-switching/looks_changeeffectby": "효과 바꾸기", "block-switching/looks_changesizeby": "크기 변경하기", "block-switching/looks_costumenumbername": "모양 번호나 이름", + "block-switching/looks_goforwardbackwardlayers": "앞쪽이나 뒤쪽 레이어로 가기", + "block-switching/looks_gotofrontback": "맨 앞 또는 맨 뒤 레이어로 가기", "block-switching/looks_hide": "숨기기", "block-switching/looks_nextbackdrop": "다음 배경", "block-switching/looks_nextcostume": "다음 모양", @@ -206,22 +210,26 @@ "block-switching/operator_or": "또는", "block-switching/pen_changePenColorParamBy": "파라미터 변경하기", "block-switching/pen_changePenHueBy": "색상 바꾸기", - "block-switching/pen_changePenShadeBy": "색상 바꾸기", + "block-switching/pen_changePenShadeBy": "명도 바꾸기", "block-switching/pen_changePenSizeBy": "크기 바꾸기", "block-switching/pen_penDown": "펜 내리기", "block-switching/pen_penUp": "펜 올리기", "block-switching/pen_setPenColorParamTo": "파라미터 설정하기", "block-switching/pen_setPenHueToNumber": "색상 설정하기", - "block-switching/pen_setPenShadeToNumber": "색상 설정하기", + "block-switching/pen_setPenShadeToNumber": "명도 설정하기", "block-switching/pen_setPenSizeTo": "크기 설정하기", + "block-switching/sensing_coloristouchingcolor": "색깔 닿은 색깔", "block-switching/sensing_mousex": "마우스 x좌표", "block-switching/sensing_mousey": "마우스 y좌표", + "block-switching/sensing_touchingcolor": "닿은 색깔", "block-switching/sound_changeeffectby": "효과 바꾸기", "block-switching/sound_changevolumeby": "음량 바꾸기", "block-switching/sound_play": "시작", "block-switching/sound_playuntildone": "끝날 때까지 플레이하기", "block-switching/sound_seteffectto": "효과 설정하기", "block-switching/sound_setvolumeto": "음량 설정하기", + "copy-reporter/copy-to-clipboard": "복사", + "copy-reporter/copy-value": "값 복사", "blocks2image/error_blocks_not_added": "작업 공간에 블록을 추가합니다!", "blocks2image/export_all_to_PNG": "모두 PNG로 내보내기", "blocks2image/export_all_to_SVG": "모두 SVG로 내보내기", @@ -230,6 +238,9 @@ "editor-extra-keys/enter-key": "엔터", "move-to-top-bottom/bottom": "맨 아래로 옮기기", "move-to-top-bottom/top": "맨 위로 옮기기", + "rename-broadcasts/RENAME_BROADCAST": "메시지 이름 변경하기", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "메시지 이름 변경하기", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "모든 \"{name}\" 메시지를 다음으로 변경:", "swap-local-global/cant-convert-cloud": "클라우드 변수는 '이 스프라이트에서만 사용'으로 변경할 수 없습니다.", "swap-local-global/cant-convert-conflict": "다른 스프라이트 {sprites}의 변수와 충돌하기 때문에 변환할 수 없습니다.", "swap-local-global/cant-convert-stage": "무대는 '모든 스프라이트에서 사용'만 사용할 수 있습니다.", @@ -241,5 +252,6 @@ "swap-local-global/edit-variable-header": "변수 편집하기", "swap-local-global/edit-variable-option": "이름을 변경하거나 리스트를 편집하기", "swap-local-global/to-global": "\"모든 스프라이트에서 사용\"으로 바꾸기", - "swap-local-global/to-local": "\"이 스프라이트에서만 사용\"으로 바꾸기" + "swap-local-global/to-local": "\"이 스프라이트에서만 사용\"으로 바꾸기", + "hide-stage/hide-stage": "무대 숨기기" } \ No newline at end of file diff --git a/src/addons/addons-l10n/nl.json b/src/addons/addons-l10n/nl.json index 247b7cef244..18f56afc1a2 100644 --- a/src/addons/addons-l10n/nl.json +++ b/src/addons/addons-l10n/nl.json @@ -1,52 +1,27 @@ { - "editor-devtools/bottom": "naar onder", + "_general/blocks/anticlockwise": "tegen de klok in", + "_general/blocks/clockwise": "met de klok mee", + "_general/blocks/green-flag": "vlag", "editor-devtools/clean-plus": "Blokken Opruimen +", - "editor-devtools/code-tab-features": "Codetabbladfuncties", "editor-devtools/copy-all": "Alles Kopiëren", "editor-devtools/copy-block": "Blok Kopiëren", - "editor-devtools/copy-to-clipboard": "Naar Klembord Kopiëren", - "editor-devtools/copy-to-clipboard-desc": "Rechterklik op een blok voor 3 nieuwe opties: Alles Kopiëren, Blok Kopiëren, en Blok Knippen. De Alles Kopiëren-optie kopieert alles, inclusief alles onder en het blok dat je hebt geklikt. Blok Kopiëren kopieert alleen het huidige blok en zijn inhoud, maar niets eronder. Blok Knippen kopieert het en verwijdert het van het codegebied.", - "editor-devtools/costume-tab-features": "Uiterlijkstabbladfuncties", - "editor-devtools/ctrl-lr": "Ctrl + Links, Ctrl + Rechts", - "editor-devtools/ctrl-lr-costume-desc": "Deze toetsen navigeren je naar het vorige / volgende uiterlijk in de sprite.", - "editor-devtools/ctrl-lr-desc": "Naar vorige / volgende bezochte positie in het codegebied navigeren (na het gebruiken van blok navigeren of zoekbalk). Dit laat je met de middelste muisknop klikken op een eigen blok om naar zijn definitie te gaan, druk dan op ctrl + Links om terug te gaan naar waar je eerst was.", - "editor-devtools/ctrl-space": "Ctrl + Spatie, Middelklik, of Shift + Klik", - "editor-devtools/ctrl-space-desc": "Laat een zwevende invoerbox zien waar je de naam van een blok (of delen ervan) kunt intypen om vervolgens het blok te slepen naar de code om daar te gebruiken. Houd Shift ingedrukt bij het slepen om de box niet te sluiten als je meerdere blokken tegelijk wilt toevoegen.", "editor-devtools/cut-block": "Blok Knippen", - "editor-devtools/deep": "Diep", - "editor-devtools/find": "Zoeken", - "editor-devtools/find-bar": "Zoekbalk", - "editor-devtools/find-bar-costume-desc": "Klik om alle uiterlijken op naam te sorteren, en typ om er een te vinden. Gebruik de pijltjestoetsen of muis om op een naam te klikken om naar dat uiterlijk te springen.", - "editor-devtools/find-placeholder": "Zoeken (Ctrl+F)", - "editor-devtools/help-make-space": "Ruimte Maken", - "editor-devtools/help-make-space-desc": "Maak extra ruimte rond een script door te rechterklikken op het script en kies \"Ruimte Maken\".", - "editor-devtools/help-new": "★Nieuw★", - "editor-devtools/help-title": "Scratch 3-Ontwikkelaarstools", - "editor-devtools/improved-tidy-up": "Verbeterde Codeopruiming", - "editor-devtools/improved-tidy-up-desc": "Rechterklik op het codegebied voor het rechterklikmenu waar Blokken Opruimen is vervangen met Blokken Opruimen +. Gebruik dit om je scripts overzichtelijk te houden en je scripts in kolommen te houden, en ook probeert het de opmerkingen recht te houden en het verwijderd alle ongebruikte variabelen.", - "editor-devtools/insert": "Invoegen", - "editor-devtools/interactive-find-bar": "Interactieve Zoekbalk (Ctrl + F)", - "editor-devtools/interactive-find-bar-desc": "Zoek en spring naar je Eigen Blokken, Variabelen, Gebeurtenis, of Hoedblok gedefinieerd in een sprite door op de nieuwe zoekbalk rechts van de Code-, Uiterlijken- en Geluiden-tabbladen. Start met typen om de lijst te filteren. Gebruik de omhoog- en omlaagpijltjestoetsen om te schakelen tussen de verschillende mogelijkheden, en de links- en rechtspijltjestoetsen om te wisselen tussen alle gevonden blokken.", "editor-devtools/lists": "lijsten", "editor-devtools/make-space": "Ruimte Maken", - "editor-devtools/middleclick": "Springen Naar", - "editor-devtools/middleclick-desc": "Spring met de middelste muisknop of Shift + Klik naar een variabele of eigen blokdefinitie of open het in de interactieve zoekbalk.", - "editor-devtools/orphaned": "{count, plural, one {Ontwikkelaarstools: 1 los meldingsblok verwijderen?} other {Ontwikkelaarstools: # losse meldingsblokken verwijderen?} }", + "editor-devtools/orphaned": "{count, plural, one {Ontwikkelaarstools: 1 los waardeblok verwijderen?} other {Ontwikkelaarstools: # losse waardeblokken verwijderen?} }", "editor-devtools/paste": "Plakken", - "editor-devtools/paste-from-clipboard": "Plakken vanaf Klembord", - "editor-devtools/paste-from-clipboard-desc": "Plakt vanaf het klembord, maar meest belangrijk, het plakt waar je muisaanwijzer nu is zodat je het in een script kunt plaatsen (in tegenstelling tot plaatsen waar je het hebt gekopieerd zoals in de huidige scratchimplementatie).", "editor-devtools/replace": "Ontwikkelaarstools: Alle {name} in deze sprite wisselen voor de variabele genaamd:", - "editor-devtools/start-typing": "Begin met typen...", "editor-devtools/swap": "Wissel {var} in Sprite", - "editor-devtools/swap-variable": "Variabelen Wisselen in Sprite", - "editor-devtools/swap-variable-desc": "Rechterklik op een variabele in je scripts voor deze nieuwe optie. Het laat je alle verwijzingen naar deze variabele in de huidige sprite allemaal tegelijk wisselen naar een andere variabele. Dit is geweldig als je een fout hebt gemaakt en je van een naar een andere variabele wilt wisselen of moet veranderen van 'voor alle sprites' naar 'alleen voor deze sprite'. Deze optie verwijdert of beïnvloedt de andere variabelen niet.", - "editor-devtools/top": "naar boven", - "editor-devtools/tutorials": "Lessen", "editor-devtools/unused-list": "{count, plural, one {Ontwikkelaarstools: 1 ongebruikte lokale lijst verwijderen? Hier is het:\n} other {Ontwikkelaarstools: # ongebruikte lokale lijsten verwijderen? Hier zijn ze:\n} }", "editor-devtools/unused-var": "{count, plural, one {Ontwikkelaarstools: 1 ongebruikte lokale variabele verwijderen? Hier is het:\n} other {Ontwikkelaarstools: # ongebruikte lokale variabelen verwijderen? Hier zijn ze:\n} }", "editor-devtools/var-not-exist": "Die variabele bestaat niet...", "editor-devtools/variables": "variabelen", - "editor-devtools/youtube": "YouTube-lessen", + "find-bar/complex-broadcast": "(expressie)", + "find-bar/event": "evenement {name}", + "find-bar/find-placeholder": "Zoeken (Ctrl+F)", + "find-bar/list-global": "LIJST {name}", + "find-bar/list-local": "lijst {name}", + "middle-click-popup/start-typing": "Begin met Typen...", "editor-searchable-dropdowns/createBroadcast": "Bericht \"{name}\" maken", "editor-searchable-dropdowns/createGlobalList": "Lijst \"{name}\" maken voor alle sprites", "editor-searchable-dropdowns/createGlobalVariable": "Variabele \"{name}\" maken voor alle sprites", @@ -61,11 +36,11 @@ "mediarecorder/click-flag": "Wachten...", "mediarecorder/click-flag-description": "Klik op de groene vlag om te starten met opnemen. Klik op deze knop om te stoppen.", "mediarecorder/option-title": "Opneemopties", - "mediarecorder/record": "Opname Starten", + "mediarecorder/record": "Opnemen", "mediarecorder/record-after-flag": "Begin niet met opnemen tot de Groene Vlag is geklikt", "mediarecorder/record-audio": "Projectgeluiden opnemen", "mediarecorder/record-audio-description": "Dit neemt Tekst-naar-Spraak niet op.", - "mediarecorder/record-description": "Neem het speelveld als een WebM-bestand op. Je kunt het opslaan op je computer nadat de opname klaar is.", + "mediarecorder/record-description": "Neem het speelveld op als een {extension}-bestand. Je kunt het opslaan op je computer nadat de opname klaar is.\nOpmerking: monitoren van variabelen en lijsten zijn niet zichtbaar.", "mediarecorder/record-duration": "Opnamelengte (in seconden)", "mediarecorder/record-mic": "Microfoon opnemen", "mediarecorder/record-until-stop": "Stop met opnemen nadat het project is gestopt", @@ -90,11 +65,15 @@ "debugger/log-msg-flag-clicked": "Groene vlag geklikt.", "debugger/no-logs": "Er zijn geen logs om weer te geven.", "debugger/no-threads-running": "Geen threads aan de gang.", + "debugger/performance-clonecount-graph-tooltip": "Klonen: {clones}", + "debugger/performance-clonecount-title": "Klonen", "debugger/step": "Stap", "debugger/step-desc": "Voert één blok uit.", + "debugger/tab-performance": "Prestaties", "debugger/unknown-sprite": "(onbekende sprite)", "debugger/unpause": "Hervatten", "pause/pause": "Pauzeren", + "pause/play": "Hervatten", "clones/clones": "klonen: {cloneCount}", "color-picker/hex": "hex-kleur", "remove-sprite-confirm/confirm": "Wil je de sprite verwijderen?", @@ -109,14 +88,35 @@ "onion-skinning/opacityStep": "Doorzichtigheidsstap (%)", "onion-skinning/previous": "Vorige uiterlijken", "onion-skinning/settings": "\"Onion Skinning\"-Instellingen", - "onion-skinning/toggle": "\"Onion Skinning\" aanzetten", + "onion-skinning/toggle": "\"Onion Skinning\" Aan- of Uitzetten", + "paint-snap/boxCenter": "Middelpunt selectie", + "paint-snap/boxCorners": "Hoeken selectie", + "paint-snap/boxEdgeMids": "Middelpunten op randen selectie", + "paint-snap/objectCenters": "Objectmiddelpunt", + "paint-snap/objectCorners": "Objecthoeken", + "paint-snap/objectEdges": "Objectranden", + "paint-snap/objectMidlines": "Objectmiddenlijn", + "paint-snap/off": "Uit", + "paint-snap/on": "Aan", + "paint-snap/pageAxes": "X- en Y-assen van pagina", + "paint-snap/pageCenter": "Paginamiddelpunt", + "paint-snap/pageCorners": "Paginahoeken", + "paint-snap/pageEdges": "Paginaranden", + "paint-snap/settings": "Instellingen voor Uitlijnen", + "paint-snap/snapFrom": "Uitlijnen vanaf:", + "paint-snap/snapTo": "Uitlijnen op:", + "paint-snap/threshold": "Uitlijnafstand", + "paint-snap/toggle": "Uitlijnen Inschakelen", "2d-color-picker/shade": "Tint", "better-img-uploads/upload": "HD-Upload", "variable-manager/for-all-sprites": "Variabelen voor alle sprites", "variable-manager/for-this-sprite": "Variabelen voor deze sprite", "variable-manager/search": "Zoeken", + "variable-manager/too-big": "Klik om grote waarde weer te geven.", "variable-manager/variables": "Variabelen", "search-sprites/placeholder": "Sprites zoeken...", + "sprite-properties/close-properties-panel-tooltip": "Eigenschappenpaneel samenvouwen", + "sprite-properties/open-properties-panel-tooltip": "Eigenschappenpaneel openvouwen", "gamepad/axes-a-b": "Assen {a} & {b}", "gamepad/axis-arrows": "Pijltjestoetsen", "gamepad/axis-cursor": "Muisaanwijzer", @@ -125,7 +125,7 @@ "gamepad/browser-support": "Deze browser en besturingssysteem hebben bekende bugs die deze addon mogelijk lastig maken om te gebruiken. Probeer een andere browser als je problemen ervaart.", "gamepad/button-n": "Knop {n}", "gamepad/clear": "Alle besturingen verwijderen", - "gamepad/config-header": "Deze opmerking bevat configuratie voor gamepad-ondersteuning in derde-partij hulpmiddelen of websites zoals https://turbowarp.org/\nNiet met de hand bewerken", + "gamepad/config-header": "Deze opmerking bevat configuratie voor gamepad-ondersteuning in hulpmiddelen of websites van derde partijen, zoals https://turbowarp.org/\nNiet met de hand bewerken", "gamepad/key-click": "Klik", "gamepad/key-down": "Omlaag", "gamepad/key-left": "Links", @@ -137,26 +137,28 @@ "gamepad/no-controllers": "Geen controllers gevonden. Probeer er een in te pluggen en druk een knop in.", "gamepad/reset": "Alle besturingen resetten naar standaard van project", "gamepad/settings": "Gamepadinstellingen", - "gamepad/store-in-project": "Sla deze instellingen op in het project om de standaardconfiguratie te overschrijven (Experimentele hulpmiddel voor projectmakers)", - "folders/add-to-folder": "voeg toe aan map: {folder}", + "gamepad/store-in-project": "Sla de bovenstaande knoppencombinaties op in het project. Nadat je het project opslaat worden deze combinaties de nieuwe standaardconfiguratie.", + "folders/add-to-folder": "toevoegen aan map: {folder}", "folders/closed-folder": "Map", "folders/confirm-backpack-folder": "Hele map in rugzak opslaan?", "folders/create-folder": "map aanmaken", "folders/name-not-allowed": "Ongeldige mapnaam", - "folders/name-prompt": "Naam van map:", - "folders/name-prompt-title": "Map Aanmaken", + "folders/name-prompt": "Mapnaam:", + "folders/name-prompt-title": "Map aanmaken", "folders/open-folder": "Geopend", "folders/remove-folder": "map verwijderen", - "folders/remove-from-folder": "verwijder uit map", - "folders/rename-folder": "map hernoemen", - "folders/rename-folder-prompt": "Hernoem map naar:", - "folders/rename-folder-prompt-title": "Map Hernoemen", + "folders/remove-from-folder": "verwijderen uit map", + "folders/rename-folder": "mapnaam wijzigen", + "folders/rename-folder-prompt": "Nieuwe mapnaam:", + "folders/rename-folder-prompt-title": "Mapnaam wijzigen", "block-switching/control_forever": "herhaal", "block-switching/control_if": "als", "block-switching/control_if_else": "als... anders", "block-switching/control_repeat_until": "herhaal tot", "block-switching/control_wait_until": "wacht tot", "block-switching/data_changevariableby": "verander variabele", + "block-switching/data_deletealloflist": "verwijder alle", + "block-switching/data_deleteoflist": "verwijder item", "block-switching/data_hidelist": "verberg lijst", "block-switching/data_hidevariable": "verberg variabele", "block-switching/data_insertatlist": "voeg item toe", @@ -171,6 +173,8 @@ "block-switching/looks_changeeffectby": "verander effect", "block-switching/looks_changesizeby": "verander grootte", "block-switching/looks_costumenumbername": "uiterlijknummer of -naam", + "block-switching/looks_goforwardbackwardlayers": "ga naar voren of achteren lagen", + "block-switching/looks_gotofrontback": "ga naar laag voorgrond of achtergrond", "block-switching/looks_hide": "verdwijn", "block-switching/looks_nextbackdrop": "volgende achtergrond", "block-switching/looks_nextcostume": "volgend uiterlijk", @@ -206,13 +210,17 @@ "block-switching/pen_setPenHueToNumber": "maak kleur", "block-switching/pen_setPenShadeToNumber": "maak helderheid", "block-switching/pen_setPenSizeTo": "maak grootte", + "block-switching/sensing_coloristouchingcolor": "raakt kleur kleur", "block-switching/sensing_mousex": "muis x", "block-switching/sensing_mousey": "muis y", + "block-switching/sensing_touchingcolor": "raak ik kleur", "block-switching/sound_changeeffectby": "verander effect", "block-switching/sound_changevolumeby": "verander volume", "block-switching/sound_playuntildone": "start en wacht", "block-switching/sound_seteffectto": "maak effect", "block-switching/sound_setvolumeto": "zet volume", + "copy-reporter/copy-to-clipboard": "Kopiëren", + "copy-reporter/copy-value": "waarde kopiëren", "blocks2image/error_blocks_not_added": "Voeg blokken toe aan werkplek!", "blocks2image/export_all_to_PNG": "Alles exporteren als PNG", "blocks2image/export_all_to_SVG": "Alles exporteren als SVG", @@ -220,6 +228,10 @@ "blocks2image/export_selected_to_SVG": "Blok exporteren als SVG", "move-to-top-bottom/bottom": "naar beneden", "move-to-top-bottom/top": "naar boven", + "move-to-top-layer/move-to-front-layer": "verplaatsen naar voorgrond", + "rename-broadcasts/RENAME_BROADCAST": "Signaal hernoemen", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Signaal Hernoemen", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Alle \"{name}\"-signalen hernoemen naar:", "swap-local-global/cant-convert-cloud": "Cloudvariabelen kunnen niet alleen voor deze sprite zijn.", "swap-local-global/cant-convert-conflict": "Kan niet veranderen omdat variabelen in andere sprites dezelfde naam hebben: {sprites}", "swap-local-global/cant-convert-stage": "Het speelveld kan geen variabelen voor alleen deze sprite hebben.", diff --git a/src/addons/addons-l10n/pl.json b/src/addons/addons-l10n/pl.json index 3fcd2d13689..b32e4c805eb 100644 --- a/src/addons/addons-l10n/pl.json +++ b/src/addons/addons-l10n/pl.json @@ -1,52 +1,21 @@ { - "editor-devtools/bottom": "przesuń na spód", "editor-devtools/clean-plus": "Wyczyść bloki +", - "editor-devtools/code-tab-features": "Funkcjonalności Zakładki Kodu", "editor-devtools/copy-all": "Kopiuj wszystko", "editor-devtools/copy-block": "Kopiuj Blok", - "editor-devtools/copy-to-clipboard": "Skopiuj do schowka", - "editor-devtools/copy-to-clipboard-desc": "Po kliknięciu prawym przyciskiem myszy na blok dostępne są 3 nowe opcje: Kopiuj wszystko, Kopiuj blok i Wytnij blok. Kopiuj Wszystko skopiuje do schowka wszystko, łącznie z blokiem, na którym kliknąłeś i poniżej niego. Kopiuj blok będzie tylko skopiować bieżący blok i jego zawartość, ale nic poniżej. A Wytnij blok skopiuje go i usunie z obszaru kodu.", - "editor-devtools/costume-tab-features": "Funkcje zakładki Kostiumy", - "editor-devtools/ctrl-lr-costume-desc": "Klawisze te nawigują do poprzedniego / następnego kostiumu w duszku.", - "editor-devtools/ctrl-lr-desc": "Przejdź do poprzedniej / następnej odwiedzonej pozycji w kodzie (po użyciu wyszukiwania bloku, lub przejściu do jego definicji). Aby to zrobić należy kliknąć \"Crt + Lewy Przycisk\"", - "editor-devtools/ctrl-space": "Ctrl + Spacja, Kliknięcie środkowym przyciskiem myszy, lub Shift + klikniecie", - "editor-devtools/ctrl-space-desc": "Wyskakujące pole w którym możesz podać nazwę bloku (lub jej część) i wyjąć dany blok z niego i użyć go w kodzie. Przytrzymaj klawisz Shift w trakcie przesuwania, aby menu nie zamknęło się automatycznie.", "editor-devtools/cut-block": "Wytnij Blok", - "editor-devtools/deep": "Głębokość", - "editor-devtools/find": "Wyszukaj", - "editor-devtools/find-bar": "Szukaj", - "editor-devtools/find-bar-costume-desc": "Kliknij, aby wyświetlić listę wszystkich kostiumów według nazwy, i wpisz, aby zlokalizować jeden z nich. Użyj klawiszy strzałek lub myszy, aby przejść bezpośrednio do tego kostiumu.", - "editor-devtools/find-placeholder": "Wyszukaj (Ctrl+F)", - "editor-devtools/help": "Pomoc", - "editor-devtools/help-make-space": "Zrób miejsce", - "editor-devtools/help-make-space-desc": "Tworzy puste miejsce do okoła kodu. Tą funkcję możesz wywołać za pomocą klikaniu na blok i wybierając opcję \"Stwórz Miejsce\".", - "editor-devtools/help-new": "★Nowe★", - "editor-devtools/help-title": "Narzędzia deweloperskie Scratch 3", - "editor-devtools/improved-tidy-up": "Poprawione Czyszczenie Bloków", - "editor-devtools/improved-tidy-up-desc": "Po kliknięciu prawym klawiszem za miast funkcji \"Posprzątaj Bloki\", znajdziesz \"Posprzątaj Bloki +\". Za pomocą tej funkcji kod będzie ułożony w kolumny, a porzucone zmienne i bloki zostaną usunięte itd.", - "editor-devtools/insert": "Wstaw", - "editor-devtools/interactive-find-bar": "Interaktywne Pole Wyszukiwania (Crt + F)", - "editor-devtools/interactive-find-bar-desc": "Szybko znajdź i przejdź do Mojego Bloku, Zmiennej, Zdarzenia zdefiniowanego w duszku klikając w polu wyszukiwania. Po zaczęciu wpisywania wyniki zaczną się pojawiać na dole listy. Użyj klawiszy w gorę i w dół aby wybrać podaną odpowiedź. Po wybraniu możesz użyć klawiszy w prawo i lewo, aby przemieścić się między różnymi blokami tego samego rodzaju.", "editor-devtools/lists": "listy", "editor-devtools/make-space": "Zrób miejsce", - "editor-devtools/middleclick": "Przejdź do", - "editor-devtools/middleclick-desc": "Użycie środkowego przyciska myszy lub kliknięcie trzymając przycisk \"Shift\" na zmiennej lub \"Moim Bloku\", aby przejść do jego definicji, lub otwiera w interaktywnym polu wyszukiwania.", "editor-devtools/orphaned": "{count, plural, one {Narzędzia Developerskie: Usunąć 1 odłączony blok?} few {Narzędzia Developerskie: Usunąć # odłączonych bloków?} many {Narzędzia Developerskie: Usunąć # odłączonych bloków?} other {Narzędzia Developerskie: Usunąć # odłączonych bloków?} }", "editor-devtools/paste": "Wklej", - "editor-devtools/paste-from-clipboard": "Wklej z schowka", - "editor-devtools/paste-from-clipboard-desc": "Wkleja ze schowka, ale co ważne, wkleja go tam, gdzie znajduje się kursor myszy, dzięki czemu można go umieścić (zamiast umieszczać go w miejscu, z którego został skopiowany, tak jak w przypadku obecnej implementacji scratch).", "editor-devtools/replace": "Narzędzia Developerskie: Zmień nazwy wszystkie zmiennych {name} w tym duszku na:", - "editor-devtools/start-typing": "Zacznij pisać...", "editor-devtools/swap": "Zamień {var} w Duszku", - "editor-devtools/swap-variable": "Zamień zmienną w Duszku", - "editor-devtools/swap-variable-desc": "Kliknij prawym przyciskiem myszy zmienną w skryptach dla tej nowej opcji. Pozwala na przełączenie wszystkich odwołań do tej zmiennej w aktualnym duszku za jednym razem do innej zmiennej. Jest to świetne rozwiązanie, gdy popełniłeś błąd i chcesz przełączyć się z jednej zmiennej na inną lub musisz zmienić z „dla wszystkich duszków” na „tylko dla tego duszka”. Ta opcja nie usunie starej zmiennej i nie wpłynie na żadne inne zmienne duszków.", - "editor-devtools/top": "przesuń na wierzch", - "editor-devtools/tutorials": "Przewodniki", "editor-devtools/unused-list": "{count, plural, one {Narzędzia Developerskie: Usunąć 1 nieużywaną listę o nazwie:\n} few {Narzędzia Developerskie: Usunąć # nieużywanych list? Oto one: \n} many {Narzędzia Developerskie: Usunąć # nieużywanych list? Oto one: \n} other {Narzędzia Developerskie: Usunąć # nieużywanych list? Oto one: \n} }", "editor-devtools/unused-var": "{count, plural, one {Narzędzia Developerskie: Usunąć 1 nieużywaną zmienną o nazwie: \n} few {Narzędzia Developerskie: Usunąć # nieużywanych zmiennych? Oto one: \n} many {Narzędzia Developerskie: Usunąć # nieużywanych zmiennych? Oto one: \n} other {Narzędzia Developerskie: Usunąć # nieużywanych zmiennych? Oto one: \n} }", "editor-devtools/var-not-exist": "Ta zmienna nie istnieje...", "editor-devtools/variables": "zmienne", - "editor-devtools/youtube": "przewodniki na YouTube", + "find-bar/complex-broadcast": "(działanie)", + "find-bar/find-placeholder": "Szukaj (Ctr+F)", + "middle-click-popup/start-typing": "Zacznij pisać...", "editor-searchable-dropdowns/createBroadcast": "Stwórz wiadomość \"{name}\"", "editor-searchable-dropdowns/createGlobalList": "Utwórz listę \"{name}\" dla wszystkich duszków", "editor-searchable-dropdowns/createGlobalVariable": "Utwórz zmienną \"{name}\" dla wszystkich duszków", @@ -61,11 +30,10 @@ "mediarecorder/click-flag": "Czekanie...", "mediarecorder/click-flag-description": "Kliknij zieloną flagę by zacząć nagrywanie. Kliknij ten przycisk by zatrzymać nagranie.", "mediarecorder/option-title": "Opcje nagrywania", - "mediarecorder/record": "Zacznij Nagrywać", + "mediarecorder/record": "Nagrywaj", "mediarecorder/record-after-flag": "Nie włączaj nagrywania dopóki zielona flaga nie jest kliknięta", "mediarecorder/record-audio": "Uwzględnij dźwięki projektu", "mediarecorder/record-audio-description": "Nie dotyczy to zamiany tekstu na mowę.", - "mediarecorder/record-description": "Nagrywaj scenę jako plik Webm. Możesz je zapisać do swojego komputera, gdy nagrywanie się skończy.", "mediarecorder/record-duration": "Długość nagrywania (w sekundach)", "mediarecorder/record-mic": "Uwzględnij dźwięki z mikrofonu", "mediarecorder/record-until-stop": "Zatrzymaj nagrywanie gdy projekt się zatrzymał", @@ -95,14 +63,18 @@ "debugger/log-msg-flag-clicked": "Zielona Flaga została naciśnięta.", "debugger/no-logs": "Na razie nie ma żadnych informacji do wyświetlenia.", "debugger/no-threads-running": "Żadne wątki nie działają.", + "debugger/performance-clonecount-graph-tooltip": "Liczba klonów: {clones}", + "debugger/performance-clonecount-title": "Klony", "debugger/step": "Krok", "debugger/step-desc": "Wywołuje jeden blok.", "debugger/tab-logs": "Logi", + "debugger/tab-performance": "Wydajność", "debugger/tab-threads": "Wątki", "debugger/thread": "Wątek {id}", "debugger/unknown-sprite": "(nieznany duszek)", "debugger/unpause": "Wznów", - "pause/pause": "Pauza", + "pause/pause": "Zatrzymaj", + "pause/play": "Wznów", "clones/clones": "klony:{cloneCount}", "color-picker/hex": "hex kolor", "remove-sprite-confirm/confirm": "Czy chcesz usunąć duszka?", @@ -119,13 +91,34 @@ "onion-skinning/settings": "Ustawienia Onion Skinning", "onion-skinning/tint": "Odcień", "onion-skinning/toggle": "Przełącz Warstwy Cebuli", + "paint-snap/boxCenter": "Środka zaznaczonego obiektu", + "paint-snap/boxCorners": "Rogów zaznaczonego obiektu", + "paint-snap/boxEdgeMids": "Lini środkowych zaznaczonego obiektu", + "paint-snap/objectCenters": "Środku obiektów", + "paint-snap/objectCorners": "Rogów obiektów", + "paint-snap/objectEdges": "Boków obiektów", + "paint-snap/objectMidlines": "Lini środkowych obiektów", + "paint-snap/off": "Wyłącz", + "paint-snap/on": "Włącz", + "paint-snap/pageAxes": "Osi X i Y", + "paint-snap/pageCenter": "Środka strony", + "paint-snap/pageCorners": "Rogów strony", + "paint-snap/pageEdges": "Boków strony", + "paint-snap/settings": "Ustawienia Przyczepiania", + "paint-snap/snapFrom": "Przyczep od:", + "paint-snap/snapTo": "Przyczep do:", + "paint-snap/threshold": "Dystans przyczepiania", + "paint-snap/toggle": "Włącz Przyczepianie", "2d-color-picker/shade": "Cień", "better-img-uploads/upload": "Przesyłanie HD", "variable-manager/for-all-sprites": "Zmienne dla wszystkich duszków", "variable-manager/for-this-sprite": "Zmienne dla tego duszka", "variable-manager/search": "Szukaj", + "variable-manager/too-big": "Kliknij, aby wyświetlić bardzo dużą wartość.", "variable-manager/variables": "Zmienne", "search-sprites/placeholder": "Szukaj duszków...", + "sprite-properties/close-properties-panel-tooltip": "Zwiń panel właściwości", + "sprite-properties/open-properties-panel-tooltip": "Otwórz panel właściwości", "gamepad/axes-a-b": "Osie {a} i {b}", "gamepad/axis-arrows": "Przyciski Strzałek", "gamepad/axis-cursor": "Kursor", @@ -133,6 +126,7 @@ "gamepad/axis-none": "Nic", "gamepad/browser-support": "Ta przeglądarka i system operacyjny zawierają znane błędy, które mogą utrudniać korzystanie z tego dodatku. Wypróbuj inną przeglądarkę, jeśli napotkasz problemy. ", "gamepad/button-n": "Przycisk {n}", + "gamepad/clear": "Wyczyść wszystkie ustawione przyciski", "gamepad/config-header": "Ten komentarz zawiera konfigurację dla obsług pada do gier w programach jak https://turbowarp.org/\nNie edytuj ręcznie!", "gamepad/key-click": "Kliknięcie", "gamepad/key-down": "Dół", @@ -143,8 +137,8 @@ "gamepad/key-up": "Góra", "gamepad/keyinput-title": "Naciśnij i kliknij klawisz, aby zmienić przycisk. Kliknij escape, aby anulować. Aby wyczyścić naciśnij Backspace lub Cancel.", "gamepad/no-controllers": "Nie wykryto żadnego kontrolera. Spróbuj podłączyć jeden z nich i nacisnąć przycisk na nim.", + "gamepad/reset": "Resetuj wszystkie przyciski do ustawień fabrycznych", "gamepad/settings": "Ustawienia Gamepada", - "gamepad/store-in-project": "Zapisz ustawienia w projekcie, aby zastąpić domyślną konfigurację (narzędzie eksperymentalne dla twórców projektów) .", "folders/add-to-folder": "dodaj do folderu: {folder}", "folders/confirm-backpack-folder": "Czy chcesz zapisać cały folder do plecaka?", "folders/create-folder": "stwórz folder", @@ -163,6 +157,8 @@ "block-switching/control_repeat_until": "powtarzaj aż", "block-switching/control_wait_until": "czekaj aż", "block-switching/data_changevariableby": "zmień zmienną", + "block-switching/data_deletealloflist": "usuń wszystko", + "block-switching/data_deleteoflist": "usuń element", "block-switching/data_hidelist": "ukryj listę", "block-switching/data_hidevariable": "ukryj zmienną", "block-switching/data_insertatlist": "wstaw objekt", @@ -201,8 +197,8 @@ "block-switching/motion_yposition": "pozycja y", "block-switching/music_changeTempo": "zmień tempo", "block-switching/music_setTempo": "ustaw tempo", - "block-switching/operator_and": "i", - "block-switching/operator_mod": "modulo", + "block-switching/operator_and": "oraz", + "block-switching/operator_mod": "reszta z dzielenia", "block-switching/operator_or": "lub", "block-switching/pen_changePenColorParamBy": "zmień parametr", "block-switching/pen_changePenHueBy": "zmień kolor", @@ -221,6 +217,8 @@ "block-switching/sound_playuntildone": "graj aż się skończy", "block-switching/sound_seteffectto": "ustaw efekt", "block-switching/sound_setvolumeto": "ustaw głośność", + "copy-reporter/copy-to-clipboard": "Skopiuj", + "copy-reporter/copy-value": "skopiuj wartość", "blocks2image/error_blocks_not_added": "Dodaj bloki do przestrzeni roboczej!", "blocks2image/export_all_to_PNG": "Eksportuj wszystko jako PNG", "blocks2image/export_all_to_SVG": "Eksportuj wszystko jako SVG", @@ -228,6 +226,9 @@ "blocks2image/export_selected_to_SVG": "Eksportuj blok jako SVG", "move-to-top-bottom/bottom": "przenieś na dół", "move-to-top-bottom/top": "przenieś na górę", + "rename-broadcasts/RENAME_BROADCAST": "Zmień wiadomość", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Zmień Wiadomość", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Zmień nazwę wszystkich wiadomości \"{name}\" na:", "swap-local-global/cant-convert-cloud": "\"Zmienne w chmurze\" nie mogą być zamienione na \"Dla jednego duszka\"", "swap-local-global/cant-convert-conflict": "Nie można zamienić, ponieważ koliduje ze zmiennymi w innym duszku: {sprites}", "swap-local-global/cant-convert-stage": "Scena nie może mieć zmiennych \"Tylko dla tego duszka\".", diff --git a/src/addons/addons-l10n/pt.json b/src/addons/addons-l10n/pt.json index 84882eb974f..cfc1139ec1b 100644 --- a/src/addons/addons-l10n/pt.json +++ b/src/addons/addons-l10n/pt.json @@ -1,53 +1,26 @@ { - "editor-devtools/bottom": "enviar ao fundo", "editor-devtools/clean-plus": "Limpar Blocos +", - "editor-devtools/code-tab-features": "Funções da Aba de Código", "editor-devtools/copy-all": "Copiar Pilha", "editor-devtools/copy-block": "Copiar Bloco", - "editor-devtools/copy-to-clipboard": "Copiar para a Área de Transferência", - "editor-devtools/copy-to-clipboard-desc": "Clique com o botão direito em um bloco e 3 novas opções aparecem para Copiar Pilha, Copiar Bloco e Recortar Bloco. Copiar Pilha vai copiar para a área de transferência todos os blocos conectados abaixo do que você clicou. Copiar Bloco vai copiar só o bloco que você clicou e os seus conteúdos, nada conectado nele abaixo. E Recortar Bloco vai copiá-lo e removê-lo da área de scripts.", - "editor-devtools/costume-tab-features": "Funções da Aba de Fantasias", - "editor-devtools/ctrl-lr": "Ctrl + Esquerda, Ctrl + Direita", - "editor-devtools/ctrl-lr-costume-desc": "Essas setas te levam à fantasia anterior / posterior no ator.", - "editor-devtools/ctrl-lr-desc": "Navegar até a posição anterior / posterior visitada na janela de scripts (depois de usar a função de navegar até um bloco ou a barra de busca). Isso te deixa clicar com o botão do meio em um bloco customizado para ver a definição e apertar Ctrl + Esquerda para voltar até onde você estava.", - "editor-devtools/ctrl-space": "Ctrl + Espaço, botão da rodinha do mouse, ou Shift + Click", - "editor-devtools/ctrl-space-desc": "Abre uma caixa flutuante onde você pode digitar o nome de um bloco (ou partes dele) e arrastar o bloco ao seu código para usá-lo. Segure Shift enquanto arrasta para que a caixa não feche e você possa adicionar vários blocos de uma vez.", "editor-devtools/cut-block": "Recortar Bloco", - "editor-devtools/deep": "Profundo", - "editor-devtools/find": "Buscar", - "editor-devtools/find-bar": "Barra de Busca", - "editor-devtools/find-bar-costume-desc": "Clique para ver todas as fantasias por ordem alfabética, e digite para procurar uma. Use as setas ou o mouse para clicar em um nome e ir direto àquela fantasia.", - "editor-devtools/find-placeholder": "Buscar (Ctrl+F)", - "editor-devtools/help": "Ajuda", - "editor-devtools/help-make-space": "Abrir Espaço", - "editor-devtools/help-make-space-desc": "Crie espaço ao redor de um script clicando com o botão direito na pilha de blocos e escolhendo \"Abrir Espaço\".", - "editor-devtools/help-new": "★Novo★", - "editor-devtools/help-title": "Ferramentas de Desenvolvedor do Scratch 3", - "editor-devtools/improved-tidy-up": "Organização de Blocos Melhorada", - "editor-devtools/improved-tidy-up-desc": "Clique com o botão direito na janela de scripts para abrir o menu e a opção de limpar blocos será trocada pela opção Limpar Blocos +. Clique para organizar seus blocos e as colunas serão mantidas, seus comentários também serão alinhados, seus variáveis órfãos removidos, etc.", - "editor-devtools/insert": "Inserir", - "editor-devtools/interactive-find-bar": "Barra de Busca Interativa (Ctrl + F)", - "editor-devtools/interactive-find-bar-desc": "Encontre e vá para qualquer Bloco Customizado, Variável, Evento ou bloco de Chapéu definido em um ator rapidamente clicando na nova barra de busca localizada à direita das abas de Código, Fantasias e Som. Comece a digitar para pesquisar. Use as setas de cima e baixo para passar pelas opções possíveis, e as setas de esquerda e direita para trocar entre todas as aparições daquele bloco.", "editor-devtools/lists": "listas", "editor-devtools/make-space": "Abrir Espaço", - "editor-devtools/middleclick": "Pular Para", - "editor-devtools/middleclick-desc": "Use o botão da rodinha do mouse ou Shift + Click em uma variável ou bloco customizável para ir até a sua definição ou abri-lo na barra de pesquisa interativa.", "editor-devtools/orphaned": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 bloco redondo órfão?} many {Ferramentas de desenvolvedor: Deletar # blocos redondos órfãos?} other {Ferramentas de desenvolvedor: Deletar # blocos redondos órfãos?} }", "editor-devtools/paste": "Colar", - "editor-devtools/paste-from-clipboard": "Colar da Área de Trabalho", - "editor-devtools/paste-from-clipboard-desc": "Cola da área de trabalho onde o seu mouse estiver para que você possa colocar o bloco onde quiser (ao invés de colar o bloco na mesma posição onde você copiou como a implementação atual do Scratch faz).", "editor-devtools/replace": "Ferramentas de desenvolvedor: Trocar {name} nesse ator pela variável chamada:", - "editor-devtools/start-typing": "Comece a Digitar...", "editor-devtools/swap": "Trocar {var} no Ator", - "editor-devtools/swap-variable": "Trocar Variável no Ator", - "editor-devtools/swap-variable-desc": "Clique com o botão direito em uma variável para ver essa opção. Ela te deixa trocar todas as aparições dessa variável no ator atual de uma vez por outra variável. Isso é ótimo para quando você fez um erro e quer trocar uma variável por outra ou precisa trocar uma variável 'para todos os atores' por uma 'apenas para este ator'. Essa opção não remove a variável antiga e não vai afetar as variáveis de outros atores.", - "editor-devtools/top": "enviar ao topo", - "editor-devtools/tutorials": "Tutoriais", "editor-devtools/unused-list": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 lista local não utilizada? Aqui estão:\n} many {Ferramentas de desenvolvedor: Deletar # listas locais não utilizadas? Aqui está:\n} other {Ferramentas de desenvolvedor: Deletar # listas locais não utilizadas? Aqui está:\n} }", "editor-devtools/unused-var": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 variável local não utilizada? Aqui está:\n} many {Ferramentas de desenvolvedor: Deletar # variáveis locais não utilizadas? Aqui estão:\n} other {Ferramentas de desenvolvedor: Deletar # variáveis locais não utilizadas? Aqui estão:\n} }", "editor-devtools/var-not-exist": "Essa variável não existe...", "editor-devtools/variables": "variáveis", - "editor-devtools/youtube": "Tutoriais no YouTube", + "find-bar/complex-broadcast": "(expressão)", + "find-bar/event": "evento {name}", + "find-bar/find-placeholder": "Localizar (Ctrl+F)", + "find-bar/list-global": "LISTA {name}", + "find-bar/list-local": "lista {name}", + "find-bar/var-global": "VARIÁVEL {name}", + "find-bar/var-local": "variável {name}", + "middle-click-popup/start-typing": "Comece a Digitar...", "editor-searchable-dropdowns/createBroadcast": "Criar mensagem \"{name}\"", "editor-searchable-dropdowns/createGlobalList": "Criar lista \"{name}\" para todos os atores", "editor-searchable-dropdowns/createGlobalVariable": "Criar variável \"{name}\" para todos os atores", @@ -62,11 +35,10 @@ "mediarecorder/click-flag": "Esperando...", "mediarecorder/click-flag-description": "Clique na bandeira verde para começar a gravar. Clique nesse botão para parar.", "mediarecorder/option-title": "Opções de Gravação", - "mediarecorder/record": "Começar a Gravar", + "mediarecorder/record": "Gravar", "mediarecorder/record-after-flag": "Só começar a gravar quando a bandeira verde for clicada", "mediarecorder/record-audio": "Incluir sons do projeto", "mediarecorder/record-audio-description": "Isso não inclui Texto-para-Fala", - "mediarecorder/record-description": "Grava o palco como um arquivo WebM. Você pode salvá-lo ao seu computador quando a gravação terminar.", "mediarecorder/record-duration": "Tempo de Gravação (em segundos)", "mediarecorder/record-mic": "Incluir sons do microfone", "mediarecorder/record-until-stop": "Parar de gravar quando o projeto for parado", @@ -116,19 +88,24 @@ "onion-skinning/settings": "Configurações de Onion Skinning", "onion-skinning/tint": "Colorido", "onion-skinning/toggle": "Ligar/Desligar Onion Skinning", + "paint-snap/off": "Desativado", + "paint-snap/on": "Ativado", "2d-color-picker/shade": "Tom", "better-img-uploads/upload": "Carregar Fantasia HD", "variable-manager/for-all-sprites": "Variáveis para todos os atores", "variable-manager/for-this-sprite": "Variáveis desse ator", "variable-manager/search": "Buscar", + "variable-manager/too-big": "Clique para mostrar valores enormes.", "variable-manager/variables": "Variáveis", "search-sprites/placeholder": "Buscar atores...", + "sprite-properties/open-properties-panel-tooltip": "Abrir painel de propriedades", "gamepad/axes-a-b": "Direcionais {a} e {b}", "gamepad/axis-arrows": "Setinhas", "gamepad/axis-custom": "Customizado", "gamepad/axis-none": "Nenhum", "gamepad/browser-support": "Esse navegador e sistema operacional têm bugs que dificultam o uso desse addon. Tente outro navegador se você encontrar problemas.", "gamepad/button-n": "Botão {n}", + "gamepad/clear": "Limpar todos os controles", "gamepad/config-header": "Esse comentário contém configuração de suporte para controle em sites e ferramentas de terceiros como https://turbowarp.org/\nNão edite manualmente", "gamepad/key-click": "Clique", "gamepad/key-down": "Baixo", @@ -139,11 +116,11 @@ "gamepad/key-up": "Cima", "gamepad/keyinput-title": "Clique e aperte uma tecla ou clique para trocar o botão. Aperte Esc para cancelar. Aperte Backspace ou Delete para apagar.", "gamepad/no-controllers": "Nenhum controle detectado. Tente conectar um e apertar um botão nele.", + "gamepad/reset": "Redefinir todos os controles ao padrão do projeto", "gamepad/settings": "Configurações do Controle", - "gamepad/store-in-project": "Guardar essas configurações no projeto para sobrescrever configuração padrão (Ferramenta experimental para criadores de projeto)", "folders/add-to-folder": "adicionar à pasta: {folder}", "folders/closed-folder": "Pasta", - "folders/confirm-backpack-folder": "Salvar pasta inteira na mochila?", + "folders/confirm-backpack-folder": "Salvar a pasta inteira na mochila?", "folders/create-folder": "criar pasta", "folders/name-not-allowed": "Nome de pasta inválido", "folders/name-prompt": "Nome da pasta:", @@ -160,6 +137,8 @@ "block-switching/control_repeat_until": "repita até que", "block-switching/control_wait_until": "espere até que", "block-switching/data_changevariableby": "adicionar à variável", + "block-switching/data_deletealloflist": "apagar tudo", + "block-switching/data_deleteoflist": "apagar item", "block-switching/data_hidelist": "esconder lista", "block-switching/data_hidevariable": "esconder variável", "block-switching/data_insertatlist": "insira um item", @@ -175,6 +154,8 @@ "block-switching/looks_changeeffectby": "mude ao efeito", "block-switching/looks_changesizeby": "mude no tamanho", "block-switching/looks_costumenumbername": "número ou nome da fantasia", + "block-switching/looks_goforwardbackwardlayers": "ir a camada a frente ou atrás", + "block-switching/looks_gotofrontback": "ir para camada da frente ou de trás", "block-switching/looks_hide": "esconda", "block-switching/looks_nextbackdrop": "próximo cenário", "block-switching/looks_nextcostume": "próxima fantasia", @@ -210,14 +191,18 @@ "block-switching/pen_setPenHueToNumber": "mude a cor para", "block-switching/pen_setPenShadeToNumber": "mude o tom para", "block-switching/pen_setPenSizeTo": "mude o tamanho para", + "block-switching/sensing_coloristouchingcolor": "cor tocando cor", "block-switching/sensing_mousex": "posição x do mouse", "block-switching/sensing_mousey": "posição y do mouse", + "block-switching/sensing_touchingcolor": "tocando cor", "block-switching/sound_changeeffectby": "adicione ao efeito", "block-switching/sound_changevolumeby": "adicione ao volume", "block-switching/sound_play": "toque", "block-switching/sound_playuntildone": "toque o som até o fim", "block-switching/sound_seteffectto": "mude o efeito para", "block-switching/sound_setvolumeto": "mude o volume para", + "copy-reporter/copy-to-clipboard": "Copiar", + "copy-reporter/copy-value": "Copiar valor", "blocks2image/error_blocks_not_added": "Adicione blocos à área de trabalho!", "blocks2image/export_all_to_PNG": "Exportar tudo como PNG", "blocks2image/export_all_to_SVG": "Exportar tudo como SVG", @@ -225,6 +210,10 @@ "blocks2image/export_selected_to_SVG": "Exportar blocos como SVG", "move-to-top-bottom/bottom": "mover ao fundo", "move-to-top-bottom/top": "mover ao topo", + "move-to-top-layer/move-to-front-layer": "mover para camada da frente", + "rename-broadcasts/RENAME_BROADCAST": "Renomear mensagem", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Renomear Mensagem", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Renomear todas as mensagens com o nome \"{name}\" para:", "swap-local-global/cant-convert-cloud": "Variáveis na nuvem não podem ser convertidas para apenas para este ator.", "swap-local-global/cant-convert-conflict": "Não foi possível converter porque o nome dessa variável iria causar conflitos com outro ator: {sprites}", "swap-local-global/cant-convert-stage": "O palco não pode ter variáveis apenas para este ator.", diff --git a/src/addons/addons-l10n/ro.json b/src/addons/addons-l10n/ro.json index 0cb49bd1ada..e5c75f13bfd 100644 --- a/src/addons/addons-l10n/ro.json +++ b/src/addons/addons-l10n/ro.json @@ -1,36 +1,12 @@ { - "editor-devtools/bottom": "trimite în partea de jos", - "editor-devtools/code-tab-features": "Funcții pentru Fila Codului", "editor-devtools/copy-all": "Copiază Toate", "editor-devtools/copy-block": "Copiază Blocul", - "editor-devtools/copy-to-clipboard": "Copiază în Clipboard", - "editor-devtools/costume-tab-features": "Funcții pentru Fila Costumelor", - "editor-devtools/ctrl-lr": "Ctrl + Stânga, Ctrl + Dreapta", - "editor-devtools/ctrl-lr-costume-desc": "Aceste taste te mută la costumul anterior / următor în personaj.", "editor-devtools/cut-block": "Decupează Blocul", - "editor-devtools/deep": "Adâncime", - "editor-devtools/find": "Caută", - "editor-devtools/find-bar": "Bara de Căutare", - "editor-devtools/find-placeholder": "Caută (Ctrl+F)", - "editor-devtools/help": "Ajutor", - "editor-devtools/help-make-space": "Fă spațiu", - "editor-devtools/help-new": "Nou✨", - "editor-devtools/help-title": "Instrumente pentru Dezvoltatori Scratch 3", - "editor-devtools/insert": "Inserează", - "editor-devtools/interactive-find-bar": "Bară de căutare interactivă (Ctrl + F)", "editor-devtools/lists": "liste", "editor-devtools/make-space": "Fă spațiu", "editor-devtools/paste": "Inserează", - "editor-devtools/paste-from-clipboard": "Inserează din Clipboard", - "editor-devtools/paste-from-clipboard-desc": "Inserează din clipboard, dar cel mai important, inserează unde este cursorul mouse-ului tău ca tu apoi să poți să îl plasezi (mai bine decât să-l plasezi de unde l-ai copiat, ca în implementarea Scratch actuală).", - "editor-devtools/start-typing": "Începe să Tastezi...", - "editor-devtools/swap-variable": "Transferă Variabila în Personaj", - "editor-devtools/swap-variable-desc": "Clic dreapta pe o variabilă în script-urile tale pentru această nouă opțiune. Îți permite să schimbi în același timp toate referințele la această variabilă în personajul actual cu o altă variabilă. Este folositor când ai făcut o greșeală și vrei să schimbi variabilele dintr-una într-alta sau trebuie să schimbi dintr-o variabilă „pentru toate personajele” într-una „doar pentru acest personaj”. Această opțiune nu va elimina variabila cea veche și nu va afecta alte variabile ale personajelor.", - "editor-devtools/top": "trimite în vârf", - "editor-devtools/tutorials": "Tutoriale", "editor-devtools/var-not-exist": "Acea variabilă nu există...", "editor-devtools/variables": "variabile", - "editor-devtools/youtube": "Tutoriale YouTube", "data-category-tweaks-v2/for-all-sprites": "Pentru toate personajele:", "data-category-tweaks-v2/for-this-sprite-only": "Doar pentru acest personaj:", "data-category-tweaks-v2/list-category": "Liste", @@ -38,11 +14,9 @@ "mediarecorder/click-flag": "Se așteaptă...", "mediarecorder/click-flag-description": "Apasă pe steagul verde pentru a începe să înregistrezi. Apasă acest buton pentru a o opri.", "mediarecorder/option-title": "Opțiuni pentru Înregistrare", - "mediarecorder/record": "Pornește Înregistrarea", "mediarecorder/record-after-flag": "Nu porni înregistrarea până nu se apasă pe Steagul Verde", "mediarecorder/record-audio": "Include sunetele proiectului", "mediarecorder/record-audio-description": "Asta nu include Text-în-Vorbire.", - "mediarecorder/record-description": "Înregistrează scena ca un fișier WebM. Poți să-l salvezi pe calculatorul tău după ce înregistrarea este finalizată.", "mediarecorder/record-duration": "Durata înregistrării (în secunde)", "mediarecorder/record-mic": "Include sunete de la microfon", "mediarecorder/record-until-stop": "Oprește înregistrarea la oprirea proiectului", diff --git a/src/addons/addons-l10n/ru.json b/src/addons/addons-l10n/ru.json index 36232d93950..a7134d3a19a 100644 --- a/src/addons/addons-l10n/ru.json +++ b/src/addons/addons-l10n/ru.json @@ -1,28 +1,21 @@ { - "editor-devtools/bottom": "отправить вниз", "editor-devtools/clean-plus": "Очистить блоки +", "editor-devtools/copy-all": "Копировать все", "editor-devtools/copy-block": "Копировать блок", - "editor-devtools/copy-to-clipboard": "Скопировать в буфер обмена", "editor-devtools/cut-block": "Вырезать блок", - "editor-devtools/deep": "глубокий", - "editor-devtools/find": "Поиск", - "editor-devtools/find-bar": "Панель поиска", - "editor-devtools/find-placeholder": "Найти (Ctrl+F)", - "editor-devtools/help": "Помощь", - "editor-devtools/help-title": "Инструменты разработчика Scratch 3", - "editor-devtools/insert": "Вставка", - "editor-devtools/interactive-find-bar": "Интерактивная строка поиска (Ctrl + F)", "editor-devtools/lists": "списки", "editor-devtools/make-space": "Сделать пространство", + "editor-devtools/orphaned": "{count, plural, one {Инструменты разработчика: Удалить неиспользуемый блок сенсора?} few {Инструменты разработчика: Удалить # неиспользуемых блоков сенсора?} many {Инструменты разработчика: Удалить # неиспользуемых блоков сенсора?} other {Инструменты разработчика: Удалить # неиспользуемых блоков сенсора? } }", "editor-devtools/paste": "Вставить", - "editor-devtools/paste-from-clipboard": "Вставить из буфера обмена", - "editor-devtools/start-typing": "Начните Печатать...", - "editor-devtools/top": "отправить наверх", - "editor-devtools/tutorials": "Учебники", + "editor-devtools/replace": "Инструменты разработчика: Сделать все {name} у этого спрайта переменной названной:", + "editor-devtools/swap": "Сделать {var} для спрайта", + "editor-devtools/unused-list": "{count, plural, one {Инструменты разработчика: Удалить неиспользуемый локальный список? Вот он:\n} few {Инструменты разработчика: удалить # не используемых локальных списков? Вот они:\n} many {Инструменты разработчика: Удалить # неиспользуемых локальных листов? Вот они:\n} other {Инструменты разработчика: Удалить # неиспользуемых локальных списков? Вот они:\n} }", + "editor-devtools/unused-var": "{count, plural, one {Инструменты разработчика: Удалить неиспользуемую локальную переменную? Вот она:\n} few {Инструменты разработчика: Удалить # неиспользуемых локальных переменных? Вот они:\n} many {Инструменты разработчика: Удалить # неиспользуемых локальных переменных? Вот они:\n} other {Инструменты разработчика: Удалить # неиспользуемых локальных переменных? Вот они:\n} }", "editor-devtools/var-not-exist": "Эта переменная не существует...", "editor-devtools/variables": "переменные", - "editor-devtools/youtube": "Учебники на YouTube", + "find-bar/complex-broadcast": "(выделение)", + "find-bar/find-placeholder": "Поиск (Ctrl+F)", + "middle-click-popup/start-typing": "Начните печатать...", "editor-searchable-dropdowns/createBroadcast": "Создать сообщение \"{name}\"", "editor-searchable-dropdowns/createGlobalList": "Создать список \"{name}\" для всех спрайтов", "editor-searchable-dropdowns/createGlobalVariable": "Создать переменную \"{name}\" для всех спрайтов", @@ -37,11 +30,11 @@ "mediarecorder/click-flag": "Ожидание...", "mediarecorder/click-flag-description": "Нажмите зеленый флаг, чтобы начать запись. Нажмите эту кнопку, чтобы остановить.", "mediarecorder/option-title": "Настройки записи", - "mediarecorder/record": "Начать запись", + "mediarecorder/record": "Запись", "mediarecorder/record-after-flag": "Не начинать запись, пока не нажат зеленый флаг", "mediarecorder/record-audio": "Включить звуки проекта", "mediarecorder/record-audio-description": "Это не включает Text-to-Speech.", - "mediarecorder/record-description": "Записывает сцену в файл WebM. Вы можете сохранить его на свой компьютер после завершения записи.", + "mediarecorder/record-description": "Записать проект в файл типа {extension}. Его можно скачать на ваш ПК после завершения записи.\n(Примечание: переменные и списки не будут видны на записи.)", "mediarecorder/record-duration": "Продолжительность записи (в секундах)", "mediarecorder/record-mic": "Включить звуки из микрофона", "mediarecorder/record-until-stop": "Остановить запись после остановки проекта", @@ -72,9 +65,14 @@ "debugger/log-msg-flag-clicked": "Зелёный флаг нажат.", "debugger/no-logs": "Нет логов для показа.", "debugger/no-threads-running": "Потоки не выполняются.", + "debugger/performance-clonecount-graph-tooltip": "Клоны: {clones}", + "debugger/performance-clonecount-title": "Клоны", + "debugger/performance-framerate-graph-tooltip": "Кадровая частота: {fps}", + "debugger/performance-framerate-title": "Кадровая частота", "debugger/step": "Шаг", "debugger/step-desc": "Выполнить один блок.", "debugger/tab-logs": "Логи", + "debugger/tab-performance": "Производительность", "debugger/tab-threads": "Потоки", "debugger/thread": "Поток {id}", "debugger/unknown-sprite": "(неизвестный спрайт)", @@ -96,13 +94,34 @@ "onion-skinning/settings": "Настройки отображения предыдущих костюмов", "onion-skinning/tint": "Оттенок", "onion-skinning/toggle": "Включить отображение предыдущих костюмов", + "paint-snap/boxCenter": "Центра выбора", + "paint-snap/boxCorners": "Углов выбора", + "paint-snap/boxEdgeMids": "Средних точек выбора", + "paint-snap/objectCenters": "Центру объектов", + "paint-snap/objectCorners": "Углам объектов", + "paint-snap/objectEdges": "Границам объектов", + "paint-snap/objectMidlines": "средним линиям объектов", + "paint-snap/off": "Выкл", + "paint-snap/on": "Вкл", + "paint-snap/pageAxes": "Осям x и y", + "paint-snap/pageCenter": "Центру", + "paint-snap/pageCorners": "Углам", + "paint-snap/pageEdges": "Границам", + "paint-snap/settings": "Настройки привязки", + "paint-snap/snapFrom": "Привязка от:", + "paint-snap/snapTo": "Привязать к:", + "paint-snap/threshold": "Дистанция привязки", + "paint-snap/toggle": "Включить привязку", "2d-color-picker/shade": "Оттенок", "better-img-uploads/upload": "HD загрузка", "variable-manager/for-all-sprites": "Переменные всех спрайтов", "variable-manager/for-this-sprite": "Переменные этого спрайта", "variable-manager/search": "Поиск", + "variable-manager/too-big": "Нажмите для отображения очень большого значения", "variable-manager/variables": "Переменные", "search-sprites/placeholder": "Искать спрайты...", + "sprite-properties/close-properties-panel-tooltip": "Спрятать панель со свойствами", + "sprite-properties/open-properties-panel-tooltip": "Открыть панель со свойствами", "gamepad/axes-a-b": "Оси {a}и{b}", "gamepad/axis-arrows": "Клавиши стрелок", "gamepad/axis-cursor": "Курсор", @@ -110,6 +129,7 @@ "gamepad/axis-none": "Ничего", "gamepad/browser-support": "Этот браузер и операционная система имеют известные баги, которые могут повлиять на использование этого аддона. Попробуйте др. браузер, если у Вас появятся проблемы.", "gamepad/button-n": "Кнопка{n}", + "gamepad/clear": "Очистить все элементы управления", "gamepad/config-header": "Этот комментарий содержит конфигурацию для поддержки геймпада в сторонних инструментах или сайтах по типу https://turbowarp.org/\nНе редактировать самим", "gamepad/key-click": "Нажатие", "gamepad/key-down": "Вниз", @@ -120,9 +140,10 @@ "gamepad/key-space": "Пробел", "gamepad/key-up": "Вверх", "gamepad/keyinput-title": "Кликните и нажмите клавишу или кликните для смены кнопки. Esc для отмены. Backspace или Delete для очистки.", - "gamepad/no-controllers": "Не обнаружены контроллеры. Попробуйте подключить какой-нибудь контроллер и нажать на ней кнопку.", + "gamepad/no-controllers": "Не обнаружены контроллеры. Попробуйте подключить какой-нибудь контроллер и нажать на нём кнопку.", + "gamepad/reset": "Сменить управление на стандартное", "gamepad/settings": "Настройки геймпада", - "gamepad/store-in-project": "Хранить эти настройки в проекте для обхода конфигурации по умолчанию (Экспериментальный инструмент для создателей проектов)", + "gamepad/store-in-project": "Хранить значения заданные поверху внутри проекта. После сохранения проекта, эти значения станут новой конфигурацией по умолчанию.", "folders/add-to-folder": "добавить к папке: {folder}", "folders/closed-folder": "Папка", "folders/confirm-backpack-folder": "Сохранить всю папку в рюкзак?", @@ -142,6 +163,8 @@ "block-switching/control_repeat_until": "повторять до", "block-switching/control_wait_until": "ждать до", "block-switching/data_changevariableby": "изменить переменную", + "block-switching/data_deletealloflist": "Удалить все", + "block-switching/data_deleteoflist": "Удалить элемент", "block-switching/data_hidelist": "скрыть список", "block-switching/data_hidevariable": "спрятать переменную", "block-switching/data_insertatlist": "вставить элемент", @@ -149,12 +172,17 @@ "block-switching/data_setvariableto": "установить переменную", "block-switching/data_showlist": "показать список", "block-switching/data_showvariable": "показать переменную", + "block-switching/debugger_error": "ошибка", + "block-switching/debugger_log": "лог", + "block-switching/debugger_warn": "предупредить", "block-switching/event_broadcast": "передать", "block-switching/event_broadcastandwait": "передать и ждать до конца", "block-switching/looks_backdropnumbername": "номер фона или имя фона", "block-switching/looks_changeeffectby": "изменить эффект", "block-switching/looks_changesizeby": "изменить размер", "block-switching/looks_costumenumbername": "номер костюма или имя костюма", + "block-switching/looks_goforwardbackwardlayers": "перейти на слой вперед/назад", + "block-switching/looks_gotofrontback": "перейти на передний/задний слой", "block-switching/looks_hide": "спрятаться", "block-switching/looks_nextbackdrop": "следующий фон", "block-switching/looks_nextcostume": "следующий костюм", @@ -178,6 +206,7 @@ "block-switching/music_changeTempo": "изменить темп", "block-switching/music_setTempo": "задать темп", "block-switching/operator_and": "и", + "block-switching/operator_mod": "мод", "block-switching/operator_or": "или", "block-switching/pen_changePenColorParamBy": "изменить параметр", "block-switching/pen_changePenHueBy": "изменить цвет", @@ -191,20 +220,27 @@ "block-switching/pen_setPenSizeTo": "задать размер", "block-switching/sensing_mousex": "x мыши", "block-switching/sensing_mousey": "y мыши", + "block-switching/sensing_touchingcolor": "касается цвета?", "block-switching/sound_changeeffectby": "изменить эффект", "block-switching/sound_changevolumeby": "изменить громкость", "block-switching/sound_play": "включить звук", "block-switching/sound_playuntildone": "проигрывать до конца", "block-switching/sound_seteffectto": "задать эффект", "block-switching/sound_setvolumeto": "задать громкость", + "copy-reporter/copy-to-clipboard": "Копировать", + "copy-reporter/copy-value": "Копировать значение", "blocks2image/error_blocks_not_added": "Добавить блоки на рабочую область!", - "blocks2image/export_all_to_PNG": "Экспорт всех как PNG", - "blocks2image/export_all_to_SVG": "Экспорт всех как SVG", + "blocks2image/export_all_to_PNG": "Экспорт всех блоков в формате PNG", + "blocks2image/export_all_to_SVG": "Экспорт всех блоков в SVG", "blocks2image/export_selected_to_PNG": "Экспорт блока как PNG", - "blocks2image/export_selected_to_SVG": "Экспорт блока как SVG", + "blocks2image/export_selected_to_SVG": "Экспорт блока в формате SVG", "editor-extra-keys/enter-key": "ввод", "move-to-top-bottom/bottom": "переместить вниз", "move-to-top-bottom/top": "переместить наверх", + "move-to-top-layer/move-to-front-layer": "выдвинуть на верхний слой", + "rename-broadcasts/RENAME_BROADCAST": "Переименовать сообщение", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Переименовать Сообщение", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "переименовать \"{name}\" сообщений в:", "swap-local-global/cant-convert-cloud": "Облачные переменные нельзя преобразовать только в этот спрайт.", "swap-local-global/cant-convert-conflict": "Невозможно сконвертировать, так как будет конфликт с переменными в другом спрайте: {sprites}", "swap-local-global/cant-convert-stage": "В сцене не может быть переменных только для этого спрайта.", diff --git a/src/addons/addons-l10n/sl.json b/src/addons/addons-l10n/sl.json index 6d5cfdb1ab9..dc342ed199b 100644 --- a/src/addons/addons-l10n/sl.json +++ b/src/addons/addons-l10n/sl.json @@ -1,52 +1,27 @@ { - "editor-devtools/bottom": "na dno", + "_general/blocks/anticlockwise": "v nasprotni smeri urnega kazalca", + "_general/blocks/clockwise": "v smeri urnega kazalca", + "_general/blocks/green-flag": "zastavico", "editor-devtools/clean-plus": "Počisti bloke +", - "editor-devtools/code-tab-features": "Funkcije na zavihku Koda", "editor-devtools/copy-all": "Kopiraj vse", "editor-devtools/copy-block": "Kopiraj blok", - "editor-devtools/copy-to-clipboard": "Kopiraj v odložišče", - "editor-devtools/copy-to-clipboard-desc": "Kliknite na blok z desno tipko in na voljo bodo 3 nove možnosti: Kopiraj vse, Kopiraj blok in Izreži blok. Kopiraj vse kopira blok, ki ste ga kliknili, in vse, kar je pod njim. Kopiraj blok kopira trenutni blok, ne pa tudi blokov pod njim. In Izreži blok ga kopira in odstrani iz prostora za kodo.", - "editor-devtools/costume-tab-features": "Funkcije na zavihku Videzi", - "editor-devtools/ctrl-lr": "Ctrl + desno, Ctrl + levo", - "editor-devtools/ctrl-lr-costume-desc": "Ti tipki izbereta prejšnji / naslednji videz figure.", - "editor-devtools/ctrl-lr-desc": "Premaknite se na prejšnji / naslednji obiskan položaj v prostoru za kodo (potem ko uporabite srednji miškin gumb ali iskalno vrstico). To vam omogoča, da kliknete blok s srednjo miškino tipko, da se premaknete na njegovo definicijo, potem pa pritisnete Ctrl + levo, da se vrnete na prejšnji položaj.", - "editor-devtools/ctrl-space": "Ctrl + presledek, srednji miškin gumb ali Shift + klik", - "editor-devtools/ctrl-space-desc": "Pokaže polje, v katerega lahko vnesete ime (ali del imena) bloka in ta blok povlečete v kodo, da ga takoj uporabite. Držite Shift med vlečenjem, da se okno ne zapre, če dodajate več blokov naenkrat.", "editor-devtools/cut-block": "Izreži blok", - "editor-devtools/deep": "Globoko iskanje", - "editor-devtools/find": "Iskanje", - "editor-devtools/find-bar": "Iskalna vrstica", - "editor-devtools/find-bar-costume-desc": "Kliknite za seznam vseh videzov, razvrščenih po imenu, in vnesite ime za iskanje. Uporabite tipke s puščicami ali kliknite ime z miško, da se premaknete na izbran videz.", - "editor-devtools/find-placeholder": "Iskanje (Ctrl+F)", - "editor-devtools/help": "Pomoč", - "editor-devtools/help-make-space": "Naredi prostor", - "editor-devtools/help-make-space-desc": "Naredite dodaten prostor okrog skripte, tako da jo kliknite z desno miškino tipko in izberete \"Naredi prostor\".", - "editor-devtools/help-new": "★Novo★", - "editor-devtools/improved-tidy-up": "Izboljšano čiščenje kode", - "editor-devtools/improved-tidy-up-desc": "Kliknite na prostor za kodo z desno miškino tipko, da odprete meni, in možnost Počisti bloke bo zamenjana s Počisti bloke +. Uporabite jo, da uredite svoje skripte, in ohranila bo razporeditev po stolpcih ter poskusila poravnati komentarje in odstraniti vse tiste neuporabljene spremenljivke, itd.", - "editor-devtools/insert": "Vstavi", - "editor-devtools/interactive-find-bar": "Interaktivna iskalna vrstica (Ctrl + F)", - "editor-devtools/interactive-find-bar-desc": "Hitro najdite katerikoli \"moj blok\", spremenljivko ali dogodek v figuri, tako da kliknete novo iskalno vrstico desno od zavihkov Koda, Videzi in Zvoki. Začnite tipkati za iskanje po seznamu. Uporabite tipki gor in dol za premikanje po možnih zadetkih ter tipki levo in desno za izbiro posamezne pojavitve tistega bloka.", "editor-devtools/lists": "seznami", "editor-devtools/make-space": "Naredi prostor", - "editor-devtools/middleclick": "Skoči na", - "editor-devtools/middleclick-desc": "Če uporabite srednji miškin gumb ali Shift + kliknete spremenljivko ali \"moj blok\", lahko skočite na njegovo definicijo ali spremenljivko odprete v interaktivnem iskalnem polju.", - "editor-devtools/orphaned": "{count, plural, one {Developer tools: Naj izbrišem 1 neuporabljen okrogel blok?} two {Developer tools: Naj izbrišem 2 neuporabljena okrogla bloka?} few {Developer tools: Naj izbrišem # neuporabljene okrogle bloke?} other {Developer tools: Naj izbrišem # neuporabljenih okroglih blokov?} }", + "editor-devtools/orphaned": "{count, plural, one {Developer tools: Naj izbrišem 1 neuporabljen okrogel blok?} two {Developer tools: Naj izbrišem 2 neuporabljena okrogla bloka?} few {Developer tools: Naj izbrišem # neuporabljene okrogle bloke?} other {Orodje za razvijalce: Naj izbrišem # neuporabljenih okroglih blokov?} }", "editor-devtools/paste": "Prilepi", - "editor-devtools/paste-from-clipboard": "Prilepi z odložišča", - "editor-devtools/paste-from-clipboard-desc": "Prilepi bloke z odložišča, ampak jih postavi tja, kjer je miškin kazalec, da jih lahko potem postavite, kamor želite (namesto da bi jih prilepil tja, od koder ste jih kopirali, kakor trenutna različica Scratcha).", - "editor-devtools/replace": "Developer tools: Zamenjaj vse {name} v tej figuri s spremenljivko z imenom:", - "editor-devtools/start-typing": "Začnite tipkati...", + "editor-devtools/replace": "Orodje za razvijalce: Zamenjaj vse {name} v tej figuri s spremenljivko z imenom:", "editor-devtools/swap": "Zamenjaj {var} v figuri", - "editor-devtools/swap-variable": "Zamenjaj spremenljivko v figuri", - "editor-devtools/swap-variable-desc": "Kliknite spremenljivko v kodi z desno miškino tipko, da uporabite to novo možnost. Omogoča, da spremenite vso kodo v trenutni figuri, ki se nanaša na to spremenljivko, v drugo spremenljivko. To je odlično, če ste se zmotili in bi radi uporabili drugo spremenljivko ali pa morate spremeniti spremenljivko za vse figure v spremenljivko za to figuro. Ta možnost ne bo odstranila stare spremenljivke in ne vpliva na spremenljivke v ostalih figurah.", - "editor-devtools/top": "na vrh", - "editor-devtools/tutorials": "Vodiči", - "editor-devtools/unused-list": "{count, plural, one {Developer tools: Naj izbrišem 1 neuporabljen lokalni seznam? Tukaj je:\n} two {Developer tools: Naj izbrišem 2 neuporabljena lokalna seznama? Tukaj sta:\n} few {Developer tools: Naj izbrišem # neuporabljene lokalne sezname? Tukaj so:\n} other {Developer tools: Naj izbrišem # neuporabljenih lokalnih seznamov? Tukaj so:\n} }", - "editor-devtools/unused-var": "{count, plural, one {Developer tools: Naj izbrišem 1 neuporabljeno lokalno spremenljivko? Tukaj je:\n} two {Developer tools: Naj izbrišem 2 neuporabljeni lokalni spremenljivki? Tukaj sta:\n} few {Developer tools: Naj izbrišem # neuporabljene lokalne spremenljivke? Tukaj so:\n} other {Developer tools: Naj izbrišem # neuporabljenih lokalnih spremenljivk? Tukaj so:\n} }", + "editor-devtools/unused-list": "{count, plural, one {Developer tools: Naj izbrišem 1 neuporabljen lokalni seznam? Tukaj je:\n} two {Developer tools: Naj izbrišem 2 neuporabljena lokalna seznama? Tukaj sta:\n} few {Developer tools: Naj izbrišem # neuporabljene lokalne sezname? Tukaj so:\n} other {Orodje za razvijalce: Naj izbrišem # neuporabljenih lokalnih seznamov? Tukaj so:\n} }", + "editor-devtools/unused-var": "{count, plural, one {Developer tools: Naj izbrišem 1 neuporabljeno lokalno spremenljivko? Tukaj je:\n} two {Developer tools: Naj izbrišem 2 neuporabljeni lokalni spremenljivki? Tukaj sta:\n} few {Developer tools: Naj izbrišem # neuporabljene lokalne spremenljivke? Tukaj so:\n} other {Orodje za razvijalce: Naj izbrišem # neuporabljenih lokalnih spremenljivk? Tukaj so:\n} }", "editor-devtools/var-not-exist": "Ta spremenljivka ne obstaja...", "editor-devtools/variables": "spremenljivke", - "editor-devtools/youtube": "Vodiči na YouTube", + "find-bar/complex-broadcast": "(izraz)", + "find-bar/event": "dogodek {name}", + "find-bar/find-placeholder": "Iskanje (Ctrl+F)", + "find-bar/list-global": "SEZNAM {name}", + "find-bar/list-local": "seznam {name}", + "middle-click-popup/start-typing": "Začnite tipkati...", "editor-searchable-dropdowns/createBroadcast": "Ustvari sporočilo \"{name}\"", "editor-searchable-dropdowns/createGlobalList": "Ustvari seznam \"{name}\" za vse figure", "editor-searchable-dropdowns/createGlobalVariable": "Ustvari spremenljivko \"{name}\" za vse figure", @@ -61,11 +36,11 @@ "mediarecorder/click-flag": "Čakanje...", "mediarecorder/click-flag-description": "Kliknite zeleno zastavico, da začnete snemanje. Kliknite ta gumb, da ga ustavite.", "mediarecorder/option-title": "Možnosti snemanja", - "mediarecorder/record": "Začni snemanje", + "mediarecorder/record": "Snemaj", "mediarecorder/record-after-flag": "Ne začni snemanja, dokler ne kliknem zelene zastavice", "mediarecorder/record-audio": "Vključi zvoke projekta", "mediarecorder/record-audio-description": "To ne vključuje razširitve Besedilo v govor.", - "mediarecorder/record-description": "Posnemite oder kot datoteko WebM. Lahko jo shranite na računalnik, ko je snemanje končano.", + "mediarecorder/record-description": "Posnemite oder kot datoteko {extension}. Lahko jo shranite na računalnik, ko je snemanje končano.\nSpremenljivke in seznami ne bodo vidni na posnetku.", "mediarecorder/record-duration": "Trajanje snemanja (v sekundah)", "mediarecorder/record-mic": "Vključi zvok mikrofona", "mediarecorder/record-until-stop": "Končaj snemanje, ko se projekt ustavi", @@ -95,14 +70,18 @@ "debugger/log-msg-flag-clicked": "Zelena zastavica kliknjena.", "debugger/no-logs": "Ni zapiskov za prikaz.", "debugger/no-threads-running": "Nobena nit ne deluje.", + "debugger/performance-clonecount-graph-tooltip": "Dvojniki: {clones}", + "debugger/performance-clonecount-title": "Dvojniki", "debugger/step": "Korak", "debugger/step-desc": "Izvede en blok.", "debugger/tab-logs": "Zapiski", + "debugger/tab-performance": "Učinkovitost", "debugger/tab-threads": "Niti", "debugger/thread": "Nit {id}", "debugger/unknown-sprite": "(neznana figura)", "debugger/unpause": "Nadaljuj", "pause/pause": "Premor", + "pause/play": "Nadaljuj", "clones/clones": "dvojniki: {cloneCount}", "color-picker/hex": "barva", "remove-sprite-confirm/confirm": "Želite izbrisati figuro?", @@ -119,13 +98,34 @@ "onion-skinning/settings": "Nastavitve za onion skinning", "onion-skinning/tint": "Barva", "onion-skinning/toggle": "Vključi ali izključi onion skinning", + "paint-snap/boxCenter": "Središče izbire", + "paint-snap/boxCorners": "Oglišča izbire", + "paint-snap/boxEdgeMids": "Razpolovišča robov izbire", + "paint-snap/objectCenters": "Središča predmetov", + "paint-snap/objectCorners": "Oglišča predmetov", + "paint-snap/objectEdges": "Robove predmetov", + "paint-snap/objectMidlines": "Osi predmetov", + "paint-snap/off": "Izključeno", + "paint-snap/on": "Vključeno", + "paint-snap/pageAxes": "Osi x in y strani", + "paint-snap/pageCenter": "Središče strani", + "paint-snap/pageCorners": "Oglišča strani", + "paint-snap/pageEdges": "Robove strani", + "paint-snap/settings": "Nastavitve pripenjanja", + "paint-snap/snapFrom": "Pripni:", + "paint-snap/snapTo": "Pripni na:", + "paint-snap/threshold": "Razdalja pripenjanja", + "paint-snap/toggle": "Vključi ali izključi pripenjanje", "2d-color-picker/shade": "Odtenek", "better-img-uploads/upload": "Naloži HD", "variable-manager/for-all-sprites": "Spremenljivke za vse figure", "variable-manager/for-this-sprite": "Spremenljivke za to figuro", "variable-manager/search": "Iskanje", + "variable-manager/too-big": "Kliknite za prikaz zelo velike vrednosti.", "variable-manager/variables": "Spremenljivke", "search-sprites/placeholder": "Iskanje figur...", + "sprite-properties/close-properties-panel-tooltip": "Skrči lastnosti", + "sprite-properties/open-properties-panel-tooltip": "Odpri lastnosti", "gamepad/axes-a-b": "Osi {a} in {b}", "gamepad/axis-arrows": "Tipke s puščicami", "gamepad/axis-cursor": "Kazalec miške", @@ -133,6 +133,7 @@ "gamepad/axis-none": "Brez", "gamepad/browser-support": "Ta brskalnik in operacijski sistem imata znane napake, ki lahko naredijo uporabo tega dodatka težjo. Če pride do težav, preizkusite drug brskalnik.", "gamepad/button-n": "Gumb {n}", + "gamepad/clear": "Izbriši vse", "gamepad/config-header": "Ta komentar vsebuje nastavitve za podporo igralnih ploščkov v orodju ali spletnih straneh, kot je https://turbowarp.org/\nNe spreminjajte ročno", "gamepad/key-click": "Klik miške", "gamepad/key-down": "Dol", @@ -143,8 +144,9 @@ "gamepad/key-up": "Gor", "gamepad/keyinput-title": "Kliknite in pritisnite tipko ali kliknite z miško, da izberete gumb. Pritisnite tipko Escape za preklic ali Backspace/Delete, da izbrišete vnos.", "gamepad/no-controllers": "Noben igralni plošček ni bil zaznan. Poskusite ga priključiti in pritisniti gumb na njem.", + "gamepad/reset": "Povrni privzete nastavitve", "gamepad/settings": "Nastavitve igralnih ploščkov", - "gamepad/store-in-project": "Shrani te nastavitve v projektu, da nadomestijo privzete nastavitve (Preizkusna možnost za ustvarjalce projektov)", + "gamepad/store-in-project": "Shrani zgornje nastavitve v projektu. Ko shranite projekt, bodo postale privzete nastavitve za ta projekt.", "folders/add-to-folder": "dodaj v mapo: {folder}", "folders/closed-folder": "Mapa", "folders/confirm-backpack-folder": "Naj shranim celotno mapo v shrambo?", @@ -164,6 +166,8 @@ "block-switching/control_repeat_until": "ponavljaj dokler ni", "block-switching/control_wait_until": "počakaj dokler ni", "block-switching/data_changevariableby": "spremeni spremenljivko", + "block-switching/data_deletealloflist": "izbriši vse", + "block-switching/data_deleteoflist": "izbriši predmet", "block-switching/data_hidelist": "skrij seznam", "block-switching/data_hidevariable": "skrij spremenljivko", "block-switching/data_insertatlist": "vstavi predmet", @@ -180,6 +184,8 @@ "block-switching/looks_changeeffectby": "spremeni učinek", "block-switching/looks_changesizeby": "spremeni velikost", "block-switching/looks_costumenumbername": "število ali ime videza", + "block-switching/looks_goforwardbackwardlayers": "pojdi naprej ali nazaj ... plasti", + "block-switching/looks_gotofrontback": "pojdi na sprednjo ali zadnjo plast", "block-switching/looks_hide": "skrij", "block-switching/looks_nextbackdrop": "naslednje ozadje", "block-switching/looks_nextcostume": "naslednji videz", @@ -214,14 +220,18 @@ "block-switching/pen_setPenHueToNumber": "nastavi barvo", "block-switching/pen_setPenShadeToNumber": "nastavi svetlost", "block-switching/pen_setPenSizeTo": "nastavi velikost", + "block-switching/sensing_coloristouchingcolor": "se barva dotika barve", "block-switching/sensing_mousex": "miškin x", "block-switching/sensing_mousey": "miškin y", + "block-switching/sensing_touchingcolor": "se dotika barve", "block-switching/sound_changeeffectby": "spremeni učinek", "block-switching/sound_changevolumeby": "spremeni glasnost", "block-switching/sound_play": "predvajaj", "block-switching/sound_playuntildone": "predvajaj do konca", "block-switching/sound_seteffectto": "nastavi učinek", "block-switching/sound_setvolumeto": "nastavi glasnost", + "copy-reporter/copy-to-clipboard": "Kopiraj", + "copy-reporter/copy-value": "kopiraj vrednost", "blocks2image/error_blocks_not_added": "Dodajte bloke v delovni prostor!", "blocks2image/export_all_to_PNG": "Izvozi vse kot PNG", "blocks2image/export_all_to_SVG": "Izvozi vse kot SVG", @@ -229,6 +239,10 @@ "blocks2image/export_selected_to_SVG": "Izvozi blok kot SVG", "move-to-top-bottom/bottom": "na dno", "move-to-top-bottom/top": "na vrh", + "move-to-top-layer/move-to-front-layer": "premakni na sprednjo plast", + "rename-broadcasts/RENAME_BROADCAST": "Preimenuj sporočilo", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Preimenuj sporočilo", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Preimenuj vsa sporočila \"{name}\" v:", "swap-local-global/cant-convert-cloud": "Spremenljivke v oblaku ne morejo biti samo za to figuro.", "swap-local-global/cant-convert-conflict": "Spremenljivke ni mogoče spremeniti, ker ima enako ime kot spremenljivka v drugi figuri: {sprites}", "swap-local-global/cant-convert-stage": "Oder ne more imeti spremenljivk samo za to figuro.", diff --git a/src/addons/addons-l10n/tr.json b/src/addons/addons-l10n/tr.json index 4677626f3ad..2e24bb6834c 100644 --- a/src/addons/addons-l10n/tr.json +++ b/src/addons/addons-l10n/tr.json @@ -1,53 +1,29 @@ { - "editor-devtools/bottom": "aşağıya gönder", + "_general/blocks/anticlockwise": "saat yönünün tersine", + "_general/blocks/clockwise": "saat yönünde", + "_general/blocks/green-flag": "bayrak", "editor-devtools/clean-plus": "Blokları temizle +", - "editor-devtools/code-tab-features": "Kod Sekmesi Özellikleri", "editor-devtools/copy-all": "Hepsini Kopyala", "editor-devtools/copy-block": "Bloğu Kopyala", - "editor-devtools/copy-to-clipboard": "Panoya Kopyala", - "editor-devtools/copy-to-clipboard-desc": "Sağ tıklama menüsüne 3 yeni özellik ekler. \"Tümünü Kopyala\", \"Bloğu Kopyala\" ve \"Bloğu Kes\" öğelerini ekler. \"Tümünü Kopyala\", seçilen blokları ve altındaki blokları kopyalar. \"Bloğu Kopyala\", seçilen bloğu kopyalar. \"Bloğu Kes\" ise bloğu kopyalar ve siler.", - "editor-devtools/costume-tab-features": "Kostüm Sekmesi Özellikleri", - "editor-devtools/ctrl-lr": "Ctrl + Sol, Ctrl + Sağ", - "editor-devtools/ctrl-lr-costume-desc": "Bu tuşlar sizi kukladaki önceki / sonraki kostüme götürür.", - "editor-devtools/ctrl-lr-desc": "Kod alanında önceki/sonraki ziyaret edilen konuma gidin (engellemek veya aramak için gezinme çubuğunu kullandıktan sonra). Bu, tanımına gitmek için özel bir bloğun ortasına tıklamanıza, ardından daha önce bulunduğunuz yere geri dönmek için Ctrl + Sol tuşlarına basmanıza olanak tanır.", - "editor-devtools/ctrl-space": "Ctrl + Boşluk, Orta Tekerlek ya da Üst Karakter + Tıkla", - "editor-devtools/ctrl-space-desc": "Bir bloğun (veya bir bölümünün) adını yazabileceğiniz ve bloğu hemen orada kullanmak için kodun içine sürükleyebileceğiniz bir kayar giriş kutusu açar. Aynı anda birden fazla blok eklerken kutunun kapanmaması için sürüklerken Shift tuşuna basılı tutun.", "editor-devtools/cut-block": "Bloğu Kes", - "editor-devtools/deep": "Derin", - "editor-devtools/find": "Bul", - "editor-devtools/find-bar": "Arama Çubuğu", - "editor-devtools/find-bar-costume-desc": "Tüm kostümleri isme göre sıralamak için tıklayın ve birini bulmak için yazın. Doğrudan istediğin kostüme atlamak ve bir isme tıklamak için ok tuşlarını veya fareyi kullanın.", - "editor-devtools/find-placeholder": "Bul (Ctrl+F)", - "editor-devtools/help": "Yardım", - "editor-devtools/help-make-space": "Yer Aç", - "editor-devtools/help-make-space-desc": "Bloğa sağ tıklayarak ve \"Yer Aç\" seçeneğini seçerek bir bloğun etrafında fazladan boşluk bırakın.", - "editor-devtools/help-new": "★Yeni★", - "editor-devtools/help-title": "Scratch 3 Geliştirici Araçları", - "editor-devtools/improved-tidy-up": "Gelişmiş Kod Temizlemesi ", - "editor-devtools/improved-tidy-up-desc": "Kod alanına sağ tıkladığınızda görünen içerik menüsündeki \"Temizle\"yi \"Temizle +\" olarak değiştirir. Blokları ve yorumları hizalar ve kullanılmayan değişkenleri kaldırır.", - "editor-devtools/insert": "Ekle", - "editor-devtools/interactive-find-bar": "Etkileşimli Arama Çubuğu (Ctrl + F)", - "editor-devtools/interactive-find-bar-desc": "Kodlar, Kostümler ve Sesler sekmelerinin sağında bulunan yeni arama çubuğuna tıklayarak bir kuklada tanımlanan Özel Blok, Değişken, Etkinlik veya Şapka bloklarını hızla bulun ve onları kullanın. Listeyi filtrelemek için yazmaya başlayın. Olası sonuçlar arasında geçiş yapmak için yukarı, aşağı ok tuşlarını ve o bloğun bulunan tüm örnekleri arasında geçiş yapmak için sol sağ okları kullanın.", "editor-devtools/lists": "listeler", "editor-devtools/make-space": "Boşluk Yap", - "editor-devtools/middleclick": "Tanıma Git", - "editor-devtools/middleclick-desc": "Tanım bloğuna gitmek veya arama çubuğunu açmak için farenizin orta düğmesine veya Shift'e tıklayın.", "editor-devtools/orphaned": "{count, plural, one {Geliştirici araçları: Tanımsız 1 haberci bloğu silinsin mi?} other {Geliştirici araçları: Tanımsız # haberci bloğu silinsin mi?} }", "editor-devtools/paste": "Yapıştır", - "editor-devtools/paste-from-clipboard": "Panodan Yapıştır", - "editor-devtools/paste-from-clipboard-desc": "(Mevcut Scratch gibi kopyaladığınız yere yerleştirmek yerine) fare imlecinizin olduğu yere yapıştırır. Böylece daha sonra yerleştirebilirsiniz.", "editor-devtools/replace": "Geliştirici araçları: {name} değişkeni için bu kuklanın tümünü değiştirin:", - "editor-devtools/start-typing": "Yazmaya Başla...", "editor-devtools/swap": "Kuklada {var}'i değiştir", - "editor-devtools/swap-variable": "Kukla'daki Değişken ile Değiştirme", - "editor-devtools/swap-variable-desc": "Bu yeni seçenek için bir değişkene sağ tıklayın. Mevcut kukladaki bu değişkene yapılan tüm referansları tek seferde başka bir değişkene geçirmenize olanak tanır. Bu, bir hata yaptığınızda ve bir değişkenden diğerine geçmek istediğinizde ya da 'tüm hareketli karakterler için' ile 'yalnızca bu hareketli grafik için' arasında değişiklik yapmanız gerektiğinde harikadır. Bu seçenek eski değişkeni kaldırmayacak ve diğer kuklaların değişkenlerini etkilemeyecektir.", - "editor-devtools/top": "yukarıya gönder", - "editor-devtools/tutorials": "Öğreticiler", "editor-devtools/unused-list": "{count, plural, one {Geliştirici araçları: Kullanılmayan 1 yerel liste silinsin mi? İşte buradalar:\n} other {Geliştirici araçları: Kullanılmayan # yerel liste silinsin mi? İşte buradalar:\n} }", "editor-devtools/unused-var": "{count, plural, one {Geliştirici araçları: Kullanılmayan 1 yerel değişken silinsin mi? İşte buradalar:\n} other {Geliştirici araçları: Kullanılmayan # yerel değişken silinsin mi? İşte buradalar:\n} }", "editor-devtools/var-not-exist": "Bu değişken mevcut değil...", "editor-devtools/variables": "değişkenler", - "editor-devtools/youtube": "YouTube öğreticileri", + "find-bar/complex-broadcast": "(ifade)", + "find-bar/event": "{name} haberi", + "find-bar/find-placeholder": "Ara (Ctrl+F)", + "find-bar/list-global": "{name} LİSTESİ", + "find-bar/list-local": "{name} listesi", + "find-bar/var-global": "{name} DEĞİŞKENİ", + "find-bar/var-local": "{name} değişkeni", + "middle-click-popup/start-typing": "Yazmaya Başla...", "editor-searchable-dropdowns/createBroadcast": "\"{name}\" mesajını oluştur", "editor-searchable-dropdowns/createGlobalList": "Tüm kuklalar için \"{name}\" listesini oluştur", "editor-searchable-dropdowns/createGlobalVariable": "Tüm kuklalar için \"{name}\" değişkenini oluştur", @@ -62,18 +38,18 @@ "mediarecorder/click-flag": "Bekleniyor...", "mediarecorder/click-flag-description": "Kayda başlamak için yeşil bayrağa tıkla. Durdurmak için bu butona tıkla.", "mediarecorder/option-title": "Kayıt Seçenekleri", - "mediarecorder/record": "Kaydı Başlat", + "mediarecorder/record": "Kayıt", "mediarecorder/record-after-flag": "Yeşil Bayrağa tıklanana kadar kayda başlama", "mediarecorder/record-audio": "Proje seslerini de kaydet", "mediarecorder/record-audio-description": "Bu, Metinden Sese tekniğini desteklemez.", - "mediarecorder/record-description": "Sahneyi bir WebM dosyası olarak kaydedin. Kayıt bittikten sonra kaydı bilgisayarınıza kaydedebilirsiniz.", + "mediarecorder/record-description": "Sahneyi bir {extension} dosyası olarak kaydedin. Kayıt bittikten sonra bilgisayarınıza kaydedebilirsiniz.\nNot: Kayıtta değişken ve liste göstergeleri gözükmez.", "mediarecorder/record-duration": "Kayıt Süresi (saniye ile)", "mediarecorder/record-mic": "Mikrofondaki sesleri de kaydet", "mediarecorder/record-until-stop": "Proje durduğunda kaydı durdur", "mediarecorder/record-until-stop-disabled": "Bunu kullanmak için \"{afterFlagOption}\" seçeneğini etkinleştirmeniz gerekiyor.", "mediarecorder/start": "Başla", "mediarecorder/start-delay": "Gecikmeyi Başlat (saniye ile)", - "mediarecorder/starting-in": "{secs} saniyede başlıyor...", + "mediarecorder/starting-in": "{secs} saniye içinde başlıyor...", "mediarecorder/stop": "Kaydı Durdur", "debugger/block-breakpoint": "durdurucu", "debugger/block-error": "hata %s", @@ -97,14 +73,19 @@ "debugger/log-msg-flag-clicked": "Yeşil bayrağa tıklandı.", "debugger/no-logs": "Görüntülenecek günlük yok.", "debugger/no-threads-running": "Çalışan blok dizesi yok.", + "debugger/performance-clonecount-graph-tooltip": "İkiz sayısı: {clones}", + "debugger/performance-clonecount-title": "İkizler", + "debugger/performance-framerate-graph-tooltip": "FPS sayısı: {fps}", "debugger/step": "Adım", "debugger/step-desc": "Bir bloğu çalıştırır.", "debugger/tab-logs": "Günlükler", - "debugger/tab-threads": "Blok Dizeleri", + "debugger/tab-performance": "Performans", + "debugger/tab-threads": "Dizeler", "debugger/thread": "{id} numaralı blok dizesi", "debugger/unknown-sprite": "(bilinmeyen kukla)", "debugger/unpause": "Devam Et", "pause/pause": "Duraklat", + "pause/play": "Devam", "clones/clones": "ikiz sayısı: {cloneCount}", "color-picker/hex": "hex rengi", "remove-sprite-confirm/confirm": "Kuklayı silmek istediğinizden emin misiniz?", @@ -118,16 +99,37 @@ "onion-skinning/opacity": "Saydamlık (%)", "onion-skinning/opacityStep": "Saydamlık derecesi (%)", "onion-skinning/previous": "Önceki kostümler", - "onion-skinning/settings": "Önceki Kostümün İzi Ayarları", + "onion-skinning/settings": "Soğan Zarı Görünümü Ayarları", "onion-skinning/tint": "Ton", - "onion-skinning/toggle": "Önceki Kostümün İzini Oluşturmayı Aç/Kapat", + "onion-skinning/toggle": "Soğan Zarı Görünümünü Aç/Kapat", + "paint-snap/boxCenter": "Seçimin merkezinden", + "paint-snap/boxCorners": "Seçimin köşelerinden", + "paint-snap/boxEdgeMids": "Seçimin orta kenar noktalarından", + "paint-snap/objectCenters": "Nesnelerin merkezlerine", + "paint-snap/objectCorners": "Nesnelerin köşelerine", + "paint-snap/objectEdges": "Nesnelerin kenarlarına", + "paint-snap/objectMidlines": "Nesnelerin orta hatlarına", + "paint-snap/off": "Kapalı", + "paint-snap/on": "Açık", + "paint-snap/pageAxes": "Sayfanın x ve y eksenlerine", + "paint-snap/pageCenter": "Sayfanın merkezine", + "paint-snap/pageCorners": "Sayfanın köşelerine", + "paint-snap/pageEdges": "Sayfanın kenarlarına", + "paint-snap/settings": "Tutturma Ayarları", + "paint-snap/snapFrom": "Şuradan tuttur:", + "paint-snap/snapTo": "Şuraya tuttur:", + "paint-snap/threshold": "Tutturma mesafesi", + "paint-snap/toggle": "Tutturmayı Değiştir", "2d-color-picker/shade": "Ton", "better-img-uploads/upload": "HD Yükle", "variable-manager/for-all-sprites": "Tüm kuklaların değişkenleri", "variable-manager/for-this-sprite": "Bu kuklanın değişkenleri", "variable-manager/search": "Ara", + "variable-manager/too-big": "Çok büyük değeri görmek için tıkla.", "variable-manager/variables": "Değişkenler", - "search-sprites/placeholder": "Kukla ara...", + "search-sprites/placeholder": "Kuklalarda ara...", + "sprite-properties/close-properties-panel-tooltip": "Özellikler panelini daralt", + "sprite-properties/open-properties-panel-tooltip": "Özellikler panelini aç", "gamepad/axes-a-b": "{a} ve {b} eksenleri", "gamepad/axis-arrows": "Ok Tuşları", "gamepad/axis-cursor": "İmleç", @@ -148,7 +150,7 @@ "gamepad/no-controllers": "Hiçbir denetleyici algılanmadı. Cihazı bir girişe takıp üzerindeki bir düğmeye basmayı deneyin.", "gamepad/reset": "Tüm kontrolleri projenin varsayılan ayarlarına sıfırla", "gamepad/settings": "Oyun Kumandası Ayarları", - "gamepad/store-in-project": "Varsayılan yapılandırmayı geçersiz kılmak için bu ayarları projede saklayın (Proje yaratıcıları için deneysel araç)", + "gamepad/store-in-project": "Yukarıda ayarlanan haritalamaları projenin içinde saklar. Projeyi kaydettiğinizde bu, eşlemeler yeni varsayılan biçim olacaktır.", "folders/add-to-folder": "{folder} klasörüne ekle", "folders/closed-folder": "Klasör", "folders/confirm-backpack-folder": "Tüm klasör sırt çantasına kaydedilsin mi?", @@ -163,11 +165,13 @@ "folders/rename-folder-prompt": "Klasörün adını şununla değiştir: ", "folders/rename-folder-prompt-title": "Klasörü Yeniden Adlandır", "block-switching/control_forever": "sürekli", - "block-switching/control_if": "eğer", - "block-switching/control_if_else": "eğer... değilse", + "block-switching/control_if": "eğer ise", + "block-switching/control_if_else": "eğer ise... değilse", "block-switching/control_repeat_until": "olana kadar tekrarla", "block-switching/control_wait_until": "olana kadar bekle", "block-switching/data_changevariableby": "değişkeni değiştir", + "block-switching/data_deletealloflist": "tümünü sil", + "block-switching/data_deleteoflist": "ögeyi sil", "block-switching/data_hidelist": "listeyi gizle", "block-switching/data_hidevariable": "değişkeni gizle", "block-switching/data_insertatlist": "öge ekle", @@ -184,6 +188,8 @@ "block-switching/looks_changeeffectby": "efekti değiştir", "block-switching/looks_changesizeby": "boyutu değiştir", "block-switching/looks_costumenumbername": "kostüm numarası veya adı", + "block-switching/looks_goforwardbackwardlayers": "ileri ya da geri katmanlara git", + "block-switching/looks_gotofrontback": "ön ya da arka katmana git", "block-switching/looks_hide": "gizle", "block-switching/looks_nextbackdrop": "sonraki dekor", "block-switching/looks_nextcostume": "sonraki kostüm", @@ -218,21 +224,29 @@ "block-switching/pen_setPenHueToNumber": "rengi ayarla", "block-switching/pen_setPenShadeToNumber": "gölgeyi ayarla", "block-switching/pen_setPenSizeTo": "boyutu ayarla", + "block-switching/sensing_coloristouchingcolor": "renk renge değiyor", "block-switching/sensing_mousex": "farenin x'i", "block-switching/sensing_mousey": "farenin y'si", + "block-switching/sensing_touchingcolor": "renge değiyor", "block-switching/sound_changeeffectby": "efekti değiştir", "block-switching/sound_changevolumeby": "sesi değiştir", "block-switching/sound_play": "başlat", "block-switching/sound_playuntildone": "bitene kadar çal", "block-switching/sound_seteffectto": "efekti ayarla", "block-switching/sound_setvolumeto": "sesi ayarla", + "copy-reporter/copy-to-clipboard": "Kopyala", + "copy-reporter/copy-value": "değeri kopyala", "blocks2image/error_blocks_not_added": "Çalışma alanına blok ekleyin!", - "blocks2image/export_all_to_PNG": "Herşeyi PNG olarak dışa aktar", - "blocks2image/export_all_to_SVG": "Herşeyi SVG olarak dışa aktar", + "blocks2image/export_all_to_PNG": "Her şeyi PNG olarak dışa aktar", + "blocks2image/export_all_to_SVG": "Her şeyi SVG olarak dışa aktar", "blocks2image/export_selected_to_PNG": "Bloğu PNG olarak dışa aktar", "blocks2image/export_selected_to_SVG": "Bloğu SVG olarak dışa aktar", "move-to-top-bottom/bottom": "en alta taşı", "move-to-top-bottom/top": "en üste taşı", + "move-to-top-layer/move-to-front-layer": "ön katmana götür", + "rename-broadcasts/RENAME_BROADCAST": "Mesajı yeniden adlandır", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Mesajı Yeniden Adlandır", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Tüm \"{name}\" mesajlarını şu şekilde yeniden adlandır:", "swap-local-global/cant-convert-cloud": "Bulut değişkenleri, yalnızca bu kukla için ayarına dönüştürülemez.", "swap-local-global/cant-convert-conflict": "{sprites}, başka bir kukladaki değişkenlerle çakışacağı için dönüştürülemiyor.", "swap-local-global/cant-convert-stage": "Dekor alanı, yalnızca bu kukla için değişkenine sahip olamaz.", diff --git a/src/addons/addons-l10n/zh-cn.json b/src/addons/addons-l10n/zh-cn.json new file mode 100644 index 00000000000..427e4a677e6 --- /dev/null +++ b/src/addons/addons-l10n/zh-cn.json @@ -0,0 +1,266 @@ +{ + "_general/blocks/anticlockwise": "逆时针", + "_general/blocks/clockwise": "顺时针", + "_general/blocks/green-flag": "旗", + "editor-devtools/clean-plus": "整理积木+", + "editor-devtools/copy-all": "全部复制", + "editor-devtools/copy-block": "复制积木", + "editor-devtools/cut-block": "剪切积木", + "editor-devtools/lists": "列表", + "editor-devtools/make-space": "留出空间", + "editor-devtools/orphaned": "{count, plural, other {} }", + "editor-devtools/paste": "粘贴", + "editor-devtools/replace": "开发者工具:将此角色中的所有 {name} 变量切换为:", + "editor-devtools/swap": "交换角色中的 {var}", + "editor-devtools/unused-list": "{count, plural, other {} }", + "editor-devtools/unused-var": "{count, plural, other {} }", + "editor-devtools/var-not-exist": "变量不存在……", + "editor-devtools/variables": "变量", + "find-bar/complex-broadcast": "(表达式)", + "find-bar/event": "事件 {name}", + "find-bar/find-placeholder": "查找(Ctrl+F)", + "find-bar/list-global": "列表 {name}", + "find-bar/list-local": "列表 {name}", + "find-bar/var-global": "变量 {name}", + "find-bar/var-local": "变量 {name}", + "middle-click-popup/start-typing": "请输入……", + "editor-searchable-dropdowns/createBroadcast": "创建消息“{name}”", + "editor-searchable-dropdowns/createGlobalList": "为所有角色创建列表 {name}", + "editor-searchable-dropdowns/createGlobalVariable": "为所有角色创建变量 {name}", + "editor-searchable-dropdowns/createLocalList": "仅为当前角色创建列表 {name}", + "editor-searchable-dropdowns/createLocalVariable": "仅为当前角色创建变量 {name}", + "data-category-tweaks-v2/for-all-sprites": "适用于所有角色的变量:", + "data-category-tweaks-v2/for-this-sprite-only": "仅适用于当前角色的变量:", + "data-category-tweaks-v2/list-category": "列表", + "hide-flyout/lock": "固定积木区", + "hide-flyout/unlock": "取消固定积木区", + "mediarecorder/cancel": "取消", + "mediarecorder/click-flag": "等待……", + "mediarecorder/click-flag-description": "点击绿旗开始录制,点击此按钮停止录制。", + "mediarecorder/option-title": "录制选项", + "mediarecorder/record": "录制", + "mediarecorder/record-after-flag": "在绿旗未被点击前不开始录制", + "mediarecorder/record-audio": "包含作品声音", + "mediarecorder/record-audio-description": "这不包含文字转语音功能。", + "mediarecorder/record-description": "录制舞台内容并保存为{extension}文件。你可以在录制结束后将它保存到你的电脑。\n注意:变量和列表显示器在录制时不可见。", + "mediarecorder/record-duration": "录制时长(秒)", + "mediarecorder/record-mic": "包含麦克风声音", + "mediarecorder/record-until-stop": "在作品停止运行后停止录制", + "mediarecorder/record-until-stop-disabled": "你需要开启“{afterFlagOption}”来使用该选项。", + "mediarecorder/start": "开始", + "mediarecorder/start-delay": "等待多久后开始(秒)", + "mediarecorder/starting-in": "即将开始:{secs}...", + "mediarecorder/stop": "停止录制", + "debugger/block-breakpoint": "断点", + "debugger/block-error": "错误 %s", + "debugger/block-log": "日志 %s", + "debugger/block-warn": "警告 %s", + "debugger/cannot-pause-player": "断点积木只能在编辑器中使用。", + "debugger/clear": "清除", + "debugger/clone-of": "{sprite} 的克隆体", + "debugger/close": "关闭", + "debugger/console": "日志", + "debugger/debug": "调试", + "debugger/empty-string": "(空字符串)", + "debugger/enter-format": "输入导出格式:", + "debugger/export": "导出", + "debugger/export-desc": "按住 Shift 同时点击以自定义导出格式。", + "debugger/icon-error": "错误", + "debugger/icon-warn": "警告", + "debugger/log-msg-broadcasted": "广播了“{broadcast}”。", + "debugger/log-msg-clone-cap": "无法创建“{sprite}”的克隆体,不能创建超过300个克隆体。", + "debugger/log-msg-clone-created": "创建了“{sprite}”的克隆体。", + "debugger/log-msg-flag-clicked": "绿旗被点击。", + "debugger/no-logs": "没有可显示的日志。", + "debugger/no-threads-running": "没有线程正在运行。", + "debugger/performance-clonecount-graph-tooltip": "克隆体数量:{clones}", + "debugger/performance-clonecount-title": "克隆体", + "debugger/performance-framerate-graph-tooltip": "帧率: {fps}", + "debugger/step": "执行一步", + "debugger/step-desc": "执行一个积木。", + "debugger/tab-logs": "日志", + "debugger/tab-performance": "性能", + "debugger/tab-threads": "线程", + "debugger/thread": "线程 {id}", + "debugger/unknown-sprite": "(未知角色)", + "debugger/unpause": "继续", + "pause/pause": "暂停", + "pause/play": "继续", + "clones/clones": "克隆体数量:{cloneCount}", + "color-picker/hex": "16进制颜色", + "remove-sprite-confirm/confirm": "你确定要删除这个角色吗?", + "block-count/blocks": "{num, plural, other {# 个积木}}", + "onion-skinning/behind": "在后面", + "onion-skinning/front": "在前面", + "onion-skinning/layering": "图层位置", + "onion-skinning/merge": "合并", + "onion-skinning/mode": "模式", + "onion-skinning/next": "下一个造型", + "onion-skinning/opacity": "透明度(%)", + "onion-skinning/opacityStep": "不透明度步长(%)", + "onion-skinning/previous": "前一个造型", + "onion-skinning/settings": "洋葱皮设置", + "onion-skinning/tint": "染色", + "onion-skinning/toggle": "开/关洋葱皮模式", + "paint-snap/boxCenter": "选中内容的中心", + "paint-snap/boxCorners": "选中内容的角落", + "paint-snap/boxEdgeMids": "选中内容的边缘中点", + "paint-snap/objectCenters": "物体中心", + "paint-snap/objectCorners": "物体角落", + "paint-snap/objectEdges": "物体边缘", + "paint-snap/objectMidlines": "物体中线", + "paint-snap/off": "关", + "paint-snap/on": "开", + "paint-snap/pageAxes": "页面的x和y轴", + "paint-snap/pageCenter": "页面中心", + "paint-snap/pageCorners": "页面角落", + "paint-snap/pageEdges": "页面边缘", + "paint-snap/settings": "吸附设置", + "paint-snap/snapFrom": "吸附:", + "paint-snap/snapTo": "吸附到", + "paint-snap/threshold": "吸附距离", + "paint-snap/toggle": "开/关吸附", + "2d-color-picker/shade": "阴影", + "better-img-uploads/upload": "高清图片上传", + "variable-manager/for-all-sprites": "所有角色的变量", + "variable-manager/for-this-sprite": "当前角色的变量", + "variable-manager/search": "搜索", + "variable-manager/too-big": "单击显示非常大的值。", + "variable-manager/variables": "变量", + "search-sprites/placeholder": "搜索角色...", + "sprite-properties/close-properties-panel-tooltip": "收起属性面板", + "sprite-properties/open-properties-panel-tooltip": "打开属性面板", + "gamepad/axes-a-b": "轴 {a} 和 {b}", + "gamepad/axis-arrows": "箭头键", + "gamepad/axis-cursor": "鼠标", + "gamepad/axis-custom": "自定义", + "gamepad/axis-none": "无", + "gamepad/browser-support": "此浏览器和操作系统存在已知错误,可能使此插件难以使用。如果遇到问题,请尝试其他浏览器。", + "gamepad/button-n": "按钮 {n}", + "gamepad/clear": "清除设置", + "gamepad/config-header": "此注释包含第三方工具或网站(例如 https://turbowarp.org/)中的游戏手柄支持配置\n请勿手动编辑", + "gamepad/key-click": "点击", + "gamepad/key-down": "下键", + "gamepad/key-enter": "回车键", + "gamepad/key-left": "左键", + "gamepad/key-none": "(无)", + "gamepad/key-right": "右键", + "gamepad/key-space": "空格", + "gamepad/key-up": "上键", + "gamepad/keyinput-title": "单击并按下一个键或单击更改按钮。Esc 取消。Backspace 或 Delete 以清除。", + "gamepad/no-controllers": "未检测到控制器。 尝试插入并按下一个按钮。", + "gamepad/reset": "重置至作品默认设置", + "gamepad/settings": "游戏手柄设置", + "gamepad/store-in-project": "将上面设置的映射存储在作品中。保存作品后,这些映射将成为新的默认配置。", + "folders/add-to-folder": "添加到文件夹:{folder}", + "folders/closed-folder": "文件夹", + "folders/confirm-backpack-folder": "将整个文件夹保存到背包?", + "folders/create-folder": "创建文件夹", + "folders/name-not-allowed": "无效的文件夹名称", + "folders/name-prompt": "文件夹名称:", + "folders/name-prompt-title": "创建文件夹", + "folders/open-folder": "打开", + "folders/remove-folder": "删除文件夹", + "folders/remove-from-folder": "从文件夹中删除", + "folders/rename-folder": "重命名文件夹", + "folders/rename-folder-prompt": "将文件夹重命名为:", + "folders/rename-folder-prompt-title": "重命名文件夹", + "block-switching/control_forever": "重复执行", + "block-switching/control_if": "如果", + "block-switching/control_if_else": "如果... 否则", + "block-switching/control_repeat_until": "重复执行直到", + "block-switching/control_wait_until": "等待", + "block-switching/data_changevariableby": "增加变量", + "block-switching/data_deletealloflist": "删除所有", + "block-switching/data_deleteoflist": "删除项目", + "block-switching/data_hidelist": "隐藏列表", + "block-switching/data_hidevariable": "隐藏变量", + "block-switching/data_insertatlist": "插入项", + "block-switching/data_replaceitemoflist": "替换项", + "block-switching/data_setvariableto": "设置变量", + "block-switching/data_showlist": "显示列表", + "block-switching/data_showvariable": "显示变量", + "block-switching/debugger_error": "报错", + "block-switching/debugger_log": "日志", + "block-switching/debugger_warn": "警告", + "block-switching/event_broadcast": "广播", + "block-switching/event_broadcastandwait": "广播并等待", + "block-switching/looks_backdropnumbername": "背景编号或名称", + "block-switching/looks_changeeffectby": "增加特效", + "block-switching/looks_changesizeby": "增加大小", + "block-switching/looks_costumenumbername": "造型编号或名称", + "block-switching/looks_goforwardbackwardlayers": "前移或后移图层", + "block-switching/looks_gotofrontback": "移到最前面", + "block-switching/looks_hide": "隐藏", + "block-switching/looks_nextbackdrop": "下一个背景", + "block-switching/looks_nextcostume": "下一个造型", + "block-switching/looks_say": "说", + "block-switching/looks_sayforsecs": "说...几秒", + "block-switching/looks_seteffectto": "设置特效", + "block-switching/looks_setsizeto": "设置大小", + "block-switching/looks_show": "显示", + "block-switching/looks_switchbackdropto": "切换背景", + "block-switching/looks_switchbackdroptoandwait": "切换背景并等待", + "block-switching/looks_think": "思考", + "block-switching/looks_thinkforsecs": "思考...几秒", + "block-switching/motion_changexby": "增加 x", + "block-switching/motion_changeyby": "增加 y", + "block-switching/motion_setx": "设置 x", + "block-switching/motion_sety": "设置 y", + "block-switching/motion_turnleft": "左转", + "block-switching/motion_turnright": "右转", + "block-switching/motion_xposition": "x 坐标", + "block-switching/motion_yposition": "y 坐标", + "block-switching/music_changeTempo": "改变演奏速度", + "block-switching/music_setTempo": "设置演奏速度", + "block-switching/operator_and": "与", + "block-switching/operator_mod": "取余数", + "block-switching/operator_or": "或", + "block-switching/pen_changePenColorParamBy": "增加参数", + "block-switching/pen_changePenHueBy": "增加色调", + "block-switching/pen_changePenShadeBy": "增加阴影", + "block-switching/pen_changePenSizeBy": "增加大小", + "block-switching/pen_penDown": "落笔", + "block-switching/pen_penUp": "抬笔", + "block-switching/pen_setPenColorParamTo": "设置参数", + "block-switching/pen_setPenHueToNumber": "设置色调", + "block-switching/pen_setPenShadeToNumber": "设置阴影", + "block-switching/pen_setPenSizeTo": "设置大小", + "block-switching/sensing_coloristouchingcolor": "颜色碰到颜色", + "block-switching/sensing_mousex": "鼠标的x坐标", + "block-switching/sensing_mousey": "鼠标的y坐标", + "block-switching/sensing_touchingcolor": "碰到颜色", + "block-switching/sound_changeeffectby": "增加特效", + "block-switching/sound_changevolumeby": "增加音量", + "block-switching/sound_play": "播放声音", + "block-switching/sound_playuntildone": "播放声音等待播完", + "block-switching/sound_seteffectto": "设置特效", + "block-switching/sound_setvolumeto": "设置音量", + "copy-reporter/copy-to-clipboard": "复制", + "copy-reporter/copy-value": "复制值", + "blocks2image/error_blocks_not_added": "添加积木到工作区!", + "blocks2image/export_all_to_PNG": "导出积木栈为 PNG", + "blocks2image/export_all_to_SVG": "导出积木栈为 SVG", + "blocks2image/export_selected_to_PNG": "导出积木为 PNG", + "blocks2image/export_selected_to_SVG": "导出积木为 SVG", + "editor-extra-keys/enter-key": "回车", + "move-to-top-bottom/bottom": "移到底部", + "move-to-top-bottom/top": "移到顶部", + "move-to-top-layer/move-to-front-layer": "移到最前面", + "rename-broadcasts/RENAME_BROADCAST": "修改信息名", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "修改信息名", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "将所有的“{name}”信息名改为:", + "swap-local-global/cant-convert-cloud": "云变量不能被转换为“仅适用于当前角色”的变量。", + "swap-local-global/cant-convert-conflict": "无法转换,因为会和其他角色中相同名字的变量冲突:{sprites}", + "swap-local-global/cant-convert-stage": "舞台上不能有“仅适用于当前角色”的变量。", + "swap-local-global/cant-convert-to-local": "无法转换,因为有其他角色也在使用这个变量:{sprites}", + "swap-local-global/cant-convert-used-elsewhere": "无法转换,因为有另一个角色也在使用这个变量:{sprite}", + "swap-local-global/edit": "编辑属性:", + "swap-local-global/edit-list-header": "编辑列表", + "swap-local-global/edit-list-option": "重命名或改变列表类型", + "swap-local-global/edit-variable-header": "编辑变量", + "swap-local-global/edit-variable-option": "重命名或改变变量类型", + "swap-local-global/to-global": "转换为“适用于所有角色”", + "swap-local-global/to-local": "转换为“仅适用于当前角色”", + "hide-stage/hide-stage": "隐藏舞台" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/zh-tw.json b/src/addons/addons-l10n/zh-tw.json new file mode 100644 index 00000000000..a2a707cc16c --- /dev/null +++ b/src/addons/addons-l10n/zh-tw.json @@ -0,0 +1,226 @@ +{ + "editor-devtools/clean-plus": "整理積木 +", + "editor-devtools/copy-all": "複製全部", + "editor-devtools/copy-block": "複製積木", + "editor-devtools/cut-block": "剪下積木", + "editor-devtools/lists": "清單", + "editor-devtools/make-space": "騰出空間", + "editor-devtools/orphaned": "{count, plural, other {要刪除 # 個單獨存在的積木嗎?} }", + "editor-devtools/paste": "貼上", + "editor-devtools/replace": "將這個角色上的變數 {name} 全部替換成:", + "editor-devtools/swap": "替換角色中的所有{var}", + "editor-devtools/unused-list": "{count, plural, other {要刪除 # 個沒有用到的清單嗎?這些清單包含:\n} }", + "editor-devtools/unused-var": "{count, plural, other {要刪除 # 個沒有用到的變數嗎?這些變數包含:\n} }", + "editor-devtools/var-not-exist": "這個變數不存在…", + "editor-devtools/variables": "變數", + "find-bar/find-placeholder": "查找 (Ctrl+F)", + "middle-click-popup/start-typing": "開始打字...", + "editor-searchable-dropdowns/createBroadcast": "建立廣播訊息 {name}", + "editor-searchable-dropdowns/createGlobalList": "建立全域清單 {name}", + "editor-searchable-dropdowns/createGlobalVariable": "建立全域變數 {name} ", + "editor-searchable-dropdowns/createLocalList": "建立區域清單 {name}", + "editor-searchable-dropdowns/createLocalVariable": "建立區域變數 {name}", + "data-category-tweaks-v2/for-all-sprites": "適用於所有角色:", + "data-category-tweaks-v2/for-this-sprite-only": "僅適用於當前角色:", + "data-category-tweaks-v2/list-category": "清單", + "hide-flyout/lock": "固定工具箱", + "hide-flyout/unlock": "取消固定工具箱", + "mediarecorder/cancel": "取消", + "mediarecorder/click-flag": "正在等待…", + "mediarecorder/click-flag-description": "點擊綠旗就會開始錄製,點擊這個按鈕可以停止。", + "mediarecorder/option-title": "錄製設定", + "mediarecorder/record-after-flag": "在綠旗被點擊時才開始錄製", + "mediarecorder/record-audio": "包含專案的聲音", + "mediarecorder/record-audio-description": "這不包括文字轉語音的聲音。", + "mediarecorder/record-duration": "錄製時長(秒)", + "mediarecorder/record-mic": "包含來自麥克風的聲音", + "mediarecorder/record-until-stop": "在停止專案運行時也停止錄製", + "mediarecorder/record-until-stop-disabled": "你必須啟用「{afterFlagOption}」才可以設定這個項目。", + "mediarecorder/start": "開始", + "mediarecorder/start-delay": "開始時延遲(秒)", + "mediarecorder/starting-in": "錄影倒數 {secs}...", + "mediarecorder/stop": "停止錄影", + "debugger/block-breakpoint": "中斷點", + "debugger/block-error": "錯誤 %s", + "debugger/block-log": "記錄 %s", + "debugger/block-warn": "警告 %s", + "debugger/cannot-pause-player": "中斷點積木只能在編輯器中使用。", + "debugger/clear": "清除", + "debugger/clone-of": "{sprite}的分身", + "debugger/close": "關閉", + "debugger/console": "紀錄", + "debugger/debug": "偵錯", + "debugger/empty-string": "(空字串)", + "debugger/enter-format": "輸入匯出格式:", + "debugger/export": "匯出", + "debugger/export-desc": "按住 Shift 鍵並點擊以自訂匯出格式", + "debugger/icon-error": "錯誤", + "debugger/icon-warn": "警告", + "debugger/log-msg-broadcasted": "廣播了訊息{broadcast}", + "debugger/log-msg-clone-cap": "創建{sprite}的分身時失敗,分身的創建不能超過 300 個。", + "debugger/log-msg-clone-created": "建立了{sprite}的分身。", + "debugger/log-msg-flag-clicked": "綠旗被點擊。", + "debugger/no-logs": "沒有可顯示的紀錄。", + "debugger/no-threads-running": "沒有運行中的執行緒。", + "debugger/performance-clonecount-graph-tooltip": "分身:{clones}", + "debugger/performance-clonecount-title": "分身", + "debugger/performance-framerate-graph-tooltip": "幀率:{fps}", + "debugger/performance-framerate-title": "幀率", + "debugger/step": "步進", + "debugger/step-desc": "執行一個積木", + "debugger/tab-logs": "紀錄", + "debugger/tab-performance": "效能", + "debugger/tab-threads": "執行緒", + "debugger/thread": "執行緒 {id}", + "debugger/unknown-sprite": "(未知角色)", + "debugger/unpause": "繼續", + "pause/pause": "暫停", + "clones/clones": "分身數:{cloneCount}", + "color-picker/hex": "hex 色碼", + "remove-sprite-confirm/confirm": "確定要刪除這個角色?", + "block-count/blocks": "{num, plural, other {# 個程式積木}}", + "onion-skinning/behind": "在後面", + "onion-skinning/front": "在前面", + "onion-skinning/layering": "圖層排列", + "onion-skinning/merge": "合併", + "onion-skinning/mode": "顯示模式", + "onion-skinning/next": "下一個造型", + "onion-skinning/opacity": "透明度(%)", + "onion-skinning/opacityStep": "透明漸進(%)", + "onion-skinning/previous": "上一個造型", + "onion-skinning/settings": "描圖紙設定", + "onion-skinning/tint": "染色", + "onion-skinning/toggle": "描圖紙顯示切換", + "paint-snap/off": "關", + "paint-snap/on": "開", + "2d-color-picker/shade": "陰影", + "better-img-uploads/upload": "高清圖片上傳", + "variable-manager/for-all-sprites": "所有角色使用的變數", + "variable-manager/for-this-sprite": "僅這個角色使用的變數", + "variable-manager/search": "搜尋", + "variable-manager/variables": "變數", + "search-sprites/placeholder": "搜尋角色…", + "gamepad/axes-a-b": "軸 {a} 與 {b}", + "gamepad/axis-arrows": "方向鍵", + "gamepad/axis-cursor": "滑鼠游標", + "gamepad/axis-custom": "自訂", + "gamepad/axis-none": "無", + "gamepad/browser-support": "這個瀏覽器和操作系統有些已知錯誤,可能使這個插件難以使用,如果你碰到了一些問題,請試試其它的瀏覽器。", + "gamepad/button-n": "按鈕 {n}", + "gamepad/clear": "清空所有控制設置", + "gamepad/config-header": "這個註解包含第三方工具或網站(如 https://turbowarp.org/)中的遊戲手柄配置。\n請勿手動修改", + "gamepad/key-click": "點擊", + "gamepad/key-down": "向下鍵", + "gamepad/key-enter": "Enter 鍵", + "gamepad/key-left": "向左鍵", + "gamepad/key-none": "(無)", + "gamepad/key-right": "向右鍵", + "gamepad/key-space": "空白鍵", + "gamepad/key-up": "向上鍵", + "gamepad/keyinput-title": "點擊並按下一個鍵或單擊更改按鈕。ESC 鍵可取消。返回鍵或 Delete 鍵可刪除。", + "gamepad/no-controllers": "未檢測到遊戲手柄,請在連接後再按一次按鈕。", + "gamepad/reset": "重設所有控制設置到專案預設值", + "gamepad/settings": "遊戲手柄設置", + "folders/add-to-folder": "放進資料夾:{folder}", + "folders/closed-folder": "資料夾", + "folders/confirm-backpack-folder": "將整個資料夾放進背包?", + "folders/create-folder": "創建資料夾", + "folders/name-not-allowed": "無效的資料夾名稱", + "folders/name-prompt": "資料夾名稱:", + "folders/name-prompt-title": "創建資料夾", + "folders/open-folder": "已開啟", + "folders/remove-folder": "移除資料夾", + "folders/remove-from-folder": "移出資料夾", + "folders/rename-folder": "更名資料夾", + "folders/rename-folder-prompt": "將資料夾重新命名為:", + "folders/rename-folder-prompt-title": "重新命名資料夾", + "block-switching/control_forever": "重複無限次", + "block-switching/control_if": "如果", + "block-switching/control_if_else": "如果…否則", + "block-switching/control_repeat_until": "等待直到", + "block-switching/control_wait_until": "等待直到", + "block-switching/data_changevariableby": "變數改變", + "block-switching/data_hidelist": "清單隱藏", + "block-switching/data_hidevariable": "變數隱藏", + "block-switching/data_insertatlist": "插入項目", + "block-switching/data_replaceitemoflist": "替換項目", + "block-switching/data_setvariableto": "變數設為", + "block-switching/data_showlist": "清單顯示", + "block-switching/data_showvariable": "變數顯示", + "block-switching/debugger_error": "錯誤", + "block-switching/debugger_log": "紀錄", + "block-switching/debugger_warn": "警告", + "block-switching/event_broadcast": "廣播訊息", + "block-switching/event_broadcastandwait": "廣播訊息並等待", + "block-switching/looks_backdropnumbername": "背景編號或名稱", + "block-switching/looks_changeeffectby": "圖像效果改變", + "block-switching/looks_changesizeby": "尺寸改變", + "block-switching/looks_costumenumbername": "造型編號或名稱", + "block-switching/looks_hide": "隱藏", + "block-switching/looks_nextbackdrop": "背景換成下一個", + "block-switching/looks_nextcostume": "造型換成下一個", + "block-switching/looks_say": "說出", + "block-switching/looks_sayforsecs": "說出持續", + "block-switching/looks_seteffectto": "圖像效果設為", + "block-switching/looks_setsizeto": "尺寸設為", + "block-switching/looks_show": "顯示", + "block-switching/looks_switchbackdropto": "背景換成", + "block-switching/looks_switchbackdroptoandwait": "背景換成並等待", + "block-switching/looks_think": "想著", + "block-switching/looks_thinkforsecs": "想著持續", + "block-switching/motion_changexby": "x 改變", + "block-switching/motion_changeyby": "y 改變", + "block-switching/motion_setx": "x 設為", + "block-switching/motion_sety": "y 設為", + "block-switching/motion_turnleft": "左轉", + "block-switching/motion_turnright": "右轉", + "block-switching/motion_xposition": "x 座標", + "block-switching/motion_yposition": "y 座標", + "block-switching/music_changeTempo": "演奏速度改變", + "block-switching/music_setTempo": "演奏速度設為", + "block-switching/operator_and": "且", + "block-switching/operator_mod": "取餘數", + "block-switching/operator_or": "或", + "block-switching/pen_changePenColorParamBy": "參數改變", + "block-switching/pen_changePenHueBy": "顏色改變", + "block-switching/pen_changePenShadeBy": "陰影改變", + "block-switching/pen_changePenSizeBy": "筆跡寬度改變", + "block-switching/pen_penDown": "下筆", + "block-switching/pen_penUp": "停筆", + "block-switching/pen_setPenColorParamTo": "參數設為", + "block-switching/pen_setPenHueToNumber": "顏色設為", + "block-switching/pen_setPenShadeToNumber": "陰影設為", + "block-switching/pen_setPenSizeTo": "筆跡寬度設為", + "block-switching/sensing_mousex": "鼠標的 x", + "block-switching/sensing_mousey": "鼠標的 y", + "block-switching/sound_changeeffectby": "聲音效果改變", + "block-switching/sound_changevolumeby": "音量改變", + "block-switching/sound_play": "播放音效", + "block-switching/sound_playuntildone": "播放音效直到結束", + "block-switching/sound_seteffectto": "聲音效果設為", + "block-switching/sound_setvolumeto": "音量設為", + "blocks2image/error_blocks_not_added": "添加積木到編輯區!", + "blocks2image/export_all_to_PNG": "匯出全部積木成 PNG 圖像", + "blocks2image/export_all_to_SVG": "匯出全部積木成 SVG 圖像", + "blocks2image/export_selected_to_PNG": "匯出積木成 PNG 圖像", + "blocks2image/export_selected_to_SVG": "匯出積木成 SVG 圖像", + "editor-extra-keys/enter-key": "Enter", + "move-to-top-bottom/bottom": "移至最下面", + "move-to-top-bottom/top": "移至最上面", + "rename-broadcasts/RENAME_BROADCAST": "重新命名訊息", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "重新命名訊息", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "將所有“{name}”消息重命名為:", + "swap-local-global/cant-convert-cloud": "無法轉換,雲端變數不能被轉換成「僅適用當前角色」。", + "swap-local-global/cant-convert-conflict": "無法轉換,因為會和其它角色中相同名稱的變數衝突:{sprites}", + "swap-local-global/cant-convert-stage": "舞台不能有「僅適用當前角色」的變數。", + "swap-local-global/cant-convert-to-local": "無法轉換,因為有其它角色也在使用這個變數:{sprites}", + "swap-local-global/cant-convert-used-elsewhere": "無法轉換,因為有另一個角色也在使用這個變數:{sprite}", + "swap-local-global/edit": "編輯屬性:", + "swap-local-global/edit-list-header": "編輯清單", + "swap-local-global/edit-list-option": "編輯清單", + "swap-local-global/edit-variable-header": "編輯變數", + "swap-local-global/edit-variable-option": "編輯變數", + "swap-local-global/to-global": "轉換成「適用於所有角色」", + "swap-local-global/to-local": "轉換成「僅適用當前角色」", + "hide-stage/hide-stage": "隱藏舞台" +} \ No newline at end of file diff --git a/src/addons/addons.js b/src/addons/addons.js index 51df46fd833..1dd6f1a64b0 100644 --- a/src/addons/addons.js +++ b/src/addons/addons.js @@ -3,6 +3,10 @@ const addons = [ 'cat-blocks', 'editor-devtools', + 'find-bar', + 'middle-click-popup', + 'jump-to-def', + 'reorder-custom-inputs', 'editor-searchable-dropdowns', 'data-category-tweaks-v2', 'block-palette-icons', @@ -12,19 +16,25 @@ const addons = [ 'debugger', 'pause', 'mute-project', + 'vol-slider', 'clones', 'mouse-pos', 'color-picker', 'remove-sprite-confirm', 'block-count', 'onion-skinning', + 'paint-snap', 'default-costume-editor-color', 'bitmap-copy', '2d-color-picker', + 'paint-skew', 'better-img-uploads', 'pick-colors-from-stage', 'custom-block-shape', + 'editor-square-inputs', 'zebra-striping', + 'editor-compact', + 'custom-menu-bar', 'editor-theme3', 'custom-block-text', 'editor-colored-context-menus', @@ -32,12 +42,14 @@ const addons = [ 'editor-buttons-reverse-order', 'variable-manager', 'search-sprites', + 'sprite-properties', 'gamepad', 'editor-sounds', 'folders', 'block-switching', 'load-extensions', 'custom-zoom', + 'copy-reporter', 'initialise-sprite-position', 'blocks2image', 'remove-curved-stage-border', @@ -50,24 +62,30 @@ const addons = [ 'no-script-bumping', 'disable-stage-drag-select', 'move-to-top-bottom', + 'move-to-top-layer', 'disable-paste-offset', 'block-duplicate', + 'rename-broadcasts', 'swap-local-global', 'editor-comment-previews', 'columns', + 'number-pad', + 'editor-number-arrow-keys', + 'expanded-backpack', 'script-snap', 'fullscreen', 'hide-stage', 'tw-straighten-comments', 'tw-remove-backpack', 'tw-remove-feedback', + 'tw-disable-vibration', + 'tw-disable-cloud-variables', 'tw-disable-compiler', 'editor-stepping' ]; const newAddons = [ - 'pick-colors-from-stage', - 'zebra-striping' + 'expanded-backpack' ]; // eslint-disable-next-line import/no-commonjs diff --git a/src/addons/addons/2d-color-picker/_runtime_entry.js b/src/addons/addons/2d-color-picker/_runtime_entry.js index 76c9ca1f431..1639fc18008 100644 --- a/src/addons/addons/2d-color-picker/_runtime_entry.js +++ b/src/addons/addons/2d-color-picker/_runtime_entry.js @@ -1,7 +1,9 @@ /* generated by pull.js */ import _js from "./userscript.js"; import _css from "!css-loader!./style.css"; +import _asset from "!url-loader!./assets/sv-gr.png"; export const resources = { "userscript.js": _js, "style.css": _css, + "assets/sv-gr.png": _asset, }; diff --git a/src/addons/addons/2d-color-picker/paint-editor.js b/src/addons/addons/2d-color-picker/paint-editor.js index 7d8ae55ea52..aee29e21bcb 100644 --- a/src/addons/addons/2d-color-picker/paint-editor.js +++ b/src/addons/addons/2d-color-picker/paint-editor.js @@ -1,10 +1,3 @@ -/* inserted by pull.js */ -import _twAsset0 from "!url-loader!./assets/sv-gr.png"; -const _twGetAsset = (path) => { - if (path === "/assets/sv-gr.png") return _twAsset0; - throw new Error(`Unknown asset: ${path}`); -}; - // this script was happily stolen from the color-picker addon, developed by Richie Bendall and apple502j // import required libraries @@ -116,7 +109,7 @@ export default async ({ addon, console, msg }) => { const saColorPickerImage = Object.assign(document.createElement("img"), { className: "sa-2dcolor-picker-image", - src: _twGetAsset("/assets/sv-gr.png"), + src: addon.self.getResource("/assets/sv-gr.png") /* rewritten by pull.js */, draggable: false, }); const saColorPickerHandle = Object.assign(document.createElement("div"), { @@ -137,10 +130,10 @@ export default async ({ addon, console, msg }) => { saColorLabel.appendChild(saColorLabelName); saColorLabel.appendChild(saColorLabelVal); - let keyPressed = -1; + let keyPressed = null; let originalPos = { x: 0, y: 0 }; - window.addEventListener("keydown", (e) => (keyPressed = e.keyCode)); - window.addEventListener("keyup", () => (keyPressed = -1)); + window.addEventListener("keydown", (e) => (keyPressed = e.key)); + window.addEventListener("keyup", () => (keyPressed = null)); let origHue = 0; let el = null; @@ -157,7 +150,7 @@ export default async ({ addon, console, msg }) => { function updateHandle(e, keyPressed, originalPos) { let cx = Math.min(Math.max(e.clientX - saColorPicker.getBoundingClientRect().x, 0), 150); let cy = Math.min(Math.max(e.clientY - saColorPicker.getBoundingClientRect().y, 0), 150); - if (keyPressed === 16) { + if (keyPressed === "Shift") { if (Math.abs(cx - originalPos.x) > Math.abs(cy - originalPos.y)) cy = originalPos.y; else cx = originalPos.x; } @@ -187,7 +180,7 @@ export default async ({ addon, console, msg }) => { rateLimiter.limit(() => { let ox = Math.min(Math.max(e.clientX - saColorPicker.getBoundingClientRect().x, 0), 150); let oy = Math.min(Math.max(e.clientY - saColorPicker.getBoundingClientRect().y, 0), 150); - if (keyPressed === 16) { + if (keyPressed === "Shift") { if (Math.abs(ox - originalPos.x) > Math.abs(oy - originalPos.y)) oy = originalPos.y; else ox = originalPos.x; } diff --git a/src/addons/addons/2d-color-picker/style.css b/src/addons/addons/2d-color-picker/style.css index fc7374dcb9b..0f284156262 100644 --- a/src/addons/addons/2d-color-picker/style.css +++ b/src/addons/addons/2d-color-picker/style.css @@ -13,3 +13,7 @@ height: 150px; user-select: none; } + +.sa-2dcolor-label-val { + margin-left: 10px; +} diff --git a/src/addons/addons/better-img-uploads/_manifest_entry.js b/src/addons/addons/better-img-uploads/_manifest_entry.js index 757da3147f4..b0919ad3bd7 100644 --- a/src/addons/addons/better-img-uploads/_manifest_entry.js +++ b/src/addons/addons/better-img-uploads/_manifest_entry.js @@ -53,11 +53,11 @@ const manifest = { }, { "id": "fill", - "name": "Stretch to fill stage" + "name": "Stretch to fill canvas" }, { "id": "fit", - "name": "Shrink to fit stage" + "name": "Shrink to fit canvas" } ], "default": "fit" diff --git a/src/addons/addons/better-img-uploads/_runtime_entry.js b/src/addons/addons/better-img-uploads/_runtime_entry.js index 76c9ca1f431..0642301b620 100644 --- a/src/addons/addons/better-img-uploads/_runtime_entry.js +++ b/src/addons/addons/better-img-uploads/_runtime_entry.js @@ -1,7 +1,9 @@ /* generated by pull.js */ import _js from "./userscript.js"; import _css from "!css-loader!./style.css"; +import _asset from "!url-loader!./icon.svg"; export const resources = { "userscript.js": _js, "style.css": _css, + "icon.svg": _asset, }; diff --git a/src/addons/addons/better-img-uploads/userscript.js b/src/addons/addons/better-img-uploads/userscript.js index 0a92e9fe400..75fd7936d30 100644 --- a/src/addons/addons/better-img-uploads/userscript.js +++ b/src/addons/addons/better-img-uploads/userscript.js @@ -1,10 +1,3 @@ -/* inserted by pull.js */ -import _twAsset0 from "!url-loader!./icon.svg"; -const _twGetAsset = (path) => { - if (path === "/icon.svg") return _twAsset0; - throw new Error(`Unknown asset: ${path}`); -}; - export default async function ({ addon, console, msg }) { let mode = addon.settings.get("fitting"); @@ -26,13 +19,13 @@ export default async function ({ addon, console, msg }) { const img = Object.assign(document.createElement("img"), { className: `${addon.tab.scratchClass("action-menu_more-icon")} sa-better-img-uploader`, draggable: "false", - src: _twGetAsset("/icon.svg"), + src: addon.self.getResource("/icon.svg") /* rewritten by pull.js */, height: "10", width: "10", }); button.append(img); const input = Object.assign(document.createElement("input"), { - accept: ".svg, .png, .bmp, .jpg, .jpeg", + accept: ".svg, .png, .bmp, .jpg, .jpeg, .sprite2, .sprite3", className: `${addon.tab.scratchClass( "action-menu_file-input" /* TODO: when adding dynamicDisable, ensure compat with drag-drop */ )} sa-better-img-uploads-input`, @@ -56,10 +49,19 @@ export default async function ({ addon, console, msg }) { while (true) { //Catch all upload menus as they are created - let menu = await addon.tab.waitForElement( - '[class*="sprite-selector_sprite-selector_"] [class*="action-menu_more-buttons_"], [data-tabs] > :nth-child(3) [class*="action-menu_more-buttons_"]', - { markAsSeen: true } - ); + const spriteSelector = '[class*="sprite-selector_sprite-selector_"] [class*="action-menu_more-buttons_"]'; + const stageSelector = '[class*="stage-selector_stage-selector_"] [class*="action-menu_more-buttons_"]'; + const costumeSelector = '[data-tabs] > :nth-child(3) [class*="action-menu_more-buttons_"]'; + let menu = await addon.tab.waitForElement(`${spriteSelector}, ${stageSelector}, ${costumeSelector}`, { + markAsSeen: true, + reduxCondition: (state) => !state.scratchGui.mode.isPlayerOnly, + reduxEvents: [ + "scratch-gui/mode/SET_PLAYER", + "fontsLoaded/SET_FONTS_LOADED", + "scratch-gui/locales/SELECT_LOCALE", + "scratch-gui/navigation/ACTIVATE_TAB", + ], + }); let button = menu.parentElement.previousElementSibling.previousElementSibling; //The base button that the popup menu is from let id = button.getAttribute("aria-label").replace(/\s+/g, "_"); @@ -76,6 +78,10 @@ export default async function ({ addon, console, msg }) { menu.prepend(menuItem); hdButton.addEventListener("click", (e) => { + // When clicking on the button in the "add backdrop menu", don't switch to the stage before + // a file was selected. + e.stopPropagation(); + input.files = new FileList(); //Empty the input to make sure the change event fires even if the same file was uploaded. input.click(); }); @@ -104,26 +110,37 @@ export default async function ({ addon, console, msg }) { let processed = new Array(); for (let file of files) { - if (file.type.includes("svg")) { - //The file is already a svg, we should not change it... + if (!/\.(png|jpe?g|bmp)$/i.test(file.name)) { + // The file is not processable, so we should ignore it, and let scratch deal with it.. processed.push(file); continue; } - let blob = await new Promise((resolve) => { - //Get the Blob data url for the image so that we can add it to the svg - let reader = new FileReader(); - reader.addEventListener("load", () => resolve(reader.result)); - reader.readAsDataURL(file); - }); - - let i = new Image(); //New image to get the image's size - i.src = blob; - await new Promise((resolve) => { - i.onload = resolve; - }); + const getImgData = async () => { + const img = new Image(); + img.src = URL.createObjectURL(file); + await new Promise((resolve) => { + img.onload = resolve; + }); + return img; + }; + + const img = await getImgData(); + let dim = { width: img.width, height: img.height }; + + // NOTE: we DON'T want to use the uploaded file directly. + // We redraw the image into a canvas first, so that: + // 1. We always embed a PNG file, + // 2. EXIF metadata (such as location, if applicable) is discarded. + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + canvas.width = dim.width; + canvas.height = dim.height; + ctx.drawImage(img, 0, 0); + + URL.revokeObjectURL(img.src); + const dataURL = canvas.toDataURL(); - let dim = { width: i.width, height: i.height }; const originalDim = JSON.parse(JSON.stringify(dim)); if (mode === "fit") { @@ -144,7 +161,7 @@ export default async function ({ addon, console, msg }) { } //Otherwise just leave the image the same size function getResizedWidthHeight(oldWidth, oldHeight) { - const STAGE_WIDTH = 479; + const STAGE_WIDTH = 480; const STAGE_HEIGHT = 360; const STAGE_RATIO = STAGE_WIDTH / STAGE_HEIGHT; @@ -207,7 +224,7 @@ export default async function ({ addon, console, msg }) { width="${originalDim.width}" height="${originalDim.height}" transform="scale(${dim.width / originalDim.width},${dim.height / originalDim.height})" - xlink:href="${blob}" + xlink:href="${dataURL}" /> diff --git a/src/addons/addons/block-cherry-picking/userscript.js b/src/addons/addons/block-cherry-picking/userscript.js index 7f4aa5f710d..cafdc2c83c3 100644 --- a/src/addons/addons/block-cherry-picking/userscript.js +++ b/src/addons/addons/block-cherry-picking/userscript.js @@ -1,40 +1,12 @@ -export default async function ({ addon, global, console }) { - const ScratchBlocks = await addon.tab.traps.getBlockly(); +import * as sharedModule from "../block-duplicate/module.js"; - let ctrlKeyPressed = false; - document.addEventListener( - "mousedown", - function (e) { - ctrlKeyPressed = e.ctrlKey || e.metaKey; - }, - { - capture: true, - } - ); - - // https://github.com/LLK/scratch-blocks/blob/912b8cc728bea8fd91af85078c64fcdbfe21c87a/core/gesture.js#L454 - const originalStartDraggingBlock = ScratchBlocks.Gesture.prototype.startDraggingBlock_; - ScratchBlocks.Gesture.prototype.startDraggingBlock_ = function (...args) { - if (!addon.self.disabled) { - // Scratch uses fake mouse events to implement right click > duplicate - // This has no connection to the block-duplicate addon. - const isDuplicate = !(this.mostRecentEvent_ instanceof MouseEvent); - const block = this.targetBlock_; - const invert = addon.settings.get("invertDrag") && !isDuplicate && block.getParent(); - const isShadow = block.isShadow(); - if (ctrlKeyPressed === !invert && !isShadow) { - if (!ScratchBlocks.Events.getGroup()) { - ScratchBlocks.Events.setGroup(true); - } - if (isDuplicate) { - const nextBlock = block.getNextBlock(); - if (nextBlock) { - nextBlock.dispose(); - } - } - block.unplug(true); - } - } - return originalStartDraggingBlock.call(this, ...args); +export default async function ({ addon, console }) { + const update = () => { + sharedModule.setCherryPicking(!addon.self.disabled, addon.settings.get("invertDrag")); }; + addon.self.addEventListener("disabled", update); + addon.self.addEventListener("reenabled", update); + addon.settings.addEventListener("change", update); + update(); + sharedModule.load(addon); } diff --git a/src/addons/addons/block-count/blockcount.js b/src/addons/addons/block-count/blockcount.js index 774cb396f58..136774db5dd 100644 --- a/src/addons/addons/block-count/blockcount.js +++ b/src/addons/addons/block-count/blockcount.js @@ -32,7 +32,6 @@ export default async function ({ addon, console, msg }) { let display = topBar.appendChild(document.createElement("span")); addon.tab.displayNoneWhileDisabled(display); display.style.order = 1; - display.style.padding = "9px"; display.innerText = msg("blocks", { num: getBlockCount().blockCount }); let debounce; // debouncing values because of the way 'PROJECT_CHANGED' works if (handler) { diff --git a/src/addons/addons/block-duplicate/module.js b/src/addons/addons/block-duplicate/module.js new file mode 100644 index 00000000000..e1e89cdd911 --- /dev/null +++ b/src/addons/addons/block-duplicate/module.js @@ -0,0 +1,104 @@ +let enableCherryPicking = false; +let invertCherryPicking = false; +export function setCherryPicking(newEnabled, newInverted) { + enableCherryPicking = newEnabled; + // If cherry picking is disabled, also disable invert. Duplicating blocks can still cause + // this setting to be used. + invertCherryPicking = newEnabled && newInverted; +} + +let enableDuplication = false; +export function setDuplication(newEnabled) { + enableDuplication = newEnabled; +} + +// mostRecentEvent_ is sometimes a fake event, so we can't rely on reading its properties. +let ctrlOrMetaPressed = false; +let altPressed = false; +document.addEventListener( + "mousedown", + function (e) { + ctrlOrMetaPressed = e.ctrlKey || e.metaKey; + altPressed = e.altKey; + }, + { + capture: true, + } +); + +let loaded = false; + +export async function load(addon) { + if (loaded) { + return; + } + loaded = true; + + const ScratchBlocks = await addon.tab.traps.getBlockly(); + + // https://github.com/scratchfoundation/scratch-blocks/blob/912b8cc728bea8fd91af85078c64fcdbfe21c87a/core/gesture.js#L454 + const originalStartDraggingBlock = ScratchBlocks.Gesture.prototype.startDraggingBlock_; + ScratchBlocks.Gesture.prototype.startDraggingBlock_ = function (...args) { + let block = this.targetBlock_; + + // Scratch uses fake mouse events to implement right click > duplicate + const isRightClickDuplicate = !(this.mostRecentEvent_ instanceof MouseEvent); + + const isDuplicating = + enableDuplication && + altPressed && + !isRightClickDuplicate && + !this.flyout_ && + !this.shouldDuplicateOnDrag_ && + this.targetBlock_.type !== "procedures_definition"; + + const isCherryPickingInverted = invertCherryPicking && !isRightClickDuplicate && block.getParent(); + const canCherryPick = enableCherryPicking || isDuplicating; + const isCherryPicking = canCherryPick && ctrlOrMetaPressed === !isCherryPickingInverted && !block.isShadow(); + + if (isDuplicating || isCherryPicking) { + if (!ScratchBlocks.Events.getGroup()) { + // Scratch will disable grouping on its own later. + ScratchBlocks.Events.setGroup(true); + } + } + + if (isDuplicating) { + // Based on https://github.com/scratchfoundation/scratch-blocks/blob/feda366947432b9d82a4f212f43ff6d4ab6f252f/core/scratch_blocks_utils.js#L171 + // Setting this.shouldDuplicateOnDrag_ = true does NOT work because it doesn't call changeObscuredShadowIds + this.startWorkspace_.setResizesEnabled(false); + ScratchBlocks.Events.disable(); + let newBlock; + try { + const xmlBlock = ScratchBlocks.Xml.blockToDom(block); + newBlock = ScratchBlocks.Xml.domToBlock(xmlBlock, this.startWorkspace_); + ScratchBlocks.scratchBlocksUtils.changeObscuredShadowIds(newBlock); + const xy = block.getRelativeToSurfaceXY(); + newBlock.moveBy(xy.x, xy.y); + } catch (e) { + console.error(e); + } + ScratchBlocks.Events.enable(); + + if (newBlock) { + block = newBlock; + this.targetBlock_ = newBlock; + if (ScratchBlocks.Events.isEnabled()) { + ScratchBlocks.Events.fire(new ScratchBlocks.Events.BlockCreate(newBlock)); + } + } + } + + if (isCherryPicking) { + if (isRightClickDuplicate || isDuplicating) { + const nextBlock = block.getNextBlock(); + if (nextBlock) { + nextBlock.dispose(); + } + } + block.unplug(true); + } + + return originalStartDraggingBlock.call(this, ...args); + }; +} diff --git a/src/addons/addons/block-duplicate/userscript.js b/src/addons/addons/block-duplicate/userscript.js index d5fb1917fda..7659baddc79 100644 --- a/src/addons/addons/block-duplicate/userscript.js +++ b/src/addons/addons/block-duplicate/userscript.js @@ -1,47 +1,11 @@ -export default async function ({ addon, global, console }) { - const ScratchBlocks = await addon.tab.traps.getBlockly(); - const originalStartDraggingBlock = ScratchBlocks.Gesture.prototype.startDraggingBlock_; - // https://github.com/LLK/scratch-blocks/blob/e86f115457006d1cde83baa23eaaf1ee16d315f5/core/gesture.js#L454 - ScratchBlocks.Gesture.prototype.startDraggingBlock_ = function (...args) { - if ( - !this.flyout_ && - !this.shouldDuplicateOnDrag_ && - this.targetBlock_.type !== "procedures_definition" && - this.mostRecentEvent_.altKey && - !addon.self.disabled - ) { - // Scratch will reset these when the drag ends - if (!ScratchBlocks.Events.getGroup()) { - ScratchBlocks.Events.setGroup(true); - } - this.startWorkspace_.setResizesEnabled(false); - // Based on https://github.com/LLK/scratch-blocks/blob/feda366947432b9d82a4f212f43ff6d4ab6f252f/core/scratch_blocks_utils.js#L171 - // Setting this.shouldDuplicateOnDrag_ = true does NOT work because it doesn't call changeObscuredShadowIds - ScratchBlocks.Events.disable(); - let newBlock; - try { - const xmlBlock = ScratchBlocks.Xml.blockToDom(this.targetBlock_); - newBlock = ScratchBlocks.Xml.domToBlock(xmlBlock, this.startWorkspace_); - ScratchBlocks.scratchBlocksUtils.changeObscuredShadowIds(newBlock); - const xy = this.targetBlock_.getRelativeToSurfaceXY(); - newBlock.moveBy(xy.x, xy.y); - if (this.mostRecentEvent_.ctrlKey || this.mostRecentEvent_.metaKey) { - const nextBlock = newBlock.getNextBlock(); - if (nextBlock) { - nextBlock.dispose(); - } - } - } catch (e) { - console.error(e); - } - ScratchBlocks.Events.enable(); - if (newBlock) { - this.targetBlock_ = newBlock; - if (ScratchBlocks.Events.isEnabled()) { - ScratchBlocks.Events.fire(new ScratchBlocks.Events.BlockCreate(newBlock)); - } - } - } - return originalStartDraggingBlock.call(this, ...args); +import * as sharedModule from "./module.js"; + +export default async function ({ addon, console }) { + const update = () => { + sharedModule.setDuplication(!addon.self.disabled); }; + addon.self.addEventListener("disabled", update); + addon.self.addEventListener("reenabled", update); + update(); + sharedModule.load(addon); } diff --git a/src/addons/addons/block-palette-icons/_runtime_entry.js b/src/addons/addons/block-palette-icons/_runtime_entry.js index 7258d9ba279..329537fa1da 100644 --- a/src/addons/addons/block-palette-icons/_runtime_entry.js +++ b/src/addons/addons/block-palette-icons/_runtime_entry.js @@ -1,5 +1,25 @@ /* generated by pull.js */ import _css from "!css-loader!./userstyle.css"; +import _asset from "!url-loader!./icons/block_icon.svg"; +import _asset2 from "!url-loader!./icons/control_icon.svg"; +import _asset3 from "!url-loader!./icons/events_icon.svg"; +import _asset4 from "!url-loader!./icons/list_icon.svg"; +import _asset5 from "!url-loader!./icons/looks_icon.svg"; +import _asset6 from "!url-loader!./icons/motion_icon.svg"; +import _asset7 from "!url-loader!./icons/operators_icon.svg"; +import _asset8 from "!url-loader!./icons/sensing_icon.svg"; +import _asset9 from "!url-loader!./icons/sound_icon.svg"; +import _asset10 from "!url-loader!./icons/variables_icon.svg"; export const resources = { "userstyle.css": _css, + "icons/block_icon.svg": _asset, + "icons/control_icon.svg": _asset2, + "icons/events_icon.svg": _asset3, + "icons/list_icon.svg": _asset4, + "icons/looks_icon.svg": _asset5, + "icons/motion_icon.svg": _asset6, + "icons/operators_icon.svg": _asset7, + "icons/sensing_icon.svg": _asset8, + "icons/sound_icon.svg": _asset9, + "icons/variables_icon.svg": _asset10, }; diff --git a/src/addons/addons/block-palette-icons/icons/control_icon.svg b/src/addons/addons/block-palette-icons/icons/control_icon.svg index 4fb2fa1876a..6aab24539f7 100644 --- a/src/addons/addons/block-palette-icons/icons/control_icon.svg +++ b/src/addons/addons/block-palette-icons/icons/control_icon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/addons/addons/block-palette-icons/icons/events_icon.svg b/src/addons/addons/block-palette-icons/icons/events_icon.svg index b148a7cfebd..252da6c4882 100644 --- a/src/addons/addons/block-palette-icons/icons/events_icon.svg +++ b/src/addons/addons/block-palette-icons/icons/events_icon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/addons/addons/block-palette-icons/icons/sensing_icon.svg b/src/addons/addons/block-palette-icons/icons/sensing_icon.svg index de698463dd9..cedcc3286e5 100644 --- a/src/addons/addons/block-palette-icons/icons/sensing_icon.svg +++ b/src/addons/addons/block-palette-icons/icons/sensing_icon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/addons/addons/block-palette-icons/icons/tw_icon.svg b/src/addons/addons/block-palette-icons/icons/tw_icon.svg deleted file mode 100644 index 78b2b54aa87..00000000000 --- a/src/addons/addons/block-palette-icons/icons/tw_icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/addons/addons/block-palette-icons/userstyle.css b/src/addons/addons/block-palette-icons/userstyle.css index a2b025f29ef..a1f3f45519a 100644 --- a/src/addons/addons/block-palette-icons/userstyle.css +++ b/src/addons/addons/block-palette-icons/userstyle.css @@ -1,49 +1,55 @@ .scratchCategoryItemBubble { + position: relative; +} + +.scratchCategoryItemBubble::after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; background-position: center; background-repeat: no-repeat; background-size: cover; } -.scratchCategoryId-motion .scratchCategoryItemBubble { +.scratchCategoryId-motion .scratchCategoryItemBubble::after { background-image: url(icons/motion_icon.svg); } -.scratchCategoryId-looks .scratchCategoryItemBubble { +.scratchCategoryId-looks .scratchCategoryItemBubble::after { background-image: url(icons/looks_icon.svg); } -.scratchCategoryId-sound .scratchCategoryItemBubble { +.scratchCategoryId-sound .scratchCategoryItemBubble::after { background-image: url(icons/sound_icon.svg); } -.scratchCategoryId-events .scratchCategoryItemBubble { +.scratchCategoryId-events .scratchCategoryItemBubble::after { background-image: url(icons/events_icon.svg); } -.scratchCategoryId-control .scratchCategoryItemBubble { +.scratchCategoryId-control .scratchCategoryItemBubble::after { background-image: url(icons/control_icon.svg); } -.scratchCategoryId-sensing .scratchCategoryItemBubble { +.scratchCategoryId-sensing .scratchCategoryItemBubble::after { background-image: url(icons/sensing_icon.svg); } -.scratchCategoryId-operators .scratchCategoryItemBubble { +.scratchCategoryId-operators .scratchCategoryItemBubble::after { background-image: url(icons/operators_icon.svg); } -.scratchCategoryId-variables .scratchCategoryItemBubble { +.scratchCategoryId-variables .scratchCategoryItemBubble::after { background-image: url(icons/variables_icon.svg); } -.scratchCategoryId-lists .scratchCategoryItemBubble { +.scratchCategoryId-lists .scratchCategoryItemBubble::after { background-image: url(icons/list_icon.svg); } -.scratchCategoryId-myBlocks .scratchCategoryItemBubble { +.scratchCategoryId-myBlocks .scratchCategoryItemBubble::after { background-image: url(icons/block_icon.svg); } - -.scratchCategoryId-tw .scratchCategoryItemBubble { - background-image: url(icons/tw_icon.svg); -} diff --git a/src/addons/addons/block-switching/_manifest_entry.js b/src/addons/addons/block-switching/_manifest_entry.js index d93f0bb6dbe..bea09881d52 100644 --- a/src/addons/addons/block-switching/_manifest_entry.js +++ b/src/addons/addons/block-switching/_manifest_entry.js @@ -22,20 +22,6 @@ const manifest = { "recommended" ], "settings": [ - { - "dynamic": true, - "name": "Show option to change block to self", - "id": "noop", - "type": "boolean", - "default": true - }, - { - "dynamic": true, - "name": "Add border", - "id": "border", - "type": "boolean", - "default": true - }, { "dynamic": true, "name": "Motion blocks", @@ -113,25 +99,25 @@ const manifest = { }, { "dynamic": true, - "name": "Custom block arguments", + "name": "Custom block parameters", "id": "customargs", "type": "boolean", "default": true }, { "dynamic": true, - "name": "Shown custom block arguments options", + "name": "Shown custom block parameters options", "id": "customargsmode", "type": "select", "default": "defOnly", "potentialValues": [ { "id": "defOnly", - "name": "Arguments in own custom block" + "name": "Parameters in own custom block" }, { "id": "all", - "name": "Arguments in all custom blocks in sprite" + "name": "Parameters in all custom blocks in sprite" } ], "if": { @@ -139,6 +125,13 @@ const manifest = { "customargs": true } } + }, + { + "dynamic": true, + "name": "Show option to change block to self", + "id": "noop", + "type": "boolean", + "default": true } ], "enabledByDefault": true diff --git a/src/addons/addons/block-switching/blockToDom.js b/src/addons/addons/block-switching/blockToDom.js deleted file mode 100644 index 0f7a34affd9..00000000000 --- a/src/addons/addons/block-switching/blockToDom.js +++ /dev/null @@ -1,255 +0,0 @@ -/** - * This file is imported from https://github.com/LLK/scratch-blocks/ - * It has been cleaned up and unnecessary functions have been removed. - * Original license is below. - * - * @license - * Visual Blocks Editor - * - * Copyright 2012 Google Inc. - * https://developers.google.com/blockly/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* eslint-disable */ - -const INPUT_VALUE = 1; -const NEXT_STATEMENT = 3; -const DUMMY_INPUT = 5; - -// Partially implements goog.dom.createDom. -const createDom = function (tagName, /* unused */ _params, children) { - const element = document.createElement(tagName); - if (children !== undefined) { - if (!Array.isArray(children)) { - children = [children]; - } - for (const child of children) { - if (typeof child === "string") { - element.appendChild(document.createTextNode(child)); - } else { - element.appendChild(child); - } - } - } - return element; -}; - -// Partially implements goog.dom.removeNode -const removeNode = (node) => { - if (node.parentNode) { - node.parentNode.removeChild(node); - } -}; - -const fieldToDomVariable_ = function (field) { - // The field had not been initialized fully before being serialized. - // This can happen if a block is created directly through a call to - // workspace.newBlock instead of from XML. - // The new block will be serialized for the first time when firing a block - // creation event. - if (field.getValue() == null) { - field.initModel(); - } - // Get the variable directly from the field, instead of doing a lookup. This - // will work even if the variable has already been deleted. This can happen - // because the flyout defers deleting blocks until the next time the flyout is - // opened. - var variable = field.getVariable(); - - if (!variable) { - throw Error("Tried to serialize a variable field with no variable."); - } - var container = createDom("field", null, variable.name); - container.setAttribute("name", field.name); - container.setAttribute("id", variable.getId()); - container.setAttribute("variabletype", variable.type); - return container; -}; - -const fieldToDom_ = function (field) { - if (field.name && field.SERIALIZABLE) { - if (field.referencesVariables()) { - return fieldToDomVariable_(field); - } else { - var container = createDom("field", null, field.getValue()); - container.setAttribute("name", field.name); - return container; - } - } - return null; -}; - -const allFieldsToDom_ = function (block, element) { - for (var i = 0, input; (input = block.inputList[i]); i++) { - for (var j = 0, field; (field = input.fieldRow[j]); j++) { - var fieldDom = fieldToDom_(field); - if (fieldDom) { - element.appendChild(fieldDom); - } - } - } -}; - -const blockToDom = function (block, opt_noId) { - var element = createDom(block.isShadow() ? "shadow" : "block"); - element.setAttribute("type", block.type); - if (!opt_noId) { - element.setAttribute("id", block.id); - } - if (block.mutationToDom) { - // Custom data for an advanced block. - var mutation = block.mutationToDom(); - if (mutation && (mutation.hasChildNodes() || mutation.hasAttributes())) { - element.appendChild(mutation); - } - } - - allFieldsToDom_(block, element); - - scratchCommentToDom_(block, element); - - if (block.data) { - var dataElement = createDom("data", null, block.data); - element.appendChild(dataElement); - } - - for (var i = 0, input; (input = block.inputList[i]); i++) { - var container; - var empty = true; - if (input.type == DUMMY_INPUT) { - continue; - } else { - var childBlock = input.connection.targetBlock(); - if (input.type == INPUT_VALUE) { - container = createDom("value"); - } else if (input.type == NEXT_STATEMENT) { - container = createDom("statement"); - } - var shadow = input.connection.getShadowDom(); - if (shadow && (!childBlock || !childBlock.isShadow())) { - var shadowClone = cloneShadow_(shadow); - // Remove the ID from the shadow dom clone if opt_noId - // is specified to true. - if (opt_noId && shadowClone.getAttribute("id")) { - shadowClone.removeAttribute("id"); - } - container.appendChild(shadowClone); - } - if (childBlock) { - container.appendChild(blockToDom(childBlock, opt_noId)); - empty = false; - } - } - container.setAttribute("name", input.name); - if (!empty) { - element.appendChild(container); - } - } - if (block.inputsInlineDefault != block.inputsInline) { - element.setAttribute("inline", block.inputsInline); - } - if (block.isCollapsed()) { - element.setAttribute("collapsed", true); - } - if (block.disabled) { - element.setAttribute("disabled", true); - } - if (!block.isDeletable() && !block.isShadow()) { - element.setAttribute("deletable", false); - } - if (!block.isMovable() && !block.isShadow()) { - element.setAttribute("movable", false); - } - if (!block.isEditable()) { - element.setAttribute("editable", false); - } - - var nextBlock = block.getNextBlock(); - if (nextBlock) { - var container = createDom("next", null, blockToDom(nextBlock, opt_noId)); - element.appendChild(container); - } - var shadow = block.nextConnection && block.nextConnection.getShadowDom(); - if (shadow && (!nextBlock || !nextBlock.isShadow())) { - container.appendChild(cloneShadow_(shadow)); - } - - return element; -}; - -const scratchCommentToDom_ = function (block, element) { - var commentText = block.getCommentText(); - if (commentText) { - var commentElement = createDom("comment", null, commentText); - if (typeof block.comment == "object") { - commentElement.setAttribute("id", block.comment.id); - commentElement.setAttribute("pinned", block.comment.isVisible()); - var hw; - // TODO: scratch-blocks uses `block.comment instanceof Blockly.ScratchBlockComment` - if (block.comment.getHeightWidth) { - hw = block.comment.getHeightWidth(); - } else { - hw = block.comment.getBubbleSize(); - } - commentElement.setAttribute("h", hw.height); - commentElement.setAttribute("w", hw.width); - var xy = block.comment.getXY(); - commentElement.setAttribute("x", xy.x); - commentElement.setAttribute("y", xy.y); - commentElement.setAttribute("minimized", block.comment.isMinimized()); - } - element.appendChild(commentElement); - } -}; - -const cloneShadow_ = function (shadow) { - shadow = shadow.cloneNode(true); - // Walk the tree looking for whitespace. Don't prune whitespace in a tag. - var node = shadow; - var textNode; - while (node) { - if (node.firstChild) { - node = node.firstChild; - } else { - while (node && !node.nextSibling) { - textNode = node; - node = node.parentNode; - if (textNode.nodeType == 3 && textNode.data.trim() == "" && node.firstChild != textNode) { - // Prune whitespace after a tag. - removeNode(textNode); - } - } - if (node) { - textNode = node; - node = node.nextSibling; - if (textNode.nodeType == 3 && textNode.data.trim() == "") { - // Prune whitespace before a tag. - removeNode(textNode); - } - } - } - } - return shadow; -}; - -const blockToDomWithXY = (block) => { - const xml = blockToDom(block, false); - const position = block.getRelativeToSurfaceXY(); - xml.setAttribute("x", Math.round(block.workspace.RTL ? -position.x : position.x)); - xml.setAttribute("y", Math.round(position.y)); - return xml; -}; - -export default blockToDomWithXY; diff --git a/src/addons/addons/block-switching/userscript.js b/src/addons/addons/block-switching/userscript.js index 3a2182637c8..3ba4bde68f4 100644 --- a/src/addons/addons/block-switching/userscript.js +++ b/src/addons/addons/block-switching/userscript.js @@ -1,6 +1,4 @@ -import blockToDom from "./blockToDom.js"; - -export default async function ({ addon, global, console, msg }) { +export default async function ({ addon, console, msg }) { const ScratchBlocks = await addon.tab.traps.getBlockly(); const vm = addon.tab.traps.vm; @@ -10,6 +8,11 @@ export default async function ({ addon, global, console, msg }) { isNoop: true, }; + const randomColor = () => { + const num = Math.floor(Math.random() * 256 * 256 * 256); + return `#${num.toString(16).padStart(6, "0")}`; + }; + const buildSwitches = () => { blockSwitches = {}; procedureSwitches = {}; @@ -31,59 +34,59 @@ export default async function ({ addon, global, console, msg }) { noopSwitch, { opcode: "motion_changexby", - remap: { X: "DX" }, + remapInputName: { X: "DX" }, }, { opcode: "motion_sety", - remap: { X: "Y" }, + remapInputName: { X: "Y" }, }, { opcode: "motion_changeyby", - remap: { X: "DY" }, + remapInputName: { X: "DY" }, }, ]; blockSwitches["motion_changexby"] = [ { opcode: "motion_setx", - remap: { DX: "X" }, + remapInputName: { DX: "X" }, }, noopSwitch, { opcode: "motion_sety", - remap: { DX: "Y" }, + remapInputName: { DX: "Y" }, }, { opcode: "motion_changeyby", - remap: { DX: "DY" }, + remapInputName: { DX: "DY" }, }, ]; blockSwitches["motion_sety"] = [ { opcode: "motion_setx", - remap: { Y: "X" }, + remapInputName: { Y: "X" }, }, { opcode: "motion_changexby", - remap: { Y: "DX" }, + remapInputName: { Y: "DX" }, }, noopSwitch, { opcode: "motion_changeyby", - remap: { Y: "DY" }, + remapInputName: { Y: "DY" }, }, ]; blockSwitches["motion_changeyby"] = [ { opcode: "motion_setx", - remap: { DY: "X" }, + remapInputName: { DY: "X" }, }, { opcode: "motion_changexby", - remap: { DY: "DX" }, + remapInputName: { DY: "DX" }, }, { opcode: "motion_sety", - remap: { DY: "Y" }, + remapInputName: { DY: "Y" }, }, noopSwitch, ]; @@ -106,13 +109,13 @@ export default async function ({ addon, global, console, msg }) { noopSwitch, { opcode: "looks_changeeffectby", - remap: { VALUE: "CHANGE" }, + remapInputName: { VALUE: "CHANGE" }, }, ]; blockSwitches["looks_changeeffectby"] = [ { opcode: "looks_seteffectto", - remap: { CHANGE: "VALUE" }, + remapInputName: { CHANGE: "VALUE" }, }, noopSwitch, ]; @@ -120,13 +123,13 @@ export default async function ({ addon, global, console, msg }) { noopSwitch, { opcode: "looks_changesizeby", - remap: { SIZE: "CHANGE" }, + remapInputName: { SIZE: "CHANGE" }, }, ]; blockSwitches["looks_changesizeby"] = [ { opcode: "looks_setsizeto", - remap: { CHANGE: "SIZE" }, + remapInputName: { CHANGE: "SIZE" }, }, noopSwitch, ]; @@ -166,28 +169,80 @@ export default async function ({ addon, global, console, msg }) { }, noopSwitch, ]; - blockSwitches["looks_think"] = [ + blockSwitches["looks_say"] = [ noopSwitch, { - opcode: "looks_say", + opcode: "looks_sayforsecs", + createInputs: { + SECS: { + shadowType: "math_number", + value: "2", + }, + }, }, - ]; - blockSwitches["looks_say"] = [ { opcode: "looks_think", }, - noopSwitch, + { + opcode: "looks_thinkforsecs", + createInputs: { + SECS: { + shadowType: "math_number", + value: "2", + }, + }, + }, ]; - blockSwitches["looks_thinkforsecs"] = [ - noopSwitch, + blockSwitches["looks_think"] = [ + { + opcode: "looks_say", + }, { opcode: "looks_sayforsecs", + createInputs: { + SECS: { + shadowType: "math_number", + value: "2", + }, + }, + }, + noopSwitch, + { + opcode: "looks_thinkforsecs", + createInputs: { + SECS: { + shadowType: "math_number", + value: "2", + }, + }, }, ]; blockSwitches["looks_sayforsecs"] = [ + { + opcode: "looks_say", + splitInputs: ["SECS"], + }, + { + opcode: "looks_think", + splitInputs: ["SECS"], + }, + noopSwitch, { opcode: "looks_thinkforsecs", }, + ]; + blockSwitches["looks_thinkforsecs"] = [ + { + opcode: "looks_say", + splitInputs: ["SECS"], + }, + { + opcode: "looks_think", + splitInputs: ["SECS"], + }, + { + opcode: "looks_sayforsecs", + }, noopSwitch, ]; blockSwitches["looks_switchbackdropto"] = [ @@ -202,6 +257,43 @@ export default async function ({ addon, global, console, msg }) { }, noopSwitch, ]; + blockSwitches["looks_gotofrontback"] = [ + noopSwitch, + { + opcode: "looks_goforwardbackwardlayers", + remapInputName: { + FRONT_BACK: "FORWARD_BACKWARD", + }, + mapFieldValues: { + FRONT_BACK: { + front: "forward", + back: "backward", + }, + }, + createInputs: { + NUM: { + shadowType: "math_integer", + value: "1", + }, + }, + }, + ]; + blockSwitches["looks_goforwardbackwardlayers"] = [ + { + opcode: "looks_gotofrontback", + splitInputs: ["NUM"], + remapInputName: { + FORWARD_BACKWARD: "FRONT_BACK", + }, + mapFieldValues: { + FORWARD_BACKWARD: { + forward: "front", + backward: "back", + }, + }, + }, + noopSwitch, + ]; } if (addon.settings.get("sound")) { @@ -268,7 +360,7 @@ export default async function ({ addon, global, console, msg }) { blockSwitches["control_if_else"] = [ { opcode: "control_if", - remap: { SUBSTACK2: "split" }, + splitInputs: ["SUBSTACK2"], }, noopSwitch, ]; @@ -276,11 +368,11 @@ export default async function ({ addon, global, console, msg }) { noopSwitch, { opcode: "control_wait_until", - remap: { SUBSTACK: "split" }, + splitInputs: ["SUBSTACK"], }, { opcode: "control_forever", - remap: { CONDITION: "split" }, + splitInputs: ["CONDITION"], }, ]; blockSwitches["control_forever"] = [ @@ -427,6 +519,25 @@ export default async function ({ addon, global, console, msg }) { }, noopSwitch, ]; + blockSwitches["sensing_touchingcolor"] = [ + noopSwitch, + { + opcode: "sensing_coloristouchingcolor", + createInputs: { + COLOR2: { + shadowType: "colour_picker", + value: randomColor, + }, + }, + }, + ]; + blockSwitches["sensing_coloristouchingcolor"] = [ + { + opcode: "sensing_touchingcolor", + splitInputs: ["COLOR2"], + }, + noopSwitch, + ]; } if (addon.settings.get("data")) { @@ -434,13 +545,13 @@ export default async function ({ addon, global, console, msg }) { noopSwitch, { opcode: "data_changevariableby", - remapValueType: { VALUE: "math_number" }, + remapShadowType: { VALUE: "math_number" }, }, ]; blockSwitches["data_changevariableby"] = [ { opcode: "data_setvariableto", - remapValueType: { VALUE: "text" }, + remapShadowType: { VALUE: "text" }, }, noopSwitch, ]; @@ -480,6 +591,25 @@ export default async function ({ addon, global, console, msg }) { }, noopSwitch, ]; + blockSwitches["data_deleteoflist"] = [ + noopSwitch, + { + opcode: "data_deletealloflist", + splitInputs: ["INDEX"], + }, + ]; + blockSwitches["data_deletealloflist"] = [ + { + opcode: "data_deleteoflist", + createInputs: { + INDEX: { + shadowType: "math_integer", + value: "1", + }, + }, + }, + noopSwitch, + ]; } if (addon.settings.get("extension")) { @@ -616,6 +746,48 @@ export default async function ({ addon, global, console, msg }) { buildSwitches(); addon.settings.addEventListener("change", buildSwitches); + /** + * @param {*} workspace + * @param {Element} xmlBlock + */ + const pasteBlockXML = (workspace, xmlBlock) => { + // Similar to https://github.com/scratchfoundation/scratch-blocks/blob/7575c9a0f2c267676569c4b102b76d77f35d9fd6/core/workspace_svg.js#L1020 + // but without the collision checking. + const block = ScratchBlocks.Xml.domToBlock(xmlBlock, workspace); + const x = +xmlBlock.getAttribute("x"); + const y = +xmlBlock.getAttribute("y"); + // Don't need to handle RTL here + block.moveBy(x, y); + return block; + }; + + /** + * @param {string} shadowType The type of shadow eg. "math_number" + * @returns {string} The name of the shadow's inner field that contains the user-visible value + */ + const getShadowFieldName = (shadowType) => { + // This is non-comprehensive. + if (shadowType === "text") { + return "TEXT"; + } + if (shadowType === "colour_picker") { + return "COLOUR"; + } + return "NUM"; + }; + + /** + * @template T + * @param {T|()=>T} value + * @returns {T} + */ + const callIfFunction = (value) => { + if (typeof value === "function") { + return value(); + } + return value; + }; + const menuCallbackFactory = (block, opcodeData) => () => { if (opcodeData.isNoop) { return; @@ -626,92 +798,140 @@ export default async function ({ addon, global, console, msg }) { return; } - const workspace = block.workspace; + try { + ScratchBlocks.Events.setGroup(true); - // Make a copy of the block with the proper type set. - // It doesn't seem to be possible to change a Block's type after it's created, so we'll just make a new block instead. - const xml = blockToDom(block); - if (opcodeData.opcode) { - xml.setAttribute("type", opcodeData.opcode); - } + const workspace = block.workspace; - const id = block.id; - const parent = block.getParent(); - - let parentConnection; - let blockConnectionType; - if (parent) { - // If the block has a parent, find the parent -> child connection that will be reattached later. - const parentConnections = parent.getConnections_(); - parentConnection = parentConnections.find((c) => c.targetConnection && c.targetConnection.sourceBlock_ === block); - // There's two types of connections from child -> parent. We need to figure out which one is used. - const blockConnections = block.getConnections_(); - const blockToParentConnection = blockConnections.find( - (c) => c.targetConnection && c.targetConnection.sourceBlock_ === parent - ); - blockConnectionType = blockToParentConnection.type; - } + const blocksToBringToForeground = []; + // Split inputs before we clone the block. + if (opcodeData.splitInputs) { + for (const inputName of opcodeData.splitInputs) { + const input = block.getInput(inputName); + if (!input) { + continue; + } + const connection = input.connection; + if (!connection) { + continue; + } + if (connection.isConnected()) { + const targetBlock = connection.targetBlock(); + if (targetBlock.isShadow()) { + // Deleting shadows is handled later. + } else { + connection.disconnect(); + blocksToBringToForeground.push(targetBlock); + } + } + } + } - const pasteSeparately = []; + // Make a copy of the block with the proper type set. + // It doesn't seem to be possible to change a Block's type after it's created, so we'll just make a new block instead. + const xml = ScratchBlocks.Xml.blockToDom(block); + // blockToDomWithXY's handling of RTL is strange, so we encode the position ourselves. + const position = block.getRelativeToSurfaceXY(); + xml.setAttribute("x", position.x); + xml.setAttribute("y", position.y); + if (opcodeData.opcode) { + xml.setAttribute("type", opcodeData.opcode); + } - // Apply input remappings. - if (opcodeData.remap) { + const parentBlock = block.getParent(); + let parentConnection; + let blockConnectionType; + if (parentBlock) { + // If the block has a parent, find the parent -> child connection that will be reattached later. + const parentConnections = parentBlock.getConnections_(); + parentConnection = parentConnections.find( + (c) => c.targetConnection && c.targetConnection.sourceBlock_ === block + ); + // There's two types of connections from child -> parent. We need to figure out which one is used. + const blockConnections = block.getConnections_(); + const blockToParentConnection = blockConnections.find( + (c) => c.targetConnection && c.targetConnection.sourceBlock_ === parentBlock + ); + blockConnectionType = blockToParentConnection.type; + } + + // Array.from creates a clone of the children list. This is important as we may remove + // children as we iterate. for (const child of Array.from(xml.children)) { const oldName = child.getAttribute("name"); - const newName = opcodeData.remap[oldName]; + + // Any inputs that were supposed to be split that were not should be removed. + // (eg. shadow inputs) + if (opcodeData.splitInputs && opcodeData.splitInputs.includes(oldName)) { + xml.removeChild(child); + continue; + } + + const newName = opcodeData.remapInputName && opcodeData.remapInputName[oldName]; if (newName) { - if (newName === "split") { - // This input will be split off into its own script. - const inputXml = child.firstChild; - const inputId = inputXml.id; - const inputBlock = workspace.getBlockById(inputId); - const position = inputBlock.getRelativeToSurfaceXY(); - inputXml.setAttribute("x", Math.round(workspace.RTL ? -position.x : position.x)); - inputXml.setAttribute("y", Math.round(position.y)); - pasteSeparately.push(inputXml); - xml.removeChild(child); - } else { - child.setAttribute("name", newName); - } + child.setAttribute("name", newName); } - } - } - if (opcodeData.remapValueType) { - for (const child of Array.from(xml.children)) { - const name = child.getAttribute("name"); - const newType = opcodeData.remapValueType[name]; - if (newType) { + + const newShadowType = opcodeData.remapShadowType && opcodeData.remapShadowType[oldName]; + if (newShadowType) { const valueNode = child.firstChild; const fieldNode = valueNode.firstChild; - valueNode.setAttribute("type", newType); - fieldNode.setAttribute("name", newType === "text" ? "TEXT" : "NUM"); + valueNode.setAttribute("type", newShadowType); + fieldNode.setAttribute("name", getShadowFieldName(newShadowType)); + } + + const fieldValueMap = opcodeData.mapFieldValues && opcodeData.mapFieldValues[oldName]; + if (fieldValueMap && child.tagName === "FIELD") { + const oldValue = child.innerText; + const newValue = fieldValueMap[oldValue]; + if (typeof newValue === "string") { + child.innerText = newValue; + } } } - } - if (opcodeData.mutate) { - const mutation = xml.querySelector("mutation"); - for (const [key, value] of Object.entries(opcodeData.mutate)) { - mutation.setAttribute(key, value); + + if (opcodeData.mutate) { + const mutation = xml.querySelector("mutation"); + for (const [key, value] of Object.entries(opcodeData.mutate)) { + mutation.setAttribute(key, value); + } } - } - try { - ScratchBlocks.Events.setGroup(true); + if (opcodeData.createInputs) { + for (const [inputName, inputData] of Object.entries(opcodeData.createInputs)) { + const valueElement = document.createElement("value"); + valueElement.setAttribute("name", inputName); + + const shadowElement = document.createElement("shadow"); + shadowElement.setAttribute("type", inputData.shadowType); + + const shadowFieldElement = document.createElement("field"); + shadowFieldElement.setAttribute("name", getShadowFieldName(inputData.shadowType)); + shadowFieldElement.innerText = callIfFunction(inputData.value); + + shadowElement.appendChild(shadowFieldElement); + valueElement.appendChild(shadowElement); + xml.appendChild(valueElement); + } + } // Remove the old block and insert the new one. block.dispose(); - workspace.paste(xml); - for (const separateBlock of pasteSeparately) { - workspace.paste(separateBlock); - } - // The new block will have the same ID as the old one. - const newBlock = workspace.getBlockById(id); + const newBlock = pasteBlockXML(workspace, xml); + if (parentConnection) { // Search for the same type of connection on the new block as on the old block. const newBlockConnections = newBlock.getConnections_(); const newBlockConnection = newBlockConnections.find((c) => c.type === blockConnectionType); newBlockConnection.connect(parentConnection); } + + for (const otherBlock of blocksToBringToForeground) { + // By re-appending the element, we move it to the end, which will make it display + // on top. + const svgRoot = otherBlock.getSvgRoot(); + svgRoot.parentNode.appendChild(svgRoot); + } } finally { ScratchBlocks.Events.setGroup(false); } @@ -791,11 +1011,11 @@ export default async function ({ addon, global, console, msg }) { enabled: true, text, callback: menuCallbackFactory(block, opcodeData), - separator: addon.settings.get("border") && i === 0, + separator: i === 0, }); }); - if (addon.settings.get("border") && (block.type === "data_variable" || block.type === "data_listcontents")) { + if (block.type === "data_variable" || block.type === "data_listcontents") { // Add top border to first variable (if it exists) const delBlockIndex = items.findIndex((item) => item.text === ScratchBlocks.Msg.DELETE_BLOCK); // firstVariableItem might be undefined, a variable to switch to, @@ -809,7 +1029,7 @@ export default async function ({ addon, global, console, msg }) { { blocks: true } ); - // https://github.com/LLK/scratch-blocks/blob/abbfe93136fef57fdfb9a077198b0bc64726f012/blocks_vertical/procedures.js#L207-L215 + // https://github.com/scratchfoundation/scratch-blocks/blob/abbfe93136fef57fdfb9a077198b0bc64726f012/blocks_vertical/procedures.js#L207-L215 // Returns a list like ["%s", "%d"] const parseArguments = (code) => code diff --git a/src/addons/addons/blocks2image/userscript.js b/src/addons/addons/blocks2image/userscript.js index 9e203bb74c7..97e85a6e43d 100644 --- a/src/addons/addons/blocks2image/userscript.js +++ b/src/addons/addons/blocks2image/userscript.js @@ -1,48 +1,41 @@ -export default async function ({ addon, global, console, msg }) { - let style = document.createElement("style"); - style.textContent = ` - .blocklyText { - fill: #fff; - font-family: "Helvetica Neue", Helvetica, sans-serif; - font-size: 12pt; - font-weight: 500; - } - .blocklyNonEditableText>text, .blocklyEditableText>text { - fill: #575E75; +export default async function ({ addon, console, msg }) { + const Blockly = await addon.tab.traps.getBlockly(); + + function makeStyle() { + let style = document.createElement("style"); + style.textContent = ` + .blocklyText { + fill: ${Blockly.Colours.text}; + font-family: "Helvetica Neue", Helvetica, sans-serif; + font-size: 12pt; + font-weight: 500; + } + .blocklyNonEditableText>text, .blocklyEditableText>text { + fill: ${Blockly.Colours.textFieldText}; + } + .blocklyDropdownText { + fill: ${Blockly.Colours.text} !important; + } + `; + for (let userstyle of document.querySelectorAll(".scratch-addons-style[data-addons*='editor-theme3']")) { + if (userstyle.disabled) continue; + style.textContent += userstyle.textContent; + } + return style; } - .blocklyDropdownText { - fill: #fff !important; + + function setCSSVars(element) { + for (let property of document.documentElement.style) { + if (property.startsWith("--editorTheme3-")) + element.style.setProperty(property, document.documentElement.style.getPropertyValue(property)); + } } - `; - let exSVG = document.createElement("svg"); - exSVG.setAttribute("xmlns", "http://www.w3.org/2000/svg"); + + let exSVG = document.createElementNS("http://www.w3.org/2000/svg", "svg"); exSVG.setAttribute("xmlns:html", "http://www.w3.org/1999/xhtml"); exSVG.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"); exSVG.setAttribute("version", "1.1"); - // blocks-media as base64 for svg inline image - let blocksMedia = new Map(); - blocksMedia.set( - "repeat.svg", - "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9InJlcGVhdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDI0IDI0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNCAyNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNDRjhCMTc7fQoJLnN0MXtmaWxsOiNGRkZGRkY7fQo8L3N0eWxlPgo8dGl0bGU+cmVwZWF0PC90aXRsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTIzLjMsMTFjLTAuMywwLjYtMC45LDEtMS41LDFoLTEuNmMtMC4xLDEuMy0wLjUsMi41LTEuMSwzLjZjLTAuOSwxLjctMi4zLDMuMi00LjEsNC4xCgljLTEuNywwLjktMy42LDEuMi01LjUsMC45Yy0xLjgtMC4zLTMuNS0xLjEtNC45LTIuM2MtMC43LTAuNy0wLjctMS45LDAtMi42YzAuNi0wLjYsMS42LTAuNywyLjMtMC4ySDdjMC45LDAuNiwxLjksMC45LDIuOSwwLjkKCXMxLjktMC4zLDIuNy0wLjljMS4xLTAuOCwxLjgtMi4xLDEuOC0zLjVoLTEuNWMtMC45LDAtMS43LTAuNy0xLjctMS43YzAtMC40LDAuMi0wLjksMC41LTEuMmw0LjQtNC40YzAuNy0wLjYsMS43LTAuNiwyLjQsMEwyMyw5LjIKCUMyMy41LDkuNywyMy42LDEwLjQsMjMuMywxMXoiLz4KPHBhdGggY2xhc3M9InN0MSIgZD0iTTIxLjgsMTFoLTIuNmMwLDEuNS0wLjMsMi45LTEsNC4yYy0wLjgsMS42LTIuMSwyLjgtMy43LDMuNmMtMS41LDAuOC0zLjMsMS4xLTQuOSwwLjhjLTEuNi0wLjItMy4yLTEtNC40LTIuMQoJYy0wLjQtMC4zLTAuNC0wLjktMC4xLTEuMmMwLjMtMC40LDAuOS0wLjQsMS4yLTAuMWwwLDBjMSwwLjcsMi4yLDEuMSwzLjQsMS4xczIuMy0wLjMsMy4zLTFjMC45LTAuNiwxLjYtMS41LDItMi42CgljMC4zLTAuOSwwLjQtMS44LDAuMi0yLjhoLTIuNGMtMC40LDAtMC43LTAuMy0wLjctMC43YzAtMC4yLDAuMS0wLjMsMC4yLTAuNGw0LjQtNC40YzAuMy0wLjMsMC43LTAuMywwLjksMEwyMiw5LjgKCWMwLjMsMC4zLDAuNCwwLjYsMC4zLDAuOVMyMiwxMSwyMS44LDExeiIvPgo8L3N2Zz4K" - ); - blocksMedia.set( - "green-flag.svg", - "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9ImdyZWVuZmxhZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDI0IDI0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNCAyNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiM0NTk5M0Q7fQoJLnN0MXtmaWxsOiM0Q0JGNTY7fQo8L3N0eWxlPgo8dGl0bGU+Z3JlZW5mbGFnPC90aXRsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTIwLjgsMy43Yy0wLjQtMC4yLTAuOS0wLjEtMS4yLDAuMmMtMiwxLjYtNC44LDEuNi02LjgsMGMtMi4zLTEuOS01LjYtMi4zLTguMy0xVjIuNWMwLTAuNi0wLjUtMS0xLTEKCXMtMSwwLjQtMSwxdjE4LjhjMCwwLjUsMC41LDEsMSwxaDAuMWMwLjUsMCwxLTAuNSwxLTF2LTYuNGMxLTAuNywyLjEtMS4yLDMuNC0xLjNjMS4yLDAsMi40LDAuNCwzLjQsMS4yYzIuOSwyLjMsNywyLjMsOS44LDAKCWMwLjMtMC4yLDAuNC0wLjUsMC40LTAuOVY0LjdDMjEuNiw0LjIsMjEuMywzLjgsMjAuOCwzLjd6IE0yMC41LDEzLjlDMjAuNSwxMy45LDIwLjUsMTMuOSwyMC41LDEzLjlDMTgsMTYsMTQuNCwxNiwxMS45LDE0CgljLTEuMS0wLjktMi41LTEuNC00LTEuNGMtMS4yLDAuMS0yLjMsMC41LTMuNCwxLjFWNEM3LDIuNiwxMCwyLjksMTIuMiw0LjZjMi40LDEuOSw1LjcsMS45LDguMSwwYzAuMSwwLDAuMSwwLDAuMiwwCgljMCwwLDAuMSwwLjEsMC4xLDAuMUwyMC41LDEzLjl6Ii8+CjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yMC42LDQuOGwtMC4xLDkuMWMwLDAsMCwwLjEsMCwwLjFjLTIuNSwyLTYuMSwyLTguNiwwYy0xLjEtMC45LTIuNS0xLjQtNC0xLjRjLTEuMiwwLjEtMi4zLDAuNS0zLjQsMS4xVjQKCUM3LDIuNiwxMCwyLjksMTIuMiw0LjZjMi40LDEuOSw1LjcsMS45LDguMSwwYzAuMSwwLDAuMSwwLDAuMiwwQzIwLjUsNC43LDIwLjYsNC43LDIwLjYsNC44eiIvPgo8L3N2Zz4K" - ); - blocksMedia.set( - "rotate-left.svg", - "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIGlkPSJyb3RhdGUtY2xvY2t3aXNlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHN0eWxlPi5jbHMtMXtmaWxsOiMzZDc5Y2M7fS5jbHMtMntmaWxsOiNmZmY7fTwvc3R5bGU+PHRpdGxlPnJvdGF0ZS1jbG9ja3dpc2U8L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIwLjM0LDE4LjIxYTEwLjI0LDEwLjI0LDAsMCwxLTguMSw0LjIyLDIuMjYsMi4yNiwwLDAsMS0uMTYtNC41MmgwYTUuNTgsNS41OCwwLDAsMCw0LjI1LTIuNTMsNS4wNiw1LjA2LDAsMCwwLC41NC00LjYyQTQuMjUsNC4yNSwwLDAsMCwxNS41NSw5YTQuMzEsNC4zMSwwLDAsMC0yLS44QTQuODIsNC44MiwwLDAsMCwxMC40LDlsMS4xMiwxLjQxQTEuNTksMS41OSwwLDAsMSwxMC4zNiwxM0gyLjY3YTEuNTYsMS41NiwwLDAsMS0xLjI2LS42M0ExLjU0LDEuNTQsMCwwLDEsMS4xMywxMUwyLjg1LDMuNTdBMS41OSwxLjU5LDAsMCwxLDQuMzgsMi40LDEuNTcsMS41NywwLDAsMSw1LjYyLDNMNi43LDQuMzVhMTAuNjYsMTAuNjYsMCwwLDEsNy43Mi0xLjY4QTkuODgsOS44OCwwLDAsMSwxOSw0LjgxLDkuNjEsOS42MSwwLDAsMSwyMS44Myw5LDEwLjA4LDEwLjA4LDAsMCwxLDIwLjM0LDE4LjIxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTE5LjU2LDE3LjY1YTkuMjksOS4yOSwwLDAsMS03LjM1LDMuODMsMS4zMSwxLjMxLDAsMCwxLS4wOC0yLjYyLDYuNTMsNi41MywwLDAsMCw1LTIuOTIsNi4wNSw2LjA1LDAsMCwwLC42Ny01LjUxLDUuMzIsNS4zMiwwLDAsMC0xLjY0LTIuMTYsNS4yMSw1LjIxLDAsMCwwLTIuNDgtMUE1Ljg2LDUuODYsMCwwLDAsOSw4Ljg0TDEwLjc0LDExYS41OS41OSwwLDAsMS0uNDMsMUgyLjdhLjYuNiwwLDAsMS0uNi0uNzVMMy44MSwzLjgzYS41OS41OSwwLDAsMSwxLS4yMWwxLjY3LDIuMWE5LjcxLDkuNzEsMCwwLDEsNy43NS0yLjA3LDguODQsOC44NCwwLDAsMSw0LjEyLDEuOTIsOC42OCw4LjY4LDAsMCwxLDIuNTQsMy43MkE5LjE0LDkuMTQsMCwwLDEsMTkuNTYsMTcuNjVaIi8+PC9zdmc+" - ); - blocksMedia.set( - "rotate-right.svg", - "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIGlkPSJyb3RhdGUtY291bnRlci1jbG9ja3dpc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzNkNzljYzt9LmNscy0ye2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPnJvdGF0ZS1jb3VudGVyLWNsb2Nrd2lzZTwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjIuNjgsMTIuMmExLjYsMS42LDAsMCwxLTEuMjcuNjNIMTMuNzJhMS41OSwxLjU5LDAsMCwxLTEuMTYtMi41OGwxLjEyLTEuNDFhNC44Miw0LjgyLDAsMCwwLTMuMTQtLjc3LDQuMzEsNC4zMSwwLDAsMC0yLC44LDQuMjUsNC4yNSwwLDAsMC0xLjM0LDEuNzMsNS4wNiw1LjA2LDAsMCwwLC41NCw0LjYyQTUuNTgsNS41OCwwLDAsMCwxMiwxNy43NGgwYTIuMjYsMi4yNiwwLDAsMS0uMTYsNC41MkExMC4yNSwxMC4yNSwwLDAsMSwzLjc0LDE4LDEwLjE0LDEwLjE0LDAsMCwxLDIuMjUsOC43OCw5LjcsOS43LDAsMCwxLDUuMDgsNC42NCw5LjkyLDkuOTIsMCwwLDEsOS42NiwyLjVhMTAuNjYsMTAuNjYsMCwwLDEsNy43MiwxLjY4bDEuMDgtMS4zNWExLjU3LDEuNTcsMCwwLDEsMS4yNC0uNiwxLjYsMS42LDAsMCwxLDEuNTQsMS4yMWwxLjcsNy4zN0ExLjU3LDEuNTcsMCwwLDEsMjIuNjgsMTIuMloiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yMS4zOCwxMS44M0gxMy43N2EuNTkuNTksMCwwLDEtLjQzLTFsMS43NS0yLjE5YTUuOSw1LjksMCwwLDAtNC43LTEuNTgsNS4wNyw1LjA3LDAsMCwwLTQuMTEsMy4xN0E2LDYsMCwwLDAsNywxNS43N2E2LjUxLDYuNTEsMCwwLDAsNSwyLjkyLDEuMzEsMS4zMSwwLDAsMS0uMDgsMi42Miw5LjMsOS4zLDAsMCwxLTcuMzUtMy44MkE5LjE2LDkuMTYsMCwwLDEsMy4xNyw5LjEyLDguNTEsOC41MSwwLDAsMSw1LjcxLDUuNCw4Ljc2LDguNzYsMCwwLDEsOS44MiwzLjQ4YTkuNzEsOS43MSwwLDAsMSw3Ljc1LDIuMDdsMS42Ny0yLjFhLjU5LjU5LDAsMCwxLDEsLjIxTDIyLDExLjA4QS41OS41OSwwLDAsMSwyMS4zOCwxMS44M1oiLz48L3N2Zz4=" - ); - blocksMedia.set( - "dropdown-arrow.svg", - "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=" - ); - addon.tab.createBlockContextMenu( (items) => { if (addon.self.disabled) return items; @@ -118,7 +111,7 @@ export default async function ({ addon, global, console, msg }) { { blocks: true } ); - function exportBlock(isExportPNG, block) { + async function exportBlock(isExportPNG, block) { let svg; if (block) { svg = selectedBlocks(isExportPNG, block); @@ -129,29 +122,23 @@ export default async function ({ addon, global, console, msg }) { svg.querySelectorAll("text").forEach((text) => { text.innerHTML = text.innerHTML.replace(/ /g, " "); }); - // resolve image path - let scratchURL = window.location.origin; - svg.querySelectorAll("image").forEach((item) => { - let builtinSvgData = blocksMedia.get( - item.getAttribute("xlink:href").substring(item.getAttribute("xlink:href").lastIndexOf("/") + 1) - ); - if (builtinSvgData) { - // replace svg file path (official) to inline svg - item.setAttribute("xlink:href", builtinSvgData); - } else if (item.getAttribute("xlink:href").indexOf("/static/") === 0) { - // replace link path for third party website - item.setAttribute("xlink:href", scratchURL + item.getAttribute("xlink:href").slice(0)); - } else if (item.getAttribute("xlink:href").indexOf("./static/") === 0) { - item.setAttribute("xlink:href", scratchURL + item.getAttribute("xlink:href").slice(1)); - } else if (item.getAttribute("xlink:href").indexOf("static/") === 0) { - item.setAttribute("xlink:href", scratchURL + "/" + item.getAttribute("xlink:href")); - } - }); + // replace external images with data URIs + await Promise.all( + Array.from(svg.querySelectorAll("image")).map(async (item) => { + const iconUrl = item.getAttribute("xlink:href"); + if (iconUrl.startsWith("data:")) return; + const blob = await (await fetch(iconUrl)).blob(); + const reader = new FileReader(); + const dataUri = await new Promise((resolve) => { + reader.addEventListener("load", () => resolve(reader.result)); + reader.readAsDataURL(blob); + }); + item.setAttribute("xlink:href", dataUri); + }) + ); if (!isExportPNG) { - let tmp = document.createElement("div"); - tmp.appendChild(svg); - exportData(tmp.innerHTML); + exportData(new XMLSerializer().serializeToString(svg)); } else { exportPNG(svg); } @@ -163,11 +150,20 @@ export default async function ({ addon, global, console, msg }) { let svgchild = block.svgGroup_; svgchild = svgchild.cloneNode(true); let dataShapes = svgchild.getAttribute("data-shapes"); - svgchild.setAttribute( - "transform", - `translate(0,${dataShapes === "hat" ? "18" : "0"}) ${isExportPNG ? "scale(2)" : ""}` - ); - svg.append(style); + let translateY = 0; // blocks no hat + const scale = isExportPNG ? 2 : 1; + if (dataShapes === "c-block c-1 hat") { + translateY = 20; // for My block + } + if (dataShapes === "hat") { + translateY = 16; // for Events + if (block.CAT_BLOCKS) { + translateY += 16; // for cat ears + } + } + svgchild.setAttribute("transform", `translate(0,${scale * translateY}) scale(${scale})`); + setCSSVars(svg); + svg.append(makeStyle()); svg.append(svgchild); return svg; } @@ -195,7 +191,8 @@ export default async function ({ addon, global, console, msg }) { isExportPNG ? "scale(2)" : "" }` ); - svg.append(style); + setCSSVars(svg); + svg.append(makeStyle()); svg.append(svgchild); return svg; } @@ -218,15 +215,13 @@ export default async function ({ addon, global, console, msg }) { } function exportPNG(svg) { - const div = document.createElement("div"); - div.appendChild(svg); + const serializer = new XMLSerializer(); const iframe = document.createElement("iframe"); // iframe.style.display = "none" document.body.append(iframe); - iframe.contentDocument.write(div.innerHTML); + iframe.contentDocument.write(serializer.serializeToString(svg)); let { width, height } = iframe.contentDocument.body.querySelector("svg g").getBoundingClientRect(); - height = height + 20 * 2; // hat block height restore svg.setAttribute("width", width + "px"); svg.setAttribute("height", height + "px"); @@ -235,7 +230,10 @@ export default async function ({ addon, global, console, msg }) { let img = document.createElement("img"); - img.setAttribute("src", "data:image/svg+xml;base64," + btoa(unescape(encodeURIComponent(div.innerHTML)))); + img.setAttribute( + "src", + "data:image/svg+xml;base64," + btoa(unescape(encodeURIComponent(serializer.serializeToString(svg)))) + ); img.onload = function () { canvas.height = img.height; canvas.width = img.width; diff --git a/src/addons/addons/cat-blocks/_manifest_entry.js b/src/addons/addons/cat-blocks/_manifest_entry.js index 16489fccb39..a591c22c6b2 100644 --- a/src/addons/addons/cat-blocks/_manifest_entry.js +++ b/src/addons/addons/cat-blocks/_manifest_entry.js @@ -3,7 +3,7 @@ const manifest = { "editorOnly": true, "noTranslations": true, "name": "Cat blocks", - "description": "Brings back editor cat hat blocks from April Fools 2020.", + "description": "Brings back editor cat hat blocks that were first introduced for April Fools' Day 2020.", "credits": [ { "name": "TheColaber", @@ -20,8 +20,8 @@ const manifest = { ], "info": [ { - "type": "warning", - "text": "The \"Watch mouse cursor\" option may impact performance when the editor is open.", + "type": "notice", + "text": "The \"watch mouse cursor\" setting may impact performance when the editor is open.", "id": "watch" } ], diff --git a/src/addons/addons/cat-blocks/userscript.js b/src/addons/addons/cat-blocks/userscript.js index f6914b30661..625ae13338c 100644 --- a/src/addons/addons/cat-blocks/userscript.js +++ b/src/addons/addons/cat-blocks/userscript.js @@ -1,13 +1,15 @@ /** - * Based on https://github.com/LLK/scratch-blocks/compare/hotfix/totally-normal-2021 (Apache 2.0) + * Based on https://github.com/scratchfoundation/scratch-blocks/compare/hotfix/totally-normal-2021 (Apache 2.0) * It has been modified to work properly in our environment and fix some bugs. */ -export default async function ({ addon, global, console }) { +export default async function ({ addon, console }) { const Blockly = await addon.tab.traps.getBlockly(); const shouldWatchMouseCursor = addon.settings.get("watch"); + Blockly.BlockSvg.prototype.CAT_BLOCKS = true; + Blockly.BlockSvg.START_HAT_HEIGHT = 31; Blockly.BlockSvg.START_HAT_PATH = @@ -335,10 +337,12 @@ export default async function ({ addon, global, console }) { } const flyout = workspace.getFlyout(); if (flyout) { + Blockly.Events.disable(); const flyoutWorkspace = flyout.getWorkspace(); Blockly.Xml.clearWorkspaceAndLoadFromXml(Blockly.Xml.workspaceToDom(flyoutWorkspace), flyoutWorkspace); workspace.getToolbox().refreshSelection(); workspace.toolboxRefreshEnabled_ = true; + Blockly.Events.enable(); } } } diff --git a/src/addons/addons/clones/_manifest_entry.js b/src/addons/addons/clones/_manifest_entry.js index 697b465351c..0a293027cf3 100644 --- a/src/addons/addons/clones/_manifest_entry.js +++ b/src/addons/addons/clones/_manifest_entry.js @@ -10,6 +10,9 @@ const manifest = { { "name": "OregSam", "link": "https://scratch.mit.edu/users/simiagain/" + }, + { + "name": "DNin01" } ], "dynamicDisable": true, @@ -24,6 +27,13 @@ const manifest = { } ], "settings": [ + { + "dynamic": true, + "id": "projectpage", + "name": "Show on project page", + "default": false, + "type": "boolean" + }, { "dynamic": true, "id": "showicononly", diff --git a/src/addons/addons/clones/_runtime_entry.js b/src/addons/addons/clones/_runtime_entry.js index 76c9ca1f431..417353837cc 100644 --- a/src/addons/addons/clones/_runtime_entry.js +++ b/src/addons/addons/clones/_runtime_entry.js @@ -1,7 +1,11 @@ /* generated by pull.js */ import _js from "./userscript.js"; import _css from "!css-loader!./style.css"; +import _asset from "!url-loader!./300cats.svg"; +import _asset2 from "!url-loader!./cat.svg"; export const resources = { "userscript.js": _js, "style.css": _css, + "300cats.svg": _asset, + "cat.svg": _asset2, }; diff --git a/src/addons/addons/clones/style.css b/src/addons/addons/clones/style.css index 234ef4594bd..86973696d54 100644 --- a/src/addons/addons/clones/style.css +++ b/src/addons/addons/clones/style.css @@ -37,6 +37,6 @@ content: attr(data-str); } -.sa-clones-small .clone-container-container { +.sa-small-stage .clone-container-container { display: none !important; } diff --git a/src/addons/addons/clones/userscript.js b/src/addons/addons/clones/userscript.js index 0c2f14e6574..e6347ad0b32 100644 --- a/src/addons/addons/clones/userscript.js +++ b/src/addons/addons/clones/userscript.js @@ -1,22 +1,12 @@ -export default async function ({ addon, global, console, msg }) { +import addSmallStageClass from "../../libraries/common/cs/small-stage.js"; + +export default async function ({ addon, console, msg }) { const vm = addon.tab.traps.vm; + let showOnProjectPage = addon.settings.get("projectpage"); let showIconOnly = addon.settings.get("showicononly"); - if (addon.tab.redux.state && addon.tab.redux.state.scratchGui.stageSize.stageSize === "small") { - document.body.classList.add("sa-clones-small"); - } - document.addEventListener( - "click", - (e) => { - if (e.target.closest("[class*='stage-header_stage-button-first']")) { - document.body.classList.add("sa-clones-small"); - } else if (e.target.closest("[class*='stage-header_stage-button-last']")) { - document.body.classList.remove("sa-clones-small"); - } - }, - { capture: true } - ); + addSmallStageClass(); let countContainerContainer = document.createElement("div"); addon.tab.displayNoneWhileDisabled(countContainerContainer); @@ -58,12 +48,13 @@ export default async function ({ addon, global, console, msg }) { count.dataset.str = cache[v] || msg("clones", { cloneCount: v }); } - if (v === 0) countContainerContainer.style.display = "none"; + if (v === 0 || (addon.tab.editorMode !== "editor" && !showOnProjectPage)) countContainerContainer.style.display = "none"; else countContainerContainer.style.display = "flex"; } addon.settings.addEventListener("change", () => { showIconOnly = addon.settings.get("showicononly"); + showOnProjectPage = addon.settings.get("projectpage"); doCloneChecks(true); }); @@ -74,14 +65,27 @@ export default async function ({ addon, global, console, msg }) { return ret; }; + /* + if (addon.self.enabledLate) { + // Clone count might be inaccurate if the user deleted sprites + // before enabling the addon + let count = 0; + for (let target of vm.runtime.targets) { + if (!target.isOriginal) ++count; + } + vm.runtime._cloneCounter = count; + } + */ + while (true) { await addon.tab.waitForElement('[class*="controls_controls-container"]', { markAsSeen: true, reduxEvents: ["scratch-gui/mode/SET_PLAYER", "fontsLoaded/SET_FONTS_LOADED", "scratch-gui/locales/SELECT_LOCALE"], }); - if (addon.tab.editorMode === "editor") { + if (showOnProjectPage || addon.tab.editorMode === "editor" || addon.tab.redux.state.scratchGui.mode.isEmbedded) { addon.tab.appendToSharedSpace({ space: "afterStopButton", element: countContainerContainer, order: 2 }); + doCloneChecks(true); } } } \ No newline at end of file diff --git a/src/addons/addons/color-picker/code-editor.js b/src/addons/addons/color-picker/code-editor.js index 9bbc01f9c1d..7a436785f2d 100644 --- a/src/addons/addons/color-picker/code-editor.js +++ b/src/addons/addons/color-picker/code-editor.js @@ -1,21 +1,9 @@ import { normalizeHex, getHexRegex } from "../../libraries/common/cs/normalize-color.js"; import RateLimiter from "../../libraries/common/cs/rate-limiter.js"; -import tinycolor from "../../libraries/thirdparty/cs/tinycolor-min.js"; export default async ({ addon, console, msg }) => { // 250-ms rate limit const rateLimiter = new RateLimiter(250); - const getColor = (element) => { - const { children } = element.parentElement; - // h: 0 - 360 - const h = children[1].getAttribute("aria-valuenow"); - // s: 0 - 1 - const s = children[3].getAttribute("aria-valuenow"); - // v: 0 - 255, divide by 255 - const vMultipliedBy255 = children[5].getAttribute("aria-valuenow"); - const v = Number(vMultipliedBy255) / 255; - return tinycolor(`hsv(${h}, ${s}, ${v || 0})`).toHexString(); - }; const setColor = (hex, element) => { hex = normalizeHex(hex); if (!addon.tab.redux.state || !addon.tab.redux.state.scratchGui) return; @@ -43,11 +31,11 @@ export default async ({ addon, console, msg }) => { document.body.classList.add("sa-hide-eye-dropper-background"); element.click(); }; - const addColorPicker = () => { + const addColorPicker = (editor) => { const element = document.querySelector("button.scratchEyedropper"); rateLimiter.abort(false); addon.tab.redux.initialize(); - const defaultColor = getColor(element); + const defaultColor = editor.getValue(); const saColorPicker = Object.assign(document.createElement("div"), { className: "sa-color-picker sa-color-picker-code", }); @@ -82,7 +70,24 @@ export default async ({ addon, console, msg }) => { const originalShowEditor = ScratchBlocks.FieldColourSlider.prototype.showEditor_; ScratchBlocks.FieldColourSlider.prototype.showEditor_ = function (...args) { const r = originalShowEditor.call(this, ...args); - addColorPicker(); + addColorPicker(this); return r; }; + const originalCallbackFactory = ScratchBlocks.FieldColourSlider.prototype.sliderCallbackFactory_; + ScratchBlocks.FieldColourSlider.prototype.sliderCallbackFactory_ = function (...args) { + const f = originalCallbackFactory.call(this, ...args); + return (event) => { + const r = f(event); + const div = ScratchBlocks.DropDownDiv.getContentDiv(); + if (div) { + const saColorPickerColor = div.querySelector(".sa-color-picker-color.sa-color-picker-code-color"); + const saColorPickerText = div.querySelector(".sa-color-picker-text.sa-color-picker-code-text"); + if (!saColorPickerColor || !saColorPickerText) return r; + const color = this.getValue(); + saColorPickerColor.value = color || "#000000"; + saColorPickerText.value = color || ""; + } + return r; + }; + }; }; diff --git a/src/addons/addons/color-picker/paint-editor.js b/src/addons/addons/color-picker/paint-editor.js index 106fc3bb12d..32610e8f9a7 100644 --- a/src/addons/addons/color-picker/paint-editor.js +++ b/src/addons/addons/color-picker/paint-editor.js @@ -1,6 +1,9 @@ +/** + * !!! TW: This file is unused. + */ + import { normalizeHex, getHexRegex } from "../../libraries/common/cs/normalize-color.js"; import RateLimiter from "../../libraries/common/cs/rate-limiter.js"; -import tinycolor from "../../libraries/thirdparty/cs/tinycolor-min.js"; export default async ({ addon, console, msg }) => { let prevEventHandler; @@ -36,7 +39,7 @@ export default async ({ addon, console, msg }) => { setTimeout(() => { const previousTool = addon.tab.redux.state.scratchPaint.color.eyeDropper.previousTool; if (previousTool) previousTool.activate(); - addon.tab.redux.state.scratchPaint.color.eyeDropper.callback(hex); + addon.tab.redux.state.scratchPaint.color.eyeDropper.callback(tinycolor(hex).toHexString()); addon.tab.redux.dispatch({ type: "scratch-paint/eye-dropper/DEACTIVATE_COLOR_PICKER", }); @@ -45,6 +48,20 @@ export default async ({ addon, console, msg }) => { addon.tab.redux.addEventListener("statechanged", onEyeDropperOpened); element.children[1].children[0].click(); }; + function updateColor(element) { + setTimeout(() => { + const color = getColor(element); + const saColorPickerColor = element?.parentElement?.querySelector( + ".sa-color-picker-color.sa-color-picker-paint-color" + ); + const saColorPickerText = element?.parentElement?.querySelector( + ".sa-color-picker-text.sa-color-picker-paint-text" + ); + if (!saColorPickerColor || !saColorPickerText) return; + saColorPickerColor.value = color || "#000000"; + saColorPickerText.value = color || ""; + }, 50); + } while (true) { const element = await addon.tab.waitForElement('div[class*="color-picker_swatch-row"]', { markAsSeen: true, @@ -75,7 +92,7 @@ export default async ({ addon, console, msg }) => { const saColorPickerText = Object.assign(document.createElement("input"), { className: `sa-color-picker-text sa-color-picker-paint-text ${inputClass}`, type: "text", - pattern: "^#[0-9a-fA-F]{3,8}$", + pattern: "^#?([0-9a-fA-F]{3}){1,2}$", placeholder: msg("hex"), value: defaultColor || "", }); @@ -88,12 +105,14 @@ export default async ({ addon, console, msg }) => { setColor((saColorPickerColor.value = normalizeHex(value)), element); }); prevEventHandler = ({ detail }) => { - if (detail.action.type === "scratch-paint/color-index/CHANGE_COLOR_INDEX") { - setTimeout(() => { - const color = getColor(element); - saColorPickerColor.value = color || "#000000"; - saColorPickerText.value = color || ""; - }, 100); + if ( + detail.action.type === "scratch-paint/color-index/CHANGE_COLOR_INDEX" || + detail.action.type === "scratch-paint/fill-style/CHANGE_FILL_COLOR" || + detail.action.type === "scratch-paint/fill-style/CHANGE_FILL_COLOR_2" || + (detail.action.type === "scratch-paint/fill-style/CHANGE_FILL_GRADIENT_TYPE" && + detail.action.gradientType === "SOLID") + ) { + rateLimiter.limit(() => updateColor(element)); } }; addon.tab.redux.addEventListener("statechanged", prevEventHandler); diff --git a/src/addons/addons/color-picker/style.css b/src/addons/addons/color-picker/style.css index 47f02c55636..6058defc95f 100644 --- a/src/addons/addons/color-picker/style.css +++ b/src/addons/addons/color-picker/style.css @@ -24,9 +24,6 @@ width: 3rem; height: 2rem; } -[theme="dark"] .sa-color-picker > .sa-color-picker-color { - background: var(--ui-secondary); -} .sa-color-picker > .sa-color-picker-text { box-sizing: border-box; diff --git a/src/addons/addons/columns/_manifest_entry.js b/src/addons/addons/columns/_manifest_entry.js index 717a2cfe0ac..554103cceb9 100644 --- a/src/addons/addons/columns/_manifest_entry.js +++ b/src/addons/addons/columns/_manifest_entry.js @@ -10,7 +10,9 @@ const manifest = { "link": "https://scratch.mit.edu/TheColaber" } ], - "tags": [], + "tags": [ + "theme" + ], "dynamicDisable": true, "userscripts": [ { diff --git a/src/addons/addons/columns/style.css b/src/addons/addons/columns/style.css index 5e3b1ed6bbf..39970684dff 100644 --- a/src/addons/addons/columns/style.css +++ b/src/addons/addons/columns/style.css @@ -48,7 +48,7 @@ width: calc(308px - 1rem); height: calc(1.75rem - 2px); background-color: transparent; - border-color: var(--ui-black-transparent, rgba(0, 0, 0, 0.15)); + border-color: var(--editorDarkMode-border, rgba(0, 0, 0, 0.15)); } /* [dir] is for specificity to override editor-stage-left */ @@ -57,7 +57,7 @@ } [class*="gui_extension-button-container_"]:hover { - background-color: var(--ui-tertiary, white); + background-color: var(--editorDarkMode-accent, white); } [class*="gui_extension-button-container_"]::before { @@ -77,17 +77,14 @@ [class*="gui_extension-button-container_"]:hover [class*="gui_extension-button-icon_"] { filter: var(--editorDarkMode-accent-invertedFilter, brightness(0.4)); } -[theme="dark"] [class*="gui_extension-button-icon_"] { - filter: none !important; -} .sa-add-extension-label { - color: var(--text-primary, #575e75); + color: var(--editorDarkMode-categoryMenu-text, #575e75); font-size: 0.65rem; } [class*="gui_extension-button-container_"]:hover .sa-add-extension-label { - color: var(--text-primary, #575e75); + color: var(--editorDarkMode-accent-text, #575e75); font-size: 0.65rem; } diff --git a/src/addons/addons/columns/userscript.js b/src/addons/addons/columns/userscript.js index 247edcd2762..d19c059e8cc 100644 --- a/src/addons/addons/columns/userscript.js +++ b/src/addons/addons/columns/userscript.js @@ -1,7 +1,7 @@ -export default async function ({ addon, msg, global, console }) { +export default async function ({ addon, msg, console }) { const Blockly = await addon.tab.traps.getBlockly(); - // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L235 + // https://github.com/scratchfoundation/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L235 const _ToolboxPosition = Blockly.Toolbox.prototype.position; Blockly.Toolbox.prototype.position = function () { _ToolboxPosition.call(this); @@ -15,7 +15,7 @@ export default async function ({ addon, msg, global, console }) { } }; - // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/flyout_vertical.js#L314 + // https://github.com/scratchfoundation/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/flyout_vertical.js#L314 const _VerticalFlyoutPosition = Blockly.VerticalFlyout.prototype.position; Blockly.VerticalFlyout.prototype.position = function () { _VerticalFlyoutPosition.call(this); @@ -60,7 +60,7 @@ export default async function ({ addon, msg, global, console }) { container.parentElement.style.setProperty("--sa-flyout-y", `${y}px`); }; - // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/flyout_base.js#L370 + // https://github.com/scratchfoundation/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/flyout_base.js#L370 const _VerticalFlyoutGetWidth = Blockly.VerticalFlyout.prototype.getWidth; Blockly.VerticalFlyout.prototype.getWidth = function () { // In RTL, this will be called by Blockly to position blocks inside the flyout. @@ -69,7 +69,7 @@ export default async function ({ addon, msg, global, console }) { return width; }; - // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L595 + // https://github.com/scratchfoundation/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L595 const _CategoryMenuCreateDom = Blockly.Toolbox.CategoryMenu.prototype.createDom; Blockly.Toolbox.CategoryMenu.prototype.createDom = function () { _CategoryMenuCreateDom.call(this); @@ -81,7 +81,7 @@ export default async function ({ addon, msg, global, console }) { this.parentHtml_.appendChild(this.secondTable); }; - // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L606 + // https://github.com/scratchfoundation/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L606 const _CategoryMenuPopulate = Blockly.Toolbox.CategoryMenu.prototype.populate; Blockly.Toolbox.CategoryMenu.prototype.populate = function (domTree) { if (!domTree) return; @@ -122,7 +122,7 @@ export default async function ({ addon, msg, global, console }) { } }; - // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L639 + // https://github.com/scratchfoundation/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L639 const _CategoryMenuDispose = Blockly.Toolbox.CategoryMenu.prototype.dispose; Blockly.Toolbox.CategoryMenu.prototype.dispose = function () { _CategoryMenuDispose.call(this); @@ -150,10 +150,20 @@ export default async function ({ addon, msg, global, console }) { toolbox.position(); } + function updateClass() { + // Add class to allow editor-compact to handle this addon + if (addon.self.disabled) document.body.classList.remove("sa-columns-enabled"); + else document.body.classList.add("sa-columns-enabled"); + } + updateToolbox(); addon.self.addEventListener("disabled", updateToolbox); addon.self.addEventListener("reenabled", updateToolbox); + updateClass(); + addon.self.addEventListener("disabled", updateClass); + addon.self.addEventListener("reenabled", updateClass); + while (true) { const addExtensionButton = await addon.tab.waitForElement("[class*='gui_extension-button_']", { markAsSeen: true, diff --git a/src/addons/addons/copy-reporter/_manifest_entry.js b/src/addons/addons/copy-reporter/_manifest_entry.js new file mode 100644 index 00000000000..902581071cc --- /dev/null +++ b/src/addons/addons/copy-reporter/_manifest_entry.js @@ -0,0 +1,24 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Copy reporter values", + "description": "Adds the option to copy values displayed by variable monitors (from the right click context menu) and block reporter balloons.", + "credits": [ + { + "name": "TheKodeToad" + } + ], + "tags": [], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "style.css" + } + ], + "dynamicDisable": true +}; +export default manifest; diff --git a/src/addons/addons/copy-reporter/_runtime_entry.js b/src/addons/addons/copy-reporter/_runtime_entry.js new file mode 100644 index 00000000000..156f795e3fe --- /dev/null +++ b/src/addons/addons/copy-reporter/_runtime_entry.js @@ -0,0 +1,9 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./style.css"; +import _asset from "!url-loader!./copy.svg"; +export const resources = { + "userscript.js": _js, + "style.css": _css, + "copy.svg": _asset, +}; diff --git a/src/addons/addons/copy-reporter/copy.svg b/src/addons/addons/copy-reporter/copy.svg new file mode 100644 index 00000000000..af9404f1575 --- /dev/null +++ b/src/addons/addons/copy-reporter/copy.svg @@ -0,0 +1 @@ + diff --git a/src/addons/addons/copy-reporter/style.css b/src/addons/addons/copy-reporter/style.css new file mode 100644 index 00000000000..3550d2a3b76 --- /dev/null +++ b/src/addons/addons/copy-reporter/style.css @@ -0,0 +1,13 @@ +.sa-copy-reporter-icon { + cursor: pointer; + float: right; + display: block; + user-select: none; + filter: var(--editorDarkMode-accent-filter, none); + width: 14px; + height: 14px; +} + +.valueReportBox { + user-select: text; +} diff --git a/src/addons/addons/copy-reporter/userscript.js b/src/addons/addons/copy-reporter/userscript.js new file mode 100644 index 00000000000..187b9f3edc7 --- /dev/null +++ b/src/addons/addons/copy-reporter/userscript.js @@ -0,0 +1,71 @@ +export default async function ({ addon, console, msg }) { + addon.tab.createEditorContextMenu( + (ctx) => { + const className = ctx.type === "monitor_large" ? "monitor_large-value" : "monitor_value"; + const element = ctx.target.querySelector(`[class*='${className}_']`); + + if (element.innerText.length !== 0) { + navigator.clipboard.writeText(element.innerText); + } + }, + { + className: "copy", + types: ["monitor_default", "monitor_large", "monitor_slider"], + position: "monitor", + order: 0, + label: msg("copy-value"), + } + ); + + // add button to reporter bubble + const ScratchBlocks = await addon.tab.traps.getBlockly(); + + // https://github.com/scratchfoundation/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/workspace_svg.js#L979 + ScratchBlocks.WorkspaceSvg.prototype.reportValue = function (id, value) { + let block = this.getBlockById(id); + if (!block) { + throw "Tried to report value on block that does not exist."; + } + + ScratchBlocks.DropDownDiv.hideWithoutAnimation(); + ScratchBlocks.DropDownDiv.clearContent(); + + let contentDiv = ScratchBlocks.DropDownDiv.getContentDiv(); + + let valueReportBox = document.createElement("div"); + valueReportBox.setAttribute("class", "valueReportBox"); + valueReportBox.innerText = value; + if (!addon.self.disabled) { + // use to get focus and event priority + valueReportBox.setAttribute("tabindex", "0"); + // if the user pressed Ctrl+C, prevent propagation to Blockly + valueReportBox.onkeydown = (event) => { + if ((event.altKey || event.ctrlKey || event.metaKey) && event.code === "KeyC") { + event.stopPropagation(); + } + }; + + if (value.length !== 0) { + const copyButton = document.createElement("img"); + copyButton.setAttribute("role", "button"); + copyButton.setAttribute("tabindex", "0"); + copyButton.setAttribute("alt", msg("copy-to-clipboard")); + copyButton.setAttribute("src", addon.self.getResource("/copy.svg")) /* rewritten by pull.js */; + + copyButton.classList.add("sa-copy-reporter-icon"); + addon.tab.displayNoneWhileDisabled(copyButton); + + copyButton.onclick = () => navigator.clipboard.writeText(value); + valueReportBox.appendChild(copyButton); + } + } + + contentDiv.appendChild(valueReportBox); + + ScratchBlocks.DropDownDiv.setColour( + ScratchBlocks.Colours.valueReportBackground, + ScratchBlocks.Colours.valueReportBorder + ); + ScratchBlocks.DropDownDiv.showPositionedByBlock(this, block); + }; +} diff --git a/src/addons/addons/custom-block-shape/update-all-blocks.js b/src/addons/addons/custom-block-shape/update-all-blocks.js new file mode 100644 index 00000000000..35ce2377adc --- /dev/null +++ b/src/addons/addons/custom-block-shape/update-all-blocks.js @@ -0,0 +1,24 @@ +export function updateAllBlocks(vm, workspace, blockly) { + const eventsOriginallyEnabled = blockly.Events.isEnabled(); + blockly.Events.disable(); // Clears workspace right-click→undo (see SA/SA#6691) + + if (workspace) { + if (vm.editingTarget) { + vm.emitWorkspaceUpdate(); + } + const flyout = workspace.getFlyout(); + if (flyout) { + const flyoutWorkspace = flyout.getWorkspace(); + window.Blockly.Xml.clearWorkspaceAndLoadFromXml( + window.Blockly.Xml.workspaceToDom(flyoutWorkspace), + flyoutWorkspace + ); + workspace.getToolbox().refreshSelection(); + workspace.toolboxRefreshEnabled_ = true; + } + } + + // There's no particular reason for checking whether events were originally enabled. + // Unconditionally enabling events at this point could, in theory, cause bugs in the future. + if (eventsOriginallyEnabled) blockly.Events.enable(); // Re-enable events +} diff --git a/src/addons/addons/custom-block-shape/userscript.js b/src/addons/addons/custom-block-shape/userscript.js index 89f2bd0d296..54617285176 100644 --- a/src/addons/addons/custom-block-shape/userscript.js +++ b/src/addons/addons/custom-block-shape/userscript.js @@ -1,28 +1,15 @@ -export default async function ({ addon, global, console }) { +import { updateAllBlocks } from "./update-all-blocks.js"; + +export default async function ({ addon, console }) { var BlocklyInstance = await addon.tab.traps.getBlockly(); (function (Blockly) { const BlockSvg = BlocklyInstance.BlockSvg; + var originalDropdownObject = BlocklyInstance.FieldDropdown.prototype.positionArrow; var vm = addon.tab.traps.vm; const { GRID_UNIT } = BlockSvg; - function updateAllBlocks() { - const workspace = Blockly.getMainWorkspace(); - if (workspace) { - if (vm.editingTarget) { - vm.emitWorkspaceUpdate(); - } - const flyout = workspace.getFlyout(); - if (flyout) { - const flyoutWorkspace = flyout.getWorkspace(); - Blockly.Xml.clearWorkspaceAndLoadFromXml(Blockly.Xml.workspaceToDom(flyoutWorkspace), flyoutWorkspace); - workspace.getToolbox().refreshSelection(); - workspace.toolboxRefreshEnabled_ = true; - } - } - } - function applyChanges( paddingSize = addon.settings.get("paddingSize"), cornerSize = addon.settings.get("cornerSize"), @@ -137,24 +124,24 @@ export default async function ({ addon, global, console }) { BlockSvg.INPUT_SHAPE_HEXAGONAL_WIDTH = 12 * GRID_UNIT * multiplier; BlockSvg.INPUT_SHAPE_ROUND = "M " + - 4 * GRID_UNIT + + 4 * GRID_UNIT * multiplier + ",0" + " h " + - 4 * GRID_UNIT + + 4 * GRID_UNIT * multiplier + " a " + - 4 * GRID_UNIT + + 4 * GRID_UNIT * multiplier + " " + - 4 * GRID_UNIT + + 4 * GRID_UNIT * multiplier + " 0 0 1 0 " + - 8 * GRID_UNIT + + 8 * GRID_UNIT * multiplier + " h " + - -4 * GRID_UNIT + + -4 * GRID_UNIT * multiplier + " a " + - 4 * GRID_UNIT + + 4 * GRID_UNIT * multiplier + " " + - 4 * GRID_UNIT + + 4 * GRID_UNIT * multiplier + " 0 0 1 0 -" + - 8 * GRID_UNIT + + 8 * GRID_UNIT * multiplier + " z"; BlockSvg.INPUT_SHAPE_ROUND_WIDTH = 12 * GRID_UNIT * multiplier; BlockSvg.INPUT_SHAPE_HEIGHT = 8 * GRID_UNIT * multiplier; @@ -171,9 +158,9 @@ export default async function ({ addon, global, console }) { BlockSvg.SHAPE_IN_SHAPE_PADDING[1][2] = 5 * GRID_UNIT * multiplier; BlockSvg.SHAPE_IN_SHAPE_PADDING[1][3] = 5 * GRID_UNIT * multiplier; - var originalDropdownObject = BlocklyInstance.FieldDropdown.prototype.positionArrow; BlocklyInstance.FieldDropdown.prototype.positionArrow = function (x) { - this.arrowY_ = 11 * multiplier; + const arrowHeight = 12; + this.arrowY_ = (BlockSvg.FIELD_HEIGHT - arrowHeight) / 2 + 1; return originalDropdownObject.call(this, x); }; @@ -252,7 +239,7 @@ export default async function ({ addon, global, console }) { function applyAndUpdate(...args) { applyChanges(...args); - updateAllBlocks(); + updateAllBlocks(vm, addon.tab.traps.getWorkspace(), BlocklyInstance); } addon.settings.addEventListener("change", () => applyAndUpdate()); diff --git a/src/addons/addons/custom-block-text/_manifest_entry.js b/src/addons/addons/custom-block-text/_manifest_entry.js index 5b88cdacaed..2e824aa4787 100644 --- a/src/addons/addons/custom-block-text/_manifest_entry.js +++ b/src/addons/addons/custom-block-text/_manifest_entry.js @@ -1,43 +1,46 @@ /* generated by pull.js */ const manifest = { "name": "Customizable block text style", - "description": "Changes the thickness of the text on blocks and optionally adds a text shadow.", - "tags": [], + "description": "Lets you customize the style of text on blocks, including adjusting the size, using bold text, or adding a shadow.", + "tags": [ + "theme" + ], "credits": [ { "name": "Secret-chest" }, { "name": "_nix", - "link": "https://scratch.mit.edu/users/_nix" + "link": "https://scratch.mit.edu/users/_nix/" + }, + { + "name": "DNin01" } ], - "userstyles": [ + "userscripts": [ { - "url": "text-bold.css", - "if": { - "settings": { - "bold": true - } - } - }, - { - "url": "text-shadow.css", - "if": { - "settings": { - "shadow": true - } - } + "url": "userscript.js" } ], "settings": [ { + "dynamic": true, + "name": "Text size (%)", + "id": "size", + "type": "integer", + "min": 75, + "max": 200, + "default": 100 + }, + { + "dynamic": true, "name": "Bold text", "id": "bold", "type": "boolean", "default": false }, { + "dynamic": true, "name": "Shadow under text", "id": "shadow", "type": "boolean", @@ -45,7 +48,6 @@ const manifest = { } ], "dynamicDisable": true, - "updateUserstylesOnSettingsChange": true, "enabledByDefault": false }; export default manifest; diff --git a/src/addons/addons/custom-block-text/_runtime_entry.js b/src/addons/addons/custom-block-text/_runtime_entry.js index d2f33437d17..bc67131957e 100644 --- a/src/addons/addons/custom-block-text/_runtime_entry.js +++ b/src/addons/addons/custom-block-text/_runtime_entry.js @@ -1,7 +1,5 @@ /* generated by pull.js */ -import _css from "!css-loader!./text-bold.css"; -import _css2 from "!css-loader!./text-shadow.css"; +import _js from "./userscript.js"; export const resources = { - "text-bold.css": _css, - "text-shadow.css": _css2, + "userscript.js": _js, }; diff --git a/src/addons/addons/custom-block-text/text-bold.css b/src/addons/addons/custom-block-text/text-bold.css deleted file mode 100644 index 1dd8abbc51a..00000000000 --- a/src/addons/addons/custom-block-text/text-bold.css +++ /dev/null @@ -1,4 +0,0 @@ -.blocklyText, -.blocklyHtmlInput { - font-weight: bold; -} diff --git a/src/addons/addons/custom-block-text/text-shadow.css b/src/addons/addons/custom-block-text/text-shadow.css deleted file mode 100644 index 5b1999c0d01..00000000000 --- a/src/addons/addons/custom-block-text/text-shadow.css +++ /dev/null @@ -1,5 +0,0 @@ -/** Makes block text a little easier to read. **/ -.blocklyDraggable > .blocklyText, -.blocklyDraggable > g > text { - text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.4); -} diff --git a/src/addons/addons/custom-block-text/userscript.js b/src/addons/addons/custom-block-text/userscript.js new file mode 100644 index 00000000000..5a26b5c85e9 --- /dev/null +++ b/src/addons/addons/custom-block-text/userscript.js @@ -0,0 +1,98 @@ +import { updateAllBlocks } from "../custom-block-shape/update-all-blocks.js"; +import { clearTextWidthCache } from "../middle-click-popup/module.js"; + +export default async function ({ addon, console }) { + let currentTextSize = 100; + + const vm = addon.tab.traps.vm; + const blocklyInstance = await addon.tab.traps.getBlockly(); + + // Handling the CSS from here instead of a userstyle is much more stable, as + // there's no code outside of this addon dynamically toggling the styles. + // This way, we can clearly control the execution order of style operations. + // For example, we always want to call updateAllBlocks() after the styles + // were updated according to the user's settings, not before. + const fontSizeCss = document.createElement("style"); + // Be careful with specificity because we're adding this userstyle manually + // to the without checking if other styles are above or below. + fontSizeCss.textContent = ` + .blocklyText, + .blocklyHtmlInput { + font-size: calc(var(--customBlockText-sizeSetting) * 0.12pt) !important; + } + .blocklyFlyoutLabelText { + font-size: calc(var(--customBlockText-sizeSetting) * 0.14pt) !important; + }`; + fontSizeCss.disabled = true; + document.head.appendChild(fontSizeCss); + // + const boldCss = document.createElement("style"); + boldCss.textContent = ` + .blocklyText, + .blocklyHtmlInput { + font-weight: bold; + }`; + boldCss.disabled = true; + document.head.appendChild(boldCss); + // + const textShadowCss = document.createElement("style"); + textShadowCss.textContent = ` + .blocklyDraggable > .blocklyText, + .blocklyDraggable > g > text { + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.4); + }`; + textShadowCss.disabled = true; + document.head.appendChild(textShadowCss); + + const updateBlockly = () => { + blocklyInstance.Field.cacheWidths_ = {}; // Clear text width cache + // If font size has changed, middle click popup needs to clear it's cache too + clearTextWidthCache(); + + updateAllBlocks(vm, addon.tab.traps.getWorkspace(), blocklyInstance); + }; + + const setFontSize = (wantedSize) => { + if (wantedSize !== 100) document.documentElement.style.setProperty("--customBlockText-sizeSetting", wantedSize); + + if (wantedSize === 100) { + fontSizeCss.disabled = true; + currentTextSize = 100; + return; + } else if (wantedSize === currentTextSize) return; + + currentTextSize = wantedSize; + fontSizeCss.disabled = false; + }; + const setBold = (bool) => { + boldCss.disabled = !bool; + }; + const setTextShadow = (bool) => { + textShadowCss.disabled = !bool; + }; + + addon.settings.addEventListener("change", () => { + setFontSize(addon.settings.get("size")); + setBold(addon.settings.get("bold")); + setTextShadow(addon.settings.get("shadow")); + updateBlockly(); + }); + + addon.self.addEventListener("disabled", () => { + setFontSize(100); + setBold(false); + setTextShadow(false); + updateBlockly(); + }); + addon.self.addEventListener("reenabled", () => { + setFontSize(addon.settings.get("size")); + setBold(addon.settings.get("bold")); + setTextShadow(addon.settings.get("shadow")); + updateBlockly(); + }); + + setFontSize(addon.settings.get("size")); + setBold(addon.settings.get("bold")); + setTextShadow(addon.settings.get("shadow")); + updateBlockly(); +} diff --git a/src/addons/addons/custom-menu-bar/_manifest_entry.js b/src/addons/addons/custom-menu-bar/_manifest_entry.js new file mode 100644 index 00000000000..09198c341ce --- /dev/null +++ b/src/addons/addons/custom-menu-bar/_manifest_entry.js @@ -0,0 +1,70 @@ +/* generated by pull.js */ +const manifest = { + "name": "Customizable editor menu bar", + "description": "Allows you to hide specific editor menu bar items or remove their labels or icons.", + "credits": [ + { + "name": "philipp2007" + }, + { + "name": "CST1229", + "link": "https://scratch.mit.edu/users/CST1229/" + }, + { + "name": "lisa_wolfgang", + "link": "https://scratch.mit.edu/users/lisa_wolfgang/" + } + ], + "info": [ + { + "type": "notice", + "id": "small-screens", + "text": "The text labels may be automatically replaced by icons on smaller windows." + } + ], + "tags": [], + "settings": [ + { + "dynamic": true, + "name": "Show menu...", + "id": "menu-labels", + "type": "select", + "potentialValues": [ + { + "name": "Icons and labels", + "id": "both" + }, + { + "name": "Icons only", + "id": "icons" + }, + { + "name": "Labels only", + "id": "labels" + } + ], + "default": "both" + } + ], + "userstyles": [ + { + "url": "menu-icons.css", + "if": { + "settings": { + "menu-labels": "icons" + } + } + }, + { + "url": "menu-labels.css", + "if": { + "settings": { + "menu-labels": "labels" + } + } + } + ], + "dynamicDisable": true, + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/custom-menu-bar/_runtime_entry.js b/src/addons/addons/custom-menu-bar/_runtime_entry.js new file mode 100644 index 00000000000..b0f7a036831 --- /dev/null +++ b/src/addons/addons/custom-menu-bar/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _css from "!css-loader!./menu-icons.css"; +import _css2 from "!css-loader!./menu-labels.css"; +export const resources = { + "menu-icons.css": _css, + "menu-labels.css": _css2, +}; diff --git a/src/addons/addons/custom-menu-bar/menu-icons.css b/src/addons/addons/custom-menu-bar/menu-icons.css new file mode 100644 index 00000000000..57d72c3f4b3 --- /dev/null +++ b/src/addons/addons/custom-menu-bar/menu-icons.css @@ -0,0 +1,5 @@ +[class*="settings-menu_dropdown-label"], +[class*="menu-bar_collapsible-label"], +[class*="menu-bar_tutorials-label"] { + display: none; +} diff --git a/src/addons/addons/custom-menu-bar/menu-labels.css b/src/addons/addons/custom-menu-bar/menu-labels.css new file mode 100644 index 00000000000..6bb1948240c --- /dev/null +++ b/src/addons/addons/custom-menu-bar/menu-labels.css @@ -0,0 +1,18 @@ +[class*="menu-bar_file-group"] > [class*="menu-bar_hoverable"] > img { + display: none; +} + +[class*="menu-bar_hoverable"] { + justify-content: center; +} + +[class*="menu-bar_hoverable"] > span { + margin: 0; + padding: 0; +} + +@media (max-width: 1024px) { + [class*="menu-bar_file-group"] > [class*="menu-bar_hoverable"] > img { + display: block; + } +} diff --git a/src/addons/addons/custom-zoom/_manifest_entry.js b/src/addons/addons/custom-zoom/_manifest_entry.js index df7b75fe3d4..86d0a0a77cd 100644 --- a/src/addons/addons/custom-zoom/_manifest_entry.js +++ b/src/addons/addons/custom-zoom/_manifest_entry.js @@ -67,17 +67,17 @@ const manifest = { }, { "dynamic": true, - "name": "Autohide Animation duration", + "name": "Autohide Animation Speed", "id": "speed", "type": "select", "potentialValues": [ { "id": "none", - "name": "None" + "name": "Instant" }, { "id": "short", - "name": "Short" + "name": "Quick" }, { "id": "default", @@ -85,7 +85,7 @@ const manifest = { }, { "id": "long", - "name": "Long" + "name": "Slow" } ], "default": "default", diff --git a/src/addons/addons/custom-zoom/userscript.js b/src/addons/addons/custom-zoom/userscript.js index 26fc96e91a5..a69bd9a2ba2 100644 --- a/src/addons/addons/custom-zoom/userscript.js +++ b/src/addons/addons/custom-zoom/userscript.js @@ -1,13 +1,13 @@ -export default async function ({ addon, global, console }) { +export default async function ({ addon, console }) { await addon.tab.traps.getBlockly(); let controlsRect; let previousIsHovered = false; const speeds = { none: "0s", - short: "0.25s", - default: "0.5s", - long: "1s", + short: "0.2s", + default: "0.3s", + long: "0.5s", }; const customZoomAreaElement = document.createElement("div"); @@ -63,9 +63,22 @@ export default async function ({ addon, global, console }) { } } - await addon.tab.waitForElement(".blocklyZoom"); - update(); - addon.tab.addEventListener("urlChange", update); + if (document.querySelector('[class^="backpack_backpack-container"]')) { + window.dispatchEvent(new Event("resize")); + } addon.settings.addEventListener("change", update); window.addEventListener("resize", onResize); + while (true) { + await addon.tab.waitForElement(".blocklyZoom", { + markAsSeen: true, + reduxEvents: [ + "scratch-gui/mode/SET_PLAYER", + "scratch-gui/locales/SELECT_LOCALE", + "scratch-gui/theme/SET_THEME", + "fontsLoaded/SET_FONTS_LOADED", + ], + reduxCondition: (state) => !state.scratchGui.mode.isPlayerOnly, + }); + update(); + } } diff --git a/src/addons/addons/data-category-tweaks-v2/userscript.js b/src/addons/addons/data-category-tweaks-v2/userscript.js index 18cb77fe13a..bee0799fe35 100644 --- a/src/addons/addons/data-category-tweaks-v2/userscript.js +++ b/src/addons/addons/data-category-tweaks-v2/userscript.js @@ -1,4 +1,4 @@ -export default async function ({ addon, global, console, msg, safeMsg }) { +export default async function ({ addon, console, msg, safeMsg }) { const ScratchBlocks = await addon.tab.traps.getBlockly(); const SMALL_GAP = 8; @@ -136,7 +136,7 @@ export default async function ({ addon, global, console, msg, safeMsg }) { }; // Each time a new workspace is made, these callbacks are reset, so re-register whenever a flyout is shown. - // https://github.com/LLK/scratch-blocks/blob/61f02e4cac0f963abd93013842fe536ef24a0e98/core/flyout_base.js#L469 + // https://github.com/scratchfoundation/scratch-blocks/blob/61f02e4cac0f963abd93013842fe536ef24a0e98/core/flyout_base.js#L469 const oldShow = ScratchBlocks.Flyout.prototype.show; ScratchBlocks.Flyout.prototype.show = function (xmlList) { this.workspace_.registerToolboxCategoryCallback("VARIABLE", variableCategoryCallback); @@ -145,9 +145,9 @@ export default async function ({ addon, global, console, msg, safeMsg }) { }; // Use Scratch's extension category mechanism to replace the data category with our own. - // https://github.com/LLK/scratch-gui/blob/ddd2fa06f2afa140a46ec03be91796ded861e65c/src/containers/blocks.jsx#L344 - // https://github.com/LLK/scratch-gui/blob/2ceab00370ad7bd8ecdf5c490e70fd02152b3e2a/src/lib/make-toolbox-xml.js#L763 - // https://github.com/LLK/scratch-vm/blob/a0c11d6d8664a4f2d55632e70630d09ec6e9ae28/src/engine/runtime.js#L1381 + // https://github.com/scratchfoundation/scratch-gui/blob/ddd2fa06f2afa140a46ec03be91796ded861e65c/src/containers/blocks.jsx#L344 + // https://github.com/scratchfoundation/scratch-gui/blob/2ceab00370ad7bd8ecdf5c490e70fd02152b3e2a/src/lib/make-toolbox-xml.js#L763 + // https://github.com/scratchfoundation/scratch-vm/blob/a0c11d6d8664a4f2d55632e70630d09ec6e9ae28/src/engine/runtime.js#L1381 const originalGetBlocksXML = vm.runtime.getBlocksXML; vm.runtime.getBlocksXML = function (target) { const result = originalGetBlocksXML.call(this, target); @@ -159,18 +159,27 @@ export default async function ({ addon, global, console, msg, safeMsg }) { `, }); + result.map = (callback) => { + // Prevent Scratch from trying to change the color of the added category in high contrast mode. + // https://github.com/scratchfoundation/scratch-gui/blob/44eb578/src/containers/blocks.jsx#L358-L361 + // https://github.com/scratchfoundation/scratch-gui/blob/44eb578/src/lib/themes/blockHelpers.js#L18-L53 + return Array.prototype.map.call(result, (extension) => { + if (extension.id === "data") return extension; + else return callback(extension); + }); + }; } return result; }; diff --git a/src/addons/addons/debugger/_manifest_entry.js b/src/addons/addons/debugger/_manifest_entry.js index 86baac607aa..eea9afc67c0 100644 --- a/src/addons/addons/debugger/_manifest_entry.js +++ b/src/addons/addons/debugger/_manifest_entry.js @@ -2,11 +2,11 @@ const manifest = { "editorOnly": true, "name": "Debugger", - "description": "Adds a new \"debugger\" window to the editor. Allows for logging into the \"Logs\" tab of the debugger window using the \"log\", \"warn\" and \"error\" blocks.", + "description": "Adds a new \"debugger\" window to the editor. Allows for logging into the \"Logs\" tab of the debugger window using the \"log\", \"warn\" and \"error\" blocks. The \"breakpoint\" block will pause the project when executed. All running stacks of blocks can be viewed in the \"Threads\" tab of the debugger window, and when paused the \"Step\" button can be used to execute the next block. A graph of frames per second and number of clones can be viewed in the \"Performance\" tab.", "credits": [ { - "name": "Tacodude7729", - "link": "https://scratch.mit.edu/users/Tacodude7729/" + "name": "Tacodiva", + "link": "https://scratch.mit.edu/users/Tacodiva7729/" }, { "name": "GarboMuffin" @@ -54,8 +54,7 @@ const manifest = { "default": false }, { - "dynamic": true, - "name": "Log when max clones exceeded", + "name": "Log when clone limit exceeded", "id": "log_failed_clone_creation", "type": "boolean", "default": true @@ -66,11 +65,26 @@ const manifest = { "id": "log_broadcasts", "type": "boolean", "default": false + }, + { + "name": "Log when max list length exceeded", + "id": "log_max_list_length", + "type": "boolean", + "default": true + }, + { + "name": "Log invalid cloud variable values", + "id": "log_invalid_cloud_data", + "type": "boolean", + "default": false + }, + { + "name": "Animated graphs (may affect performance)", + "id": "fancy_graphs", + "type": "boolean", + "default": false } ], - "tags": [ - "beta" - ], - "enabledByDefault": false + "tags": [] }; export default manifest; diff --git a/src/addons/addons/debugger/_runtime_entry.js b/src/addons/addons/debugger/_runtime_entry.js index 76c9ca1f431..303ef4785d0 100644 --- a/src/addons/addons/debugger/_runtime_entry.js +++ b/src/addons/addons/debugger/_runtime_entry.js @@ -1,7 +1,31 @@ /* generated by pull.js */ import _js from "./userscript.js"; import _css from "!css-loader!./style.css"; +import _asset from "!url-loader!./icons/close.svg"; +import _asset2 from "!url-loader!./icons/debug.svg"; +import _asset3 from "!url-loader!./icons/delete.svg"; +import _asset4 from "!url-loader!./icons/download-white.svg"; +import _asset5 from "!url-loader!./icons/error.svg"; +import _asset6 from "!url-loader!./icons/logs.svg"; +import _asset7 from "!url-loader!./icons/performance.svg"; +import _asset8 from "!url-loader!./icons/play.svg"; +import _asset9 from "!url-loader!./icons/step.svg"; +import _asset10 from "!url-loader!./icons/subthread.svg"; +import _asset11 from "!url-loader!./icons/threads.svg"; +import _asset12 from "!url-loader!./icons/warning.svg"; export const resources = { "userscript.js": _js, "style.css": _css, + "icons/close.svg": _asset, + "icons/debug.svg": _asset2, + "icons/delete.svg": _asset3, + "icons/download-white.svg": _asset4, + "icons/error.svg": _asset5, + "icons/logs.svg": _asset6, + "icons/performance.svg": _asset7, + "icons/play.svg": _asset8, + "icons/step.svg": _asset9, + "icons/subthread.svg": _asset10, + "icons/threads.svg": _asset11, + "icons/warning.svg": _asset12, }; diff --git a/src/addons/addons/debugger/icons/debug-unread.svg b/src/addons/addons/debugger/icons/debug-unread.svg deleted file mode 100644 index 550973508a9..00000000000 --- a/src/addons/addons/debugger/icons/debug-unread.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/addons/addons/debugger/icons/logs.svg b/src/addons/addons/debugger/icons/logs.svg index 600241db608..b715183b669 100644 --- a/src/addons/addons/debugger/icons/logs.svg +++ b/src/addons/addons/debugger/icons/logs.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/addons/addons/debugger/icons/performance.svg b/src/addons/addons/debugger/icons/performance.svg index d139613d0af..9f27bf1a1eb 100644 --- a/src/addons/addons/debugger/icons/performance.svg +++ b/src/addons/addons/debugger/icons/performance.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/addons/addons/debugger/icons/threads.svg b/src/addons/addons/debugger/icons/threads.svg index 938dd32482a..1d9d596eafe 100644 --- a/src/addons/addons/debugger/icons/threads.svg +++ b/src/addons/addons/debugger/icons/threads.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/addons/addons/debugger/log-view.js b/src/addons/addons/debugger/log-view.js index 2bbc1f93630..a7ead9aa851 100644 --- a/src/addons/addons/debugger/log-view.js +++ b/src/addons/addons/debugger/log-view.js @@ -112,15 +112,30 @@ class LogView { } } - scrollIntoView(index) { - const distanceFromTop = index * this.rowHeight; + /** + * @param {number} index + * @param {number} [margin] # of pixels on top and bottom that are not considered part of the view + * @returns {boolean} + */ + isInView(index, margin = 0) { + const topEdgeFromTop = index * this.rowHeight; + const bottomEdgeFromTop = topEdgeFromTop + this.rowHeight; const viewportStart = this.scrollTop; - const viewportEnd = this.scrollTop + this.height; - const isInView = distanceFromTop > viewportStart && distanceFromTop < viewportEnd; - if (!isInView) { - this.scrollTop = distanceFromTop; - this.innerElement.scrollTop = distanceFromTop; - } + const viewportEnd = viewportStart + this.height; + return topEdgeFromTop >= viewportStart + margin && bottomEdgeFromTop <= viewportEnd - margin; + } + + /** + * @param {number} index + */ + scrollTo(index) { + // There is one extra pixel from this.endElement + const maximumScrollTop = Math.max(0, this.rows.length * this.rowHeight - this.height + 1); + + // Try to leave the item above slightly visible to make it more obvious to the user that they can + // still scroll. + this.scrollTop = Math.min(maximumScrollTop, index * this.rowHeight - this.rowHeight * 0.3); + this.innerElement.scrollTop = this.scrollTop; } _queueScrollToEnd() { diff --git a/src/addons/addons/debugger/logs.js b/src/addons/addons/debugger/logs.js index 83fbee25755..c4e59376add 100644 --- a/src/addons/addons/debugger/logs.js +++ b/src/addons/addons/debugger/logs.js @@ -1,34 +1,3 @@ -/* inserted by pull.js */ -import _twAsset0 from "!url-loader!./icons/close.svg"; -import _twAsset1 from "!url-loader!./icons/debug-unread.svg"; -import _twAsset2 from "!url-loader!./icons/debug.svg"; -import _twAsset3 from "!url-loader!./icons/delete.svg"; -import _twAsset4 from "!url-loader!./icons/download-white.svg"; -import _twAsset5 from "!url-loader!./icons/error.svg"; -import _twAsset6 from "!url-loader!./icons/logs.svg"; -import _twAsset7 from "!url-loader!./icons/performance.svg"; -import _twAsset8 from "!url-loader!./icons/play.svg"; -import _twAsset9 from "!url-loader!./icons/step.svg"; -import _twAsset10 from "!url-loader!./icons/subthread.svg"; -import _twAsset11 from "!url-loader!./icons/threads.svg"; -import _twAsset12 from "!url-loader!./icons/warning.svg"; -const _twGetAsset = (path) => { - if (path === "/icons/close.svg") return _twAsset0; - if (path === "/icons/debug-unread.svg") return _twAsset1; - if (path === "/icons/debug.svg") return _twAsset2; - if (path === "/icons/delete.svg") return _twAsset3; - if (path === "/icons/download-white.svg") return _twAsset4; - if (path === "/icons/error.svg") return _twAsset5; - if (path === "/icons/logs.svg") return _twAsset6; - if (path === "/icons/performance.svg") return _twAsset7; - if (path === "/icons/play.svg") return _twAsset8; - if (path === "/icons/step.svg") return _twAsset9; - if (path === "/icons/subthread.svg") return _twAsset10; - if (path === "/icons/threads.svg") return _twAsset11; - if (path === "/icons/warning.svg") return _twAsset12; - throw new Error(`Unknown asset: ${path}`); -}; - import downloadBlob from "../../libraries/common/cs/download-blob.js"; import LogView from "./log-view.js"; @@ -37,7 +6,7 @@ export default async function createLogsTab({ debug, addon, console, msg }) { const tab = debug.createHeaderTab({ text: msg("tab-logs"), - icon: _twGetAsset("/icons/logs.svg"), + icon: addon.self.getResource("/icons/logs.svg") /* rewritten by pull.js */, }); const logView = new LogView(); @@ -117,7 +86,7 @@ export default async function createLogsTab({ debug, addon, console, msg }) { const exportButton = debug.createHeaderButton({ text: msg("export"), - icon: _twGetAsset("/icons/download-white.svg"), + icon: addon.self.getResource("/icons/download-white.svg") /* rewritten by pull.js */, description: msg("export-desc"), }); const downloadText = (filename, text) => { @@ -139,7 +108,7 @@ export default async function createLogsTab({ debug, addon, console, msg }) { sprite: targetInfo ? targetInfo.name : msg("unknown-sprite"), type, content: text, - }[match]) + })[match] ) + "\n" ).repeat(count) ) @@ -149,7 +118,7 @@ export default async function createLogsTab({ debug, addon, console, msg }) { const trashButton = debug.createHeaderButton({ text: msg("clear"), - icon: _twGetAsset("/icons/delete.svg"), + icon: addon.self.getResource("/icons/delete.svg") /* rewritten by pull.js */, }); trashButton.element.addEventListener("click", () => { clearLogs(); diff --git a/src/addons/addons/debugger/module.js b/src/addons/addons/debugger/module.js index 80f906c6d03..00d6f751171 100644 --- a/src/addons/addons/debugger/module.js +++ b/src/addons/addons/debugger/module.js @@ -1,12 +1,14 @@ import EventTarget from "../../event-target.js"; /* inserted by pull.js */ -// https://github.com/LLK/scratch-vm/blob/bb352913b57991713a5ccf0b611fda91056e14ec/src/engine/thread.js#L198 +// https://github.com/scratchfoundation/scratch-vm/blob/bb352913b57991713a5ccf0b611fda91056e14ec/src/engine/thread.js#L198 const STATUS_RUNNING = 0; const STATUS_PROMISE_WAIT = 1; const STATUS_YIELD = 2; const STATUS_YIELD_TICK = 3; const STATUS_DONE = 4; +const REACT_INTERNAL_PREFIX = "__reactInternalInstance$"; + let vm; let paused = false; @@ -17,6 +19,8 @@ let steppingThread = null; const eventTarget = new EventTarget(); +let audioContextStateChange = Promise.resolve(); + export const isPaused = () => paused; const pauseThread = (thread) => { @@ -66,6 +70,9 @@ const compensateForTimePassedWhilePaused = (thread, pauseState) => { if (thread.timer) { thread.timer.startTime += vm.runtime.currentMSecs - pauseState.time; } + if (thread.compatibilityStackFrame && thread.compatibilityStackFrame.timer) { + thread.compatibilityStackFrame.timer.startTime += vm.runtime.currentMSecs - pauseState.time; + } const stackFrame = thread.peekStackFrame(); if (stackFrame && stackFrame.executionContext && stackFrame.executionContext.timer) { stackFrame.executionContext.timer.startTime += vm.runtime.currentMSecs - pauseState.time; @@ -90,13 +97,24 @@ const stepUnsteppedThreads = (lastSteppedThread) => { }; export const setPaused = (_paused) => { - if (paused !== _paused) { + const didChange = paused !== _paused; + if (didChange) { paused = _paused; eventTarget.dispatchEvent(new CustomEvent("change")); + + // TW: events for extensions + if (paused) { + vm.runtime.emit("RUNTIME_PAUSED"); + } else { + vm.runtime.emit("RUNTIME_UNPAUSED"); + } } - if (_paused) { - vm.runtime.audioEngine.audioContext.suspend(); + // Don't check didChange as new threads could've started that we need to pause. + if (paused) { + audioContextStateChange = audioContextStateChange.then(() => { + return vm.runtime.audioEngine.audioContext.suspend(); + }); if (!vm.runtime.ioDevices.clock._paused) { vm.runtime.ioDevices.clock.pause(); } @@ -107,8 +125,13 @@ export const setPaused = (_paused) => { setSteppingThread(activeThread); eventTarget.dispatchEvent(new CustomEvent("step")); } - } else { - vm.runtime.audioEngine.audioContext.resume(); + } + + // Only run unpausing logic when pause state changed to avoid unnecessary work + if (!paused && didChange) { + audioContextStateChange = audioContextStateChange.then(() => { + return vm.runtime.audioEngine.audioContext.resume(); + }); vm.runtime.ioDevices.clock.resume(); for (const thread of vm.runtime.threads) { const pauseState = pausedThreadState.get(thread); @@ -137,7 +160,7 @@ export const onSingleStep = (listener) => { export const getRunningThread = () => steppingThread; // A modified version of this function -// https://github.com/LLK/scratch-vm/blob/0e86a78a00db41af114df64255e2cd7dd881329f/src/engine/sequencer.js#L179 +// https://github.com/scratchfoundation/scratch-vm/blob/0e86a78a00db41af114df64255e2cd7dd881329f/src/engine/sequencer.js#L179 // Returns if we should continue executing this thread. const singleStepThread = (thread) => { if (thread.status === STATUS_DONE) { @@ -166,7 +189,7 @@ const singleStepThread = (thread) => { have access to that method, so we need to force the original stepThread to run execute for us then exit before it tries to run more blocks. So, we make `thread.blockGlowInFrame = ...` throw an exception, so this line: - https://github.com/LLK/scratch-vm/blob/bb352913b57991713a5ccf0b611fda91056e14ec/src/engine/sequencer.js#L214 + https://github.com/scratchfoundation/scratch-vm/blob/bb352913b57991713a5ccf0b611fda91056e14ec/src/engine/sequencer.js#L214 will end the function early. We then have to set it back to normal afterward. Why are we here just to suffer? @@ -352,12 +375,12 @@ export const singleStep = () => { eventTarget.dispatchEvent(new CustomEvent("step")); }; -export const setup = (_vm) => { +export const setup = (addon) => { if (vm) { return; } - vm = _vm; + vm = addon.tab.traps.vm; const originalStepThreads = vm.runtime.sequencer.stepThreads; vm.runtime.sequencer.stepThreads = function () { diff --git a/src/addons/addons/debugger/performance.js b/src/addons/addons/debugger/performance.js index 67174c54332..e8dde5e114b 100644 --- a/src/addons/addons/debugger/performance.js +++ b/src/addons/addons/debugger/performance.js @@ -1,44 +1,17 @@ -/* inserted by pull.js */ -import _twAsset0 from "!url-loader!./icons/close.svg"; -import _twAsset1 from "!url-loader!./icons/debug-unread.svg"; -import _twAsset2 from "!url-loader!./icons/debug.svg"; -import _twAsset3 from "!url-loader!./icons/delete.svg"; -import _twAsset4 from "!url-loader!./icons/download-white.svg"; -import _twAsset5 from "!url-loader!./icons/error.svg"; -import _twAsset6 from "!url-loader!./icons/logs.svg"; -import _twAsset7 from "!url-loader!./icons/performance.svg"; -import _twAsset8 from "!url-loader!./icons/play.svg"; -import _twAsset9 from "!url-loader!./icons/step.svg"; -import _twAsset10 from "!url-loader!./icons/subthread.svg"; -import _twAsset11 from "!url-loader!./icons/threads.svg"; -import _twAsset12 from "!url-loader!./icons/warning.svg"; -const _twGetAsset = (path) => { - if (path === "/icons/close.svg") return _twAsset0; - if (path === "/icons/debug-unread.svg") return _twAsset1; - if (path === "/icons/debug.svg") return _twAsset2; - if (path === "/icons/delete.svg") return _twAsset3; - if (path === "/icons/download-white.svg") return _twAsset4; - if (path === "/icons/error.svg") return _twAsset5; - if (path === "/icons/logs.svg") return _twAsset6; - if (path === "/icons/performance.svg") return _twAsset7; - if (path === "/icons/play.svg") return _twAsset8; - if (path === "/icons/step.svg") return _twAsset9; - if (path === "/icons/subthread.svg") return _twAsset10; - if (path === "/icons/threads.svg") return _twAsset11; - if (path === "/icons/warning.svg") return _twAsset12; - throw new Error(`Unknown asset: ${path}`); -}; - import { onPauseChanged, isPaused } from "./module.js"; +import "../../libraries/thirdparty/cs/chart.min.js"; export default async function createPerformanceTab({ debug, addon, console, msg }) { const vm = addon.tab.traps.vm; - await addon.tab.loadScript(_twGetAsset("/thirdparty/cs/chart.min.js")); + // In optimized graphs everything still looks good + const fancyGraphs = addon.settings.get("fancy_graphs"); + const lineWidth = fancyGraphs ? 1 : 2; + const lineColor = fancyGraphs ? "hsla(163, 85%, 40%, 0.5)" : "hsla(163, 85%, 40%, 1)"; const tab = debug.createHeaderTab({ text: msg("tab-performance"), - icon: _twGetAsset("/icons/performance.svg"), + icon: addon.self.getResource("/icons/performance.svg") /* rewritten by pull.js */, }); const content = Object.assign(document.createElement("div"), { @@ -60,7 +33,8 @@ export default async function createPerformanceTab({ debug, addon, console, msg const now = () => performance.now(); - const getMaxFps = () => Math.round(1000 / vm.runtime.currentStepTime); + // We'll guess that requestAnimationFrame is probably 60, but even if it's not, it's not a big deal. + const getMaxFps = () => vm.runtime.frameLoop.framerate === 0 ? 60 : vm.runtime.frameLoop.framerate; const NUMBER_OF_POINTS = 20; // An array like [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] @@ -76,16 +50,18 @@ export default async function createPerformanceTab({ debug, addon, console, msg datasets: [ { data: Array(NUMBER_OF_POINTS).fill(-1), - borderWidth: 1, - fill: true, + borderWidth: lineWidth, + fill: fancyGraphs, backgroundColor: "#29beb8", + borderColor: lineColor, }, ], }, options: { + animation: fancyGraphs, scales: { y: { - max: getMaxFps(), + suggestedMax: getMaxFps(), min: 0, }, }, @@ -112,16 +88,18 @@ export default async function createPerformanceTab({ debug, addon, console, msg datasets: [ { data: Array(NUMBER_OF_POINTS).fill(-1), - borderWidth: 1, - fill: true, + borderWidth: lineWidth, + fill: fancyGraphs, backgroundColor: "#29beb8", + borderColor: lineColor, }, ], }, options: { + animation: fancyGraphs, scales: { y: { - max: 300, + suggestedMax: 300, min: 0, }, }, @@ -163,7 +141,7 @@ export default async function createPerformanceTab({ debug, addon, console, msg fpsData.shift(); fpsData.push(Math.min(renderTimes.length, maxFps)); // Incase we switch between 30FPS and 60FPS, update the max height of the chart. - fpsChart.options.scales.y.max = maxFps; + fpsChart.options.scales.y.suggestedMax = maxFps; const clonesData = performanceClonesChart.data.datasets[0].data; clonesData.shift(); diff --git a/src/addons/addons/debugger/style.css b/src/addons/addons/debugger/style.css index 05e7618cf18..b6c1d14a208 100644 --- a/src/addons/addons/debugger/style.css +++ b/src/addons/addons/debugger/style.css @@ -1,3 +1,5 @@ +@import url("../editor-theme3/compatibility.css"); + [dir="ltr"] .sa-debugger-container { margin-right: 0.2rem; } @@ -6,21 +8,35 @@ margin-left: 0.2rem; } -.sa-debugger-small .sa-debugger-container { +.sa-small-stage [class*="gui_body-wrapper_"]:not(.sa-stage-hidden) .sa-debugger-container { display: none !important; } +.sa-debugger-container [class*="button_content_"] { + position: relative; +} + +.sa-debugger-unread::after { + content: ""; + position: absolute; + top: 1px; + right: 0; + display: block; + width: 6px; + height: 6px; + background-color: var(--editorDarkMode-highlightText, #855cd6); + border-radius: 50%; +} + .sa-debugger-interface { display: none; position: absolute; z-index: 492; - background-color: white; + background-color: var(--ui-modal-background); + color: var(--ui-modal-foreground); width: 565px; height: 25rem; } -[theme="dark"] .sa-debugger-interface { - background: var(--ui-primary); -} .sa-debugger-interface [class*="card_header-buttons_"] { background-color: #29beb8; @@ -62,7 +78,7 @@ background-color: white; background-clip: padding-box; border-color: rgba(0, 0, 0, 0.25); - color: #4d97ff; + color: var(--looks-secondary); } .sa-debugger-tabs li img { margin: 0; @@ -148,34 +164,18 @@ box-sizing: border-box; display: flex; align-items: center; - border-bottom: 1px solid rgba(0, 0, 0, 0.15); + border-bottom: 1px solid var(--ui-black-transparent); padding-left: 4px; font-family: monospace; - color: #000; -} -[theme="dark"] .sa-debugger-log { - color: var(--text-primary); - border-color: rgba(255, 255, 255, 0.15); } .sa-debugger-log[data-type="warn"] { - border-color: hsl(50deg, 100%, 75%); - color: hsl(39deg 100% 18%); - background-color: hsl(50deg 100% 95%); + border-color: hsla(56deg, 100%, 69%, 0.5); + background-color: hsla(56deg, 100%, 69%, 0.3); } .sa-debugger-log[data-type="error"] { - border-color: hsl(0deg 100% 92%); + border-color: hsla(0deg, 100%, 69%, 0.5); color: red; - background-color: hsl(0deg 100% 95%); -} -[theme="dark"] .sa-debugger-log[data-type="warn"] { - border-color: hsl(50deg, 100%, 15%); - color: hsl(39deg 100% 90%); - background-color: hsl(50deg 100% 10%); -} -[theme="dark"] .sa-debugger-log[data-type="error"] { - border-color: hsl(0deg 100% 15%); - color: hsl(0deg 100% 77%); - background-color: hsl(0deg 100% 10%); + background-color: hsla(0deg, 100%, 69%, 0.3); } .sa-debugger-log-repeats { @@ -185,9 +185,6 @@ padding: 1px 6px; margin-right: 4px; } -[theme="dark"] .sa-debugger-log-repeats { - color: var(--ui-primary); -} .sa-debugger-log-icon { width: 16px; @@ -216,12 +213,9 @@ margin-right: 4px; margin-left: auto; } -[theme="dark"] .sa-debugger-log-link { - color: inherit; -} .sa-debugger-log-link:hover { text-decoration: underline; - color: #4d97ff; + color: var(--looks-secondary); opacity: 1; } .sa-debugger-log-link-unknown { @@ -257,9 +251,10 @@ } .sa-debugger-block-preview { - color: white; padding: 1px 6px; margin-right: 4px; + background-color: var(--sa-block-colored-background); + color: var(--sa-block-text); } .sa-debugger-block-preview[data-shape="round"] { border-radius: 100px; @@ -277,11 +272,8 @@ display: block; text-align: center; height: 24px; - color: #2121bf; + color: var(--link-color); } .sa-debugger-compiler-warning[hidden] { display: none; } -[theme="dark"] .sa-debugger-compiler-warning { - color: #bdbdf9; -} diff --git a/src/addons/addons/debugger/threads.js b/src/addons/addons/debugger/threads.js index 14c73500b56..f771c70097b 100644 --- a/src/addons/addons/debugger/threads.js +++ b/src/addons/addons/debugger/threads.js @@ -1,34 +1,3 @@ -/* inserted by pull.js */ -import _twAsset0 from "!url-loader!./icons/close.svg"; -import _twAsset1 from "!url-loader!./icons/debug-unread.svg"; -import _twAsset2 from "!url-loader!./icons/debug.svg"; -import _twAsset3 from "!url-loader!./icons/delete.svg"; -import _twAsset4 from "!url-loader!./icons/download-white.svg"; -import _twAsset5 from "!url-loader!./icons/error.svg"; -import _twAsset6 from "!url-loader!./icons/logs.svg"; -import _twAsset7 from "!url-loader!./icons/performance.svg"; -import _twAsset8 from "!url-loader!./icons/play.svg"; -import _twAsset9 from "!url-loader!./icons/step.svg"; -import _twAsset10 from "!url-loader!./icons/subthread.svg"; -import _twAsset11 from "!url-loader!./icons/threads.svg"; -import _twAsset12 from "!url-loader!./icons/warning.svg"; -const _twGetAsset = (path) => { - if (path === "/icons/close.svg") return _twAsset0; - if (path === "/icons/debug-unread.svg") return _twAsset1; - if (path === "/icons/debug.svg") return _twAsset2; - if (path === "/icons/delete.svg") return _twAsset3; - if (path === "/icons/download-white.svg") return _twAsset4; - if (path === "/icons/error.svg") return _twAsset5; - if (path === "/icons/logs.svg") return _twAsset6; - if (path === "/icons/performance.svg") return _twAsset7; - if (path === "/icons/play.svg") return _twAsset8; - if (path === "/icons/step.svg") return _twAsset9; - if (path === "/icons/subthread.svg") return _twAsset10; - if (path === "/icons/threads.svg") return _twAsset11; - if (path === "/icons/warning.svg") return _twAsset12; - throw new Error(`Unknown asset: ${path}`); -}; - import { onPauseChanged, isPaused, singleStep, onSingleStep, getRunningThread } from "./module.js"; import LogView from "./log-view.js"; import Highlighter from "../editor-stepping/highlighter.js"; @@ -44,7 +13,7 @@ export default async function createThreadsTab({ debug, addon, console, msg }) { const tab = debug.createHeaderTab({ text: msg("tab-threads"), - icon: _twGetAsset("/icons/threads.svg"), + icon: addon.self.getResource("/icons/threads.svg") /* rewritten by pull.js */, }); const logView = new LogView(); @@ -133,6 +102,7 @@ export default async function createThreadsTab({ debug, addon, console, msg }) { const newRows = []; const threads = vm.runtime.threads; const visitedThreads = new Set(); + const runningThread = getRunningThread(); const createThreadInfo = (thread, depth) => { if (visitedThreads.has(thread)) { @@ -160,7 +130,6 @@ export default async function createThreadsTab({ debug, addon, console, msg }) { } const cacheInfo = threadInfoCache.get(thread); - const runningThread = getRunningThread(); const createBlockInfo = (block, stackFrameIdx) => { const blockId = block.id; if (!block) return; @@ -248,7 +217,7 @@ export default async function createThreadsTab({ debug, addon, console, msg }) { const stepButton = debug.createHeaderButton({ text: msg("step"), - icon: _twGetAsset("/icons/step.svg"), + icon: addon.self.getResource("/icons/step.svg") /* rewritten by pull.js */, description: msg("step-desc"), }); stepButton.element.addEventListener("click", () => { @@ -262,7 +231,32 @@ export default async function createThreadsTab({ debug, addon, console, msg }) { handlePauseChanged(isPaused()); onPauseChanged(handlePauseChanged); - onSingleStep(updateContent); + onSingleStep(() => { + updateContent(); + queueMicrotask(() => { + const runningIndex = logView.rows.findIndex((i) => i.running); + if (runningIndex !== -1 && !logView.isInView(runningIndex, logView.rowHeight)) { + // Try to show the entire thread if we can fit it on screen + let found = false; + const maxScrollback = Math.floor(logView.height / logView.rowHeight); + for (let i = 1; i < maxScrollback; i++) { + const checkIndex = runningIndex - i; + if (logView.rows[checkIndex].type === "thread-header") { + logView.scrollTo(checkIndex); + found = true; + break; + } + } + + if (!found) { + // We somehow couldn't find the header or the stack is too big for us to show the header + // and the current stack item at the same time. Settle for showing as much of the stack + // as we can while also leaving some room on the bottom for the stack to grow. + logView.scrollTo(Math.max(0, runningIndex - maxScrollback + 5)); + } + } + }); + }); const show = () => { logView.show(); diff --git a/src/addons/addons/debugger/userscript.js b/src/addons/addons/debugger/userscript.js index 28d9abe16ba..2a61a4b9c34 100644 --- a/src/addons/addons/debugger/userscript.js +++ b/src/addons/addons/debugger/userscript.js @@ -1,38 +1,9 @@ -/* inserted by pull.js */ -import _twAsset0 from "!url-loader!./icons/close.svg"; -import _twAsset1 from "!url-loader!./icons/debug-unread.svg"; -import _twAsset2 from "!url-loader!./icons/debug.svg"; -import _twAsset3 from "!url-loader!./icons/delete.svg"; -import _twAsset4 from "!url-loader!./icons/download-white.svg"; -import _twAsset5 from "!url-loader!./icons/error.svg"; -import _twAsset6 from "!url-loader!./icons/logs.svg"; -import _twAsset7 from "!url-loader!./icons/performance.svg"; -import _twAsset8 from "!url-loader!./icons/play.svg"; -import _twAsset9 from "!url-loader!./icons/step.svg"; -import _twAsset10 from "!url-loader!./icons/subthread.svg"; -import _twAsset11 from "!url-loader!./icons/threads.svg"; -import _twAsset12 from "!url-loader!./icons/warning.svg"; -const _twGetAsset = (path) => { - if (path === "/icons/close.svg") return _twAsset0; - if (path === "/icons/debug-unread.svg") return _twAsset1; - if (path === "/icons/debug.svg") return _twAsset2; - if (path === "/icons/delete.svg") return _twAsset3; - if (path === "/icons/download-white.svg") return _twAsset4; - if (path === "/icons/error.svg") return _twAsset5; - if (path === "/icons/logs.svg") return _twAsset6; - if (path === "/icons/performance.svg") return _twAsset7; - if (path === "/icons/play.svg") return _twAsset8; - if (path === "/icons/step.svg") return _twAsset9; - if (path === "/icons/subthread.svg") return _twAsset10; - if (path === "/icons/threads.svg") return _twAsset11; - if (path === "/icons/warning.svg") return _twAsset12; - throw new Error(`Unknown asset: ${path}`); -}; - import { isPaused, setPaused, onPauseChanged, setup } from "./module.js"; import createLogsTab from "./logs.js"; import createThreadsTab from "./threads.js"; -import DevtoolsUtils from "../editor-devtools/blockly/Utils.js"; +import createPerformanceTab from "./performance.js"; +import Utils from "../find-bar/blockly/Utils.js"; +import addSmallStageClass from "../../libraries/common/cs/small-stage.js"; const removeAllChildren = (element) => { while (element.firstChild) { @@ -40,8 +11,8 @@ const removeAllChildren = (element) => { } }; -export default async function ({ addon, global, console, msg }) { - setup(addon.tab.traps.vm); +export default async function ({ addon, console, msg }) { + setup(addon); let logsTab; const messagesLoggedBeforeLogsTabLoaded = []; @@ -108,18 +79,14 @@ export default async function ({ addon, global, console, msg }) { const debuggerButtonImage = document.createElement("img"); debuggerButtonImage.className = addon.tab.scratchClass("stage-header_stage-button-icon"); debuggerButtonImage.draggable = false; - debuggerButtonImage.src = _twGetAsset("/icons/debug.svg"); + debuggerButtonImage.src = addon.self.getResource("/icons/debug.svg") /* rewritten by pull.js */; debuggerButtonContent.appendChild(debuggerButtonImage); debuggerButton.appendChild(debuggerButtonContent); debuggerButtonOuter.appendChild(debuggerButton); debuggerButton.addEventListener("click", () => setInterfaceVisible(true)); const setHasUnreadMessage = (unreadMessage) => { - // setting image.src is slow, only do it when necessary - const newImage = _twGetAsset((unreadMessage ? "/icons/debug-unread.svg" : "/icons/debug.svg")); - if (debuggerButtonImage.src !== newImage) { - debuggerButtonImage.src = newImage; - } + debuggerButtonContent.classList.toggle("sa-debugger-unread", unreadMessage); }; const interfaceContainer = Object.assign(document.createElement("div"), { @@ -230,7 +197,7 @@ export default async function ({ addon, global, console, msg }) { const createHeaderTab = ({ text, icon }) => { const tab = document.createElement("li"); - const imageElement = Object.assign(document.createElement("img"), { + const imageElement = Object.assign(addon.tab.recolorable(), { src: icon, draggable: false, }); @@ -248,7 +215,7 @@ export default async function ({ addon, global, console, msg }) { const unpauseButton = createHeaderButton({ text: msg("unpause"), - icon: _twGetAsset("/icons/play.svg"), + icon: addon.self.getResource("/icons/play.svg") /* rewritten by pull.js */, }); unpauseButton.element.classList.add("sa-debugger-unpause"); unpauseButton.element.addEventListener("click", () => setPaused(false)); @@ -260,7 +227,7 @@ export default async function ({ addon, global, console, msg }) { const closeButton = createHeaderButton({ text: msg("close"), - icon: _twGetAsset("/icons/close.svg"), + icon: addon.self.getResource("/icons/close.svg") /* rewritten by pull.js */, }); closeButton.element.addEventListener("click", () => setInterfaceVisible(false)); @@ -349,17 +316,27 @@ export default async function ({ addon, global, console, msg }) { // Don't scroll to blocks in the flyout if (block.workspace.isFlyout) return; - new DevtoolsUtils(addon).scrollBlockIntoView(blockId); + new Utils(addon).scrollBlockIntoView(blockId); }; - // May be slightly incorrect in some edge cases. - const formatProcedureCode = (proccode) => proccode.replace(/%[nbs]/g, "()"); + /** + * @param {string} procedureCode + * @returns {string} + */ + const formatProcedureCode = (procedureCode) => { + const customBlock = addon.tab.getCustomBlock(procedureCode); + if (customBlock) { + procedureCode = customBlock.displayName; + } + // May be slightly incorrect in some edge cases. + return procedureCode.replace(/%[nbs]/g, "()"); + }; // May be slightly incorrect in some edge cases. const formatBlocklyBlockData = (jsonData) => { // For sample jsonData, see: - // https://github.com/LLK/scratch-blocks/blob/0bd1a17e66a779ec5d11f4a00c43784e3ac7a7b8/blocks_vertical/motion.js - // https://github.com/LLK/scratch-blocks/blob/0bd1a17e66a779ec5d11f4a00c43784e3ac7a7b8/blocks_vertical/control.js + // https://github.com/scratchfoundation/scratch-blocks/blob/0bd1a17e66a779ec5d11f4a00c43784e3ac7a7b8/blocks_vertical/motion.js + // https://github.com/scratchfoundation/scratch-blocks/blob/0bd1a17e66a779ec5d11f4a00c43784e3ac7a7b8/blocks_vertical/control.js const processSegment = (index) => { const message = jsonData[`message${index}`]; @@ -379,9 +356,11 @@ export default async function ({ addon, global, console, msg }) { } else if (type === "field_image") { const src = argInfo.src; if (src.endsWith("rotate-left.svg")) { - formattedMessage += "↩"; + formattedMessage += msg("/_general/blocks/anticlockwise"); } else if (src.endsWith("rotate-right.svg")) { - formattedMessage += "↪"; + formattedMessage += msg("/_general/blocks/clockwise"); + } else if (src.endsWith("green-flag.svg")) { + formattedMessage += msg("/_general/blocks/green-flag"); } } else { formattedMessage += "()"; @@ -443,7 +422,6 @@ export default async function ({ addon, global, console, msg }) { const customBlock = addon.tab.getCustomBlock(proccode); if (customBlock) { category = "addon-custom-block"; - color = customBlock.color; } else { category = "more"; } @@ -457,7 +435,7 @@ export default async function ({ addon, global, console, msg }) { ); category = "more"; } else { - // Try to call things like https://github.com/LLK/scratch-blocks/blob/0bd1a17e66a779ec5d11f4a00c43784e3ac7a7b8/blocks_vertical/operators.js#L36 + // Try to call things like https://github.com/scratchfoundation/scratch-blocks/blob/0bd1a17e66a779ec5d11f4a00c43784e3ac7a7b8/blocks_vertical/operators.js#L36 var jsonData; const fakeBlock = { jsonInit(data) { @@ -479,7 +457,7 @@ export default async function ({ addon, global, console, msg }) { if (!text) { return null; } - category = jsonData.category; + category = jsonData?.extensions.includes("default_extension_colors") ? "pen" : jsonData.category; const isStatement = (jsonData.extensions && (jsonData.extensions.includes("shape_statement") || @@ -488,38 +466,38 @@ export default async function ({ addon, global, console, msg }) { "previousStatement" in jsonData || "nextStatement" in jsonData; shape = isStatement ? "stacked" : "round"; - } - if (!text || !category) { - return null; + color = jsonData.colour; } - if (!color) { - const blocklyCategoryMap = { - "data-lists": "data_lists", - list: "data_lists", - events: "event", - }; - const blocklyColor = ScratchBlocks.Colours[blocklyCategoryMap[category] || category]; - if (blocklyColor) { - color = blocklyColor.primary; - } else { - // block probably belongs to an extension - color = ScratchBlocks.Colours.pen.primary; - } + if (!text) { + return null; } const element = document.createElement("span"); - element.className = "sa-debugger-block-preview"; + element.className = "sa-debugger-block-preview sa-block-color"; element.textContent = text; - element.style.backgroundColor = color; element.dataset.shape = shape; - // data-category is used for editor-theme3 compatibility - const colorCategoryMap = { - list: "data-lists", - more: "custom", - }; - element.dataset.category = colorCategoryMap[category] || category; + const COLOR_CLASSES = [ + "motion", + "looks", + "sounds", + "events", + "control", + "sensing", + "operators", + "data", + "data-lists", + "list", + "more", + "pen", + "addon-custom-block" + ]; + if (COLOR_CLASSES.includes(category)) { + element.classList.add(`sa-block-color-${category}`); + } else if (color) { + element.style.setProperty('--sa-block-colored-background', color); + } return element; }; @@ -541,7 +519,8 @@ export default async function ({ addon, global, console, msg }) { }; logsTab = await createLogsTab(api); const threadsTab = await createThreadsTab(api); - const allTabs = [logsTab, threadsTab]; + const performanceTab = await createPerformanceTab(api); + const allTabs = [logsTab, threadsTab, performanceTab]; for (const message of messagesLoggedBeforeLogsTabLoaded) { logsTab.addLog(...message); @@ -581,23 +560,7 @@ export default async function ({ addon, global, console, msg }) { } setActiveTab(allTabs[0]); - if (addon.tab.redux.state && addon.tab.redux.state.scratchGui.stageSize.stageSize === "small") { - document.body.classList.add("sa-debugger-small"); - } - document.addEventListener( - "click", - (e) => { - if (e.target.closest("[class*='stage-header_stage-button-first']:not(.sa-hide-stage-button)")) { - document.body.classList.add("sa-debugger-small"); - } else if ( - e.target.closest("[class*='stage-header_stage-button-last']") || - e.target.closest(".sa-hide-stage-button") - ) { - document.body.classList.remove("sa-debugger-small"); - } - }, - { capture: true } - ); + addSmallStageClass(); const ogGreenFlag = vm.runtime.greenFlag; vm.runtime.greenFlag = function (...args) { @@ -643,18 +606,22 @@ export default async function ({ addon, global, console, msg }) { }; while (true) { - await addon.tab.waitForElement('[class*="stage-header_stage-size-row"]', { - markAsSeen: true, - reduxEvents: [ - "scratch-gui/mode/SET_PLAYER", - "scratch-gui/mode/SET_FULL_SCREEN", - "fontsLoaded/SET_FONTS_LOADED", - "scratch-gui/locales/SELECT_LOCALE", - ], - }); + await addon.tab.waitForElement( + '[class^="stage-header_stage-size-row"], [class^="stage-header_fullscreen-buttons-row_"]', + { + markAsSeen: true, + reduxEvents: [ + "scratch-gui/mode/SET_PLAYER", + "scratch-gui/mode/SET_FULL_SCREEN", + "fontsLoaded/SET_FONTS_LOADED", + "scratch-gui/locales/SELECT_LOCALE", + ], + } + ); if (addon.tab.editorMode === "editor") { addon.tab.appendToSharedSpace({ space: "stageHeader", element: debuggerButtonOuter, order: 0 }); } else { + debuggerButtonOuter.remove(); setInterfaceVisible(false); } } diff --git a/src/addons/addons/default-costume-editor-color/_manifest_entry.js b/src/addons/addons/default-costume-editor-color/_manifest_entry.js index 65f40aeb7c1..8c9dcfd967d 100644 --- a/src/addons/addons/default-costume-editor-color/_manifest_entry.js +++ b/src/addons/addons/default-costume-editor-color/_manifest_entry.js @@ -40,7 +40,7 @@ const manifest = { }, { "dynamic": true, - "name": "Use previous color instead of default when switching tools", + "name": "Use previous color instead of resetting after switching tools", "id": "persistence", "type": "boolean", "default": true diff --git a/src/addons/addons/default-costume-editor-color/userscript.js b/src/addons/addons/default-costume-editor-color/userscript.js index 1e63be7309a..a91d24a7cde 100644 --- a/src/addons/addons/default-costume-editor-color/userscript.js +++ b/src/addons/addons/default-costume-editor-color/userscript.js @@ -1,4 +1,4 @@ -export default async function ({ addon, global, console, msg }) { +export default async function ({ addon, console, msg }) { // We don"t *need* to wait for the costume editor to be opened, but redux updates take a non-zero // amount of CPU time so let's delay that for as long as possible. await addon.tab.traps.getPaper(); @@ -37,15 +37,15 @@ export default async function ({ addon, global, console, msg }) { }; // Special value Scratch uses as color when objects with different colors are selected - // https://github.com/LLK/scratch-paint/blob/6733e20b56f52d139f9885952a57c7da012a542f/src/helper/style-path.js#L10 + // https://github.com/scratchfoundation/scratch-paint/blob/6733e20b56f52d139f9885952a57c7da012a542f/src/helper/style-path.js#L10 const MIXED = "scratch-paint/style-path/mixed"; const SCRATCH_DEFAULT_FILL = parseColor("#9966FF"); const SCRATCH_DEFAULT_STROKE = parseColor("#000000"); const TOOL_INFO = Object.assign(Object.create(null), { - // Tool names and gradient info defined in https://github.com/LLK/scratch-paint/blob/develop/src/lib/modes.js - // Search for activateTool() in matching file in https://github.com/LLK/scratch-paint/tree/develop/src/containers + // Tool names and gradient info defined in https://github.com/scratchfoundation/scratch-paint/blob/develop/src/lib/modes.js + // Search for activateTool() in matching file in https://github.com/scratchfoundation/scratch-paint/tree/develop/src/containers BRUSH: { resetsFill: true, }, @@ -262,8 +262,8 @@ export default async function ({ addon, global, console, msg }) { } else { // In non-persistence, we'll only apply the default colors when Scratch resets them to maintain the same behavior. // We have to do this weird redux trick because we can't modify these constants: - // https://github.com/LLK/scratch-paint/blob/6733e20b56f52d139f9885952a57c7da012a542f/src/reducers/fill-style.js#L7 - // https://github.com/LLK/scratch-paint/blob/6733e20b56f52d139f9885952a57c7da012a542f/src/reducers/stroke-style.js#L7 + // https://github.com/scratchfoundation/scratch-paint/blob/6733e20b56f52d139f9885952a57c7da012a542f/src/reducers/fill-style.js#L7 + // https://github.com/scratchfoundation/scratch-paint/blob/6733e20b56f52d139f9885952a57c7da012a542f/src/reducers/stroke-style.js#L7 const oldFillColor = fillStyle.get(detail.prev); if (oldFillColor.primary === null || oldFillColor.primary === MIXED) { const newFillColor = fillStyle.get(); diff --git a/src/addons/addons/disable-paste-offset/_manifest_entry.js b/src/addons/addons/disable-paste-offset/_manifest_entry.js index dbc3897abb9..29313e9d7c0 100644 --- a/src/addons/addons/disable-paste-offset/_manifest_entry.js +++ b/src/addons/addons/disable-paste-offset/_manifest_entry.js @@ -4,6 +4,12 @@ const manifest = { "noTranslations": true, "name": "Do not shift pasted items", "description": "Paste copied items at their original position instead of shifted slightly in the costume editor.", + "info": [ + { + "text": "This behavior can also be achieved without this addon by Alt+Clicking the item.", + "id": "vanilla" + } + ], "credits": [ { "name": "GarboMuffin" diff --git a/src/addons/addons/disable-stage-drag-select/_manifest_entry.js b/src/addons/addons/disable-stage-drag-select/_manifest_entry.js index 47868d5c652..76c81a17256 100644 --- a/src/addons/addons/disable-stage-drag-select/_manifest_entry.js +++ b/src/addons/addons/disable-stage-drag-select/_manifest_entry.js @@ -11,6 +11,10 @@ const manifest = { }, { "name": "GarboMuffin" + }, + { + "name": "Mr_MPH", + "link": "https://scratch.mit.edu/users/Mr_MPH/" } ], "userscripts": [ @@ -18,6 +22,14 @@ const manifest = { "url": "userscript.js" } ], + "settings": [ + { + "name": "Allow dragging while project is stopped", + "id": "drag_while_stopped", + "type": "boolean", + "default": false + } + ], "tags": [], "enabledByDefault": false, "dynamicDisable": true diff --git a/src/addons/addons/disable-stage-drag-select/userscript.js b/src/addons/addons/disable-stage-drag-select/userscript.js index d679a26a142..c7272fdd9fe 100644 --- a/src/addons/addons/disable-stage-drag-select/userscript.js +++ b/src/addons/addons/disable-stage-drag-select/userscript.js @@ -15,7 +15,10 @@ export default async ({ addon, console }) => { // Do not focus sprite after dragging it const oldStopDrag = vm.stopDrag; vm.stopDrag = function (...args) { - if (shiftKeyPressed || addon.self.disabled) return oldStopDrag.call(this, ...args); + const allowDrag = + shiftKeyPressed || + (addon.settings.get("drag_while_stopped") && !addon.tab.redux.state.scratchGui.vmStatus.running); + if (allowDrag || addon.self.disabled) return oldStopDrag.call(this, ...args); const setEditingTarget = this.setEditingTarget; this.setEditingTarget = () => {}; const r = oldStopDrag.call(this, ...args); @@ -26,8 +29,11 @@ export default async ({ addon, console }) => { // Don't let the editor drag sprites that aren't marked as draggable const oldGetTargetIdForDrawableId = vm.getTargetIdForDrawableId; vm.getTargetIdForDrawableId = function (...args) { + const allowDrag = + shiftKeyPressed || + (addon.settings.get("drag_while_stopped") && !addon.tab.redux.state.scratchGui.vmStatus.running); const targetId = oldGetTargetIdForDrawableId.call(this, ...args); - if (shiftKeyPressed || addon.self.disabled) return targetId; + if (allowDrag || addon.self.disabled) return targetId; if (targetId !== null) { const target = this.runtime.getTargetById(targetId); if (target && !target.draggable) { diff --git a/src/addons/addons/drag-drop/_manifest_entry.js b/src/addons/addons/drag-drop/_manifest_entry.js index 113a7809b49..db515339a1b 100644 --- a/src/addons/addons/drag-drop/_manifest_entry.js +++ b/src/addons/addons/drag-drop/_manifest_entry.js @@ -13,11 +13,6 @@ const manifest = { "url": "userscript.js" } ], - "userstyles": [ - { - "url": "dragged-over.css" - } - ], "settings": [ { "dynamic": true, diff --git a/src/addons/addons/drag-drop/_runtime_entry.js b/src/addons/addons/drag-drop/_runtime_entry.js index 5d272308e0c..bc67131957e 100644 --- a/src/addons/addons/drag-drop/_runtime_entry.js +++ b/src/addons/addons/drag-drop/_runtime_entry.js @@ -1,7 +1,5 @@ /* generated by pull.js */ import _js from "./userscript.js"; -import _css from "!css-loader!./dragged-over.css"; export const resources = { "userscript.js": _js, - "dragged-over.css": _css, }; diff --git a/src/addons/addons/drag-drop/dragged-over.css b/src/addons/addons/drag-drop/dragged-over.css deleted file mode 100644 index cf72144922d..00000000000 --- a/src/addons/addons/drag-drop/dragged-over.css +++ /dev/null @@ -1,13 +0,0 @@ -/* Based on the `stage-selector_raised` class */ -div[class*="stage-selector_header_"], -div[class*="sprite-selector_sprite-selector"], -div[class*="sprite-info_sprite-info"], -div[class*="monitor_list-body"] { - transition: background-color 0.25s ease; -} -.sa-dragged-over, -.sa-dragged-over div[class*="stage-selector_header_"], -.sa-dragged-over div[class*="sprite-info_sprite-info"], -.sa-dragged-over div[class*="monitor_list-body"] { - background-color: hsla(0, 100%, 77%, 1) !important; -} diff --git a/src/addons/addons/drag-drop/userscript.js b/src/addons/addons/drag-drop/userscript.js index 9d0cb65f28b..e6e6feee6cd 100644 --- a/src/addons/addons/drag-drop/userscript.js +++ b/src/addons/addons/drag-drop/userscript.js @@ -1,5 +1,45 @@ -export default async function ({ addon, global, console }) { - const DRAG_OVER_CLASS = "sa-dragged-over"; +export default async function ({ addon, console }) { + /** @type {HTMLElement|null} */ + let currentDraggingElement = null; + + /** @type {WeakMap} */ + const allAnimations = new WeakMap(); + + const FORWARD = 1; + const REVERSE = -1; + + /** + * @param {HTMLElement} element + * @param {number} direction + * @returns {Animation} + */ + const animateElement = (element, direction) => { + /** @type {Animation} */ + let animation; + if (allAnimations.has(element)) { + animation = allAnimations.get(element); + } else { + animation = element.animate( + [ + { + // this object intentionally empty so the element animates from whatever its default value + // is in CSS. + }, + { + backgroundColor: "hsla(0, 100%, 77%, 1)", + }, + ], + { + duration: 250, + fill: "forwards", + easing: "ease", + } + ); + allAnimations.set(element, animation); + } + + animation.playbackRate = direction; + }; const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set; const reactAwareSetValue = (el, value) => { @@ -42,7 +82,7 @@ export default async function ({ addon, global, console }) { // Sometimes the menu flashes open, so force hide it. contextMenu.style.display = "none"; // Override DOM methods to import the text file directly - // See: https://github.com/LLK/scratch-gui/blob/develop/src/lib/import-csv.js#L21-L22 + // See: https://github.com/scratchfoundation/scratch-gui/blob/develop/src/lib/import-csv.js#L21-L22 const appendChild = document.body.appendChild; document.body.appendChild = (fileInput) => { // Restore appendChild to @@ -77,7 +117,7 @@ export default async function ({ addon, global, console }) { callback = async (files) => { const text = (await Promise.all(Array.from(files, (file) => file.text()))) .join("") - // Match pasting behaviour: remove all newline characters at the end + // Match pasting behavior: remove all newline characters at the end .replace(/[\r\n]+$/, "") .replace(/\r?\n|\r/g, " "); const selectionStart = el.selectionStart; @@ -91,10 +131,21 @@ export default async function ({ addon, global, console }) { e.preventDefault(); - if (el.classList.contains(DRAG_OVER_CLASS)) { + if (el === currentDraggingElement) { return; } - el.classList.add(DRAG_OVER_CLASS); + currentDraggingElement = el; + + /** @type {HTMLElement[]} */ + const elementsToAnimate = [ + el, + el.querySelector('div[class*="stage-selector_header_"]'), + el.querySelector('div[class*="sprite-info_sprite-info"]'), + el.querySelector('div[class*="monitor_list-body"]'), + ].filter((i) => i); + for (const el of elementsToAnimate) { + animateElement(el, FORWARD); + } const handleDrop = (e) => { e.preventDefault(); @@ -116,10 +167,15 @@ export default async function ({ addon, global, console }) { }; const cleanup = () => { - el.classList.remove(DRAG_OVER_CLASS); + currentDraggingElement = null; + el.removeEventListener("dragover", handleDragOver); el.removeEventListener("dragleave", handleDragLeave); el.removeEventListener("drop", handleDrop); + + for (const el of elementsToAnimate) { + animateElement(el, REVERSE); + } }; el.addEventListener("dragover", handleDragOver); diff --git a/src/addons/addons/editor-buttons-reverse-order/userstyle.css b/src/addons/addons/editor-buttons-reverse-order/userstyle.css index f72edc66ce0..e3eed8adeea 100644 --- a/src/addons/addons/editor-buttons-reverse-order/userstyle.css +++ b/src/addons/addons/editor-buttons-reverse-order/userstyle.css @@ -1,5 +1,7 @@ [class*="stage-header_stage-menu-wrapper"], -[class*="stage-header_stage-size-row"] { +[class*="controls_controls-container_"], +[class*="stage-header_stage-size-row"], +.sa-vol-slider-inner { flex-direction: row-reverse; } @@ -17,8 +19,35 @@ margin-right: 0.2rem; } -[class*="green-flag_green-flag_"], -[class*="stop-all_stop-all_"], +[class*="green-flag_green-flag_"] { + order: -1; +} + .pause-btn { - order: 1; + order: -2; +} + +[class*="stop-all_stop-all_"] { + order: -3; +} + +[dir="ltr"] .sa-vol-slider-input { + margin-right: 3px; +} + +[dir="rtl"] .sa-vol-slider-input { + margin-left: 3px; +} + +/* The following rules are for the hover state of the + volume slider. If the slider is always shown, it will + have position: static, so these properties will have + no effect. */ +[dir="ltr"] .sa-vol-slider-inner { + left: auto; + right: 0.25rem; +} +[dir="rtl"] .sa-vol-slider-inner { + right: auto; + left: 0.25rem; } diff --git a/src/addons/addons/editor-colored-context-menus/userscript.css b/src/addons/addons/editor-colored-context-menus/userscript.css index 845885f4f8c..c330f15d86e 100644 --- a/src/addons/addons/editor-colored-context-menus/userscript.css +++ b/src/addons/addons/editor-colored-context-menus/userscript.css @@ -1,10 +1,10 @@ .sa-contextmenu-colored .blocklyContextMenu { - background-color: var(--sa-contextmenu-bg) !important; - border-color: var(--sa-contextmenu-border) !important; + background-color: var(--sa-contextmenu-bg); + border-color: var(--sa-contextmenu-border); } .sa-contextmenu-colored .blocklyContextMenu .goog-menuitem-highlight, .sa-contextmenu-colored .s3dev-mi:hover { - background-color: var(--sa-contextmenu-hover) !important; + background-color: #0001; border-color: transparent !important; } .sa-contextmenu-colored .blocklyContextMenu .goog-menuitem[style*="border-top"] { diff --git a/src/addons/addons/editor-colored-context-menus/userscript.js b/src/addons/addons/editor-colored-context-menus/userscript.js index 764d4700e15..fec755528b7 100644 --- a/src/addons/addons/editor-colored-context-menus/userscript.js +++ b/src/addons/addons/editor-colored-context-menus/userscript.js @@ -1,4 +1,6 @@ -export default async function ({ addon, global, console }) { +import { removeAlpha } from "../../libraries/common/cs/text-color.esm.js"; + +export default async function ({ addon, console }) { const ScratchBlocks = await addon.tab.traps.getBlockly(); const applyContextMenuColor = (block) => { @@ -10,16 +12,13 @@ export default async function ({ addon, global, console }) { if (!background) { return; } - const style = window.getComputedStyle(background); - const fill = style.getPropertyValue("fill"); - const border = style.getPropertyValue("stroke") || "#0003"; - const textColor = style.getPropertyValue("--sa-block-text-color") || "#fff"; - const hoverBg = style.getPropertyValue("--sa-block-secondary-color") || "#0001"; + const fill = removeAlpha(background.getAttribute("fill")); + const border = background.getAttribute("stroke") || "#0003"; + const text = ScratchBlocks.Colours.text; widgetDiv.classList.add("sa-contextmenu-colored"); widgetDiv.style.setProperty("--sa-contextmenu-bg", fill); widgetDiv.style.setProperty("--sa-contextmenu-border", border); - widgetDiv.style.setProperty("--sa-contextmenu-text", textColor); - widgetDiv.style.setProperty("--sa-contextmenu-hover", hoverBg); + widgetDiv.style.setProperty("--sa-contextmenu-text", text); }; const originalHandleRightClick = ScratchBlocks.Gesture.prototype.handleRightClick; diff --git a/src/addons/addons/editor-comment-previews/userscript.js b/src/addons/addons/editor-comment-previews/userscript.js index 63c22e1a142..d132d6539de 100644 --- a/src/addons/addons/editor-comment-previews/userscript.js +++ b/src/addons/addons/editor-comment-previews/userscript.js @@ -1,4 +1,4 @@ -export default async function ({ addon, global, console }) { +export default async function ({ addon, console }) { const vm = addon.tab.traps.vm; const updateStyles = () => { @@ -32,6 +32,7 @@ export default async function ({ addon, global, console }) { previewInner.classList.add("sa-comment-preview-hidden"); updateStyles(); addon.settings.addEventListener("change", updateStyles); + addon.tab.displayNoneWhileDisabled(previewOuter); previewOuter.appendChild(previewInner); document.body.appendChild(previewOuter); diff --git a/src/addons/addons/editor-comment-previews/userstyle.css b/src/addons/addons/editor-comment-previews/userstyle.css index 7bd0effd112..2f3f0251e11 100644 --- a/src/addons/addons/editor-comment-previews/userstyle.css +++ b/src/addons/addons/editor-comment-previews/userstyle.css @@ -33,7 +33,10 @@ } .sa-comment-preview-fade { - transition: opacity 0.1s, filter 0.1s, transform 0.1s linear; + transition: + opacity 0.1s, + filter 0.1s, + transform 0.1s linear; } .sa-comment-preview-hidden { diff --git a/src/addons/addons/editor-compact/_manifest_entry.js b/src/addons/addons/editor-compact/_manifest_entry.js new file mode 100644 index 00000000000..4cdcbf2264e --- /dev/null +++ b/src/addons/addons/editor-compact/_manifest_entry.js @@ -0,0 +1,64 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Compact editor", + "description": "Decreases the size of buttons, input fields, the menu bar, and other elements in the editor, making more space for components such as the code area, the costume editor, and costume previews, as was the case in Scratch 2.0.", + "tags": [ + "theme", + "beta" + ], + "credits": [ + { + "name": "lisa_wolfgang", + "link": "https://scratch.mit.edu/users/lisa_wolfgang/" + }, + { + "name": "Maximouse", + "link": "https://scratch.mit.edu/users/Maximouse/" + } + ], + "info": [ + { + "id": "hide-icons-update", + "text": "To hide menu bar icons, use the \"Customizable menu bar\" addon." + } + ], + "userstyles": [ + { + "url": "userstyle.css" + }, + { + "url": "hide-labels.css", + "if": { + "settings": { + "hideLabels": true + } + } + }, + { + "url": "sprite-properties.css", + "if": { + "addonEnabled": [ + "sprite-properties" + ] + } + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "settings": [ + { + "id": "hideLabels", + "type": "boolean", + "name": "Hide button labels in costume and sound editor", + "default": true + } + ], + "dynamicDisable": true, + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/editor-compact/_runtime_entry.js b/src/addons/addons/editor-compact/_runtime_entry.js new file mode 100644 index 00000000000..f44cfbba356 --- /dev/null +++ b/src/addons/addons/editor-compact/_runtime_entry.js @@ -0,0 +1,13 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./userstyle.css"; +import _css2 from "!css-loader!./hide-labels.css"; +import _css3 from "!css-loader!./sprite-properties.css"; +import _asset from "!url-loader!./close.svg"; +export const resources = { + "userscript.js": _js, + "userstyle.css": _css, + "hide-labels.css": _css2, + "sprite-properties.css": _css3, + "close.svg": _asset, +}; diff --git a/src/addons/addons/editor-compact/close.svg b/src/addons/addons/editor-compact/close.svg new file mode 100644 index 00000000000..9e5509e76a2 --- /dev/null +++ b/src/addons/addons/editor-compact/close.svg @@ -0,0 +1 @@ +icon--add \ No newline at end of file diff --git a/src/addons/addons/editor-compact/force-tooltip-update.js b/src/addons/addons/editor-compact/force-tooltip-update.js new file mode 100644 index 00000000000..d9f88eb5238 --- /dev/null +++ b/src/addons/addons/editor-compact/force-tooltip-update.js @@ -0,0 +1,7 @@ +import EventTarget from "../../event-target.js"; /* inserted by pull.js */ + +export const eventTarget = new EventTarget(); + +export function updateTooltips() { + eventTarget.dispatchEvent(new CustomEvent("update")); +} diff --git a/src/addons/addons/editor-compact/hide-labels.css b/src/addons/addons/editor-compact/hide-labels.css new file mode 100644 index 00000000000..093b801137c --- /dev/null +++ b/src/addons/addons/editor-compact/hide-labels.css @@ -0,0 +1,63 @@ +/* Asset editor */ +[class*="asset-panel_detail-area"] [class*="labeled-icon-button_mod-edit-field"], +[class*="sound-editor_tool-button_"], +[class*="sound-editor_row-reverse_"] > [class*="icon-button_container_"] { + min-width: 0; + margin-right: 2px; + padding: calc(0.125rem - 1px); + border: 1px solid var(--editorDarkMode-border, hsla(0, 0%, 0%, 0.15)); + border-radius: 0.25rem; +} +[class*="sound-editor_tool-button"] img { + width: 20px; +} +[class*="asset-panel_detail-area"] [class*="label_input-label"], +[class*="asset-panel_detail-area"] [class*="labeled-icon-button_edit-field-title"], +[class*="icon-button_title_"] { + display: none; +} +[dir="ltr"] [class*="paint-editor_mod-dashed-border_"], +[dir="rtl"] [class*="paint-editor_mod-dashed-border_"] { + border: none; +} +[class*="mode-tools_mod-labeled-icon-height"], +[class*="paint-editor_mod-labeled-icon-height"] { + height: auto; +} +[class*="paint-editor_row_"] > [class*="tools_row_"], +[class*="paint-editor_mod-mode-tools_"] > [class*="mode-tools_mode-tools_"] { + gap: calc(0.25rem); +} +[dir="ltr"] [class*="fixed-tools_mod-dashed-border_"], +[dir="rtl"] [class*="fixed-tools_mod-dashed-border_"], +[dir="ltr"] [class*="mode-tools_mod-dashed-border_"], +[dir="rtl"] [class*="mode-tools_mod-dashed-border_"], +[dir="ltr"] [class*="sound-editor_input-group_"], +[dir="rtl"] [class*="sound-editor_input-group_"], +[dir="rtl"] [class*="sound-editor_row-reverse_"] [class*="sound-editor_input-group_"] { + margin: 0; + border: 0; + padding: 0; +} +[class*="sound-editor_input-group_"] { + gap: 2px; +} +[class*="sound-editor_input-group_"] > * { + margin: 0; +} +[class*="sound-editor_row_"] > [class*="icon-button_container_"] { + margin-left: 1rem; +} +[class*="sound-editor_tool-button"], +[class*="sound-editor_row-reverse_"] > [class*="icon-button_container_"] { + width: 24px; + height: 24px; + flex-basis: auto; +} +[class*="mode-tools_mode-tools"] { + min-height: 0; +} + +[class*="sound-editor_row-reverse_"] > [class*="icon-button_container_"] { + margin: 0; +} diff --git a/src/addons/addons/editor-compact/sprite-properties.css b/src/addons/addons/editor-compact/sprite-properties.css new file mode 100644 index 00000000000..5a4f1f47c79 --- /dev/null +++ b/src/addons/addons/editor-compact/sprite-properties.css @@ -0,0 +1,15 @@ +/* These styles are in a separate file with "if" to make sure that they aren't applied + when sprite-properties is dynamically disabled. */ +.sa-show-sprite-properties [class^="sprite-info_sprite-info_"], +.sa-sprite-properties-wide-locale.sa-show-sprite-properties [class^="sprite-info_sprite-info_"] { + height: calc(5.25rem + 1px); +} +.sa-sprite-properties-close-btn { + height: 1rem; + padding-top: 0.25rem; +} +.sa-hide-sprite-properties [class^="sprite-info_sprite-info_"] { + height: 0; + padding-top: 0; + padding-bottom: 0; +} diff --git a/src/addons/addons/editor-compact/userscript.js b/src/addons/addons/editor-compact/userscript.js new file mode 100644 index 00000000000..d2c13c6049b --- /dev/null +++ b/src/addons/addons/editor-compact/userscript.js @@ -0,0 +1,60 @@ +import EventTarget from "../../event-target.js"; /* inserted by pull.js */ + +import { eventTarget as tooltipUpdateEventTarget } from "./force-tooltip-update.js"; + +export default async function ({ addon, global, console }) { + // The workspace needs to be manually resized via a window resize event + // whenever the addon modifies or stops modifying UI elements + resizeWorkspace(); + + let resizeObserver = new ResizeObserver(resizeWorkspace); + (async () => { + while (true) { + let menuBar = await addon.tab.waitForElement('[class*="menu-bar_menu-bar"]', { + markAsSeen: true, + reduxEvents: [ + "scratch-gui/mode/SET_PLAYER", + "fontsLoaded/SET_FONTS_LOADED", + "scratch-gui/locales/SELECT_LOCALE", + ], + reduxCondition: (state) => !state.scratchGui.mode.isPlayerOnly, + }); + resizeObserver.observe(menuBar); + } + })(); + + async function resizeWorkspace() { + window.dispatchEvent(new Event("resize")); + } + + // Icons in the sound editor don't have tooltips. Add them if labels are hidden. + const updateTooltips = () => { + for (const button of document.querySelectorAll( + "[class*='sound-editor_tool-button_'], [class*='sound-editor_effect-button_']" + )) { + const icon = button.querySelector("img"); + if (!addon.self.disabled && addon.settings.get("hideLabels")) icon.title = button.textContent; + else icon.removeAttribute("title"); + } + }; + updateTooltips(); + addon.settings.addEventListener("change", updateTooltips); + addon.self.addEventListener("disabled", updateTooltips); + addon.self.addEventListener("reenabled", updateTooltips); + tooltipUpdateEventTarget.addEventListener("update", updateTooltips); + + while (true) { + await addon.tab.waitForElement("[class*='sound-editor_editor-container_']", { + markAsSeen: true, + reduxEvents: [ + "scratch-gui/navigation/ACTIVATE_TAB", + "scratch-gui/mode/SET_PLAYER", + "fontsLoaded/SET_FONTS_LOADED", + "scratch-gui/locales/SELECT_LOCALE", + "scratch-gui/targets/UPDATE_TARGET_LIST", + ], + reduxCondition: (state) => !state.scratchGui.mode.isPlayerOnly && state.scratchGui.editorTab.activeTabIndex === 2, + }); + updateTooltips(); + } +} diff --git a/src/addons/addons/editor-compact/userstyle.css b/src/addons/addons/editor-compact/userstyle.css new file mode 100644 index 00000000000..2ff43f1ea9c --- /dev/null +++ b/src/addons/addons/editor-compact/userstyle.css @@ -0,0 +1,512 @@ +/* Full page */ +[class*="gui_body-wrapper"] { + height: calc(100% - 2rem); +} +.sa-body-editor, +.sa-body-editor * { + scrollbar-width: thin; +} +.sa-body-editor::-webkit-scrollbar, +.sa-body-editor ::-webkit-scrollbar { + width: 8px; + height: 8px; +} +.sa-body-editor::-webkit-scrollbar { + background-color: var(--editorDarkMode-page, #e5f0ff); +} +.sa-body-editor::-webkit-scrollbar-thumb, +.sa-body-editor ::-webkit-scrollbar-thumb { + background-color: var(--editorDarkMode-page-compactScrollbar, #bec7d4); + background-clip: padding-box; + border-radius: 4px; + border: 1px solid transparent; +} + +/* Menu bar */ +[class*="menu-bar_file-group_"] [class*="menu-bar_hoverable_"] > img, +[class*="menu-bar_divider"], +[class*="menu-bar_help-icon"] { + display: none; +} +[class*="menu-bar_collapsible-label_"], +[dir="rtl"] [class*="menu-bar_collapsible-label_"], +[class*="settings-menu_dropdown-label_"], +[dir="rtl"] [class*="settings-menu_dropdown-label_"] { + margin: 0; +} +@media (max-width: 1024px) { + [class*="menu-bar_file-group_"] [class*="menu-bar_hoverable_"] > img:first-child { + display: inline; + } +} + +[class*="gui_menu-bar-position"][class*="menu-bar_menu-bar"][class*="box_box"], +[class*="menu-bar_menu-bar-item"] { + height: 2rem; +} + +[class*="menu-bar_file-group_"] [class*="menu-bar_menu-bar-item_"], +[class*="menu-bar_account-info-group_"] [class*="menu-bar_menu-bar-item_"] { + margin: 0; + padding: 0 0.5rem; +} +[class*="menu-bar_menu-bar-menu"] { + margin-top: 2rem; +} +[class*="menu_menu-item"] { + line-height: 1.75rem; + padding: 0 0.5rem; +} + +[class*="menu-bar_menu-bar-button"], +[class*="menu-bar_feedback-button_"] { + height: 1.5rem; + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +[class*="menu-bar_growable"] { + padding-inline-start: 0.5rem; +} +[class*="menu-bar_growable"] [class*="input_input-form"] { + height: 1.5rem; + box-sizing: border-box; + padding: 0.25rem; + font-size: 0.75rem; +} +[class*="menu-bar_growable"] [class*="input_input-form"]:focus { + box-shadow: 0 0 0 calc(0.5rem * 0.25) hsla(0, 100%, 100%, 0.25); +} + +.sa-editormessages-count { + top: 0.15rem; + right: 0.4rem; +} + +[class*="account-nav_user-info"] [class*="account-nav_avatar"] { + width: 1.5rem; + height: 1.5rem; + margin-inline-start: 0.25rem; +} + +/* Sprites area */ +[class^="sprite-info_sprite-info_"] { + padding: 0.5rem; + height: 4.75rem; +} +[class*="sprite-info_row"] { + justify-content: flex-start; +} +[class*="sprite-info_group"], +[class*="sprite-info_column_"] { + margin-inline-end: 1rem; +} +[class*="sprite-info_group"]:last-child, +[class*="sprite-info_column_"]:last-child { + margin-inline-end: 0; +} +[class*="sprite-info_column_"], +[class*="label_input-group-column_"] { + flex-direction: row; + align-items: center; +} +[class*="sprite-info_column_"] span, +[class*="label_input-group-column_"] span { + margin-bottom: 0; +} +[class*="sprite-info_icon-wrapper"] { + width: 1.5rem; + height: 1.5rem; + padding: 0.25rem; +} +[class*="sprite-info_sprite-info"] [class*="input_input-form"], +[class*="gui_tabs"] [class*="input_input-form"] { + height: 1.5rem; + padding: 0 0.5rem; +} +[class*="sprite-info_sprite-info"] [class*="input_input-form"], +[class*="gui_tabs"] [class*="input_input-form"] { + height: 1.5rem; + padding: 0 0.5rem; +} +[class*="gui_body-wrapper_"] [class*="sprite-info_sprite-info"] [class*="input_input-form"]:focus, +[class*="gui_body-wrapper_"] [class*="gui_tabs"] [class*="input_input-form"]:focus { + box-shadow: 0 0 0 0.125rem var(--editorDarkMode-primary-transparent35, hsl(260deg 60% 60% / 35%)); +} +[class*="gui_body-wrapper_"] [class*="sprite-selector-item_is-selected"], +[class*="gui_body-wrapper_"] [class*="stage-selector_is-selected_"] { + box-shadow: 0px 0px 0px 2px var(--editorDarkMode-primary-transparent35, hsl(260deg 60% 60% / 35%)); +} +[class*="input_input-small"][type="text"], +[class*="sprite-info_larger-input"] input[type="text"] { + /* Vanilla is width:4rem */ + width: 2.5rem; +} +[class*="input_input-small"][type="number"] { + /* Vanilla is width:4rem but browsers take part of it for the up/down arrows */ + width: 3.5rem; +} + +[class*="sprite-selector_scroll-wrapper"] { + height: calc(100% - 4.75rem); +} +[class*="sprite-selector_scroll-wrapper"]::-webkit-scrollbar-thumb { + background-color: var(--editorDarkMode-selector-compactScrollbar, #c1c8d1); +} +[class*="sprite-selector_items-wrapper"] { + padding: 0.125rem; +} +[class*="sprite-selector_sprite-wrapper"] { + margin: 0.125rem; +} +[class*="sprite-selector-item_delete-button"] { + top: -0.25rem; +} +[dir="ltr"] [class*="delete-button_delete-button_"] { + right: -0.25rem; +} +[dir="rtl"] [class*="delete-button_delete-button_"] { + left: -0.25rem; +} +[class*="delete-button_delete-button-visible"] { + width: 1rem; + height: 1rem; + box-shadow: 0 0 0 1px var(--editorDarkMode-primary-transparent35, hsl(260deg 60% 60% / 35%)); +} +[class*="delete-button_delete-icon"] { + display: none; +} +[class*="delete-button_delete-button-visible"]::after { + content: ""; + position: absolute; + display: block; + top: 25%; + left: 25%; + width: 50%; + height: 50%; + background-image: url("./close.svg"); + transform: rotate(45deg); + filter: var(--editorDarkMode-primary-filter, none); +} +img[class*="sprite-selector-item_sprite-image"] { + max-width: 56px; + max-height: 32px; +} + +[class*="action-menu_main-button"] { + width: 2rem; + height: 2rem; +} +[class*="action-menu_main-button"] img { + width: 1.5rem; + height: 1.5rem; +} +[class*="action-menu_more-buttons-outer"] { + width: 2rem; + bottom: 2rem; + padding-bottom: calc(2rem / 2); + margin: 0 0 calc(2rem / -2) 0; + border-top-left-radius: 2rem; + border-top-right-radius: 2rem; +} +button[class*="action-menu_more-button"] { + width: 2rem; + height: 2rem; +} + +/* Project player */ +.sa-body-editor [class*="stage-header_stage-menu-wrapper_"]:not([class*="stage-wrapper_full-screen"] *) { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + height: 2rem; +} +.sa-body-editor [class*="green-flag_green-flag_"]:not([class*="stage-wrapper_full-screen"] *), +.sa-body-editor .pause-btn:not([class*="stage-wrapper_full-screen"] *), +.sa-body-editor [class*="stop-all_stop-all_"]:not([class*="stage-wrapper_full-screen"] *), +.sa-body-editor [class*="stage-header_stage-button_"]:not([class*="stage-wrapper_full-screen"] *) { + padding: 0.25rem; + width: 1.5rem; + height: 1.5rem; +} +.sa-body-editor [class*="turbo-mode_turbo-icon_"]:not([class*="stage-wrapper_full-screen"] *), +.sa-body-editor .clone-icon:not([class*="stage-wrapper_full-screen"] *) { + /* Remove vertical margin from images that appear on the stage header */ + margin-top: 0; + margin-bottom: 0; +} +.sa-body-editor [class*="stage-header_stage-button_"]:not([class*="stage-wrapper_full-screen"] *) { + padding: calc(0.25rem - 1px); +} +.sa-body-editor [class*="green-flag_green-flag_"]:not([class*="stage-wrapper_full-screen"] *), +.sa-body-editor .pause-btn:not([class*="stage-wrapper_full-screen"] *) { + margin-inline-end: 0.125rem; +} +.sa-stage-hidden [class*="stage-header_stage-size-row"] { + height: 2rem; +} + +.sa-body-editor [class*="monitor_list-body_"] > div::-webkit-scrollbar-thumb { + background-color: #bec7d4; +} + +/* Toggle buttons */ +[class*="toggle-buttons_button_"] { + width: 1.5rem; + height: 1.5rem; + padding: calc(0.25rem - 1px); +} + +/* Tabs area */ +[class*="gui_tab-list"] { + height: 2rem; +} +[class*="gui_tab_"] { + padding-left: 1rem; + padding-right: 1rem; + border-radius: 0.5rem 0.5rem 0 0; +} +[class*="gui_tab_"] > img { + display: none; +} + +.sa-find-bar { + align-self: center; +} +.sa-find-wrapper { + height: 20px; +} +.sa-find-dropdown-out { + margin-top: 0; +} + +/* Code tab */ +body:not(.sa-columns-enabled) [class*="gui_tab-panel"] .scratchCategoryMenuItem { + padding: 0.25rem 0; +} +.scratchCategoryItemBubble, +.scratchCategoryItemIcon { + width: 1rem; + height: 1rem; + background-size: 1rem 1rem; +} +body:not(.sa-columns-enabled) [class*="gui_tab-panel"] .blocklyToolboxDiv { + height: calc(100% - 2rem) !important; + scrollbar-width: none; +} +body:not(.sa-columns-enabled) [class*="gui_tab-panel"] .blocklyToolboxDiv::-webkit-scrollbar { + display: none; +} +body:not(.sa-columns-enabled) [class*="gui_tab-panel"] [class*="gui_extension-button-container_"] { + height: 2rem; +} + +/* Assets panel */ +[class*="selector_wrapper"] { + width: 100px; +} +[class*="selector_list-item"] { + margin: 0.25rem auto; +} +[class*="selector_list-area"] { + overflow-y: auto; +} +[class*="selector_list-area"]::-webkit-scrollbar-thumb { + background-color: var(--editorDarkMode-selector2-compactScrollbar, #b4bcc9); +} +[class*="selector_list-area"] > div:first-child { + margin-top: 0.25rem; +} +[class*="selector_list-area"] img[class*="sprite-selector-item_sprite-image"] { + max-width: 52px; + max-height: 44px; +} +[class*="selector_list-area"] [class*="sprite-selector-item_sprite-name"] { + margin: 0; +} +[class*="selector_list-area"] [class*="sprite-selector-item_sprite-info"] { + padding-top: 0; + padding-bottom: 0.125rem; +} +[class*="selector_list-area"] [class*="sprite-selector-item_is-selected"] [class*="sprite-selector-item_sprite-info"] { + background-color: transparent; + color: inherit; +} + +/* Asset editor */ +[class*="asset-panel_detail-area"] > div { + padding: 0.5rem; +} +[class*="paint-editor_row_"] input { + font-size: 10px; +} +[class*="asset-panel_detail-area"] [class*="labeled-icon-button_edit-field-icon"], +[class*="mode-tools_mode-tools-icon_"], +[class*="sound-editor_button_"] img { + width: 20px; + height: 20px; +} +[class*="sound-editor_tool-button"] img { + height: 20px; +} +[class*="fixed-tools_button-group-button_"], +[class*="paint-editor_button-group-button_"], +[class*="sound-editor_button_"] { + padding: calc(0.125rem - 1px); +} +[class*="sound-editor_button_"] { + width: 24px; + height: 24px; +} +[class*="paint-editor_editor-container-top"] { + padding-bottom: 0; + border-bottom: none; +} + +[class*="paint-editor_top-align-row"] { + padding-top: 0.5rem; +} +[class*="paint-editor_mode-selector"] { + width: min-content; +} + +[class*="sound-editor_row_"] + [class*="sound-editor_row_"] { + margin-top: 0.5rem; +} +[class*="sound-editor_waveform-container_"] { + margin: 0; +} + +[class*="sound-editor_row-reverse_"] { + gap: 2px; +} +[class*="sound-editor_row-reverse_"] > [class*="sound-editor_input-group_"] { + margin-right: 0.5rem; +} + +[class*="paint-editor_canvas-controls"] { + height: min-content; + margin-top: 0.5rem; +} +[class*="paint-editor_bitmap-button_"] { + padding: 0 0.25rem; +} +[class*="paint-editor_bitmap-button-icon_"] { + align-self: center; + width: 1.25rem; + height: 1.25rem; +} +.sa-paintEditorZoomControls-wrapper { + height: auto !important; +} +[class*="paint-editor_zoom-controls_"] { + align-self: flex-start; +} + +/* Modals and prompts */ +[class*="card_header-buttons_"] > div, +[class*="card_header-buttons-right_"] > div { + padding: 0.5rem; + margin: 0; +} +[class*="card_header-buttons_"] span:not(.sa-debugger-tabs *) { + display: none; +} +[class*="card_header-buttons_"] > [class*="card_header-buttons-right_"] { + padding: 0; +} +[class*="card_remove-button_"] > [class*="card_close-icon_"], +[class*="card_all-button_"] > [class*="card_help-icon_"] { + margin: 0; +} +.sa-debugger-tabs { + padding: 0 0.25rem; + margin-left: 0.25rem; +} +.sa-debugger-tabs li { + padding: 0.25em 1em; +} +.sa-debugger-tabs li + li { + margin-inline-start: 0.25rem; +} + +[class*="modal_header"], +[class*="library_filter-bar"] { + height: 2rem; +} +[class*="close-button_large"] { + width: 1rem; + height: 1rem; +} + +[class*="library_filter-bar-item"] { + height: 1.5rem; +} +[class*="library_filter-bar-item"]:focus-within { + box-shadow: 0 0 0 0.125rem var(--editorDarkMode-primary-transparent35, hsl(260deg 60% 60% / 35%)); +} +[dir="ltr"] [class*="filter_filter-icon"], +[dir="rtl"] [class*="filter_filter-icon"], +[class*="filter_x-icon_"] { + width: 0.75rem; + margin: 0.25rem 0.5rem; +} +[dir="ltr"] [class*="filter_filter-input"] { + padding-left: 1.75rem; +} +[dir="rtl"] [class*="filter_filter-input"] { + padding-right: 1.75rem; +} +[class*="library_divider"] { + display: none; +} +[class*="filter_x-icon-wrapper"] { + position: static; + margin: 0; +} +[class*="library_tag-wrapper"] { + height: auto; +} +[class*="library_library-scroll-grid"] { + height: calc(100% - 2rem); +} +[class*="library_library-scroll-grid"][class*="library_withFilterBar"] { + height: calc(100% - 4rem); +} +[class*="library_library-scroll-grid"]::-webkit-scrollbar-thumb { + background-color: var(--editorDarkMode-selector-compactScrollbar, #c1c8d1); +} + +[class*="prompt_body"], +[class*="custom-procedures_body"] { + padding: 1rem; +} +[class*="modal_modal-content"] [class*="box_box"] button { + padding: 0.5rem 0.75rem; +} + +[class*="prompt_variable-name-text-input"] { + height: 1.5rem; + padding: 0 0.5rem; + margin-bottom: 1rem; +} +.sa-swap-local-global-hint, +[class*="prompt_options-row"] { + padding-bottom: 0.5rem; +} +[class*="prompt_cloud-option"] { + border: none; + padding-top: 0; +} + +[class*="custom-procedures_modal-content"] { + width: 500px; +} +[class*="custom-procedures_workspace"] { + min-height: 100px; +} +.blocklyTextRemoveIcon { + top: -35px; +} +[class*="custom-procedures_body"] [role="button"] { + padding: 0.5rem; +} diff --git a/src/addons/addons/editor-devtools/DevTools.js b/src/addons/addons/editor-devtools/DevTools.js index 0769d5c0882..33facb886b0 100644 --- a/src/addons/addons/editor-devtools/DevTools.js +++ b/src/addons/addons/editor-devtools/DevTools.js @@ -1,35 +1,21 @@ // import ShowBroadcast from "./show-broadcast.js"; -import Utils from "./blockly/Utils.js"; import DomHelpers from "./DomHelpers.js"; -import BlockInstance from "./BlockInstance.js"; -import XML from "./XML.js"; -import BlockItem from "./BlockItem.js"; -import UndoGroup from "./blockly/UndoGroup.js"; +import UndoGroup from "./UndoGroup.js"; export default class DevTools { - constructor(addon, msg, m, helpHTML) { + constructor(addon, msg, m) { this.addon = addon; this.msg = msg; this.m = m; /** * @type {VirtualMachine} */ - this.vm = addon.tab.traps.vm; - this.utils = new Utils(addon); this.domHelpers = new DomHelpers(addon); - this.multi = new Multi(this.utils); - this._helpHTML = helpHTML; - this.find = null; - this.findInp = null; - this.ddOut = null; - this.dd = null; this.codeTab = null; this.costTab = null; this.costTabBody = null; this.selVarID = null; - this.floatInp = null; - this.blockCursor = null; this.canShare = false; this.mouseXY = { x: 0, y: 0 }; @@ -159,10 +145,11 @@ export default class DevTools { items.push({ enabled: true, text: this.m("swap", { var: block.getCategory() === "data" ? this.m("variables") : this.m("lists") }), - callback: () => { - let wksp = this.utils.getWorkspace(); + callback: async () => { + let wksp = this.getWorkspace(); let v = wksp.getVariableById(this.selVarID); - let varName = window.prompt(this.msg("replace", { name: v.name })); + // prompt() returns Promise in desktop app + let varName = await window.prompt(this.msg("replace", { name: v.name })); if (varName) { this.doReplaceVariable(this.selVarID, varName, v.type); } @@ -176,313 +163,14 @@ export default class DevTools { ); } - isScriptEditor() { - return this.codeTab.className.indexOf("gui_is-selected") >= 0; + getWorkspace() { + return Blockly.getMainWorkspace(); } isCostumeEditor() { return this.costTab.className.indexOf("gui_is-selected") >= 0; } - eventClickHelp(e) { - if (!document.getElementById("s3devHelpPop")) { - document.body.insertAdjacentHTML("beforeend", this._helpHTML); - document.getElementById("s3devHelpPop").addEventListener("mousedown", function (e) { - if (e.target.id === "s3devHelpPop") { - e.target.remove(); - } - }); - document.querySelector("#s3devHelpPop .close-button").addEventListener("click", function (e) { - document.getElementById("s3devHelpPop").remove(); - }); - } - e.preventDefault(); - } - - getScratchCostumes() { - let costumes = this.costTabBody.querySelectorAll("div[class^='sprite-selector-item_sprite-name']"); - // this.costTab[0].click(); - - let myBlocks = []; - let myBlocksByProcCode = {}; - - /** - * @param cls - * @param txt - * @param root - * @returns BlockItem - */ - function addBlock(cls, txt, root) { - let id = root.className; - let items = new BlockItem(cls, txt, id, 0); - myBlocks.push(items); - myBlocksByProcCode[txt] = items; - return items; - } - - let i = 0; - for (const costume of costumes) { - addBlock("costume", costume.innerText, costume).y = i; - i++; - } - - return { procs: myBlocks }; - } - - /** - * Fetch the scratch 3 block list - * @returns jsonFetch object - */ - getScratchBlocks() { - // Access Blockly! - - let myBlocks = []; - let myBlocksByProcCode = {}; - - // todo - get blockly from an svg??? - - let wksp = this.utils.getWorkspace(); - let topBlocks = wksp.getTopBlocks(); - - // console.log(topBlocks); - - /** - * @param cls - * @param txt - * @param root - * @returns BlockItem - */ - function addBlock(cls, txt, root) { - let id = root.id ? root.id : root.getId ? root.getId() : null; - let clone = myBlocksByProcCode[txt]; - if (clone) { - if (!clone.clones) { - clone.clones = []; - } - clone.clones.push(id); - return clone; - } - let items = new BlockItem(cls, txt, id, 0); - items.y = root.getRelativeToSurfaceXY ? root.getRelativeToSurfaceXY().y : null; - myBlocks.push(items); - myBlocksByProcCode[txt] = items; - return items; - } - - function getDescFromField(root) { - let fields = root.inputList[0]; - let desc; - for (const fieldRow of fields.fieldRow) { - desc = (desc ? desc + " " : "") + fieldRow.getText(); - } - return desc; - } - - for (const root of topBlocks) { - if (root.type === "procedures_definition") { - const label = root.getChildren()[0]; - const procCode = label.getProcCode(); - if (!procCode) { - continue; - } - const indexOfLabel = root.inputList.findIndex((i) => i.fieldRow.length > 0); - if (indexOfLabel === -1) { - continue; - } - const translatedDefine = root.inputList[indexOfLabel].fieldRow[0].getText(); - const message = indexOfLabel === 0 ? `${translatedDefine} ${procCode}` : `${procCode} ${translatedDefine}`; - addBlock("define", message, root); - continue; - } - - if (root.type === "event_whenflagclicked") { - addBlock("flag", getDescFromField(root), root); // "When Flag Clicked" - continue; - } - - if (root.type === "event_whenbroadcastreceived") { - try { - // let wksp2 = Blockly.getMainWorkspace().getTopBlocks()[2].inputList[0].fieldRow[1]; - let fields = root.inputList[0]; - // let typeDesc = fields.fieldRow[0].getText(); - let eventName = fields.fieldRow[1].getText(); - // addBlock('receive', typeDesc + ' ' + eventName, root).eventName = eventName; - addBlock("receive", "event " + eventName, root).eventName = eventName; - } catch (e) { - // eat - } - continue; - } - - if (root.type.substr(0, 10) === "event_when") { - addBlock("event", getDescFromField(root), root); // "When Flag Clicked" - continue; - } - - if (root.type === "control_start_as_clone") { - addBlock("event", getDescFromField(root), root); // "when I start as a clone" - continue; - } - } - - let map = wksp.getVariableMap(); - - let vars = map.getVariablesOfType(""); - for (const row of vars) { - addBlock(row.isLocal ? "var" : "VAR", (row.isLocal ? "var " : "VAR ") + row.name, row); - } - - let lists = map.getVariablesOfType("list"); - for (const row of lists) { - addBlock(row.isLocal ? "list" : "LIST", (row.isLocal ? "list " : "LIST ") + row.name, row); - } - - const events = this.getCallsToEvents(); - for (const event of events) { - addBlock("receive", "event " + event.eventName, event.block).eventName = event.eventName; - } - - /* - const runtime = vm.runtime; - // Now let's also add event broadcasts (not just hat blocks) - const target = runtime.getEditingTarget(); - const blocks = target.blocks; - if (blocks._blocks) { - for (const id in blocks._blocks) { - if (!blocks._blocks.hasOwnProperty(id)) { - continue; - } - const block = blocks._blocks[id]; - if (block.opcode === 'event_broadcast_menu') { - - debugger; - - // Now get the parent block that is the actual broadcast or broadcast and wait - const broadcastBlock = blocks.getBlock(block.parent); - let b = new BlockInstance(target, broadcastBlock); - - const fieldName = block.fields.BROADCAST_OPTION.value; - addBlock('receive', 'event ' + fieldName, b).eventName = broadcastBlock.eventName; - - // - // let fields = root.inputList[0]; - // let typeDesc = fields.fieldRow[0].getText(); - // let eventName = fields.fieldRow[1].getText(); - // addBlock('receive', 'event ' + eventName, root).eventName = eventName; - } - } - } - */ - - const clsOrder = { flag: 0, receive: 1, event: 2, define: 3, var: 4, VAR: 5, list: 6, LIST: 7 }; - - myBlocks.sort((a, b) => { - let t = clsOrder[a.cls] - clsOrder[b.cls]; - if (t !== 0) { - return t; - } - if (a.lower < b.lower) { - return -1; - } - if (a.lower > b.lower) { - return 1; - } - return a.y - b.y; - }); - - return { procs: myBlocks }; - } - - showDropDown(e, focusID, instanceBlock) { - clearTimeout(rhdd); - rhdd = 0; - - if (!focusID && this.ddOut.classList.contains("vis")) { - return; - } - - // special '' vs null... - null forces a reevaluation - prevVal = focusID ? "" : null; // Clear the previous value of the input search - - this.ddOut.classList.add("vis"); - let scratchBlocks = this.isCostumeEditor() ? this.getScratchCostumes() : this.getScratchBlocks(); - - this.dom_removeChildren(this.dd); - - let foundLi = null; - /** - * @type {[BlockItem]} - */ - const procs = scratchBlocks.procs; - for (const proc of procs) { - let li = document.createElement("li"); - li.innerText = proc.procCode; - li.data = proc; - li.className = proc.cls; - if (focusID) { - if (proc.matchesID(focusID)) { - foundLi = li; - li.classList.add("sel"); - } else { - li.style.display = "none"; - } - } - this.dd.appendChild(li); - } - - let label = document.getElementById("s3devFindLabel"); - this.utils.offsetX = this.ddOut.getBoundingClientRect().right - label.getBoundingClientRect().left + 26; - this.utils.offsetY = 32; - - if (foundLi) { - this.clickDropDownRow(foundLi, this.utils.getWorkspace(), instanceBlock); - } - } - - hideDropDown() { - clearTimeout(rhdd); - rhdd = setTimeout(() => this.reallyHideDropDown(), 250); - } - - reallyHideDropDown() { - // Check focus of find box - if (this.findInp === document.activeElement) { - this.hideDropDown(); - return; - } - - // document.getElementById('s3devReplace').classList.add('s3devHide'); - - this.ddOut.classList.remove("vis"); - rhdd = 0; - } - - hideFloatDropDown() { - clearTimeout(rhdd2); - rhdd2 = setTimeout(() => this.reallyHideFloatDropDown(), 50); - } - - reallyHideFloatDropDown(force) { - // Check focus of find box - if (!force && this.floatInp === document.activeElement) { - this.hideFloatDropDown(); - return; - } - - let float = document.getElementById("s3devFloatingBar"); - if (float) { - float.remove(); - } - this.floatInp = null; - rhdd2 = 0; - } - - dom_removeChildren(myNode) { - while (myNode.firstChild) { - myNode.removeChild(myNode.firstChild); - } - } - /** * A nicely ordered version of the top blocks * @returns {[Blockly.Block]} @@ -504,7 +192,7 @@ export default class DevTools { * A much nicer way of laying out the blocks into columns */ doCleanUp(block) { - let workspace = this.utils.getWorkspace(); + let workspace = this.getWorkspace(); let makeSpaceForBlock = block && block.getRootBlock(); UndoGroup.startUndoGroup(workspace); @@ -561,7 +249,7 @@ export default class DevTools { setTimeout(() => { // Locate unused local variables... - let workspace = this.utils.getWorkspace(); + let workspace = this.getWorkspace(); let map = workspace.getVariableMap(); let vars = map.getVariablesOfType(""); let unusedLocals = []; @@ -644,7 +332,7 @@ export default class DevTools { * @returns {{orphans: {blocks: [Block], x: number, count: number}, cols: [Col]}} */ getOrderedTopBlockColumns(separateOrphans) { - let w = this.utils.getWorkspace(); + let w = this.getWorkspace(); let topBlocks = w.getTopBlocks(); let maxWidths = {}; @@ -755,618 +443,153 @@ export default class DevTools { } /** - * Find all the uses of a named procedure. - * @param {string} id ID of the variable to find. - * @return {!Array.} Array of block usages. + * Quick and dirty replace all instances of one variable / list with another variable / list + * @param varId original variable name + * @param newVarName new variable name + * @param type type of variable ("" = variable, anything else is a list? */ - getCallsToProcedureById(id) { - let w = this.utils.getWorkspace(); - let procBlock = w.getBlockById(id); - let label = procBlock.getChildren()[0]; - let procCode = label.getProcCode(); - - let uses = [procBlock]; // Definition First, then calls to it - let topBlocks = this.getTopBlocks(true); - for (const topBlock of topBlocks) { - /** @type {!Array} */ - let kids = topBlock.getDescendants(); - for (const block of kids) { - if (block.type === "procedures_call") { - if (block.getProcCode() === procCode) { - uses.push(block); - } + doReplaceVariable(varId, newVarName, type) { + let wksp = this.getWorkspace(); + let v = wksp.getVariable(newVarName, type); + if (!v) { + alert(this.msg("var-not-exist")); + return; + } + let newVId = v.getId(); + + UndoGroup.startUndoGroup(wksp); + let blocks = this.getVariableUsesById(varId); + for (const block of blocks) { + try { + if (type === "") { + block.getField("VARIABLE").setValue(newVId); + } else { + block.getField("LIST").setValue(newVId); } + } catch (e) { + // ignore } } - - return uses; + UndoGroup.endUndoGroup(wksp); } - /** - * Find all the uses of a named procedure. - * @param {string} name name of the variable to find. - * @return {!Array.} Array of block usages. - */ - getCallsToEventsByName(name) { - let uses = []; // Definition First, then calls to it + /* + function doInjectScripts(codeString) { + let w = getWorkspace(); + let xml = new XML(); // document.implementation.createDocument(null, "xml"); + let x = xml.xmlDoc.firstChild; - const runtime = this.vm.runtime; - const targets = runtime.targets; // The sprites / stage + let tree = math.parse(codeString); + console.log(tree); - for (const target of targets) { - if (!target.isOriginal) { - continue; // Skip clones - } + const binaryOperatorTypes = { + add: "operator_add", + subtract: "operator_subtract", + this.multiply: "operator_multiply", + divide: "operator_divide", + }; - const blocks = target.blocks; - if (!blocks._blocks) { - continue; - } + const BLOCK_TYPE = { + number: "math_number", + text: "text", + }; + + function translateMathToXml(x, tree, shadowType) { + let xShadowField = null; + if (shadowType) { + let xShadow = xml.newXml(x, "shadow", { type: shadowType }); + if (shadowType === BLOCK_TYPE.number) { + xShadowField = xml.newXml(xShadow, "field", { name: "NUM" }); + } else if (shadowType === BLOCK_TYPE.text) { + xShadowField = xml.newXml(xShadow, "field", { name: "TEXT" }); + } + } - for (const id of Object.keys(blocks._blocks)) { - const block = blocks._blocks[id]; - // To find event broadcaster blocks, we look for the nested "event_broadcast_menu" blocks first that match the event name - if (block.opcode === "event_broadcast_menu" && block.fields.BROADCAST_OPTION.value === name) { - // Now get the parent block that is the actual broadcast or broadcast and wait - const broadcastBlock = blocks.getBlock(block.parent); - uses.push(new BlockInstance(target, broadcastBlock)); - } else if (block.opcode === "event_whenbroadcastreceived" && block.fields.BROADCAST_OPTION.value === name) { - uses.push(new BlockInstance(target, block)); + if (!tree || !tree.type) { + return; } - } - } - return uses; - } + if (tree.type === "OperatorNode") { + let operatorType = binaryOperatorTypes[tree.fn]; + if (operatorType) { + let xOp = newXml(x, "block", { type: operatorType }); + translateMathToXml(xml.newXml(xOp, "value", { name: "NUM1" }), tree.args[0], BLOCK_TYPE.number); + translateMathToXml(xml.newXml(xOp, "value", { name: "NUM2" }), tree.args[1], BLOCK_TYPE.number); + return; + } - /** - * Find all the event broadcasters. - * @return {[{eventName:string, block:Block}]} Array of event names and blocks. - */ - getCallsToEvents() { - const uses = []; // Definition First, then calls to it - const found = {}; + return; + } - let topBlocks = this.getTopBlocks(true); - for (const topBlock of topBlocks) { - /** @type {!Array} */ - let kids = topBlock.getDescendants(); - for (const block of kids) { - if (block.type === "event_broadcast" || block.type === "event_broadcastandwait") { - const eventName = block.getChildren()[0].inputList[0].fieldRow[0].getText(); - if (!found[eventName]) { - found[eventName] = block; - uses.push({ eventName: eventName, block: block }); + if (tree.type === "ConstantNode") { + // number or text in quotes + if (xShadowField) { + xml.setAttr(xShadowField, { text: tree.value }); } + return; } - } - } - return uses; - } + if (tree.type === "SymbolNode") { + // variable + let xVar = xml.newXml(x, "block", { type: "data_variable" }); + xml.newXml(xVar, "field", { name: "VARIABLE", text: tree.name }); + return; + } - buildNavigationCarousel(nav, li, blocks, instanceBlock) { - if (nav && nav.parentNode === li) { - // Same control... click again to go to next - this.multi.navRight(); - } else { - if (nav) { - nav.remove(); - } - li.insertAdjacentHTML( - "beforeend", - ` - - - - ` - ); - document.getElementById("s3devMultiLeft").addEventListener("mousedown", (...e) => this.multi.navLeft(...e)); - document.getElementById("s3devMultiRight").addEventListener("mousedown", (...e) => this.multi.navRight(...e)); - - this.multi.idx = 0; - - if (instanceBlock) { - for (let i = 0; i < blocks.length; i++) { - const block = blocks[i]; - if (block.id === instanceBlock.id) { - this.multi.idx = i; - break; + if (tree.type === "FunctionNode") { + // Method Call + if (tree.fn.name === "join") { + let xOp = newXml(x, "block", { type: "operator_join" }); + translateMathToXml(xml.newXml(xOp, "value", { name: "STRING1" }), tree.args[0], BLOCK_TYPE.text); + translateMathToXml(xml.newXml(xOp, "value", { name: "STRING2" }), tree.args[1], BLOCK_TYPE.text); + return; } } - // multi.idx = blocks.indexOf(instanceBlock); } - this.multi.blocks = blocks; - this.multi.update(); + translateMathToXml(x, tree); + console.log(x); - if (this.multi.idx < blocks.length) { - this.centerTop(blocks[this.multi.idx]); + let ids = Blockly.Xml.domToWorkspace(x, w); + console.log(ids); + } + */ + /* + function clickInject(e) { + let codeString = window.prompt("Griffpatch: Enter an expression (i.e. a+2*3)"); + if (codeString) { + doInjectScripts(codeString); } + e.preventDefault(); + return false; } - } + */ /** - * Move a costume to the top or bottom of the list - * @param top true for the top, false for the bottom - * @param selected optional parameter to pass in the costume div to be moved + * Returns a Set of the top blocks in this workspace / sprite + * @returns {Set} Set of top blocks */ - moveCostumeTo(top, selected) { - let isSelected = !selected || selected.className.indexOf("sprite-selector-item_is-selected") >= 0; - if (!selected) { - selected = this.costTabBody.querySelectorAll("div[class*='sprite-selector-item_is-selected']"); - if (selected.length === 0) { - return; - } - selected = selected[0].querySelectorAll("div[class^='sprite-selector-item_sprite-name']")[0]; - } - let costumes = this.costTabBody.querySelectorAll("div[class^='sprite-selector-item_sprite-name']"); - - // First scroll sprite view to reveal top or bottom otherwise this won't work. - let scroller = selected.closest("div[class*=selector_list-area]"); - let lastScroll = scroller.scrollTop; - scroller.scrollTop = top ? 0 : scroller.scrollHeight; - - this.domHelpers.triggerDragAndDrop(selected, costumes[top ? 0 : costumes.length - 1], undefined); - if (!isSelected) { - // Restore Scroll position - scroller.scrollTop = lastScroll; + getTopBlockIDs() { + let wksp = this.getWorkspace(); + let topBlocks = wksp.getTopBlocks(); + let ids = new Set(); + for (const block of topBlocks) { + ids.add(block.id); } + return ids; } /** - * - * @param li - * @param workspace - * @param instanceBlock the instance to be highlighted (or null) - */ - clickDropDownRow(li, workspace, instanceBlock) { - let nav = document.getElementById("s3devMulti"); - - let cls = li.data.cls; - if (cls === "costume") { - // Viewing costumes - jump to selected costume - let costumes = this.costTabBody.querySelectorAll("div[class^='sprite-selector-item_sprite-name']"); - let costume = costumes[li.data.y]; - if (costume) { - costume.click(); - setTimeout(() => { - let wrapper = costume.closest("div[class*=gui_flex-wrapper]"); - costume.parentElement.parentElement.scrollIntoView({ - behavior: "auto", - block: "center", - inline: "start", - }); - wrapper.scrollTop = 0; - }, 10); - } - } else if (cls === "var" || cls === "VAR" || cls === "list" || cls === "LIST") { - // Search now for all instances - // let wksp = getWorkspace(); - // let blocks = wksp.getVariableUsesById(li.data.labelID); - let blocks = this.getVariableUsesById(li.data.labelID); - this.buildNavigationCarousel(nav, li, blocks, instanceBlock); - } else if (cls === "define") { - let blocks = this.getCallsToProcedureById(li.data.labelID); - this.buildNavigationCarousel(nav, li, blocks, instanceBlock); - } else if (cls === "receive") { - /* - let blocks = [workspace.getBlockById(li.data.labelID)]; - if (li.data.clones) { - for (const cloneID of li.data.clones) { - blocks.push(workspace.getBlockById(cloneID)) - } - } - blocks = blocks.concat(getCallsToEventsByName(li.data.eventName)); - */ - // Now, fetch the events from the scratch runtime instead of blockly - let blocks = this.getCallsToEventsByName(li.data.eventName); - if (!instanceBlock) { - // Can we start by selecting the first block on 'this' sprite - const currentTargetID = this.utils.getEditingTarget().id; - for (const block of blocks) { - if (block.targetId === currentTargetID) { - instanceBlock = block; - break; - } - } - } - this.buildNavigationCarousel(nav, li, blocks, instanceBlock); - } else if (li.data.clones) { - let blocks = [workspace.getBlockById(li.data.labelID)]; - for (const cloneID of li.data.clones) { - blocks.push(workspace.getBlockById(cloneID)); - } - this.buildNavigationCarousel(nav, li, blocks, instanceBlock); - } else { - this.multi.blocks = null; - this.centerTop(li.data.labelID); - if (nav) { - nav.remove(); - } - } - } - - dropDownClick(e) { - // console.log(e); - let workspace = this.utils.getWorkspace(); - - if (prevVal === null) { - prevVal = this.findInp.value; // Hack to stop filter change if not entered data into edt box, but clicked on row - } - - let li = e.target; - for (;;) { - if (!li || li === this.dd) { - return; - } - if (li.data) { - break; - } - li = li.parentNode; - } - - // If this was a mouse click, unselect the keyboard selection - // e.navKey is set when this is called from the keyboard handler... - if (!e.navKey) { - let sel = this.dd.getElementsByClassName("sel"); - sel = sel.length > 0 ? sel[0] : null; - if (sel && sel !== li) { - try { - sel.classList.remove("sel"); - } catch (e) { - console.log(sel); - console.error(e); - } - } - if (li !== sel) { - li.classList.add("sel"); - } - } - - this.clickDropDownRow(li, workspace); - if (e && e.preventDefault) { - e.preventDefault(); - e.cancelBubble = true; - } - return false; - } - - /** - * Based on wksp.centerOnBlock(li.data.labelID); - * @param e - * @param force if true, the view always moves, otherwise only move if the selected element is not entirely visible - */ - centerTop(e, force) { - this.utils.scrollBlockIntoView(e, force); - } - - inputChange(e) { - if (!this.ddOut.classList.contains("vis")) { - this.showDropDown(); - this.hideDropDown(); // Start timer to hide if not got focus - } - - // Filter the list... - let val = (this.findInp.value || "").toLowerCase(); - if (val === prevVal) { - // No change so don't re-filter - return; - } - - prevVal = val; - this.multi.blocks = null; - - // - // Hide items in list that do not contain filter text, and highlight the parts of words that match the filter text - - let listLI = this.dd.getElementsByTagName("li"); - for (const li of listLI) { - let procCode = li.data.procCode; - let i = li.data.lower.indexOf(val); - if (i >= 0) { - li.style.display = "block"; - this.dom_removeChildren(li); - if (i > 0) { - li.appendChild(document.createTextNode(procCode.substring(0, i))); - } - let bText = document.createElement("b"); - bText.appendChild(document.createTextNode(procCode.substr(i, val.length))); - li.appendChild(bText); - if (i + val.length < procCode.length) { - li.appendChild(document.createTextNode(procCode.substr(i + val.length))); - } - // li.innerHTML = enc(procCode.substring(0, i)) + '' + enc(procCode.substr(i, val.length)) + "" + enc(procCode.substr(i + val.length)); - } else { - li.style.display = "none"; - } - } - } - - /** - * Select previous or next item in the drop down filter list - * @param dir direction of navigation: -1=up, 1=down - */ - navigateFilter(dir) { - let sel = this.dd.getElementsByClassName("sel"); - let nxt; - if (sel.length > 0 && sel[0].style.display !== "none") { - nxt = dir === -1 ? sel[0].previousSibling : sel[sel.length - 1].nextSibling; - } else { - nxt = this.dd.children[0]; - dir = 1; - } - while (nxt && nxt.style.display === "none") { - nxt = dir === -1 ? nxt.previousSibling : nxt.nextSibling; - } - if (nxt) { - for (const i of sel) { - i.classList.remove("sel"); - } - nxt.classList.add("sel"); - this.dropDownClick({ target: nxt, navKey: true }); - // centerTop(nxt.data.labelID); - } - } - - inputKeyDown(e) { - // Up Arrow - if (e.keyCode === 38) { - this.navigateFilter(-1); - e.preventDefault(); - return; - } - - // Down Arrow - if (e.keyCode === 40) { - this.navigateFilter(1); - e.preventDefault(); - return; - } - - // Left Arrow - if (e.keyCode === 37) { - let sel = this.dd.getElementsByClassName("sel"); - if (sel && this.multi.blocks) { - this.multi.navLeft(e); - } - } - - // Right Arrow - if (e.keyCode === 39) { - let sel = this.dd.getElementsByClassName("sel"); - if (sel && this.multi.blocks) { - this.multi.navRight(e); - } - } - - // Enter - if (e.keyCode === 13) { - // Any selected on enter? if not select now - let sel = this.dd.getElementsByClassName("sel"); - if (sel.length === 0) { - this.navigateFilter(1); - } - // noinspection JSUnresolvedFunction - document.activeElement.blur(); - e.preventDefault(); - return; - } - - // Escape - if (e.keyCode === 27) { - if (this.findInp.value.length > 0) { - this.findInp.value = ""; // Clear search first, then close on second press - this.inputChange(e); - } else { - // noinspection JSUnresolvedFunction - document.activeElement.blur(); - } - e.preventDefault(); - return; - } - } - - /* - function deepSearch(e) { - document.body.insertAdjacentHTML( - "beforeend", - ` -
-
- ` - ); - - let overlay = document.getElementById("s3devOverlay"); - overlay.addEventListener("click", function (e) { - overlay.remove(); - }); - - // todo: use scratch runtime instead! - - const runtime = vm.runtime; - const targets = runtime.targets; // The sprites / stage - - let dict = {}; - - for (const target of targets) { - if (!target.isOriginal) { - continue; // Skip clones - } - - const name = target.getName(); - const isStage = target.isStage; - const blocks = target.blocks; - const scripts = blocks.getScripts(); - - let divElement = document.createElement("div"); - divElement.appendChild(document.createTextNode("Searching in " + name)); - divElement.appendChild(document.createTextNode(", Top Scripts x" + scripts.length)); - overlay.appendChild(divElement); - - const sprite = (dict[name] = {}); - sprite.scripts = []; - - for (const script of scripts) { - const block = blocks.getBlock(script); - const top = { id: script, opcode: block.opcode, block: block }; - sprite.scripts.push(top); - } - } - - e.preventDefault(); - return true; - } - */ - - /** - * Quick and dirty replace all instances of one variable / list with another variable / list - * @param varId original variable name - * @param newVarName new variable name - * @param type type of variable ("" = variable, anything else is a list? - */ - doReplaceVariable(varId, newVarName, type) { - let wksp = this.utils.getWorkspace(); - let v = wksp.getVariable(newVarName, type); - if (!v) { - alert(this.msg("var-not-exist")); - return; - } - let newVId = v.getId(); - - UndoGroup.startUndoGroup(wksp); - let blocks = this.getVariableUsesById(varId); - for (const block of blocks) { - try { - if (type === "") { - block.getField("VARIABLE").setValue(newVId); - } else { - block.getField("LIST").setValue(newVId); - } - } catch (e) { - // ignore - } - } - UndoGroup.endUndoGroup(wksp); - } - - /* - function doInjectScripts(codeString) { - let w = getWorkspace(); - let xml = new XML(); // document.implementation.createDocument(null, "xml"); - let x = xml.xmlDoc.firstChild; - - let tree = math.parse(codeString); - console.log(tree); - - const binaryOperatorTypes = { - add: "operator_add", - subtract: "operator_subtract", - this.multiply: "operator_multiply", - divide: "operator_divide", - }; - - const BLOCK_TYPE = { - number: "math_number", - text: "text", - }; - - function translateMathToXml(x, tree, shadowType) { - let xShadowField = null; - if (shadowType) { - let xShadow = xml.newXml(x, "shadow", { type: shadowType }); - if (shadowType === BLOCK_TYPE.number) { - xShadowField = xml.newXml(xShadow, "field", { name: "NUM" }); - } else if (shadowType === BLOCK_TYPE.text) { - xShadowField = xml.newXml(xShadow, "field", { name: "TEXT" }); - } - } - - if (!tree || !tree.type) { - return; - } - - if (tree.type === "OperatorNode") { - let operatorType = binaryOperatorTypes[tree.fn]; - if (operatorType) { - let xOp = newXml(x, "block", { type: operatorType }); - translateMathToXml(xml.newXml(xOp, "value", { name: "NUM1" }), tree.args[0], BLOCK_TYPE.number); - translateMathToXml(xml.newXml(xOp, "value", { name: "NUM2" }), tree.args[1], BLOCK_TYPE.number); - return; - } - - return; - } - - if (tree.type === "ConstantNode") { - // number or text in quotes - if (xShadowField) { - xml.setAttr(xShadowField, { text: tree.value }); - } - return; - } - - if (tree.type === "SymbolNode") { - // variable - let xVar = xml.newXml(x, "block", { type: "data_variable" }); - xml.newXml(xVar, "field", { name: "VARIABLE", text: tree.name }); - return; - } - - if (tree.type === "FunctionNode") { - // Method Call - if (tree.fn.name === "join") { - let xOp = newXml(x, "block", { type: "operator_join" }); - translateMathToXml(xml.newXml(xOp, "value", { name: "STRING1" }), tree.args[0], BLOCK_TYPE.text); - translateMathToXml(xml.newXml(xOp, "value", { name: "STRING2" }), tree.args[1], BLOCK_TYPE.text); - return; - } - } - } - - translateMathToXml(x, tree); - console.log(x); - - let ids = Blockly.Xml.domToWorkspace(x, w); - console.log(ids); - } - */ - /* - function clickInject(e) { - let codeString = window.prompt("Griffpatch: Enter an expression (i.e. a+2*3)"); - if (codeString) { - doInjectScripts(codeString); - } - e.preventDefault(); - return false; - } - */ - - /** - * Returns a Set of the top blocks in this workspace / sprite - * @returns {Set} Set of top blocks - */ - getTopBlockIDs() { - let wksp = this.utils.getWorkspace(); - let topBlocks = wksp.getTopBlocks(); - let ids = new Set(); - for (const block of topBlocks) { - ids.add(block.id); - } - return ids; - } - - /** - * Initiates a drag event for all block stacks except those in the set of ids. - * But why? - Because we know all the ids of the existing stacks before we paste / duplicate - so we can find the - * new stack by excluding all the known ones. - * @param ids Set of previously known ids + * Initiates a drag event for all block stacks except those in the set of ids. + * But why? - Because we know all the ids of the existing stacks before we paste / duplicate - so we can find the + * new stack by excluding all the known ones. + * @param ids Set of previously known ids */ beginDragOfNewBlocksNotInIDs(ids) { if (!this.addon.settings.get("enablePasteBlocksAtMouse")) { return; } - let wksp = this.utils.getWorkspace(); + let wksp = this.getWorkspace(); let topBlocks = wksp.getTopBlocks(); for (const block of topBlocks) { if (!ids.has(block.id)) { @@ -1389,7 +612,7 @@ export default class DevTools { } eventKeyDown(e) { - function switchCostume(up) { + const switchCostume = (up) => { // todo: select previous costume let selected = this.costTabBody.querySelector("div[class*='sprite-selector-item_is-selected']"); let node = up ? selected.parentNode.previousSibling : selected.parentNode.nextSibling; @@ -1403,7 +626,7 @@ export default class DevTools { }); wrapper.scrollTop = 0; } - } + }; if (document.URL.indexOf("editor") <= 0) { return; @@ -1411,57 +634,32 @@ export default class DevTools { let ctrlKey = e.ctrlKey || e.metaKey; - if (e.key === "f" && ctrlKey && !e.shiftKey) { - // Ctrl + F (Override default Ctrl+F find) - this.findInp.focus(); - this.findInp.select(); - e.cancelBubble = true; - e.preventDefault(); - return true; - } - - if (e.key === " " && ctrlKey) { - // Ctrl + Space (Inject Code) - this.middleClickWorkspace(e); - e.cancelBubble = true; - e.preventDefault(); - return true; - } - - if (e.keyCode === 37 && ctrlKey) { + if (e.key === "ArrowLeft" && ctrlKey) { // Ctrl + Left Arrow Key if (document.activeElement.tagName === "INPUT") { return; } - // todo: if (!this.addon.settings.get("enableCtrlLeftRightNav")) { - // return; - // } - if (this.isScriptEditor()) { - this.utils.navigationHistory.goBack(); - } else if (this.isCostumeEditor()) { + + if (this.isCostumeEditor()) { switchCostume(true); + e.cancelBubble = true; + e.preventDefault(); + return true; } - e.cancelBubble = true; - e.preventDefault(); - return true; } - if (e.keyCode === 39 && ctrlKey) { + if (e.key === "ArrowRight" && ctrlKey) { // Ctrl + Right Arrow Key if (document.activeElement.tagName === "INPUT") { return; } - // todo: if (!this.addon.settings.get("enableCtrlLeftRightNav")) { - // return; - // } - if (this.isScriptEditor()) { - this.utils.navigationHistory.goForward(); - } else if (this.isCostumeEditor()) { + + if (this.isCostumeEditor()) { switchCostume(false); + e.cancelBubble = true; + e.preventDefault(); + return true; } - e.cancelBubble = true; - e.preventDefault(); - return true; } if (e.keyCode === 86 && ctrlKey && !e.griff) { @@ -1479,7 +677,7 @@ export default class DevTools { } eventCopyClick(block, blockOnly) { - let wksp = this.utils.getWorkspace(); + let wksp = this.getWorkspace(); if (block) { block.select(); @@ -1507,672 +705,10 @@ export default class DevTools { eventMouseDown(e) { this.updateMousePosition(e); - - if (this.ddOut && this.ddOut.classList.contains("vis") && !e.target.closest("#s3devDDOut")) { - // If we click outside the dropdown, then instigate the hide code... - this.hideDropDown(); - } - - if (this.floatInp && !e.target.closest("#s3devIDDOut")) { - if ( - !e.shiftKey || - // Clicking on the code area should always make multi-inject work - (!document.getElementsByClassName("injectionDiv")[0].contains(e.target) && - // Focused inputs are not part of the injectionDiv, but to the user they are part of the code area so make multi-inject work there - !e.target.classList.contains("blocklyHtmlInput")) || - // This selector targets workspace buttons (Make a Block etc.) and the extension (!) buttons, which most commonly trigger a popup window so always close the dropdown - e.target.matches(".blocklyFlyoutButton, .blocklyFlyoutButton *, .blocklyTouchTargetBackground") - ) { - // If we click outside the dropdown, then instigate the hide code... - this.hideFloatDropDown(); - } - } - - if (e.button === 1 || e.shiftKey) { - // Wheel button... - try { - this.middleClick(e); - } catch (x) { - console.error(x); - } - } else if (e.button === 2) { - // Right click... - /* - let spriteSelector = e.target.closest("#react-tabs-3 div[class*='sprite-selector-item_sprite-selector-item']"); - if (spriteSelector) { - let contextMenu = spriteSelector.getElementsByTagName("nav")[0]; - if (!contextMenu.querySelector("div.s3devSTT")) { - contextMenu.insertAdjacentHTML( - "beforeend", - ` - - - ` - ); - } - } - */ - } else { - let chk = e.target; - if (chk && chk.tagName !== "BUTTON" && chk.getAttribute && !chk.getAttribute("role")) { - chk = chk.parentNode; - if (chk && chk.tagName !== "BUTTON" && chk.getAttribute && !chk.getAttribute("role")) { - chk = chk.parentNode; - } - } - - if (chk && chk.className && chk.className.indexOf) { - if (!this.canShare && chk.className.indexOf("share-button") >= 0) { - // Commented for ScratchAddons - /*e.cancelBubble = true; - e.preventDefault(); - - if (confirm("Griffpatch: Are you sure you want to share?")) { - // action the share! - canShare = true; - chk.click(); - }*/ - - return; - } - } - - chk = e.target.tagName === "SPAN" ? e.target.parentNode : e.target; - - if (chk.classList.contains("s3devSTT")) { - if (chk.textContent === this.m("top") || chk.textContent === this.m("bottom")) { - let spriteSelector = e.target.closest("div[class*='sprite-selector-item_sprite-selector-item']"); - this.moveCostumeTo(chk.textContent === this.m("top"), spriteSelector); - e.cancelBubble = true; - e.preventDefault(); - } - } - } } eventMouseUp(e) { this.updateMousePosition(e); - - if (e.button === 1 && e.target.closest("svg.blocklySvg")) { - // On Linux systems, middle click is often treated as a paste. - // We do not want this as we assign our own functionality to middle mouse. - e.preventDefault(); - } - } - - middleClickWorkspace(e) { - if (!this.isScriptEditor()) { - return; - } - - // todo: if (!this.addon.settings.get("enableBlockInjector")) { - // return; - // } - - e.cancelBubble = true; - e.preventDefault(); - - let floatBar = document.getElementById("s3devFloatingBar"); - if (floatBar) { - floatBar.remove(); - } - - // Popup new input box for block injection - document.body.insertAdjacentHTML( - "beforeend", - ` -
- -
- ` - ); - - floatBar = document.getElementById("s3devFloatingBar"); - floatBar.style.left = this.mouseXY.x + 16 + "px"; - floatBar.style.top = this.mouseXY.y - 8 + "px"; - - this.floatInp = document.getElementById("s3devIInp"); - this.floatInp.focus(); - - // Build Filter List... - - this.buildFloatingFilterList(e, floatBar); - - const ddOut = document.getElementById("s3devIDDOut"); - ddOut.addEventListener("mousedown", (...e) => this.dropDownFloatClick(...e)); - - this.floatInp.addEventListener("keyup", (...e) => this.floatInputChange(...e)); - this.floatInp.addEventListener("focus", (...e) => this.floatInputChange(...e)); - this.floatInp.addEventListener("keydown", (...e) => this.floatInputKeyDown(...e)); - } - - middleClick(e) { - // Intercept clicks to allow jump to...? - let blockSvg = e.target.closest("[data-id]"); - if (!blockSvg) { - // Ok, so no selection... are we at least clicking on the workspace? - if (e.target.closest("svg.blocklySvg")) { - this.blockCursor = null; // Clear the cursor if using the mouse - this.middleClickWorkspace(e); - } - return; - } - - if (!this.addon.settings.get("enableMiddleClickFinder")) { - return; - } - - let w = this.utils.getWorkspace(); - let dataId = blockSvg.getAttribute("data-id"); - let block = w.getBlockById(dataId); - if (!block) { - return; - } - - // Move outwards until we reach a block we can take action on - - for (; block; block = block.getSurroundParent()) { - if (block.type === "procedures_call") { - e.cancelBubble = true; - e.preventDefault(); - - // todo: navigate to definition - let findProcCode = block.getProcCode(); - - let wksp = this.utils.getWorkspace(); - let topBlocks = wksp.getTopBlocks(); - for (const root of topBlocks) { - if (root.type === "procedures_definition") { - let label = root.getChildren()[0]; - let procCode = label.getProcCode(); - if (procCode && procCode === findProcCode) { - // Found... navigate to it! - this.centerTop(root); - return; - } - } - } - } - - if (block.type === "procedures_definition") { - let id = block.id ? block.id : block.getId ? block.getId() : null; - - this.findInp.focus(); - this.showDropDown(null, id); - // findInp.select(); - - e.cancelBubble = true; - e.preventDefault(); - return; - } - - if ( - block.type === "data_variable" || - block.type === "data_changevariableby" || - block.type === "data_setvariableto" - ) { - let id = block.getVars()[0]; - - this.findInp.focus(); - this.showDropDown(null, id, block); - - // let button = document.getElementById('s3devReplace'); - - this.selVarID = id; - // button.classList.remove('s3devHide'); - - e.cancelBubble = true; - e.preventDefault(); - return; - } - - if ( - block.type === "event_whenbroadcastreceived" || - block.type === "event_broadcastandwait" || - block.type === "event_broadcast" - ) { - // todo: actually index the broadcasts...! - let id = block.id; - - this.findInp.focus(); - this.showDropDown(null, id, block); - - this.selVarID = id; - - e.cancelBubble = true; - e.preventDefault(); - return; - } - } - - e.cancelBubble = true; - e.preventDefault(); - } - - getEdgeTypeClass(block) { - switch (block.edgeShape_) { - case 1: - return "boolean"; - case 2: - return "reporter"; - default: - return block.startHat_ ? "hat" : "block"; - } - } - - buildFloatingFilterList(e, floatBar) { - // todo: Iterate through the toolbox? - - let options = []; - - let t = this.utils.getWorkspace().getToolbox(); - - let blocks = t.flyout_.getWorkspace().getTopBlocks(); - // 107 blocks, not in order... but we can sort by y value or description right :) - - let fullDom = Blockly.Xml.workspaceToDom(t.flyout_.getWorkspace()); - const doms = {}; - for (const x of fullDom.children) { - if (x.tagName === "BLOCK") { - // let type = x.getAttribute('type'); - let id = x.getAttribute("id"); - doms[id] = x; - } - } - - for (const block of blocks) { - this.getBlockText(block, options, doms); - } - - // Griffpatch - on second thoughts - lets sort blocks by length so that shortest ones appear at the top. - options.sort((a, b) => - a.desc.length < b.desc.length ? -1 : a.desc.length > b.desc.length ? 1 : a.desc.localeCompare(b.desc) - ); - - // Previous sort was just alphabetical - // options.sort((a, b) => a.desc.localeCompare(b.desc)); - - const dd = document.getElementById("s3devIDD"); - - let count = 0; - //DROPDOWN_BLOCK_LIST_MAX_ROWS - - for (const option of options) { - const li = document.createElement("li"); - const desc = option.desc; - - // bType = hat block reporter boolean - - let bType = this.getEdgeTypeClass(option.block); - - count++; - - li.innerText = desc; - li.data = { text: desc, lower: " " + desc.toLowerCase(), option: option }; - li.className = - "var " + (option.block.isScratchExtension ? "extension" : option.block.getCategory()) + " " + bType; // proc.cls; - if (count > DROPDOWN_BLOCK_LIST_MAX_ROWS) { - // Limit maximum number of rows to prevent lag when no filter is applied - li.style.display = "none"; - } - dd.appendChild(li); - } - - const ddOut = document.getElementById("s3devIDDOut"); - ddOut.classList.add("vis"); - - // console.log(options); - } - - /** - * Flesh out a blocks description - duplicate up blocks with contained picklists (like list drop downs) - * @param block - * @param options - * @param doms - * @returns {string} - */ - getBlockText(block, options, doms) { - // block.type; "looks_nextbackdrop" - - let desc; - let picklist, pickField; - - let dom = doms[block.id]; - - // dom = doms[block.type]; - - const process = (block) => { - for (const input of block.inputList) { - // input.name = "", input.type = 5 - let fields = input.fieldRow; - for (const field of fields) { - // field --- Blockly.FieldLabel .className = "blocklyText" - // Blockly.FieldDropdown --- .className = "blocklyText blocklyDropdownText" - - let text; - - if (!picklist && field.className_ === "blocklyText blocklyDropdownText") { - picklist = field.getOptions(); - pickField = field.name; - if (picklist && picklist.length > 0) { - text = "^^"; - } else { - text = field.getText(); - } - } else { - text = field.getText(); - } - - desc = (desc ? desc + " " : "") + text; - } - - if (input.connection) { - let innerBlock = input.connection.targetBlock(); - if (innerBlock) { - process(innerBlock); // Recursive process connected child blocks... - } - } - } - }; - - process(block); - - if (picklist) { - for (const item of picklist) { - let code = item[1]; - if ( - typeof code !== "string" || // Audio Record is a function! - code === "DELETE_VARIABLE_ID" || - code === "RENAME_VARIABLE_ID" || - code === "NEW_BROADCAST_MESSAGE_ID" || - code === "NEW_BROADCAST_MESSAGE_ID" || - // editor-searchable-dropdowns compatibility - code === "createGlobalVariable" || - code === "createLocalVariable" || - code === "createGlobalList" || - code === "createLocalList" || - code === "createBroadcast" - ) { - continue; // Skip these - } - options.push({ - desc: desc.replace("^^", item[0]), - block: block, - dom: dom, - option: item, - pickField: pickField, - }); - } - } else { - options.push({ desc: desc, block: block, dom: dom }); - } - - return desc; - } - - floatInputKeyDown(e) { - if (e.keyCode === 38) { - this.navigateFloatFilter(-1); - e.preventDefault(); - return; - } - if (e.keyCode === 40) { - this.navigateFloatFilter(1); - e.preventDefault(); - return; - } - if (e.keyCode === 13) { - // Enter - let dd = document.getElementById("s3devIDD"); - let sel = dd.querySelector(".sel"); - if (sel) { - this.dropDownFloatClick(e); - } - e.cancelBubble = true; - e.preventDefault(); - return; - } - if (e.keyCode === 27) { - // Escape - let findInp = document.getElementById("s3devIInp"); - if (findInp.value.length > 0) { - findInp.value = ""; // Clear search first, then close on second press - this.floatInputChange(e); - } else { - this.reallyHideFloatDropDown(true); - } - e.preventDefault(); - return; - } - } - - navigateFloatFilter(dir) { - let dd = document.getElementById("s3devIDD"); - let sel = dd.getElementsByClassName("sel"); - let nxt; - if (sel.length > 0 && sel[0].style.display !== "none") { - nxt = dir === -1 ? sel[0].previousSibling : sel[sel.length - 1].nextSibling; - } else { - nxt = dd.children[0]; - dir = 1; - } - while (nxt && nxt.style.display === "none") { - nxt = dir === -1 ? nxt.previousSibling : nxt.nextSibling; - } - if (nxt) { - for (const i of sel) { - i.classList.remove("sel"); - } - nxt.classList.add("sel"); - // centerTop(nxt.data.labelID); - } - } - - /** - * This is a feature in progress - can we have a virtual cursor that allows the next injected element position be automated - * @param block a blockly block - * @param typ type - */ - findNextHole(block, typ) { - /* - const inputs = block.inputList; - if (inputs) { - /!** Blockly.Input *!/ - for (const input of inputs) { - const fieldRow = input.fieldRow; - if (fieldRow) { - /!** Blockly.FieldNumber *!/ - for (const field of fieldRow) { - if (field.argType_ && field.argType_.includes(typ)) { - } - } - } - } - } - */ - } - - /** - * Inject the selected block into the script - * @param e - */ - dropDownFloatClick(e) { - e.cancelBubble = true; - if (!e.target.closest("input")) { - e.preventDefault(); - } - - let wksp = this.utils.getWorkspace(); - - let sel = e && e.target; - if (sel.tagName === "B") { - sel = sel.parentNode; - } - - if (e instanceof MouseEvent && sel.tagName !== "LI") { - // Mouse clicks need to be on a block... - return; - } - - if (!sel || !sel.data) { - let dd = document.getElementById("s3devIDD"); - sel = dd.querySelector(".sel"); - } - - if (!sel) { - return; - } - - const xml = new XML(); - let x = xml.xmlDoc.firstChild; - let option = sel.data.option; - // block:option.block, dom:option.dom, option:option.option - if (option.option) { - // We need to tweak the dropdown in this xml... - let field = option.dom.querySelector("field[name=" + option.pickField + "]"); - if (field.getAttribute("id")) { - field.innerText = option.option[0]; - field.setAttribute("id", option.option[1] + "-" + option.option[0]); - } else { - field.innerText = option.option[1]; // griffpatch - oops! option.option[1] not 0? - } - - // Handle "stop other scripts in sprite" - if (option.option[1] === "other scripts in sprite") { - option.dom.querySelector("mutation").setAttribute("hasnext", "true"); - } - } - - x.appendChild(option.dom); - - let ids = Blockly.Xml.domToWorkspace(x, wksp); - - if (!e.shiftKey) { - this.reallyHideFloatDropDown(true); - } - - let block = wksp.getBlockById(ids[0]); - - if (this.blockCursor) { - // What sort of block did we just inject? - let typ = this.getEdgeTypeClass(option.block); - if (typ === "boolean") { - this.findNextHole(this.blockCursor, ""); - } else if (typ === "reporter") { - this.findNextHole(this.blockCursor, typ); - } - } - - this.domHelpers.triggerDragAndDrop(block.svgPath_, null, { x: this.mouseXY.x, y: this.mouseXY.y }, e.shiftKey); - - if (e.shiftKey) { - document.getElementById("s3devIInp").focus(); - } - - this.blockCursor = block; - } - - floatInputChange(e) { - let ddOut = document.getElementById("s3devIDDOut"); - - if (!ddOut.classList.contains("vis")) { - // showDropDown(); - // hideDropDown(); // Start timer to hide if not got focus - } - - let findInp = document.getElementById("s3devIInp"); - - // Filter the list... - let val = (findInp.value || "").toLowerCase(); - if (val === prevVal) { - return; - } - - prevVal = val; - this.multi.blocks = null; - - let dd = document.getElementById("s3devIDD"); - let p = dd.parentNode; - dd.remove(); - - let count = 0; - - let split = val.split(" "); - let listLI = dd.getElementsByTagName("li"); - for (const li of listLI) { - const procCode = li.data.text; - const lower = li.data.lower; - // let i = li.data.lower.indexOf(val); - // let array = regExp.exec(li.data.lower); - - let im = 0; - let match = []; - for (let si = 0; si < split.length; si++) { - let find = " " + split[si]; - let idx = lower.indexOf(find, im); - if (idx === -1) { - match = null; - break; - } - match.push(idx); - im = idx + find.length; - } - - if (count < DROPDOWN_BLOCK_LIST_MAX_ROWS && match) { - li.style.display = "block"; - this.dom_removeChildren(li); - - let i = 0; - - for (let iM = 0; iM < match.length; iM++) { - let im = match[iM]; - if (im > i) { - li.appendChild(document.createTextNode(procCode.substring(i, im))); - i = im; - } - let bText = document.createElement("b"); - let len = split[iM].length; - bText.appendChild(document.createTextNode(procCode.substr(i, len))); - li.appendChild(bText); - i += len; - } - - if (i < procCode.length) { - li.appendChild(document.createTextNode(procCode.substr(i))); - } - - if (count === 0) { - li.classList.add("sel"); - } else { - li.classList.remove("sel"); - } - count++; - } else { - li.style.display = "none"; - li.classList.remove("sel"); - } - } - p.append(dd); } initInner(root) { @@ -2187,105 +723,13 @@ export default class DevTools { this.costTab = guiTabs[1]; this.costTabBody = document.querySelector("div[aria-labelledby=" + this.costTab.id + "]"); - if (!document.getElementById("s3devFind")) { - // noinspection JSUnresolvedVariable - root.insertAdjacentHTML( - "beforeend", - ` -
-
- - - - - ${this.m("deep")} - -
-
- ` - ); - - this.find = document.getElementById("s3devFind"); - this.findInp = document.getElementById("s3devInp"); - this.ddOut = document.getElementById("s3devDDOut"); - this.domHelpers.bindOnce(this.ddOut, "mousedown", (...e) => this.dropDownClick(...e), undefined); - this.dd = document.getElementById("s3devDD"); - - // bindOnce(find, 'mouseenter', showDropDown); - // bindOnce(find, 'mouseleave', hideDropDown); - this.domHelpers.bindOnce(this.findInp, "keyup", (...e) => this.inputChange(...e), undefined); - this.domHelpers.bindOnce(this.findInp, "keydown", (...e) => this.inputKeyDown(...e), undefined); - this.domHelpers.bindOnce(this.findInp, "focus", (...e) => this.inputChange(...e), undefined); - - this.domHelpers.bindOnce( - document.getElementById("s3devHelp"), - "click", - (...e) => this.eventClickHelp(...e), - undefined - ); - - this.domHelpers.bindOnce(document, "keydown", (...e) => this.eventKeyDown(...e), true); - } - + this.domHelpers.bindOnce(document, "keydown", (...e) => this.eventKeyDown(...e), true); this.domHelpers.bindOnce(document, "mousemove", (...e) => this.eventMouseMove(...e), true); this.domHelpers.bindOnce(document, "mousedown", (...e) => this.eventMouseDown(...e), true); // true to capture all mouse downs 'before' the dom events handle them this.domHelpers.bindOnce(document, "mouseup", (...e) => this.eventMouseUp(...e), true); } } -class Multi { - constructor(utils) { - this.idx = 0; - this.blocks = null; - this.selID = null; - /** - * @type {Utils} - */ - this.utils = utils; - } - - update() { - const count = document.getElementById("s3devMultiCount"); - count.innerText = this.blocks && this.blocks.length > 0 ? enc(this.idx + 1 + " / " + this.blocks.length) : "0"; - this.selID = this.idx < this.blocks.length ? this.blocks[this.idx].id : null; - } - - navLeft(e) { - return this.navSideways(e, -1); - } - - navRight(e) { - return this.navSideways(e, 1); - } - - navSideways(e, dir) { - if (this.blocks && this.blocks.length > 0) { - this.idx = (this.idx + dir + this.blocks.length) % this.blocks.length; // + length to fix negative modulo js issue. - this.update(); - this.utils.scrollBlockIntoView(this.blocks[this.idx]); - } - if (e) { - e.cancelBubble = true; - e.preventDefault(); - } - return false; - } -} - class Col { /** * @param x {Number} x position (for ordering) @@ -2308,13 +752,3 @@ class Col { this.blocks = blocks; } } - -const DROPDOWN_BLOCK_LIST_MAX_ROWS = 25; - -let rhdd = 0; -let rhdd2 = 0; -let prevVal = ""; - -function enc(str) { - return String(str).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """); -} diff --git a/src/addons/addons/editor-devtools/blockly/UndoGroup.js b/src/addons/addons/editor-devtools/UndoGroup.js similarity index 84% rename from src/addons/addons/editor-devtools/blockly/UndoGroup.js rename to src/addons/addons/editor-devtools/UndoGroup.js index c08d677164a..f08a0bd9e78 100644 --- a/src/addons/addons/editor-devtools/blockly/UndoGroup.js +++ b/src/addons/addons/editor-devtools/UndoGroup.js @@ -22,7 +22,7 @@ export default class UndoGroup { static endUndoGroup(workspace) { const undoStack = workspace.undoStack_; // Events (responsible for undoStack updates) are delayed with a setTimeout(f, 0) - // https://github.com/LLK/scratch-blocks/blob/f159a1779e5391b502d374fb2fdd0cb5ca43d6a2/core/events.js#L182 + // https://github.com/scratchfoundation/scratch-blocks/blob/f159a1779e5391b502d374fb2fdd0cb5ca43d6a2/core/events.js#L182 setTimeout(() => { const group = generateUID(); for (let i = undoStack.length - 1; i >= 0 && !undoStack[i]._devtoolsLastUndo; i--) { @@ -33,7 +33,7 @@ export default class UndoGroup { } /** - * https://github.com/LLK/scratch-blocks/blob/f159a1779e5391b502d374fb2fdd0cb5ca43d6a2/core/events.js#L182 + * https://github.com/scratchfoundation/scratch-blocks/blob/f159a1779e5391b502d374fb2fdd0cb5ca43d6a2/core/events.js#L182 * @returns {string} * @private */ diff --git a/src/addons/addons/editor-devtools/XML.js b/src/addons/addons/editor-devtools/XML.js deleted file mode 100644 index cb40edb73bf..00000000000 --- a/src/addons/addons/editor-devtools/XML.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * A fake XML class to use in place of the real XML for faking things? - */ -export default class XML { - constructor() { - this.xmlDoc = document.implementation.createDocument(null, "xml"); - } - - newXml(x, tagName, attrs) { - let xAdd = this.xmlDoc.createElement(tagName); - x.appendChild(xAdd); - return this.setAttr(xAdd, attrs); - } - - setAttr(x, attrs) { - if (attrs) { - for (const key of Object.keys(attrs)) { - if (key === "text") { - x.appendChild(this.xmlDoc.createTextNode(attrs[key])); - } else { - x.setAttribute(key, attrs[key]); - } - } - } - return x; - } -} diff --git a/src/addons/addons/editor-devtools/_manifest_entry.js b/src/addons/addons/editor-devtools/_manifest_entry.js index bfa7aa2d568..0a0db302f1e 100644 --- a/src/addons/addons/editor-devtools/_manifest_entry.js +++ b/src/addons/addons/editor-devtools/_manifest_entry.js @@ -2,7 +2,7 @@ const manifest = { "editorOnly": true, "name": "Developer tools", - "description": "Adds a find box and new menu options to the editor: copy/paste blocks, better clean up, go to custom block definition, and more! Press Ctrl+F to focus the find box, Ctrl+Space to bring up the \"add block by name\" popup, Ctrl+Left/Right to navigate find history.", + "description": "Adds new menu options to the editor: copy/paste blocks, better clean up, and more!", "credits": [ { "name": "griffpatch" @@ -22,13 +22,6 @@ const manifest = { "id": "enablePasteBlocksAtMouse", "type": "boolean", "default": true - }, - { - "dynamic": true, - "name": "Middle mouse click variables, custom blocks or events to navigate", - "id": "enableMiddleClickFinder", - "type": "boolean", - "default": true } ], "userscripts": [ @@ -36,11 +29,6 @@ const manifest = { "url": "userscript.js" } ], - "userstyles": [ - { - "url": "userscript.css" - } - ], "tags": [ "recommended" ], diff --git a/src/addons/addons/editor-devtools/_runtime_entry.js b/src/addons/addons/editor-devtools/_runtime_entry.js index 7d9d3b5487a..59d4deed506 100644 --- a/src/addons/addons/editor-devtools/_runtime_entry.js +++ b/src/addons/addons/editor-devtools/_runtime_entry.js @@ -1,7 +1,7 @@ /* generated by pull.js */ import _js from "./userscript.js"; -import _css from "!css-loader!./userscript.css"; +import _asset from "!url-loader!./icon--close.svg"; export const resources = { "userscript.js": _js, - "userscript.css": _css, + "icon--close.svg": _asset, }; diff --git a/src/addons/addons/editor-devtools/userscript.css b/src/addons/addons/editor-devtools/userscript.css deleted file mode 100644 index 713bb94f86e..00000000000 --- a/src/addons/addons/editor-devtools/userscript.css +++ /dev/null @@ -1,506 +0,0 @@ -#s3devToolBar { - display: flex; - white-space: nowrap; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - width: 100%; -} - -.s3devLabel { - display: flex; - width: 100%; -} - -.s3devLabel > label { - /* padding instead of margin so clicking on the empty area will select the input */ - padding-left: 1.5em; - padding-right: 1em; - font-weight: bold; - font-size: 0.625rem; - user-select: none; - cursor: default; - white-space: nowrap; - padding-top: 2px; - line-height: 2; -} - -[dir="rtl"] .s3devLabel > label { - padding-right: 1.5em; - padding-left: 1em; -} - -.s3devAction { - transition: opacity 200ms ease-in; - /*font-weight: bold;*/ - opacity: 0; -} - -.s3devLabel:hover .s3devAction { - opacity: 0.7; -} - -/* Wrapper around find button and drop down */ -.s3devWrap { - overflow: visible; - /*margin-left:3em;*/ - position: relative; -} - -#s3devFind { - height: 2rem; - width: 100%; -} - -/* We need to modify Scratch styles so that the place where the find bar is injected */ -/* has actually correct size information, which is used to make the find bar not cover up controls */ -[class*="gui_tab-list_"] { - width: 100%; -} -[class*="gui_tab_"] { - flex-grow: 0; -} - -/* Find Input Box */ -input.s3devInp { - width: 100%; - box-sizing: border-box !important; - /* !important required for extension, because CSS injection method (and hence order) differs from addon */ - height: 1.5rem; - - /* Change Scratch default styles */ - border-radius: 0.25rem; - font-size: 0.75rem; - padding-left: 0.4em; -} -[theme="dark"] input.s3devInp { - color: #eee; - background: #3333; -} -[theme="dark"] input.s3devInp:hover { - background: #333; -} - -input.s3devInp:focus { - /* Change Scratch default styles */ - box-shadow: none; -} - -/* Drop down from find button */ -.s3devDDOut { - display: block; - top: -6px; - z-index: 100; - width: 100%; - max-width: 16em; - position: relative; - /*padding: 2.2em 0 0;*/ - /*background-color: white;*/ - padding: 4px; -} - -/* Drop down from find button */ -ul.s3devDD { - display: none; - position: relative; - padding: 0.2em 0; - font-size: 0.75rem; - line-height: 1; - overflow-y: auto; - min-height: 128px; - max-height: 65vh; - user-select: none; - max-width: 100%; -} - -.s3devDDOut.vis { - position: absolute; - width: 16em; - /*box-shadow: 0 2px 3px rgba(0,0,0,0.3), 0 5px 8px rgba(0,0,0,0.2);*/ - box-shadow: 0px 0px 8px 1px rgba(0, 0, 0, 0.3); - background-color: white; - border: none; - border-radius: 4px; -} -[theme="dark"] .s3devDDOut.vis { - background-color: #111; - box-shadow: 0px 0px 0px 1px var(--ui-black-transparent); -} - -.s3devDDOut.vis ul.s3devDD { - display: block; - border: none; -} - -/* Drop down items */ -.s3devDD > li { - display: block; - padding: 0.5em 0.3em; - white-space: nowrap; - margin: 0; - font-weight: bold; - text-overflow: ellipsis; - overflow: hidden; -} - -.s3devDD > li > b { - background-color: #aaffaa; - color: black; -} - -/* Drop down items */ -.s3devDD > li:hover, -.s3devDD > li.sel { - color: white; - cursor: pointer; -} - -#s3devDD > li::before { - content: "\25CF "; /* ● */ -} - -.define { - color: rgb(255, 102, 128); -} -.define:hover, -.define.sel { - background-color: rgb(255, 102, 128); -} - -.flag { - color: #4cbf56; -} -.flag:hover, -.flag.sel { - background-color: #4cbf56; -} - -.receive { - color: rgb(255, 191, 0); -} -.receive:hover, -.receive.sel { - background-color: rgb(255, 191, 0); -} - -.event { - color: rgb(255, 191, 0); -} -.event:hover, -.event.sel { - background-color: rgb(255, 191, 0); -} - -.var, -.VAR { - color: rgb(255, 120, 26); -} -.var:hover, -.var.sel, -.VAR:hover, -.VAR.sel { - background-color: rgb(255, 120, 26); -} - -.list, -.LIST { - color: rgb(255, 102, 26); -} -.list:hover, -.list.sel, -.LIST:hover, -.LIST.sel { - background-color: rgb(255, 102, 26); -} - -.costume { - color: rgb(26, 66, 255); -} -.costume:hover, -.costume.sel { - background-color: rgb(26, 66, 255); -} - -.operators { - background-color: rgb(64, 191, 74); - color: rgb(56, 148, 56); -} -.operators:hover, -.operators.sel { - background-color: rgb(56, 148, 56); -} - -.data { - background-color: rgb(255, 140, 26); - color: rgb(219, 110, 0); -} -.data:hover, -.data.sel { - background-color: rgb(219, 110, 0); -} - -.data-lists { - background-color: rgb(255, 102, 26); - color: rgb(255, 102, 26); -} -.data-lists:hover, -.data-lists.sel { - background-color: rgb(207, 81, 20); -} - -.sensing { - background-color: rgb(76, 191, 230); - color: rgb(46, 142, 184); -} -.sensing:hover, -.sensing.sel { - background-color: rgb(46, 142, 184); -} - -.looks { - background-color: rgb(153, 102, 255); - color: rgb(119, 77, 203); -} -.looks:hover, -.looks.sel { - background-color: rgb(119, 77, 203); -} - -.sounds { - background-color: rgb(214, 92, 214); - color: rgb(189, 66, 189); -} -.sounds:hover, -.sounds.sel { - background-color: rgb(189, 66, 189); -} - -.motion { - background-color: rgb(76, 151, 255); - color: rgb(51, 115, 204); -} -.motion:hover, -.motion.sel { - background-color: rgb(51, 115, 204); -} - -.events { - background-color: rgb(255, 213, 0); - color: rgb(204, 153, 0); -} -.events:hover, -.events.sel { - background-color: rgb(204, 153, 0); -} - -.control { - background-color: rgb(255, 171, 25); - color: rgb(207, 139, 23); -} -.control:hover, -.control.sel { - background-color: rgb(207, 139, 23); -} - -.TurboWarp { - background-color: #ff4c4c; - color: rgb(207, 139, 23); -} -.TurboWarp:hover, -.TurboWarp.sel { - background-color: #e64444; -} - -.null { - background-color: rgb(255, 102, 128); - color: rgb(255, 77, 106); -} -.null:hover, -.null.sel { - background-color: rgb(255, 77, 106); -} - -.extension { - background-color: rgb(15 189 140); -} -.extension:hover, -.extension.sel { - background-color: rgb(11 158 117); -} - -/*.s3devDD>li.hat::before { content: '◠ ';}*/ -/*.s3devDD>li.hat::before { content: '▲ ';}*/ -/*.s3devDD>li.block::before { content: '■ ';}*/ -/*.s3devDD>li.reporter::before { content: '● ';}*/ -/*.s3devDD>li.boolean::before { content: '◆ ';}*/ - -#s3devIDD > li { - height: 19px; - padding: 3px 8px; - margin: 2px 0.3em; - box-sizing: border-box; - position: relative; - color: white; - font-weight: bold; - width: min-content; -} - -.s3devDD > li.hat { - border-radius: 14px 14px 3px 3px; -} -.s3devDD > li.block { - border-radius: 3px; -} -.s3devDD > li.reporter { - border-radius: 10px; -} - -.s3devDD > li.boolean { - width: min-content; -} -.s3devDD > li.boolean::before { - content: ""; - position: absolute; - left: 0; - top: 0; - width: 0; - height: 0; - border-right: 9px solid transparent; - border-top: 9px solid white; - border-bottom: 10px solid white; -} -.s3devDD > li.boolean::after { - content: ""; - position: absolute; - right: 0; - top: 0; - width: 0; - height: 0; - border-left: 9px solid transparent; - border-top: 9px solid white; - border-bottom: 10px solid white; -} -[theme="dark"] .s3devDD > li.boolean::before { - border-top-color: #111; - border-bottom-color: #111; -} -[theme="dark"] .s3devDD > li.boolean::after { - border-top-color: #111; - border-bottom-color: #111; -} - -#s3devOverlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(80, 80, 80, 0.5); - z-index: 9999; - padding: 10em; - color: white; - font-weight: bold; -} - -.s3devMulti { - font-weight: normal; - position: absolute; - right: 0; - white-space: nowrap; - background-color: inherit; - z-index: 1; - padding: 0; -} - -.s3devNav { - padding: 0 6px; -} - -.s3devNav:hover { - color: #ffff80; -} - -.s3devAction { - margin-left: 2em; -} - -@media screen and (max-width: 1180px) { - .s3devAction { - display: none; - } -} - -.s3devHide { - display: none; -} - -.s3dev-mi:hover { - background-color: #d6e9f8; -} -[theme="dark"] .s3dev-mi:hover { - background-color: var(--ui-tertiary); -} - -#s3devHelpPop > div { - box-sizing: border-box; - width: 800px; - height: 60vh; - max-height: 800px; - max-width: 85%; - margin: auto; - margin-top: 20vh; -} - -#s3devHelpPop [class*="modal_header-item-title"] { - margin: 0 -20rem 0 0; -} -#s3devHelpPop[dir="rtl"] [class*="modal_header-item-title"] { - margin: 0 0 0 -20rem; -} - -#s3devHelpContent { - height: calc(100% - 3.125rem); - overflow-y: auto; - padding: 1em 2em 4em; - background-color: white; - user-select: text; -} -[theme="dark"] #s3devHelpPop > div { - background: #111; -} - -#s3devFloatingBar { - display: flex; - white-space: nowrap; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - - position: absolute; - min-width: 128px; - background-color: white; - border-radius: 4px; - box-shadow: rgba(0, 0, 0, 0.3) 0 0 3px, rgba(0, 0, 0, 0.2) 0 3px 10px; - - z-index: 999; -} -[theme="dark"] #s3devFloatingBar { - background-color: #111; -} - -#s3devInsertLabel { - padding: 0; - align-items: center; -} - -/* Drop down from find button */ -ul#s3devIDD { - max-height: 200px; - margin-bottom: 0; -} - -#s3devIDD > li > b { - background-color: rgba(0, 0, 0, 0.6); - color: white; -} - -[data-highlighted="true"] { - background-color: hsla(30, 100%, 55%, 1) !important; /* orange */ - color: white !important; -} diff --git a/src/addons/addons/editor-devtools/userscript.js b/src/addons/addons/editor-devtools/userscript.js index ec72fd32b65..44e70aa56f7 100644 --- a/src/addons/addons/editor-devtools/userscript.js +++ b/src/addons/addons/editor-devtools/userscript.js @@ -1,51 +1,6 @@ -/* inserted by pull.js */ -import _twAsset0 from "!url-loader!./icon--close.svg"; -const _twGetAsset = (path) => { - if (path === "/icon--close.svg") return _twAsset0; - throw new Error(`Unknown asset: ${path}`); -}; - import DevTools from "./DevTools.js"; -export default async function ({ addon, global, console, msg, safeMsg: m }) { - const guiDirection = addon.tab.direction; - const helpHTML = ` -
-
-
-
${m("help-title")}
-
-
- -
-
-
-
-

${m("code-tab-features")}

-

${m("interactive-find-bar")} – ${m("interactive-find-bar-desc")}

-

${m("improved-tidy-up")} – ${m("improved-tidy-up-desc")}

-

${m("help-make-space")} ${m("help-new")} – ${m("help-make-space-desc")}

-

${m("copy-to-clipboard")} – ${m("copy-to-clipboard-desc")}

-

${m("paste-from-clipboard")} – ${m("paste-from-clipboard-desc")}

-

${m("swap-variable")} – ${m("swap-variable-desc")}

-

${m("middleclick")} – ${m("middleclick-desc")}

-

${m("ctrl-lr")} – ${m("ctrl-lr-desc")}

-

${m("ctrl-space")} – ${m("ctrl-space-desc")}

-
-

${m("costume-tab-features")}

-

${m("find-bar")} – ${m("find-bar-costume-desc")}

-

${m("ctrl-lr")} – ${m("ctrl-lr-costume-desc")}

-
-

${m( - "youtube" - )} - https://www.youtube.com/user/griffpatch

-
-
-
-`; - - const devTools = new DevTools(addon, msg, m, helpHTML); +export default async function ({ addon, console, msg, safeMsg: m }) { + const devTools = new DevTools(addon, msg, m); devTools.init(); } diff --git a/src/addons/addons/editor-extra-keys/_manifest_entry.js b/src/addons/addons/editor-extra-keys/_manifest_entry.js index ea4a811d2c4..3d4d2fc6be4 100644 --- a/src/addons/addons/editor-extra-keys/_manifest_entry.js +++ b/src/addons/addons/editor-extra-keys/_manifest_entry.js @@ -1,15 +1,13 @@ /* generated by pull.js */ const manifest = { "editorOnly": true, - "name": "Extra key support", - "description": "Adds more keys to the \"key () pressed?\" and \"when () key pressed\" block dropdowns, such as enter, dot, comma, and more.", - "tags": [ - "beta" - ], + "name": "Extra key options", + "description": "Adds more keys to the \"key () pressed?\" and \"when () key pressed\" block dropdowns, such as enter, dot, comma, and more. These keys will work even for users who do not have this addon.", + "tags": [], "credits": [ { - "name": "Tacodude7729", - "link": "https://scratch.mit.edu/users/Tacodude7729/" + "name": "Tacodiva", + "link": "https://scratch.mit.edu/users/Tacodiva7729/" } ], "info": [ @@ -32,21 +30,21 @@ const manifest = { "settings": [ { "dynamic": true, - "name": "Enable experimental keys", + "name": "Show experimental keys", "id": "experimentalKeys", "type": "boolean", "default": false }, { "dynamic": true, - "name": "Enable Shift keys", + "name": "Show Shift keys", "id": "shiftKeys", "type": "boolean", "default": false }, { "dynamic": true, - "name": "Enable TurboWarp keys", + "name": "Show TurboWarp keys", "id": "twKeys", "type": "boolean", "default": false diff --git a/src/addons/addons/editor-extra-keys/userscript.js b/src/addons/addons/editor-extra-keys/userscript.js index 1a852c735e5..131a597b938 100644 --- a/src/addons/addons/editor-extra-keys/userscript.js +++ b/src/addons/addons/editor-extra-keys/userscript.js @@ -1,4 +1,4 @@ -export default async function ({ addon, global, cons, msg }) { +export default async function ({ addon, msg }) { const ScratchBlocks = await addon.tab.traps.getBlockly(); let defaultKeys = null; diff --git a/src/addons/addons/editor-number-arrow-keys/_manifest_entry.js b/src/addons/addons/editor-number-arrow-keys/_manifest_entry.js new file mode 100644 index 00000000000..fa857dd33b2 --- /dev/null +++ b/src/addons/addons/editor-number-arrow-keys/_manifest_entry.js @@ -0,0 +1,176 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Arrow key incrementation in editor", + "description": "Use the up and down arrow keys to increase or decrease number values in numeric input fields such as those in blocks or the sprite properties area.", + "tags": [ + "recommended" + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Change on regular key press", + "id": "regular", + "type": "select", + "default": "one", + "potentialValues": [ + { + "id": "none", + "name": "None" + }, + { + "id": "hundredth", + "name": "0.01" + }, + { + "id": "tenth", + "name": "0.1" + }, + { + "id": "one", + "name": "1" + }, + { + "id": "ten", + "name": "10" + } + ], + "if": { + "settings": { + "useCustom": false + } + } + }, + { + "dynamic": true, + "name": "Change on regular key press", + "id": "regularCustom", + "type": "untranslated", + "default": "1", + "max": 8, + "if": { + "settings": { + "useCustom": true + } + } + }, + { + "dynamic": true, + "name": "Change on Shift+Key", + "id": "shift", + "type": "select", + "default": "ten", + "potentialValues": [ + { + "id": "none", + "name": "None" + }, + { + "id": "hundredth", + "name": "0.01" + }, + { + "id": "tenth", + "name": "0.1" + }, + { + "id": "one", + "name": "1" + }, + { + "id": "ten", + "name": "10" + } + ], + "if": { + "settings": { + "useCustom": false + } + } + }, + { + "dynamic": true, + "name": "Change on Shift+Key", + "id": "shiftCustom", + "type": "untranslated", + "default": "10", + "max": 8, + "if": { + "settings": { + "useCustom": true + } + } + }, + { + "dynamic": true, + "name": "Change on Alt+Key", + "id": "alt", + "type": "select", + "default": "tenth", + "potentialValues": [ + { + "id": "none", + "name": "None" + }, + { + "id": "hundredth", + "name": "0.01" + }, + { + "id": "tenth", + "name": "0.1" + }, + { + "id": "one", + "name": "1" + }, + { + "id": "ten", + "name": "10" + } + ], + "if": { + "settings": { + "useCustom": false + } + } + }, + { + "dynamic": true, + "name": "Change on Alt+Key", + "id": "altCustom", + "type": "untranslated", + "default": "0.1", + "max": 8, + "if": { + "settings": { + "useCustom": true + } + } + }, + { + "dynamic": true, + "name": "Use custom values", + "id": "useCustom", + "type": "boolean", + "default": false + } + ], + "credits": [ + { + "name": "mybearworld", + "link": "https://scratch.mit.edu/users/mybearworld/" + }, + { + "name": "World_Languages" + } + ], + "dynamicDisable": true +}; +export default manifest; diff --git a/src/addons/addons/editor-number-arrow-keys/_runtime_entry.js b/src/addons/addons/editor-number-arrow-keys/_runtime_entry.js new file mode 100644 index 00000000000..bc67131957e --- /dev/null +++ b/src/addons/addons/editor-number-arrow-keys/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/editor-number-arrow-keys/userscript.js b/src/addons/addons/editor-number-arrow-keys/userscript.js new file mode 100644 index 00000000000..8921bfa6097 --- /dev/null +++ b/src/addons/addons/editor-number-arrow-keys/userscript.js @@ -0,0 +1,172 @@ +export default async function ({ addon }) { + const settings = { + none: 0, + hundredth: 0.01, + tenth: 0.1, + one: 1, + ten: 10, + }; + const inputMap = new WeakMap(); + + const amountOfDecimals = (numStr) => { + if (!numStr.includes(".")) return 0; + return numStr.toString().split(".")[1].length; + }; + + const shiftDecimalPointToRight = (num, times) => { + const isNumberNegative = num[0] === "-"; + let numStr = isNumberNegative ? num.substring(1) : num; + for (let i = 0; i < times; i++) { + if (numStr.indexOf(".") === -1) numStr += 0; + else if (numStr.indexOf(".") === numStr.length - 2) numStr = numStr.replace(".", ""); + else { + const index = numStr.indexOf("."); + const numArrFiltered = Array.from(numStr.replace(".", "")); + numArrFiltered.splice(index + 1, 0, "."); + numStr = numArrFiltered.join(""); + } + } + return BigInt(numStr) * (isNumberNegative ? -1n : 1n); + }; + const shiftDecimalPointToLeft = (num, times) => { + const isNumberNegative = num[0] === "-"; + let numStr = isNumberNegative ? num.substring(1) : num; + for (let i = 0; i < times; i++) { + if (numStr.indexOf(".") === 0) numStr = ".0" + numStr.substring(1); + else if (numStr.indexOf(".") === -1) { + const numArr = Array.from(numStr); + numArr.splice(numArr.length - 1, 0, "."); + numStr = numArr.join(""); + } else { + const index = numStr.indexOf("."); + const numArrFiltered = Array.from(numStr.replace(".", "")); + numArrFiltered.splice(index - 1, 0, "."); + numStr = numArrFiltered.join(""); + } + } + + // Adds zero before the decimal point if necessary (.1 → 0.1) + if (numStr[0] === ".") { + numStr = "0" + numStr; + } + + // Removes trailing zeros (2.250 → 2.25) + if (numStr.includes(".")) { + numStr = numStr.replace(/0*$/, ""); + } + + // Removes the decimal point if it's the last character (2. → 2) + if (numStr.endsWith(".")) { + numStr = numStr.slice(0, -1); + } + + return numStr ? (isNumberNegative ? "-" : "") + numStr : 0; + }; + + const isValidNumber = (numStr) => { + if (numStr.length > 30) return false; + try { + BigInt(numStr.replace(".", "")); + } catch { + return false; // Even though an error would occur later anyway, we still catch now to abort before e.preventDefault(). + } + return true; + }; + + const isSupportedElement = (el) => { + if (el.classList.contains("blocklyHtmlInput")) return true; + else if (el.matches(".mediaRecorderPopupContent input[type=number]")) { + // Number inputs in `mediarecorder` addon modal + return true; + } else if (el.className.includes("input_input-form_")) { + if (el.matches("[class*=sprite-info_sprite-info_] [class*=input_input-small_]")) { + // Sprite X/Y coordinates, size and direction (excludes sprite name) + return true; + } else if (el.matches("[class*=paint-editor_editor-container-top_] input[type=number]")) { + // Number inputs in costume editor (note that browsers already provide up/down clickable buttons for these) + return true; + } else return false; + } + return false; + }; + + document.body.addEventListener("keydown", (e) => { + if (addon.self.disabled) return; + if (!["ArrowUp", "ArrowDown"].includes(e.key)) return; + if (!isSupportedElement(e.target)) return; + if (!e.target.value) return; + if (!isValidNumber(e.target.value)) return; + + e.preventDefault(); + // If this is a text input, this will prevent the cursor from moving to the beginning/end of the input. + // If this is a number input, it will prevent the default browser behavior when pressing up/down in a + // number input (increase or decrease by 1). If we didn't prevent, the user would be increasing twice. + + let changeBy = e.key === "ArrowUp" ? 1 : -1; + if (addon.settings.get("useCustom")) { + let settingValue = e.shiftKey + ? addon.settings.get("shiftCustom") + : e.altKey + ? addon.settings.get("altCustom") + : addon.settings.get("regularCustom"); + if (settingValue === "") settingValue = 0; + let valueAsFloat = parseFloat(settingValue); + if (valueAsFloat < 0) valueAsFloat *= -1; // If user typed a negative number, we make it positive + if (Number.isNaN(valueAsFloat)) { + return; + } else if (valueAsFloat === 0 || (valueAsFloat < 100000000 && valueAsFloat > 0.00000099)) { + // This will exclude valid floats such as `1e20` that are less than 9 characters + changeBy *= valueAsFloat; + } else { + return; + } + } else { + changeBy *= e.shiftKey + ? settings[addon.settings.get("shift")] + : e.altKey + ? settings[addon.settings.get("alt")] + : settings[addon.settings.get("regular")]; + } + + const decimalCount = Math.max(amountOfDecimals(e.target.value), amountOfDecimals(changeBy.toString())); + const newValueAsBigInt = + shiftDecimalPointToRight(e.target.value, decimalCount) + + shiftDecimalPointToRight(changeBy.toString(), decimalCount); + const newValue = shiftDecimalPointToLeft(newValueAsBigInt.toString(), decimalCount); + + if (e.target.className.includes("input_input-form_")) { + Object.getOwnPropertyDescriptor(e.target.constructor.prototype, "value").set.call(e.target, newValue.toString()); + e.target.dispatchEvent(new Event("input", { bubbles: true })); + + // The user probably wants to visualize how the sprite changes size, coordinates, direction, etc. + // without having to press Enter. But updating in realtime could be bad for performance. + const FLUSH_AFTER_MS = 300; // Number of ms to wait until the input change takes effect. + // Force flush after incrementing/decrementing 5 times in a row, even if it's not been 300ms: + const FLUSH_AFTER_N_STEPS = 5; + + // https://github.com/scratchfoundation/scratch-gui/blob/develop/src/components/forms/buffered-input-hoc.jsx + // This function calls handleFlush() on the buffered input when called. + const flushInput = () => e.target.dispatchEvent(new Event("blur", { bubbles: true })); + + const currentTime = document.timeline.currentTime; // Similar to Date.now() but can't be changed by user unexpectedly + if (!inputMap.has(e.target)) inputMap.set(e.target, { time: null, steps: -1 }); + inputMap.get(e.target).time = currentTime; + const newNumOfSteps = (inputMap.get(e.target).steps += 1); + + if (newNumOfSteps === FLUSH_AFTER_N_STEPS) { + flushInput(); + inputMap.delete(e.target); + } else { + setTimeout(() => { + if (inputMap.get(e.target)?.time === currentTime) { + flushInput(); + inputMap.delete(e.target); + } + }, FLUSH_AFTER_MS); + } + } else { + // Normal Blockly input + e.target.value = newValue.toString(); + } + }); +} diff --git a/src/addons/addons/editor-searchable-dropdowns/_manifest_entry.js b/src/addons/addons/editor-searchable-dropdowns/_manifest_entry.js index ecd5e9137af..5aab7bb3998 100644 --- a/src/addons/addons/editor-searchable-dropdowns/_manifest_entry.js +++ b/src/addons/addons/editor-searchable-dropdowns/_manifest_entry.js @@ -1,8 +1,8 @@ /* generated by pull.js */ const manifest = { "editorOnly": true, - "name": "Searchable dropdowns", - "description": "Allows you to search block dropdowns.", + "name": "Block dropdown search", + "description": "Allows you to search the options in block dropdowns.", "credits": [ { "name": "GarboMuffin" diff --git a/src/addons/addons/editor-searchable-dropdowns/userscript.js b/src/addons/addons/editor-searchable-dropdowns/userscript.js index e0a8e95d75e..4409cef4282 100644 --- a/src/addons/addons/editor-searchable-dropdowns/userscript.js +++ b/src/addons/addons/editor-searchable-dropdowns/userscript.js @@ -1,16 +1,46 @@ -export default async function ({ addon, global, console, msg }) { +export default async function ({ addon, console, msg }) { const Blockly = await addon.tab.traps.getBlockly(); const vm = addon.tab.traps.vm; - const SCRATCH_ITEMS_TO_HIDE = ["RENAME_VARIABLE_ID", "DELETE_VARIABLE_ID", "NEW_BROADCAST_MESSAGE_ID"]; - const ADDON_ITEMS = [ - "createGlobalVariable", - "createLocalVariable", - "createGlobalList", - "createLocalList", - "createBroadcast", + const SCRATCH_ITEMS_TO_HIDE = [ + "RENAME_VARIABLE_ID", + "DELETE_VARIABLE_ID", + "NEW_BROADCAST_MESSAGE_ID", + // From rename-broadcasts addon + "RENAME_BROADCAST_MESSAGE_ID", ]; + const canUseAsGlobalVariableName = (name, type) => { + return !vm.runtime.getAllVarNamesOfType(type).includes(name); + }; + + const canUseAsLocalVariableName = (name, type) => { + return !vm.editingTarget.lookupVariableByNameAndType(name, type); + }; + + const ADDON_ITEMS = { + createGlobalVariable: { + enabled: (name) => canUseAsGlobalVariableName(name, ""), + createVariable: (workspace, name) => workspace.createVariable(name), + }, + createLocalVariable: { + enabled: (name) => canUseAsLocalVariableName(name, ""), + createVariable: (workspace, name) => workspace.createVariable(name, "", null, true), + }, + createGlobalList: { + enabled: (name) => canUseAsGlobalVariableName(name, "list"), + createVariable: (workspace, name) => workspace.createVariable(name, "list"), + }, + createLocalList: { + enabled: (name) => canUseAsLocalVariableName(name, "list"), + createVariable: (workspace, name) => workspace.createVariable(name, "list", null, true), + }, + createBroadcast: { + enabled: (name) => canUseAsGlobalVariableName(name, "broadcast_msg"), + createVariable: (workspace, name) => workspace.createVariable(name, "broadcast_msg"), + }, + }; + let blocklyDropDownContent = null; let blocklyDropdownMenu = null; let searchBar = null; @@ -100,45 +130,15 @@ export default async function ({ addon, global, console, msg }) { const sourceBlock = this.sourceBlock_; if (sourceBlock && sourceBlock.workspace && searchBar.value.length !== 0) { const workspace = sourceBlock.workspace; - const id = menuItem.getValue(); - switch (id) { - case "createGlobalVariable": { - Blockly.Events.setGroup(true); - const variable = workspace.createVariable(searchBar.value); - // Creating a variable can cause blocks in the flyout to be disposed and recreated - // That could cause setValue to throw - if (this.sourceBlock_) this.setValue(variable.getId()); - Blockly.Events.setGroup(false); - return; - } - case "createLocalVariable": { - Blockly.Events.setGroup(true); - const variable = workspace.createVariable(searchBar.value, "", null, true); - if (this.sourceBlock_) this.setValue(variable.getId()); - Blockly.Events.setGroup(false); - return; - } - case "createGlobalList": { - Blockly.Events.setGroup(true); - const variable = workspace.createVariable(searchBar.value, "list"); - if (this.sourceBlock_) this.setValue(variable.getId()); - Blockly.Events.setGroup(false); - return; - } - case "createLocalList": { - Blockly.Events.setGroup(true); - const variable = workspace.createVariable(searchBar.value, "list", null, true); - if (this.sourceBlock_) this.setValue(variable.getId()); - Blockly.Events.setGroup(false); - return; - } - case "createBroadcast": { - Blockly.Events.setGroup(true); - const variable = workspace.createVariable(searchBar.value, "broadcast_msg"); - this.setValue(variable.getId()); - Blockly.Events.setGroup(false); - return; - } + const optionId = menuItem.getValue(); + + if (Object.prototype.hasOwnProperty.call(ADDON_ITEMS, optionId)) { + const addonItem = ADDON_ITEMS[optionId]; + Blockly.Events.setGroup(true); + const variable = addonItem.createVariable(workspace, searchBar.value.trim()); + if (this.sourceBlock_) this.setValue(variable.getId()); + Blockly.Events.setGroup(false); + return; } } return oldFieldVariableOnItemSelected.call(this, menu, menuItem); @@ -165,16 +165,26 @@ export default async function ({ addon, global, console, msg }) { } function performSearch() { - const query = searchBar.value.toLowerCase().trim(); + const rawQuery = searchBar.value.trim(); + const query = rawQuery.trim().toLowerCase(); + const rank = (item, index) => { // Negative number will hide // Higher numbers will appear first const option = currentDropdownOptions[index]; - if (SCRATCH_ITEMS_TO_HIDE.includes(option[1])) { + const optionId = option[1]; + if (SCRATCH_ITEMS_TO_HIDE.includes(optionId)) { return query ? -1 : 0; - } else if (ADDON_ITEMS.includes(option[1])) { - item.element.lastChild.lastChild.textContent = getMenuItemMessage(option[1])[0]; - return query ? 0 : -1; + } else if (Object.prototype.hasOwnProperty.call(ADDON_ITEMS, optionId)) { + if (!query) { + return -1; + } + const addonInfo = ADDON_ITEMS[optionId]; + if (addonInfo.enabled(rawQuery)) { + item.element.lastChild.lastChild.textContent = getMenuItemMessage(optionId)[0]; + return 0; + } + return -1; } const itemText = item.text.toLowerCase(); if (query === itemText) { @@ -296,6 +306,6 @@ export default async function ({ addon, global, console, msg }) { function getMenuItemMessage(message) { // Format used internally by Scratch: // [human readable name, internal name] - return [msg(message, { name: searchBar?.value || "" }), message]; + return [msg(message, { name: searchBar?.value.trim() || "" }), message]; } } diff --git a/src/addons/addons/editor-sounds/userscript.js b/src/addons/addons/editor-sounds/userscript.js index ef83636ac42..50757bf3c18 100644 --- a/src/addons/addons/editor-sounds/userscript.js +++ b/src/addons/addons/editor-sounds/userscript.js @@ -1,4 +1,4 @@ -export default async function ({ addon, global, console }) { +export default async function ({ addon, console }) { const ScratchBlocks = await addon.tab.traps.getBlockly(); const injectCurrent = () => { const workspace = Blockly.getMainWorkspace(); diff --git a/src/addons/addons/editor-square-inputs/_manifest_entry.js b/src/addons/addons/editor-square-inputs/_manifest_entry.js new file mode 100644 index 00000000000..25776350de5 --- /dev/null +++ b/src/addons/addons/editor-square-inputs/_manifest_entry.js @@ -0,0 +1,45 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Square block inputs", + "description": "Makes certain block input types (such as text or color) rectangular instead of round, like in Scratch 2.0.", + "credits": [ + { + "name": "CST1229", + "link": "https://scratch.mit.edu/users/CST1229/" + } + ], + "tags": [ + "theme" + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Text inputs", + "id": "text", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Color inputs", + "id": "color", + "type": "boolean", + "default": true + }, + { + "name": "Number inputs", + "id": "number", + "type": "boolean", + "default": false + } + ], + "dynamicDisable": true +}; +export default manifest; diff --git a/src/addons/addons/editor-square-inputs/_runtime_entry.js b/src/addons/addons/editor-square-inputs/_runtime_entry.js new file mode 100644 index 00000000000..bc67131957e --- /dev/null +++ b/src/addons/addons/editor-square-inputs/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/editor-square-inputs/userscript.js b/src/addons/addons/editor-square-inputs/userscript.js new file mode 100644 index 00000000000..6c75b27ce27 --- /dev/null +++ b/src/addons/addons/editor-square-inputs/userscript.js @@ -0,0 +1,40 @@ +import { updateAllBlocks } from "../custom-block-shape/update-all-blocks.js"; + +export default async function ({ addon }) { + const ScratchBlocks = await addon.tab.traps.getBlockly(); + const vm = addon.tab.traps.vm; + + const opcodeToSettings = { + text: "text", + argument_editor_string_number: "text", + math_number: "number", + math_integer: "number", + math_whole_number: "number", + math_positive_number: "number", + math_angle: "number", + note: "number", + colour_picker: "color", + }; + + const originalJsonInit = ScratchBlocks.BlockSvg.prototype.jsonInit; + + ScratchBlocks.BlockSvg.prototype.jsonInit = function (json) { + if (!addon.self.disabled && opcodeToSettings[this.type] && addon.settings.get(opcodeToSettings[this.type])) { + originalJsonInit.call(this, { + ...json, + outputShape: ScratchBlocks.OUTPUT_SHAPE_SQUARE, + }); + } else { + originalJsonInit.call(this, json); + } + }; + + function update() { + updateAllBlocks(vm, addon.tab.traps.getWorkspace(), ScratchBlocks); + } + + addon.self.addEventListener("disabled", update); + addon.self.addEventListener("reenabled", update); + addon.settings.addEventListener("change", update); + update(); +} diff --git a/src/addons/addons/editor-stage-left/fix-share-the-love.js b/src/addons/addons/editor-stage-left/fix-share-the-love.js index 2be5f63244c..2d9f19b07d2 100644 --- a/src/addons/addons/editor-stage-left/fix-share-the-love.js +++ b/src/addons/addons/editor-stage-left/fix-share-the-love.js @@ -1,4 +1,4 @@ -export default async function ({ addon, global, console }) { +export default async function ({ addon, console }) { const ScratchBlocks = await addon.tab.traps.getBlockly(); const resize = () => { const workspace = Blockly.getMainWorkspace(); @@ -10,7 +10,7 @@ export default async function ({ addon, global, console }) { ScratchBlocks.VerticalFlyout.prototype.getClientRect = function () { const rect = originalGetClientRect.call(this); if (!rect || addon.self.disabled) return rect; - // undo the effect of BIG_NUM in https://github.com/LLK/scratch-blocks/blob/ab26fa2960643fa38fbc7b91ca2956be66055070/core/flyout_vertical.js#L739 + // undo the effect of BIG_NUM in https://github.com/scratchfoundation/scratch-blocks/blob/ab26fa2960643fa38fbc7b91ca2956be66055070/core/flyout_vertical.js#L739 if (this.toolboxPosition_ === ScratchBlocks.TOOLBOX_AT_LEFT) { rect.left += 1000000000; } diff --git a/src/addons/addons/editor-stage-left/stageleft.css b/src/addons/addons/editor-stage-left/stageleft.css index 393aeace38c..3503cce2c9e 100644 --- a/src/addons/addons/editor-stage-left/stageleft.css +++ b/src/addons/addons/editor-stage-left/stageleft.css @@ -1,6 +1,9 @@ -[class^="stage-header_stage-button-icon"] { +[dir="ltr"] [class^="stage-header_stage-size-toggle-group"] [class^="stage-header_stage-button-icon"] { transform: scaleX(-1); } +[dir="rtl"] [class^="stage-header_stage-size-toggle-group"] [class^="stage-header_stage-button-icon"] { + transform: none; +} [class^="target-pane_target-pane"] { flex-direction: row-reverse; } @@ -75,3 +78,23 @@ .sa-stage-hidden [class*="gui_tab-list_"] { padding-inline-start: calc(240px + 1.125rem); } + +/* related to TW changes to headers */ +[dir="ltr"] [class^="stage-header_stage-header-wrapper_"] { + right: initial; + left: 0; +} +[dir="rtl"] [class^="stage-header_stage-header-wrapper_"] { + right: 0; + left: initial; +} +[class*="stage-wrapper_offset-controls_"] { + z-index: 10; +} +[dir="rtl"] [class^="stage-header_stage-header-wrapper_"] { + right: 0 !important; +} +[dir="rtl"] .sa-stage-hidden [class*="stage-header_stage-size-row"] { + right: 0.5rem !important; + left: 0 !important; +} diff --git a/src/addons/addons/editor-stepping/userscript.js b/src/addons/addons/editor-stepping/userscript.js index c61a7c2e24d..d118dfb3aa5 100644 --- a/src/addons/addons/editor-stepping/userscript.js +++ b/src/addons/addons/editor-stepping/userscript.js @@ -1,7 +1,7 @@ import { getRunningThread } from "../debugger/module.js"; import Highlighter from "./highlighter.js"; -export default async function ({ addon, global, console }) { +export default async function ({ addon, console }) { const vm = addon.tab.traps.vm; const highlighter = new Highlighter(0, addon.settings.get("highlight-color")); diff --git a/src/addons/addons/editor-theme3/_manifest_entry.js b/src/addons/addons/editor-theme3/_manifest_entry.js index c74daa8a9e9..8c4b0d8e40b 100644 --- a/src/addons/addons/editor-theme3/_manifest_entry.js +++ b/src/addons/addons/editor-theme3/_manifest_entry.js @@ -11,10 +11,49 @@ const manifest = { { "name": "TheColaber", "link": "https://scratch.mit.edu/users/TheColaber/" + }, + { + "name": "DNin01" + } + ], + "customCssVariables": [ + { + "name": "commentText", + "value": { + "type": "textColor", + "source": { + "type": "settingValue", + "settingId": "comment-color" + } + } + }, + { + "name": "commentTextTransparent", + "value": { + "type": "textColor", + "black": "rgba(0, 0, 0, 0.50)", + "white": "rgba(255, 255, 255, 0.50)", + "source": { + "type": "settingValue", + "settingId": "comment-color" + } + } + }, + { + "name": "commentBorder", + "value": { + "type": "multiply", + "source": { + "type": "settingValue", + "settingId": "comment-color" + }, + "r": 0.7, + "g": 0.7, + "b": 0.7 + } } ], "dynamicDisable": true, - "updateUserstylesOnSettingsChange": true, "userscripts": [ { "url": "theme3.js" @@ -23,6 +62,30 @@ const manifest = { "userstyles": [ { "url": "theme3.css" + }, + { + "url": "black_text.css", + "if": { + "settings": { + "text": "black" + } + } + }, + { + "url": "color_on_white.css", + "if": { + "settings": { + "text": "colorOnWhite" + } + } + }, + { + "url": "color_on_black.css", + "if": { + "settings": { + "text": "colorOnBlack" + } + } } ], "settings": [ @@ -114,14 +177,6 @@ const manifest = { "default": "#0FBD8C", "allowTransparency": true }, - { - "dynamic": true, - "name": "TurboWarp", - "id": "tw-color", - "type": "color", - "default": "#ff4c4c", - "allowTransparency": true - }, { "dynamic": true, "name": "Addon blocks", @@ -140,7 +195,15 @@ const manifest = { "name": "Block inputs", "id": "input-color", "type": "color", - "default": "#FFFFFF" + "default": "#FFFFFF", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "Comments", + "id": "comment-color", + "type": "color", + "default": "#FEF49C" }, { "dynamic": true, @@ -174,9 +237,75 @@ const manifest = { "enabledByDefault": false, "presets": [ { - "name": "3.0 Tweaks", + "name": "High contrast", + "id": "contrast", + "description": "Scratch 3.0's high contrast block color palette", + "values": { + "motion-color": "#80B5FF", + "looks-color": "#CCB3FF", + "sounds-color": "#E19DE1", + "events-color": "#FFD966", + "control-color": "#FFBE4C", + "sensing-color": "#85C4E0", + "operators-color": "#7ECE7E", + "data-color": "#FFA54C", + "data-lists-color": "#FF9966", + "custom-color": "#FF99AA", + "Pen-color": "#13ECAF", + "sa-color": "#34E4D0", + "comment-color": "#FEF49C", + "input-color": "#FFFFFF", + "text": "black" + } + }, + { + "name": "Dark", + "id": "new-dark", + "description": "Dark versions of the default colors that look good in dark themes", + "values": { + "motion-color": "#2461B7", + "looks-color": "#633EAC", + "sounds-color": "#863286", + "events-color": "#AE8500", + "control-color": "#B07200", + "sensing-color": "#468CAF", + "operators-color": "#438C43", + "data-color": "#B46313", + "data-lists-color": "#A84210", + "custom-color": "#973545", + "Pen-color": "#2A7468", + "sa-color": "#2A797C", + "comment-color": "#423F24", + "input-color": "#FFFFFF", + "text": "white" + } + }, + { + "name": "Darker", + "id": "dark", + "description": "Even darker versions of the default colors", + "values": { + "motion-color": "#004099", + "looks-color": "#220066", + "sounds-color": "#752475", + "events-color": "#997300", + "control-color": "#664100", + "sensing-color": "#1f5f7a", + "operators-color": "#235c23", + "data-color": "#b35900", + "data-lists-color": "#993300", + "custom-color": "#99004d", + "Pen-color": "#064734", + "sa-color": "#166966", + "comment-color": "#423f24", + "input-color": "#202020", + "text": "white" + } + }, + { + "name": "Scratch 3.0 tweaked", "id": "tweaks", - "description": "Events, Control, and Custom blocks with 2.0 inspired colors", + "description": "Scratch 3.0's block colors with Events, Control, and Custom blocks that resemble Scratch 2.0's colors", "values": { "motion-color": "#4C97FF", "looks-color": "#9966FF", @@ -190,12 +319,13 @@ const manifest = { "custom-color": "#5f49d8", "Pen-color": "#0FBD8C", "sa-color": "#29BEB8", + "comment-color": "#FEF49C", "input-color": "#FFFFFF", "text": "white" } }, { - "name": "2.0 Colors", + "name": "Scratch 2.0 colors", "id": "original", "description": "The original block colors from Scratch 2.0", "values": { @@ -211,49 +341,29 @@ const manifest = { "custom-color": "#632d99", "Pen-color": "#0e9a6c", "sa-color": "#29beb8", + "comment-color": "#FFFFD2", "input-color": "#ffffff", "text": "white" } }, - { - "name": "Dark", - "id": "dark", - "description": "Dark versions of the default colors", - "values": { - "motion-color": "#004099", - "looks-color": "#220066", - "sounds-color": "#752475", - "events-color": "#997300", - "control-color": "#664100", - "sensing-color": "#1f5f7a", - "operators-color": "#235c23", - "data-color": "#b35900", - "data-lists-color": "#993300", - "custom-color": "#99004d", - "Pen-color": "#064734", - "tw-color": "#660000", - "sa-color": "#166966", - "input-color": "#202020", - "text": "white" - } - }, { "name": "Black", "id": "black", - "description": "Makes block backgrounds black", + "description": "Makes block backgrounds black and borders/text colored", "values": { - "motion-color": "#4C97FF", - "looks-color": "#9966FF", - "sounds-color": "#CF63CF", - "events-color": "#FFBF00", - "control-color": "#FFAB19", - "sensing-color": "#5CB1D6", - "operators-color": "#59C059", - "data-color": "#FF8C1A", - "data-lists-color": "#FF661A", - "custom-color": "#FF6680", - "Pen-color": "#0FBD8C", - "sa-color": "#29BEB8", + "motion-color": "#80B5FF", + "looks-color": "#CCB3FF", + "sounds-color": "#E19DE1", + "events-color": "#FFD966", + "control-color": "#FFBE4C", + "sensing-color": "#85C4E0", + "operators-color": "#7ECE7E", + "data-color": "#FFA54C", + "data-lists-color": "#FF9966", + "custom-color": "#FF99AA", + "Pen-color": "#13ECAF", + "sa-color": "#34E4D0", + "comment-color": "#FEF49C", "input-color": "#202020", "text": "colorOnBlack" } diff --git a/src/addons/addons/editor-theme3/_runtime_entry.js b/src/addons/addons/editor-theme3/_runtime_entry.js index 9c6d7518a11..6e4f2bbc441 100644 --- a/src/addons/addons/editor-theme3/_runtime_entry.js +++ b/src/addons/addons/editor-theme3/_runtime_entry.js @@ -1,7 +1,49 @@ /* generated by pull.js */ import _js from "./theme3.js"; import _css from "!css-loader!./theme3.css"; +import _css2 from "!css-loader!./black_text.css"; +import _css3 from "!css-loader!./color_on_white.css"; +import _css4 from "!css-loader!./color_on_black.css"; +import _asset from "!url-loader!./icons/black_text/arrow_button.svg"; +import _asset2 from "!url-loader!./icons/black_text/extensions/music.svg"; +import _asset3 from "!url-loader!./icons/black_text/extensions/pen.svg"; +import _asset4 from "!url-loader!./icons/black_text/extensions/text2speech.svg"; +import _asset5 from "!url-loader!./icons/black_text/extensions/translate.svg"; +import _asset6 from "!url-loader!./icons/black_text/extensions/videoSensing.svg"; +import _asset7 from "!url-loader!./icons/black_text/repeat.svg"; +import _asset8 from "!url-loader!./icons/black_text/rotate-left.svg"; +import _asset9 from "!url-loader!./icons/black_text/rotate-right.svg"; +import _asset10 from "!url-loader!./icons/white_text/arrow_button.svg"; +import _asset11 from "!url-loader!./icons/white_text/extensions/music.svg"; +import _asset12 from "!url-loader!./icons/white_text/extensions/pen.svg"; +import _asset13 from "!url-loader!./icons/white_text/extensions/text2speech.svg"; +import _asset14 from "!url-loader!./icons/white_text/extensions/translate.png"; +import _asset15 from "!url-loader!./icons/white_text/extensions/videoSensing.svg"; +import _asset16 from "!url-loader!./icons/white_text/repeat.svg"; +import _asset17 from "!url-loader!./icons/white_text/rotate-left.svg"; +import _asset18 from "!url-loader!./icons/white_text/rotate-right.svg"; export const resources = { "theme3.js": _js, "theme3.css": _css, + "black_text.css": _css2, + "color_on_white.css": _css3, + "color_on_black.css": _css4, + "icons/black_text/arrow_button.svg": _asset, + "icons/black_text/extensions/music.svg": _asset2, + "icons/black_text/extensions/pen.svg": _asset3, + "icons/black_text/extensions/text2speech.svg": _asset4, + "icons/black_text/extensions/translate.svg": _asset5, + "icons/black_text/extensions/videoSensing.svg": _asset6, + "icons/black_text/repeat.svg": _asset7, + "icons/black_text/rotate-left.svg": _asset8, + "icons/black_text/rotate-right.svg": _asset9, + "icons/white_text/arrow_button.svg": _asset10, + "icons/white_text/extensions/music.svg": _asset11, + "icons/white_text/extensions/pen.svg": _asset12, + "icons/white_text/extensions/text2speech.svg": _asset13, + "icons/white_text/extensions/translate.png": _asset14, + "icons/white_text/extensions/videoSensing.svg": _asset15, + "icons/white_text/repeat.svg": _asset16, + "icons/white_text/rotate-left.svg": _asset17, + "icons/white_text/rotate-right.svg": _asset18, }; diff --git a/src/addons/addons/editor-theme3/black_text.css b/src/addons/addons/editor-theme3/black_text.css new file mode 100644 index 00000000000..079a1d5a553 --- /dev/null +++ b/src/addons/addons/editor-theme3/black_text.css @@ -0,0 +1,16 @@ +/* block-palette-icons */ +.scratchCategoryItemBubble::after { + filter: brightness(0); +} +.blocklyNumPadButton { + color: black; +} + +/* Compatibility */ + +.sa-block-color { + --sa-block-text: black; + --sa-block-gray-text: black; + --sa-block-colored-text: var(--sa-block-background-tertiary, black); + --sa-block-text-on-bright-background: black; +} diff --git a/src/addons/addons/editor-theme3/color_on_black.css b/src/addons/addons/editor-theme3/color_on_black.css new file mode 100644 index 00000000000..f2678a76960 --- /dev/null +++ b/src/addons/addons/editor-theme3/color_on_black.css @@ -0,0 +1,39 @@ +.blocklyDropDownDiv .goog-menuitem-checkbox { + filter: brightness(0) invert(1); +} +.u-dropdown-searchbar { + border-color: rgba(255, 255, 255, 0.15); +} +.u-dropdown-searchbar:focus { + background-color: var(--editorTheme3-hoveredItem); +} + +.scratchCommentRect { + fill: #282828; +} +.scratchCommentBody, +.scratchCommentTextarea { + background-color: #282828; +} +.scratchWorkspaceCommentBorder { + stroke: var(--editorTheme3-commentColor); +} +.scratchCommentTextarea::placeholder { + color: rgba(255, 255, 255, 0.5); +} +.scratchCommentText { + fill: #ffffff; + color: #ffffff; +} + +/* Compatibility */ + +.sa-block-color { + --sa-block-colored-background: var(--sa-block-background-secondary); + --sa-block-colored-background-secondary: var(--sa-block-field-background); + --sa-block-bright-background: var(--sa-block-background-tertiary); + --sa-block-text: var(--sa-block-background-tertiary, white); + --sa-block-gray-text: white; + --sa-block-colored-text: var(--sa-block-background-tertiary, white); + --sa-block-text-on-bright-background: white; +} diff --git a/src/addons/addons/editor-theme3/color_on_white.css b/src/addons/addons/editor-theme3/color_on_white.css new file mode 100644 index 00000000000..a2612cf2cb3 --- /dev/null +++ b/src/addons/addons/editor-theme3/color_on_white.css @@ -0,0 +1,45 @@ +/* block-palette-icons */ +.scratchCategoryItemBubble::after { + filter: brightness(0); + opacity: 0.6; +} + +.u-dropdown-searchbar, +.u-dropdown-searchbar:focus, +.blocklyDropDownDiv .goog-menuitem, +.blocklyNumPadButton { + color: #575e75; +} +.u-dropdown-searchbar:focus { + background-color: var(--editorTheme3-hoveredItem); +} + +.scratchCommentRect { + fill: #feffff; +} +.scratchCommentBody, +.scratchCommentTextarea { + background-color: #ffffff; +} +.scratchWorkspaceCommentBorder { + stroke: var(--editorTheme3-commentColor); +} +.scratchCommentTextarea::placeholder { + color: rgba(0, 0, 0, 0.5); +} +.scratchCommentText { + fill: #575e75; + color: #575e75; +} + +/* Compatibility */ + +.sa-block-color { + --sa-block-colored-background: var(--sa-block-background-secondary); + --sa-block-colored-background-secondary: var(--sa-block-field-background); + --sa-block-bright-background: var(--sa-block-background-tertiary); + --sa-block-text: var(--sa-block-background-tertiary, black); + --sa-block-gray-text: #575e75; + --sa-block-colored-text: var(--sa-block-background-tertiary, black); + --sa-block-text-on-bright-background: white; +} diff --git a/src/addons/addons/editor-theme3/compatibility.css b/src/addons/addons/editor-theme3/compatibility.css new file mode 100644 index 00000000000..512c98c932d --- /dev/null +++ b/src/addons/addons/editor-theme3/compatibility.css @@ -0,0 +1,99 @@ +/* Imported by other addons */ + +.sa-block-color { + --sa-block-colored-background: var(--sa-block-background-primary); + --sa-block-colored-background-secondary: var(--sa-block-field-background); + --sa-block-bright-background: var(--sa-block-background-primary); + --sa-block-text: var(--editorTheme3-blockText, white); + --sa-block-gray-text: white; + --sa-block-colored-text: var(--sa-block-background-primary); + --sa-block-text-on-bright-background: var(--editorTheme3-blockText, white); + --sa-block-input-color: var(--editorTheme3-inputColor, white); + --sa-block-input-text: var(--editorTheme3-inputColor-text, #575e75); +} + +.sa-block-color-motion { + --sa-block-background-primary: var(--editorTheme3-motion-primary, #4c97ff); + --sa-block-background-secondary: var(--editorTheme3-motion-secondary, #4280d7); + --sa-block-background-tertiary: var(--editorTheme3-motion-tertiary, #3373cc); + --sa-block-field-background: var(--editorTheme3-motion-field, #3373cc); +} + +.sa-block-color-looks { + --sa-block-background-primary: var(--editorTheme3-looks-primary, #9966ff); + --sa-block-background-secondary: var(--editorTheme3-looks-secondary, #855cd6); + --sa-block-background-tertiary: var(--editorTheme3-looks-tertiary, #774dcb); + --sa-block-field-background: var(--editorTheme3-looks-field, #774dcb); +} + +.sa-block-color-sounds { + --sa-block-background-primary: var(--editorTheme3-sounds-primary, #cf63cf); + --sa-block-background-secondary: var(--editorTheme3-sounds-secondary, #c94fc9); + --sa-block-background-tertiary: var(--editorTheme3-sounds-tertiary, #bd42bd); + --sa-block-field-background: var(--editorTheme3-sounds-field, #bd42bd); +} + +.sa-block-color-events { + --sa-block-background-primary: var(--editorTheme3-event-primary, #ffbf00); + --sa-block-background-secondary: var(--editorTheme3-event-secondary, #e6ac00); + --sa-block-background-tertiary: var(--editorTheme3-event-tertiary, #cc9900); + --sa-block-field-background: var(--editorTheme3-event-field, #cc9900); +} + +.sa-block-color-control { + --sa-block-background-primary: var(--editorTheme3-control-primary, #ffab19); + --sa-block-background-secondary: var(--editorTheme3-control-secondary, #ec9c13); + --sa-block-background-tertiary: var(--editorTheme3-control-tertiary, #cf8b17); + --sa-block-field-background: var(--editorTheme3-control-field, #cf8b17); +} + +.sa-block-color-sensing { + --sa-block-background-primary: var(--editorTheme3-sensing-primary, #5cb1d6); + --sa-block-background-secondary: var(--editorTheme3-sensing-secondary, #47a8d1); + --sa-block-background-tertiary: var(--editorTheme3-sensing-tertiary, #2e8eb8); + --sa-block-field-background: var(--editorTheme3-sensing-field, #2e8eb8); +} + +.sa-block-color-operators { + --sa-block-background-primary: var(--editorTheme3-operators-primary, #59c059); + --sa-block-background-secondary: var(--editorTheme3-operators-secondary, #46b946); + --sa-block-background-tertiary: var(--editorTheme3-operators-tertiary, #389438); + --sa-block-field-background: var(--editorTheme3-operators-field, #389438); +} + +.sa-block-color-data { + --sa-block-background-primary: var(--editorTheme3-data-primary, #ff8c1a); + --sa-block-background-secondary: var(--editorTheme3-data-secondary, #ff8000); + --sa-block-background-tertiary: var(--editorTheme3-data-tertiary, #db6e00); + --sa-block-field-background: var(--editorTheme3-data-field, #db6e00); +} + +.sa-block-color-data-lists, +.sa-block-color-list { + --sa-block-background-primary: var(--editorTheme3-data_lists-primary, #ff661a); + --sa-block-background-secondary: var(--editorTheme3-data_lists-secondary, #ff5500); + --sa-block-background-tertiary: var(--editorTheme3-data_lists-tertiary, #e64d00); + --sa-block-field-background: var(--editorTheme3-data_lists-field, #e64d00); +} + +.sa-block-color-more, +.sa-block-color-null { + --sa-block-background-primary: var(--editorTheme3-more-primary, #ff6680); + --sa-block-background-secondary: var(--editorTheme3-more-secondary, #ff4d6a); + --sa-block-background-tertiary: var(--editorTheme3-more-tertiary, #ff3355); + --sa-block-field-background: var(--editorTheme3-more-field, #ff3355); +} + +.sa-block-color-pen { + --sa-block-background-primary: var(--editorTheme3-pen-primary, #0fbd8c); + --sa-block-background-secondary: var(--editorTheme3-pen-secondary, #0da57a); + --sa-block-background-tertiary: var(--editorTheme3-pen-tertiary, #0b8e69); + --sa-block-field-background: var(--editorTheme3-pen-field, #0b8e69); +} + +.sa-block-color-addon-custom-block { + --sa-block-background-primary: var(--editorTheme3-addons-primary, #29beb8); + --sa-block-background-secondary: var(--editorTheme3-addons-secondary, #3aa8a4); + --sa-block-background-tertiary: var(--editorTheme3-addons-tertiary, #3aa8a4); + --sa-block-field-background: var(--editorTheme3-addons-field, #3aa8a4); +} diff --git a/src/addons/addons/editor-theme3/forums/base.css b/src/addons/addons/editor-theme3/forums/base.css deleted file mode 100644 index bcc13818eae..00000000000 --- a/src/addons/addons/editor-theme3/forums/base.css +++ /dev/null @@ -1,175 +0,0 @@ -.sb-motion, -.sb-looks, -.sb-sound, -.sb-events, -.sb-control, -.sb-sensing, -.sb-operators, -.sb-variables, -.sb-list, -.sb-custom, -.sb-custom-arg, -.sb-extension, -.sb-pen { - fill: var(--sa-block-color); -} -.sb3-motion, -.sb3-looks, -.sb3-sound, -.sb3-events, -.sb3-control, -.sb3-sensing, -.sb3-operators, -.sb3-variables, -.sb3-list, -.sb3-custom, -.sb3-custom-arg, -.sb3-extension, -.sb3-pen { - fill: var(--sa-block-color); - stroke: rgba(0, 0, 0, 0.2); -} - -.sb3-motion-alt, -.sb3-looks-alt, -.sb3-sound-alt, -.sb3-events-alt, -.sb3-control-alt, -.sb3-sensing-alt, -.sb3-operators-alt, -.sb3-variables-alt, -.sb3-list-alt, -.sb3-custom-alt, -.sb3-custom-arg-alt, -.sb3-extension-alt, -.sb3-pen-alt { - fill: rgba(0, 0, 0, 0.1); - stroke: rgba(0, 0, 0, 0.1); -} -.sb3-motion-dark, -.sb3-looks-dark, -.sb3-sound-dark, -.sb3-events-dark, -.sb3-control-dark, -.sb3-sensing-dark, -.sb3-operators-dark, -.sb3-variables-dark, -.sb3-list-dark, -.sb3-custom-dark, -.sb3-custom-arg-dark, -.sb3-extension-dark, -.sb3-pen-dark { - fill: rgba(0, 0, 0, 0.2); -} -.sb3-extension-line { - stroke: rgba(0, 0, 0, 0.1); -} - -.sb-motion, -.sb-motion ~ .sb-label, -.sb3-motion, -.sb3-motion-dark, -.sb3-motion ~ .sb3-label { - --sa-block-color: var(--editorTheme3-motionColor); -} -.sb-looks, -.sb-looks ~ .sb-label, -.sb3-looks, -.sb3-looks-dark, -.sb3-looks ~ .sb3-label { - --sa-block-color: var(--editorTheme3-looksColor); -} -.sb-sound, -.sb-sound ~ .sb-label, -.sb3-sound, -.sb3-sound-dark, -.sb3-sound ~ .sb3-label { - --sa-block-color: var(--editorTheme3-soundsColor); -} -.sb-events, -.sb-events ~ .sb-label, -.sb3-events, -.sb3-events-dark, -.sb3-events ~ .sb3-label { - --sa-block-color: var(--editorTheme3-eventsColor); -} -.sb-control, -.sb-control ~ .sb-label, -.sb3-control, -.sb3-control-dark, -.sb3-control ~ .sb3-label { - --sa-block-color: var(--editorTheme3-controlColor); -} -.sb-sensing, -.sb-sensing ~ .sb-label, -.sb3-sensing, -.sb3-sensing-dark, -.sb3-sensing ~ .sb3-label { - --sa-block-color: var(--editorTheme3-sensingColor); -} -.sb-operators, -.sb-operators ~ .sb-label, -.sb3-operators, -.sb3-operators-dark, -.sb3-operators ~ .sb3-label { - --sa-block-color: var(--editorTheme3-operatorsColor); -} -.sb-variables, -.sb-variables ~ .sb-label, -.sb3-variables, -.sb3-variables-dark, -.sb3-variables ~ .sb3-label { - --sa-block-color: var(--editorTheme3-dataColor); -} -.sb-list, -.sb-list ~ .sb-label, -.sb3-list, -.sb3-list-dark, -.sb3-list ~ .sb3-label { - --sa-block-color: var(--editorTheme3-dataListsColor); -} -.sb-custom, -.sb-custom ~ .sb-label, -.sb3-custom, -.sb3-custom-dark, -.sb3-custom ~ .sb3-label, -.sb-custom-arg, -.sb-custom-arg ~ .sb-label, -.sb3-custom-arg, -.sb3-custom-arg-dark, -.sb3-custom-arg ~ .sb3-label { - --sa-block-color: var(--editorTheme3-customColor); -} -.sb-extension, -.sb-extension ~ .sb-label, -.sb3-extension, -.sb3-extension-dark, -.sb3-extension ~ .sb3-label, -.sb-pen, -.sb-pen ~ .sb-label, -.sb3-pen, -.sb3-pen-dark, -.sb3-pen ~ .sb3-label, -.sb3-extension-line { - --sa-block-color: var(--editorTheme3-PenColor); -} - -.sb-input-number, -.sb-input-number-dropdown, -.sb-input-string { - fill: var(--editorTheme3-inputColor); -} -.sb3-input-number, -.sb3-input-string { - fill: var(--editorTheme3-inputColor) !important; -} -.sb-label.sb-literal-number, -.sb-label.sb-literal-number-dropdown, -.sb-literal-number-dropdown + polygon /* dropdown arrow */, -.sb-label.sb-literal-string { - fill: var(--editorTheme3-inputColor-forumText); -} -.sb3-label.sb3-literal-number, -.sb3-label.sb3-literal-string { - fill: var(--editorTheme3-inputColor-text); -} diff --git a/src/addons/addons/editor-theme3/forums/black_text.css b/src/addons/addons/editor-theme3/forums/black_text.css deleted file mode 100644 index d065d8fd294..00000000000 --- a/src/addons/addons/editor-theme3/forums/black_text.css +++ /dev/null @@ -1,7 +0,0 @@ -.sb-label { - fill: black; -} -.sb3-label, -#sb3-dropdownArrow path { - fill: #575e75; -} diff --git a/src/addons/addons/editor-theme3/forums/color_on_black.css b/src/addons/addons/editor-theme3/forums/color_on_black.css deleted file mode 100644 index 376eaa5de10..00000000000 --- a/src/addons/addons/editor-theme3/forums/color_on_black.css +++ /dev/null @@ -1,44 +0,0 @@ -@import "%addon-self-dir%/forums/colored_text.css"; - -.sb-motion, -.sb-looks, -.sb-sound, -.sb-events, -.sb-control, -.sb-sensing, -.sb-operators, -.sb-variables, -.sb-list, -.sb-custom, -.sb-custom-arg, -.sb-extension, -.sb-pen, -.sb-grey, -.sb-obsolete, -.sb3-motion, -.sb3-looks, -.sb3-sound, -.sb3-events, -.sb3-control, -.sb3-sensing, -.sb3-operators, -.sb3-variables, -.sb3-list, -.sb3-custom, -.sb3-custom-arg, -.sb3-extension, -.sb3-pen, -.sb3-grey, -.sb3-obsolete { - fill: #282828; -} - -#bevelFilter feFlood[flood-color="#000"], -#inputBevelFilter feFlood[flood-color="#000"] { - flood-color: white; - flood-opacity: 0.05; -} - -.sb-input-dropdown ~ polygon { - fill: white; -} diff --git a/src/addons/addons/editor-theme3/forums/color_on_white.css b/src/addons/addons/editor-theme3/forums/color_on_white.css deleted file mode 100644 index 4905599ff54..00000000000 --- a/src/addons/addons/editor-theme3/forums/color_on_white.css +++ /dev/null @@ -1,47 +0,0 @@ -@import "%addon-self-dir%/forums/colored_text.css"; - -.sb-motion, -.sb-looks, -.sb-sound, -.sb-events, -.sb-control, -.sb-sensing, -.sb-operators, -.sb-variables, -.sb-list, -.sb-custom, -.sb-custom-arg, -.sb-extension, -.sb-pen, -.sb-grey, -.sb-obsolete, -.sb3-motion, -.sb3-looks, -.sb3-sound, -.sb3-events, -.sb3-control, -.sb3-sensing, -.sb3-operators, -.sb3-variables, -.sb3-list, -.sb3-custom, -.sb3-custom-arg, -.sb3-extension, -.sb3-pen, -.sb3-grey, -.sb3-obsolete { - fill: white; -} - -#bevelFilter feFlood[flood-color="#fff"], -#inputBevelFilter feFlood[flood-color="#fff"] { - flood-color: black; - flood-opacity: 0.3; -} - -.sb-label { - fill: black; -} -#sb3-dropdownArrow path { - fill: #575e75; -} diff --git a/src/addons/addons/editor-theme3/forums/colored_text.css b/src/addons/addons/editor-theme3/forums/colored_text.css deleted file mode 100644 index f93f9a6fcad..00000000000 --- a/src/addons/addons/editor-theme3/forums/colored_text.css +++ /dev/null @@ -1,102 +0,0 @@ -.sb3-motion, -.sb3-looks, -.sb3-sound, -.sb3-events, -.sb3-control, -.sb3-sensing, -.sb3-operators, -.sb3-variables, -.sb3-list, -.sb3-custom, -.sb3-custom-arg, -.sb3-extension, -.sb3-pen { - stroke: var(--sa-block-color); -} -.sb3-grey { - stroke: #949494; -} -.sb3-obsolete { - stroke: #ed4242; -} - -.sb-motion ~ .sb-label, -.sb-looks ~ .sb-label, -.sb-sound ~ .sb-label, -.sb-events ~ .sb-label, -.sb-control ~ .sb-label, -.sb-sensing ~ .sb-label, -.sb-operators ~ .sb-label, -.sb-variables ~ .sb-label, -.sb-list ~ .sb-label, -.sb-custom ~ .sb-label, -.sb-custom-arg ~ .sb-label, -.sb-extension ~ .sb-label, -.sb-pen ~ .sb-label, -.sb3-motion ~ .sb3-label, -.sb3-looks ~ .sb3-label, -.sb3-sound ~ .sb3-label, -.sb3-events ~ .sb3-label, -.sb3-control ~ .sb3-label, -.sb3-sensing ~ .sb3-label, -.sb3-operators ~ .sb3-label, -.sb3-variables ~ .sb3-label, -.sb3-list ~ .sb3-label, -.sb3-custom ~ .sb3-label, -.sb3-custom-arg ~ .sb3-label, -.sb3-extension ~ .sb3-label, -.sb3-pen ~ .sb3-label { - fill: var(--sa-block-color); -} -.sb-grey ~ .sb-label, -.sb3-grey ~ .sb3-label { - fill: #949494; -} -.sb-obsolete ~ .sb-label { - fill: #d42828; -} -.sb3-obsolete ~ .sb3-label { - fill: #ed4242; -} - -.sb-darker { - fill: var(--sa-block-color); - fill-opacity: 0.25; - filter: none; -} -.sb3-motion-alt, -.sb3-looks-alt, -.sb3-sound-alt, -.sb3-events-alt, -.sb3-control-alt, -.sb3-sensing-alt, -.sb3-operators-alt, -.sb3-variables-alt, -.sb3-list-alt, -.sb3-custom-alt, -.sb3-custom-arg-alt, -.sb3-extension-alt, -.sb3-pen-alt { - fill: var(--sa-block-color) !important; - fill-opacity: 0.15; -} -.sb3-motion-dark, -.sb3-looks-dark, -.sb3-sound-dark, -.sb3-events-dark, -.sb3-control-dark, -.sb3-sensing-dark, -.sb3-operators-dark, -.sb3-variables-dark, -.sb3-list-dark, -.sb3-custom-dark, -.sb3-custom-arg-dark, -.sb3-extension-dark, -.sb3-pen-dark { - fill: var(--sa-block-color); - fill-opacity: 0.25; -} -.sb3-extension-line { - stroke: var(--sa-block-color); - stroke-opacity: 0.15; -} diff --git a/src/addons/addons/editor-theme3/icons/black_text/arrow_button.svg b/src/addons/addons/editor-theme3/icons/black_text/arrow_button.svg new file mode 100644 index 00000000000..5b968d616a2 --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/black_text/arrow_button.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/black_text/extensions/music.svg b/src/addons/addons/editor-theme3/icons/black_text/extensions/music.svg new file mode 100644 index 00000000000..b684757be82 --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/black_text/extensions/music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/black_text/extensions/pen.svg b/src/addons/addons/editor-theme3/icons/black_text/extensions/pen.svg new file mode 100644 index 00000000000..1e33ed33c2c --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/black_text/extensions/pen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/black_text/extensions/text2speech.svg b/src/addons/addons/editor-theme3/icons/black_text/extensions/text2speech.svg new file mode 100644 index 00000000000..39fe7427f3b --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/black_text/extensions/text2speech.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/black_text/extensions/translate.svg b/src/addons/addons/editor-theme3/icons/black_text/extensions/translate.svg new file mode 100644 index 00000000000..96188d4ff80 --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/black_text/extensions/translate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/black_text/extensions/videoSensing.svg b/src/addons/addons/editor-theme3/icons/black_text/extensions/videoSensing.svg new file mode 100644 index 00000000000..5603547754b --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/black_text/extensions/videoSensing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/black_text/repeat.svg b/src/addons/addons/editor-theme3/icons/black_text/repeat.svg new file mode 100644 index 00000000000..efde4514029 --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/black_text/repeat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/black_text/rotate-left.svg b/src/addons/addons/editor-theme3/icons/black_text/rotate-left.svg new file mode 100644 index 00000000000..c389f3342d5 --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/black_text/rotate-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/black_text/rotate-right.svg b/src/addons/addons/editor-theme3/icons/black_text/rotate-right.svg new file mode 100644 index 00000000000..1c8b532383d --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/black_text/rotate-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/white_text/arrow_button.svg b/src/addons/addons/editor-theme3/icons/white_text/arrow_button.svg new file mode 100644 index 00000000000..8d27fcd4dfd --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/white_text/arrow_button.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/white_text/extensions/music.svg b/src/addons/addons/editor-theme3/icons/white_text/extensions/music.svg new file mode 100644 index 00000000000..f9caa0107ad --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/white_text/extensions/music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/white_text/extensions/pen.svg b/src/addons/addons/editor-theme3/icons/white_text/extensions/pen.svg new file mode 100644 index 00000000000..1d602c661fc --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/white_text/extensions/pen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/white_text/extensions/text2speech.svg b/src/addons/addons/editor-theme3/icons/white_text/extensions/text2speech.svg new file mode 100644 index 00000000000..03e36e4a211 --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/white_text/extensions/text2speech.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/white_text/extensions/translate.png b/src/addons/addons/editor-theme3/icons/white_text/extensions/translate.png new file mode 100644 index 00000000000..f18565023f5 Binary files /dev/null and b/src/addons/addons/editor-theme3/icons/white_text/extensions/translate.png differ diff --git a/src/addons/addons/editor-theme3/icons/white_text/extensions/videoSensing.svg b/src/addons/addons/editor-theme3/icons/white_text/extensions/videoSensing.svg new file mode 100644 index 00000000000..4f86c008f91 --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/white_text/extensions/videoSensing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/white_text/repeat.svg b/src/addons/addons/editor-theme3/icons/white_text/repeat.svg new file mode 100644 index 00000000000..e0637a4a7e5 --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/white_text/repeat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/white_text/rotate-left.svg b/src/addons/addons/editor-theme3/icons/white_text/rotate-left.svg new file mode 100644 index 00000000000..943a338f0e8 --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/white_text/rotate-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/icons/white_text/rotate-right.svg b/src/addons/addons/editor-theme3/icons/white_text/rotate-right.svg new file mode 100644 index 00000000000..735f75e3022 --- /dev/null +++ b/src/addons/addons/editor-theme3/icons/white_text/rotate-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/addons/addons/editor-theme3/theme3.css b/src/addons/addons/editor-theme3/theme3.css index 7df545fce29..bc741c63121 100644 --- a/src/addons/addons/editor-theme3/theme3.css +++ b/src/addons/addons/editor-theme3/theme3.css @@ -1,41 +1,23 @@ -path.blocklyBlockBackground[fill="#FF6680"], -path.blocklyBlockBackground[fill="#5CB1D6"], -path.blocklyBlockBackground[fill="#FFBF00"], -path.blocklyBlockBackground[fill="#29beb8"], -g[data-category] > path.blocklyBlockBackground { - stroke: #0003; -} -g[data-argument-type="dropdown"] > path, -g[data-argument-type="variable"] > path, -path[data-argument-type="boolean"], -g[data-shapes="c-block c-1 hat"] > g[data-shapes="stack"]:not(.blocklyDraggable) > path /* block preview in define block */ { - stroke: #0003; - fill: #0001; -} -g[data-argument-type="dropdown"] > rect, -g[data-argument-type="variable"] > rect { - stroke: #0003; - fill: #0000; -} -g[data-argument-type*="text"] > path, -[data-category] g > line { - stroke: #0002; -} -.scratchCategoryItemBubble { - border-color: #0003 !important; +.blocklyDropDownDiv .goog-menuitem-highlight, +.blocklyDropDownDiv .goog-menuitem-hover, +.sa-contextmenu-colored .blocklyContextMenu .goog-menuitem-highlight { + background-color: var(--editorTheme3-hoveredItem, rgba(0, 0, 0, 0.2)); } -.fieldTextInput { - border-color: #0003 !important; +.scratchCommentRect { + fill: var(--editorTheme3-commentColor); } - -.blocklyBlockBackground[fill="#FFFFFF"] { - fill: var(--editorTheme3-inputColor); +.scratchCommentBody, +.scratchCommentTextarea { + background-color: var(--editorTheme3-commentColor); +} +.scratchWorkspaceCommentBorder { + stroke: var(--editorTheme3-commentBorder); } -.blocklyEditableText > text { - fill: var(--editorTheme3-inputColor-text); +.scratchCommentTextarea::placeholder { + color: var(--editorTheme3-commentTextTransparent); } -.blocklyHtmlInput { - background-color: var(--editorTheme3-inputColor); - color: var(--editorTheme3-inputColor-text); +.scratchCommentText { + fill: var(--editorTheme3-commentText); + color: var(--editorTheme3-commentText); } diff --git a/src/addons/addons/editor-theme3/theme3.js b/src/addons/addons/editor-theme3/theme3.js index 0efc1c2d7a0..fac1b559602 100644 --- a/src/addons/addons/editor-theme3/theme3.js +++ b/src/addons/addons/editor-theme3/theme3.js @@ -1,407 +1,386 @@ -import { textColor, multiply } from "../../libraries/common/cs/text-color.esm.js"; - -function updateSettings(addon, newStyle) { - document.documentElement.style.setProperty('--editorTheme3-inputColor-text', textColor(addon.settings.get('input-color'))); - var stylesheet = ""; - const textMode = addon.settings.get("text"); - if (textMode === "black") { - stylesheet += ` - .blocklyText { - fill: #575e75; - } - .blocklyDropdownText { - fill: #575e75 !important; - } - .blocklyDropDownDiv .goog-menuitem, - #s3devIDD > li { - color: #575e75; - }`; - } - if (textMode === "colorOnWhite") { - stylesheet += ` - .blocklyDropDownDiv:not([style*="rgb(255, 255, 255)"]) .goog-menuitem { - color: #575e75; - }`; - } - if (textMode === "colorOnBlack") { - stylesheet += ` - .blocklyDropDownDiv:not([style*="rgb(255, 255, 255)"]) .goog-option-selected .goog-menuitem-checkbox { - filter: brightness(0) invert(1); - } - .u-dropdown-searchbar { - border-color: rgba(255, 255, 255, 0.15); - }`; - } - var categories = { - motion: { - color: "#4C97FF", - tertiaryColor: "#3373CC", - }, - looks: { - color: "#9966FF", - tertiaryColor: "#774DCB", - }, - sounds: { - color: "#CF63CF", - tertiaryColor: "#BD42BD", - alt: "sound", - }, - events: { - color: "#DE9E2E", - tertiaryColor: "#CC9900", - }, - control: { - color: "#FFBF00", - tertiaryColor: "#CF8B17", - }, - sensing: { - color: "#5CB1D6", - tertiaryColor: "#2E8EB8", - }, - operators: { - color: "#59C059", - tertiaryColor: "#389438", - }, - data: { - color: "#FF8C1A", - tertiaryColor: "#DB6E00", - alt: "variables", - }, - "data-lists": { - color: "#FF661A", - tertiaryColor: "#E64D00", - alt: "lists", - var: "dataLists", - }, - custom: { - color: "#FF6680", - tertiaryColor: "#FF6355", - alt: "myBlocks", - }, - Pen: { - // For historical reasons, this is called "Pen". - color: "#0FBD8C", - tertiaryColor: "#0B8E69", - alt: "pen", - }, - TurboWarp: { - color: "#ff4c4c", - tertiaryColor: "#e64444", // TODO fix - alt: "tw", - var: "tw", - }, - sa: { - color: "#29beb8", - tertiaryColor: "#3aa8a4", - alt: "a-b", - }, +// TW: This addon very heavily links against TurboWarp/scratch-gui internals and other changes +// There is absolutely no hope that this will run on a scratch.mit.edu environment + +import { removeAlpha, multiply, brighten, alphaBlend, textColor } from "../../libraries/common/cs/text-color.esm.js"; +import { BLOCKS_CUSTOM, BLOCKS_MAP, defaultBlockColors } from "../../../lib/themes"; +import { detectTheme } from "../../../lib/themes/themePersistance"; + +const extensionsCategory = { + categoryId: null, + settingId: "Pen-color", + colorId: "pen", +}; +const saCategory = { + categoryId: null, + settingId: "sa-color", + colorId: "addons", +}; +const categories = [ + { + categoryId: "motion", + settingId: "motion-color", + colorId: "motion", + }, + { + categoryId: "looks", + settingId: "looks-color", + colorId: "looks", + }, + { + categoryId: "sound", + settingId: "sounds-color", + colorId: "sounds", + }, + { + categoryId: "events", + settingId: "events-color", + colorId: "event", + }, + { + categoryId: "control", + settingId: "control-color", + colorId: "control", + }, + { + categoryId: "sensing", + settingId: "sensing-color", + colorId: "sensing", + }, + { + categoryId: "operators", + settingId: "operators-color", + colorId: "operators", + }, + { + categoryId: "variables", + settingId: "data-color", + colorId: "data", + }, + { + categoryId: "lists", + settingId: "data-lists-color", + colorId: "data_lists", + }, + { + categoryId: "myBlocks", + settingId: "custom-color", + colorId: "more", + }, + extensionsCategory, + saCategory +]; + +// From scratch-blocks/media/dropdown-arrow.svg +const arrowPath = + "M6.36,7.79a1.43,1.43,0,0,1-1-.42L1.42,3.45a1.44,1.44,0,0,1,0-2c0.56-.56,9.31-0.56,9.87,0a1.44,1.44,0,0,1,0,2L7.37,7.37A1.43,1.43,0,0,1,6.36,7.79Z"; +const arrowShadowPath = + "M12.71,2.44A2.41,2.41,0,0,1,12,4.16L8.08,8.08a2.45,2.45,0,0,1-3.45,0L0.72,4.16A2.42,2.42,0,0,1,0,2.44,2.48,2.48,0,0,1,.71.71C1,0.47,1.43,0,6.36,0S11.75,0.46,12,.71A2.44,2.44,0,0,1,12.71,2.44Z"; +const arrowShadowColor = "#231f20"; + +export default async function ({ addon, console, msg }) { + const Blockly = await addon.tab.traps.getBlockly(); + + const textMode = () => addon.settings.get("text"); + const isColoredTextMode = () => textMode() === "colorOnWhite" || textMode() === "colorOnBlack"; + + const primaryColor = (primary) => { + if (textMode() === "colorOnWhite") return "#ffffff"; + if (textMode() === "colorOnBlack") return "#282828"; + return primary; }; - for (var prop of Object.keys(categories)) { - var settingName = categories[prop].var ? categories[prop].var : prop; - var propNameForSettings = prop === "TurboWarp" ? "tw" : prop; - if (textMode === "white" || textMode === "black") { - let tertiary = multiply(addon.settings.get(propNameForSettings + "-color"), { r: 0.8, g: 0.8, b: 0.8 }); - stylesheet += `g[data-category="${prop}"] > path.blocklyBlockBackground { - fill: var(--editorTheme3-${settingName}Color); - ${textMode === "black" ? "--sa-block-text-color: #575e75;" : ""} - } - .blocklyBlockBackground[fill="${categories[prop].tertiaryColor}"] /* open dropdown */ { - fill: #0003; - } - .scratchCategoryId-${categories[prop].alt ? categories[prop].alt : prop} > .scratchCategoryItemBubble { - background-color: var(--editorTheme3-${settingName}Color) !important; - } - .blocklyDropDownDiv[data-category="${prop}"]:not([style*="rgb(255, 255, 255)"]) { - background-color: var(--editorTheme3-${settingName}Color) !important; - border-color: #0003 !important; - } - .blocklyBubbleCanvas [stroke="${categories[prop].tertiaryColor}"] { - stroke: var(--editorTheme3-${settingName}Color); - } - #s3devIDD > li.${prop} { - background-color: var(--editorTheme3-${settingName}Color); - } - #s3devIDD > li.${prop}:hover, - #s3devIDD > li.${prop}.sel { - background-color: ${tertiary}; - } - .sa-debugger-block-preview[data-category="${prop}"] { - background-color: var(--editorTheme3-${settingName}Color) !important; - } - `; - if (prop === "custom") { - stylesheet += `path.blocklyBlockBackground[fill="#FF6680"] { - fill: var(--editorTheme3-${prop}Color); - ${textMode === "black" ? "--sa-block-text-color: #575e75;" : ""} - } - #s3devIDD > li.null { - background-color: var(--editorTheme3-${settingName}Color); - } - #s3devIDD > li.null:hover, - #s3devIDD > li.null.sel { - background-color: ${tertiary}; - }`; - } - if (prop === "sensing") { - stylesheet += `path.blocklyBlockBackground[fill="#5CB1D6"] { - fill: var(--editorTheme3-${prop}Color); - ${textMode === "black" ? "--sa-block-text-color: #575e75;" : ""} - }`; - } - if (prop === "events") { - stylesheet += `path.blocklyBlockBackground[fill="#FFBF00"] { - fill: var(--editorTheme3-${prop}Color); - ${textMode === "black" ? "--sa-block-text-color: #575e75;" : ""} - } - .blocklyDropDownDiv[style*="rgb(255, 191, 0)"] { - background-color: var(--editorTheme3-${prop}Color) !important; - border-color: #0003 !important; - }`; - } - if (prop === "Pen") { - stylesheet += `path.blocklyBlockBackground[fill="#0FBD8C"] { - fill: var(--editorTheme3-${prop}Color); - ${textMode === "black" ? "--sa-block-text-color: #575e75;" : ""} - } - .blocklyDropDownDiv[style*="rgb(15, 189, 140)"] { - background-color: var(--editorTheme3-${prop}Color) !important; - border-color: #0003 !important; - } - #s3devIDD > li.extension { - background-color: var(--editorTheme3-${settingName}Color); - } - #s3devIDD > li.extension:hover, - #s3devIDD > li.extension.sel { - background-color: ${tertiary}; - }`; - } - if (prop === "sa") { - stylesheet += `path.blocklyBlockBackground[fill="#29beb8"] { - fill: var(--editorTheme3-${prop}Color); - ${textMode === "black" ? "--sa-block-text-color: #575e75;" : ""} - }`; - } - } else { - let background = { colorOnWhite: "#fff", colorOnBlack: "#282828" }[textMode]; - let inputShadow = { colorOnWhite: "#00000026", colorOnBlack: "#fff3" }[textMode]; - let secondary = multiply(addon.settings.get(propNameForSettings + "-color"), { a: 0.15 }); - let secondaryActive = multiply(addon.settings.get(propNameForSettings + "-color"), { a: 0.25 }); - let menuText = { colorOnWhite: "#575e75", colorOnBlack: "#fff" }[textMode]; - stylesheet += `g[data-category="${prop}"] > path.blocklyBlockBackground, - g[data-category="${prop}"] > g[data-argument-type="dropdown"] > rect, - g[data-category="${prop}"] > g[data-argument-type="variable"] > rect { - fill: ${background}; - stroke: var(--editorTheme3-${settingName}Color); - --sa-block-text-color: ${menuText}; - --sa-block-secondary-color: ${secondaryActive}; - } - g[data-category="${prop}"] > .blocklyText, - g[data-category="${prop}"] > g:not([data-id]) > .blocklyText /* variable and list reporters */ { - fill: var(--editorTheme3-${settingName}Color); - } - g[data-category="${prop}"] > g[data-argument-type="dropdown"] > .blocklyDropdownText, - g[data-category="${prop}"] > g[data-argument-type="variable"] > .blocklyDropdownText, - g[data-category="${prop}"] > g[data-argument-type="dropdown"] > g > .blocklyDropdownText { - fill: var(--editorTheme3-${settingName}Color) !important; - } - g[data-category="${prop}"] > g[data-argument-type="dropdown"] > path, - g[data-category="${prop}"] > g[data-argument-type="variable"] > path, - g[data-category="${prop}"] > path[data-argument-type="boolean"] { - fill: ${secondary}; - stroke: var(--editorTheme3-${settingName}Color); - } - .blocklyBlockBackground[fill="${categories[prop].tertiaryColor}"] /* open dropdown */ { - fill: ${secondaryActive} !important; - } - .scratchCategoryId-${categories[prop].alt ? categories[prop].alt : prop} > .scratchCategoryItemBubble { - background-color: var(--editorTheme3-${settingName}Color) !important; - } - .blocklyDropDownDiv[data-category="${prop}"]:not([style*="rgb(255, 255, 255)"]) { - background-color: ${background} !important; - border-color: var(--editorTheme3-${settingName}Color) !important; - } - .blocklyDropDownDiv[data-category="${prop}"] .goog-menuitem-highlight { - background-color: ${secondaryActive}; - } - .blocklyBubbleCanvas [stroke="${categories[prop].tertiaryColor}"], - g[data-category=${prop}] > g[data-argument-type*="text"] > path, - g[data-category=${prop}] > g > line { - stroke: var(--editorTheme3-${settingName}Color); - } - .blocklyWidgetDiv.fieldTextInput[style*="box-shadow"] { - box-shadow: 0 0 0 4px ${inputShadow} !important; - } - #s3devIDD > li.${prop} { - background-color: ${secondary}; - color: var(--editorTheme3-${settingName}Color); + const secondaryColor = (primary) => { + if (isColoredTextMode()) return alphaBlend(primaryColor(primary), multiply(primary, { a: 0.15 })); + if (textMode() === "black") return brighten(primary, { r: 0.6, g: 0.6, b: 0.6 }); + return multiply(primary, { r: 0.9, g: 0.9, b: 0.9 }); + }; + + const tertiaryColor = (primary) => { + if (isColoredTextMode()) return primary; + if (textMode() === "black") return multiply(primary, { r: 0.65, g: 0.65, b: 0.65 }); + return multiply(primary, { r: 0.8, g: 0.8, b: 0.8 }); + }; + + const quaternaryColor = (primary) => { + if (isColoredTextMode()) return alphaBlend(primaryColor(primary), multiply(primary, { a: 0.25 })); + if (textMode() === "black") return brighten(primaryColor(primary), { r: 0.4, g: 0.4, b: 0.4 }); + return tertiaryColor(primary); + }; + + const fieldBackground = (object) => { + // The argument can be a block, field, or primary color + if (object instanceof Blockly.Block || object instanceof Blockly.Field) { + const block = object instanceof Blockly.Block ? object : object.sourceBlock_; + if (isColoredTextMode() || textMode() === "black") { + let actualPrimary; + if (block.isShadow() && block.getParent()) { + actualPrimary = block.getParent().getColour(); + } else { + actualPrimary = block.getColour(); + } + if (isColoredTextMode()) return alphaBlend(actualPrimary, multiply(block.getColourTertiary(), { a: 0.25 })); + return brighten(actualPrimary, { r: 0.4, g: 0.4, b: 0.4 }); + } + return block.getColourTertiary(); + } + return quaternaryColor(object); + }; + + const uncoloredTextColor = () => { + if (textMode() === 'white' || textMode() === 'colorOnBlack') return '#ffffff'; + if (textMode() === 'black' || textMode() === 'colorOnWhite') return '#000000'; + throw new Error(`unknown text mode: ${textMode()}`); + }; + + const textFieldText = () => { + const black = textMode() === 'black' ? '#000000' : undefined; + return textColor(addon.settings.get("input-color"), black); + }; + + const fieldTextColor = (field) => { + if (textMode() === "white") return "#ffffff"; + if (textMode() === "black") return "#000000"; + if (field) return field.sourceBlock_.getColourTertiary(); + return "#000000"; + }; + + const categoryIconBackground = (primary) => isColoredTextMode() ? quaternaryColor(primary) : primaryColor(primary); + const categoryIconBorder = (primary) => tertiaryColor(primary); + + const useBlackIcons = () => textMode() === 'black' || textMode() === 'colorOnWhite'; + const iconPath = () => `/icons/${useBlackIcons() ? "black_text" : "white_text"}`; + + const makeDropdownArrow = (color) => { + const arrow = Blockly.utils.createSvgElement("g"); + arrow.appendChild( + Blockly.utils.createSvgElement("path", { + d: arrowShadowPath, + fill: arrowShadowColor, + "fill-opacity": 0.1, + transform: "translate(0, 1.6)", + }) + ); + arrow.appendChild( + Blockly.utils.createSvgElement("path", { + d: arrowPath, + fill: color, + transform: "translate(0, 1.6)", + }) + ); + return arrow; + }; + + const oldCategoryCreateDom = Blockly.Toolbox.Category.prototype.createDom; + Blockly.Toolbox.Category.prototype.createDom = function () { + // Fix color of some category icons + if (!addon.self.disabled && ["a-b", "videoSensing", "text2speech"].includes(this.id_)) { + const match = this.iconURI_.match(/^data:image\/svg\+xml;(base64)?,/); + if (match) { + const data = this.iconURI_.substring(match[0].length); + const oldSvg = match[1] === 'base64' ? atob(data) : decodeURIComponent(data); + const category = this.id_ === "a-b" ? saCategory : extensionsCategory; + const primary = addon.settings.get(category.settingId); + const newColor = textMode() === "white" ? primaryColor(primary) : tertiaryColor(primary); + const newSvg = oldSvg.replace(/#29beb8|#229487|#0ebd8c/gi, newColor); + this.iconURI_ = `data:image/svg+xml;base64,${btoa(newSvg)}`; } - #s3devIDD > li.${prop}:hover, - #s3devIDD > li.${prop}.sel { - background-color: ${secondaryActive}; - }`; - if (prop === "custom") { - stylesheet += `path.blocklyBlockBackground[fill="#FF6680"] { - fill: ${background}; - stroke: var(--editorTheme3-${prop}Color); - --sa-block-text-color: ${menuText}; - --sa-block-secondary-color: ${secondaryActive}; - } - path.blocklyBlockBackground[fill="#FF6680"] ~ .blocklyText, - g[data-shapes="c-block c-1 hat"] > g[data-shapes="stack"]:not(.blocklyDraggable) > .blocklyText, - .blocklyEditableText > rect[fill="#FF3355"] ~ .blocklyText { - fill: var(--editorTheme3-${prop}Color); - } - path.blocklyBlockBackground[fill="#FF6680"] ~ [data-argument-type="text"] > path { - stroke: var(--editorTheme3-${prop}Color); - } - g[data-shapes="c-block c-1 hat"] > g[data-shapes="stack"]:not(.blocklyDraggable) > path, - path[data-argument-type="boolean"][fill="#FF3355"] { - fill: ${secondary}; - stroke: var(--editorTheme3-${prop}Color); - } - .blocklyEditableText > rect[fill="#FF3355"] { - fill: ${secondary}; - } - #s3devIDD > li.null { - background-color: ${secondary}; - color: var(--editorTheme3-${settingName}Color); - } - #s3devIDD > li.null:hover, - #s3devIDD > li.null.sel { - background-color: ${secondaryActive}; - }`; + } + + oldCategoryCreateDom.call(this); + + // Fix color of category bubbles + if (!addon.self.disabled && !this.iconURI_) { + const category = categories.find((item) => item.categoryId === this.id_); + if (category) { + const primary = addon.settings.get(category.settingId); + this.bubble_.style.backgroundColor = categoryIconBackground(primary); + this.bubble_.style.borderColor = categoryIconBorder(primary); } - if (prop === "sensing") { - stylesheet += `path.blocklyBlockBackground[fill="#5CB1D6"], - g[data-argument-type="dropdown"] > rect[fill="#5CB1D6"] { - fill: ${background}; - stroke: var(--editorTheme3-${prop}Color); - --sa-block-text-color: ${menuText}; - --sa-block-secondary-color: ${secondaryActive}; - } - g[data-argument-type="dropdown"] > path[fill="#47A8D1"] { - fill: ${secondary}; - stroke: var(--editorTheme3-${prop}Color); - } - path.blocklyBlockBackground[fill="#5CB1D6"] ~ .blocklyText { - fill: var(--editorTheme3-${prop}Color); - } - g[data-argument-type="dropdown"] > rect[fill="#5CB1D6"] ~ .blocklyText, - g[data-argument-type="dropdown"] > rect[fill="#2E8EB8"] ~ .blocklyText, - g[data-argument-type="dropdown"] > path[fill="#47A8D1"] ~ * > .blocklyText, - g[data-argument-type="dropdown"] > path[fill="#2E8EB8"] ~ * > .blocklyText { - fill: var(--editorTheme3-${prop}Color) !important; - } - .blocklyDropDownDiv[style*="rgb(92, 177, 214)"] { - background-color: ${background} !important; - border-color: var(--editorTheme3-${settingName}Color) !important; + } + }; + + const oldBlockUpdateColour = Blockly.BlockSvg.prototype.updateColour; + Blockly.BlockSvg.prototype.updateColour = function () { + oldBlockUpdateColour.call(this); + + // Fix empty boolean inputs + if (!addon.self.disabled && isColoredTextMode()) { + for (const input of this.inputList) { + if (input.outlinePath) { + const sourceBlock = this.isShadow() && this.getParent() ? this.getParent() : this; + const category = categories.find(i => i.categoryId === sourceBlock.category_); + if (category) { + input.outlinePath.setAttribute("fill", fieldBackground(addon.settings.get(category.settingId))); + } } - .blocklyDropDownDiv[style*="rgb(92, 177, 214)"] .goog-menuitem-highlight { - background-color: ${secondaryActive}; - }`; } - if (prop === "events") { - stylesheet += `path.blocklyBlockBackground[fill="#FFBF00"], - g[data-argument-type="dropdown"] > rect[fill="#FFBF00"], - g[data-argument-type="dropdown"] > rect[fill="#CC9900"] { - fill: ${background}; - stroke: var(--editorTheme3-${settingName}Color); - --sa-block-text-color: ${menuText}; - --sa-block-secondary-color: ${secondaryActive}; - } - path.blocklyBlockBackground[fill="#FFBF00"] ~ .blocklyText { - fill: var(--editorTheme3-${prop}Color); - } - path.blocklyBlockBackground[fill="#FFBF00"] ~ g[data-argument-type="variable"] > g > .blocklyDropdownText { - fill: var(--editorTheme3-${prop}Color) !important; - } - g[data-argument-type="dropdown"] > rect[fill="#FFBF00"] ~ .blocklyText, - g[data-argument-type="dropdown"] > rect[fill="#CC9900"] ~ .blocklyText { - fill: var(--editorTheme3-${prop}Color) !important; - } - .blocklyDropDownDiv[style*="rgb(255, 191, 0)"] { - background-color: ${background} !important; - border-color: var(--editorTheme3-${settingName}Color) !important; - } - .blocklyDropDownDiv[style*="rgb(255, 191, 0)"] .goog-menuitem-highlight { - background-color: ${secondaryActive}; - }`; + } + }; + + const oldBlockShowContextMenu = Blockly.BlockSvg.prototype.showContextMenu_; + Blockly.BlockSvg.prototype.showContextMenu_ = function (e) { + // Fix hover color of context menus + if (!addon.self.disabled) { + Blockly.WidgetDiv.DIV.style.setProperty("--editorTheme3-hoveredItem", fieldBackground(this)); + } + + return oldBlockShowContextMenu.call(this, e); + }; + + const oldFieldLabelInit = Blockly.FieldLabel.prototype.init; + Blockly.FieldLabel.prototype.init = function () { + oldFieldLabelInit.call(this); + + // Fix block text in colored text modes + if (!addon.self.disabled) { + this.textElement_.style.fill = fieldTextColor(this); + } + }; + + const oldFieldVariableGetterInit = Blockly.FieldVariableGetter.prototype.init; + Blockly.FieldVariableGetter.prototype.init = function () { + oldFieldVariableGetterInit.call(this); + + // Fix color of variable reporters in colored modes + if (!addon.self.disabled) { + this.textElement_.style.fill = fieldTextColor(this); + } + }; + + const oldFieldImageSetValue = Blockly.FieldImage.prototype.setValue; + Blockly.FieldImage.prototype.setValue = function (src) { + // Fix black/white images + if (!addon.self.disabled) { + const iconsToReplace = ["repeat.svg", "rotate-left.svg", "rotate-right.svg"]; + const iconName = src.split("/")[src.split("/").length - 1]; + if (iconsToReplace.includes(iconName)) { + src = addon.self.getResource(`${iconPath()}/${iconName}`); } - if (prop === "Pen") { - stylesheet += `g[data-category] /* specificity */ > path.blocklyBlockBackground[fill="#0FBD8C"] { - fill: ${background}; - stroke: var(--editorTheme3-${prop}Color); - --sa-block-text-color: ${menuText}; - --sa-block-secondary-color: ${secondaryActive}; - } - path.blocklyBlockBackground[fill="#0FBD8C"] ~ .blocklyText { - fill: var(--editorTheme3-${prop}Color); - } - path.blocklyBlockBackground[fill="#0FBD8C"] ~ g[data-argument-type="dropdown"] > g > .blocklyDropdownText { - fill: var(--editorTheme3-${prop}Color) !important; - } - g[data-argument-type="dropdown"] > path[fill="#0DA57A"] { - fill: ${secondary}; - stroke: var(--editorTheme3-${prop}Color); - } - .blocklyDropDownDiv[style*="rgb(15, 189, 140)"] { - background-color: ${background} !important; - border-color: var(--editorTheme3-${settingName}Color) !important; - } - .blocklyDropDownDiv[style*="rgb(15, 189, 140)"] .goog-menuitem-highlight { - background-color: ${secondaryActive}; - } - path.blocklyBlockBackground[fill="#0FBD8C"] ~ [data-argument-type="text"] > path, - path.blocklyBlockBackground[fill="#0FBD8C"] ~ g > line { - stroke: var(--editorTheme3-${prop}Color); - } - #s3devIDD > li.extension { - background-color: ${secondary}; - color: var(--editorTheme3-${settingName}Color); - } - #s3devIDD > li.extension:hover, - #s3devIDD > li.extension.sel { - background-color: ${secondaryActive}; - }`; + } + + return oldFieldImageSetValue.call(this, src); + }; + + const oldFieldDropdownInit = Blockly.FieldDropdown.prototype.init; + Blockly.FieldDropdown.prototype.init = function () { + oldFieldDropdownInit.call(this); + + if (!addon.self.disabled) { + // Fix color of the text in the dropdown + this.textElement_.style.setProperty("fill", fieldTextColor(this), "important"); + + // Fix dropdown arrow color + this.arrow_.remove(); + this.arrow_ = makeDropdownArrow(fieldTextColor(this)); + + // Redraw arrow + const text = this.text_; + this.text_ = null; + this.setText(text); + } + }; + + const oldFieldDropdownShowEditor = Blockly.FieldDropdown.prototype.showEditor_; + Blockly.FieldDropdown.prototype.showEditor_ = function () { + oldFieldDropdownShowEditor.call(this); + + if (!addon.self.disabled) { + // Dropdown menus + let primaryColor; + if (this.sourceBlock_.isShadow() && this.sourceBlock_.getParent()) { + primaryColor = this.sourceBlock_.getParent().getColour(); + } else { + primaryColor = this.sourceBlock_.getColour(); } - if (prop === "sa") { - stylesheet += `path.blocklyBlockBackground[fill="#29beb8"] { - fill: ${background}; - stroke: var(--editorTheme3-${prop}Color); - --sa-block-text-color: ${menuText}; - --sa-block-secondary-color: ${secondaryActive}; - } - path.blocklyBlockBackground[fill="#29beb8"] ~ .blocklyText { - fill: var(--editorTheme3-${prop}Color); - } - path.blocklyBlockBackground[fill="#29beb8"] ~ [data-argument-type="text"] > path { - stroke: var(--editorTheme3-${prop}Color); - }`; + + // Active hover color + Blockly.DropDownDiv.DIV_.style.backgroundColor = removeAlpha(primaryColor); + if (isColoredTextMode()) { + Blockly.DropDownDiv.getContentDiv().style.setProperty("--editorTheme3-hoveredItem", fieldBackground(this)); + } else { + Blockly.DropDownDiv.getContentDiv().style.removeProperty("--editorTheme3-hoveredItem"); } } - } + }; - document.documentElement.style.setProperty( - "--editorTheme3-inputColor-text", - textColor(addon.settings.get("input-color")) - ); - newStyle.textContent = stylesheet; -} + const oldFieldVerticalSeparatorInit = Blockly.FieldVerticalSeparator.prototype.init; + Blockly.FieldVerticalSeparator.prototype.init = function () { + oldFieldVerticalSeparatorInit.call(this); + + // Fix vertical line between extension icon and block label + if (!addon.self.disabled && (isColoredTextMode() || textMode() === "black")) { + this.lineElement_.setAttribute("stroke", this.sourceBlock_.getColourTertiary()); + } + }; + + const apply = () => { + const blockColors = JSON.parse(JSON.stringify(defaultBlockColors)); + + for (const category of categories) { + const primary = addon.settings.get(category.settingId); + blockColors[category.colorId] = { + primary: primaryColor(primary), + secondary: secondaryColor(primary), + tertiary: tertiaryColor(primary), + quaternary: quaternaryColor(primary), + }; + } + blockColors.text = uncoloredTextColor(); + blockColors.textField = addon.settings.get("input-color"); + blockColors.textFieldText = textFieldText(); + if (textMode() === "colorOnWhite") blockColors.fieldShadow = "rgba(0, 0, 0, 0.15)"; + + const extensions = { + music: { + blockIconURI: addon.self.getResource(`${iconPath()}/extensions/music.svg`) + }, + pen: { + blockIconURI: addon.self.getResource(`${iconPath()}/extensions/pen.svg`) + }, + text2speech: { + blockIconURI: addon.self.getResource(`${iconPath()}/extensions/text2speech.svg`) + }, + translate: { + blockIconURI: addon.self.getResource(`${iconPath()}/extensions/translate.${useBlackIcons() ? 'svg' : 'png'}`) + }, + videoSensing: { + blockIconURI: addon.self.getResource(`${iconPath()}/extensions/videoSensing.svg`) + } + }; + + BLOCKS_MAP[BLOCKS_CUSTOM] = { + blocksMediaFolder: 'blocks-media/default', + colors: blockColors, + extensions: extensions, + customExtensionColors: { + primary: primaryColor, + secondary: secondaryColor, + tertiary: tertiaryColor, + quaternary: quaternaryColor, + categoryIconBackground, + categoryIconBorder + }, + useForStage: false + }; + + const newTheme = addon.tab.redux.state.scratchGui.theme.theme.set('blocks', BLOCKS_CUSTOM); + addon.tab.redux.dispatch({ + type: 'scratch-gui/theme/SET_THEME', + theme: newTheme + }); + }; + + const disable = () => { + const defaultTheme = detectTheme().blocks; + const newTheme = addon.tab.redux.state.scratchGui.theme.theme.set('blocks', defaultTheme); + addon.tab.redux.dispatch({ + type: 'scratch-gui/theme/SET_THEME', + theme: newTheme + }); + }; -export default async function ({ addon, global, console }) { - const otherStyle = document.querySelector(`[data-addon-id='${addon.self.id}']`); - const newStyle = document.createElement("style"); - updateSettings(addon, newStyle); - addon.settings.addEventListener("change", () => { - updateSettings(addon, newStyle); - }); - newStyle.className = "scratch-addons-style"; - newStyle.setAttribute("data-addon-id", addon.self.id); - newStyle.setAttribute("data-addon-index", otherStyle.getAttribute("data-addon-index")); - - otherStyle.parentElement.insertBefore(newStyle, otherStyle.nextSibling); - - // Look for reenable event to enable the style. cs.js cannot handle an appended style. - addon.self.addEventListener("reenabled", () => (newStyle.disabled = false)); + addon.self.addEventListener("disabled", disable); + addon.self.addEventListener("reenabled", apply); + addon.settings.addEventListener("change", apply); + apply(); } diff --git a/src/addons/addons/expanded-backpack/_manifest_entry.js b/src/addons/addons/expanded-backpack/_manifest_entry.js new file mode 100644 index 00000000000..83599ed13dd --- /dev/null +++ b/src/addons/addons/expanded-backpack/_manifest_entry.js @@ -0,0 +1,70 @@ +/* generated by pull.js */ +const manifest = { + "name": "Multiple rows in backpack", + "description": "Arranges the contents of the editor backpack into an expandable two-way grid, similar to the costume library and increases the size of certain thumbnails.", + "credits": [ + { + "name": "pumpkinhasapatch" + } + ], + "tags": [ + "new" + ], + "enabledByDefault": false, + "settings": [ + { + "dynamic": true, + "name": "Number of displayed rows", + "id": "rows", + "type": "integer", + "min": 1, + "max": 4, + "default": 2 + }, + { + "dynamic": true, + "name": "Larger costume and script thumbnails", + "id": "upscale", + "type": "boolean", + "default": true + } + ], + "customCssVariables": [ + { + "name": "imgsize", + "value": { + "type": "ternary", + "source": { + "type": "settingValue", + "settingId": "upscale" + }, + "true": "95%", + "false": "32px" + } + }, + { + "name": "bgcolor", + "value": { + "type": "ternary", + "source": { + "type": "settingValue", + "settingId": "upscale" + }, + "true": "var(--ui-white)", + "false": "transparent" + } + } + ], + "userstyles": [ + { + "url": "backpack.css" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "dynamicDisable": true +}; +export default manifest; diff --git a/src/addons/addons/expanded-backpack/_runtime_entry.js b/src/addons/addons/expanded-backpack/_runtime_entry.js new file mode 100644 index 00000000000..d1c5a085913 --- /dev/null +++ b/src/addons/addons/expanded-backpack/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./backpack.css"; +export const resources = { + "userscript.js": _js, + "backpack.css": _css, +}; diff --git a/src/addons/addons/expanded-backpack/backpack.css b/src/addons/addons/expanded-backpack/backpack.css new file mode 100644 index 00000000000..42c58175b2c --- /dev/null +++ b/src/addons/addons/expanded-backpack/backpack.css @@ -0,0 +1,39 @@ +/* override styles in https://github.com/scratchfoundation/scratch-gui/blob/develop/src/components/backpack/backpack.css */ + +[class^="backpack_backpack-list"] { + /* set height of the item picker, the vanilla height of the backpack is 5.5rem so multiply it by the rows setting */ + height: calc(var(--expandedBackpack-rows) * 5.5rem); +} + +[class*="backpack_backpack-list-inner"] { + /* move items to the top-left of the container instead of vertically centering them */ + align-items: flex-start; + /* force horizontal wrapping and enable vertical scrolling */ + flex-wrap: wrap; + height: auto; + max-height: 100%; +} + +[class*="backpack_backpack-item"] { + /* add vertical margin to make stacked buttons look nicer */ + margin: 0.25rem; +} + +/* non-backpacked sprite, costume and sound thumbnails use the same .sprite-selector classes so check parents to see if its part of the backpack */ +[class^="backpack_backpack-list-inner"] + > .react-contextmenu-wrapper + > [class^="sprite-selector-item_sprite-image-outer"] + > [class^="sprite-selector-item_sprite-image-inner"] { + /* fill area around thumbnail to make the image background blend in when using dark mode/custom theme */ + background-color: var(--expandedBackpack-bgcolor); +} + +[class^="backpack_backpack-list-inner"] + > .react-contextmenu-wrapper + > [class^="sprite-selector-item_sprite-image-outer"] + > [class^="sprite-selector-item_sprite-image-inner"] + > [class^="sprite-selector-item_sprite-image"] { + /* make thumbnails use all avaliable space inside the button instead of being downscaled to 32x32 pixels */ + max-width: var(--expandedBackpack-imgsize); + max-height: var(--expandedBackpack-imgsize); +} diff --git a/src/addons/addons/expanded-backpack/userscript.js b/src/addons/addons/expanded-backpack/userscript.js new file mode 100644 index 00000000000..4d2b4687484 --- /dev/null +++ b/src/addons/addons/expanded-backpack/userscript.js @@ -0,0 +1,10 @@ +export default async function ({ addon, global, console }) { + // fix area above the backpack displaying at the wrong height when addon settings are changed + addon.settings.addEventListener("change", heightFix); + addon.self.addEventListener("disabled", heightFix); + addon.self.addEventListener("reenabled", heightFix); + + async function heightFix() { + window.dispatchEvent(new Event("resize")); // resizes the code area and paint editor canvas (thanks @mxmou) + } +} diff --git a/src/addons/addons/find-bar/_manifest_entry.js b/src/addons/addons/find-bar/_manifest_entry.js new file mode 100644 index 00000000000..54182693045 --- /dev/null +++ b/src/addons/addons/find-bar/_manifest_entry.js @@ -0,0 +1,37 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Editor find bar", + "description": "Adds a find bar to find and jump to scripts, costumes and sounds next to the sounds tab. Use Ctrl+Left and Ctrl+Right in the code area to navigate to previous or next visited position after using the find bar.", + "info": [ + { + "text": "This addon was previously part of the \"developer tools\" addon but has moved here.", + "id": "developer-tools" + } + ], + "credits": [ + { + "name": "griffpatch" + }, + { + "name": "TheColaber", + "link": "https://scratch.mit.edu/users/thecolaber/" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "userstyle.css" + } + ], + "tags": [ + "recommended" + ], + "enabledByDefault": true +}; +export default manifest; diff --git a/src/addons/addons/find-bar/_runtime_entry.js b/src/addons/addons/find-bar/_runtime_entry.js new file mode 100644 index 00000000000..e8d1f9d053d --- /dev/null +++ b/src/addons/addons/find-bar/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./userstyle.css"; +export const resources = { + "userscript.js": _js, + "userstyle.css": _css, +}; diff --git a/src/addons/addons/editor-devtools/blockly/BlockFlasher.js b/src/addons/addons/find-bar/blockly/BlockFlasher.js similarity index 100% rename from src/addons/addons/editor-devtools/blockly/BlockFlasher.js rename to src/addons/addons/find-bar/blockly/BlockFlasher.js diff --git a/src/addons/addons/editor-devtools/BlockInstance.js b/src/addons/addons/find-bar/blockly/BlockInstance.js similarity index 100% rename from src/addons/addons/editor-devtools/BlockInstance.js rename to src/addons/addons/find-bar/blockly/BlockInstance.js diff --git a/src/addons/addons/editor-devtools/BlockItem.js b/src/addons/addons/find-bar/blockly/BlockItem.js similarity index 100% rename from src/addons/addons/editor-devtools/BlockItem.js rename to src/addons/addons/find-bar/blockly/BlockItem.js diff --git a/src/addons/addons/editor-devtools/blockly/Utils.js b/src/addons/addons/find-bar/blockly/Utils.js similarity index 88% rename from src/addons/addons/editor-devtools/blockly/Utils.js rename to src/addons/addons/find-bar/blockly/Utils.js index 398f3463b12..8b6873f9f46 100644 --- a/src/addons/addons/editor-devtools/blockly/Utils.js +++ b/src/addons/addons/find-bar/blockly/Utils.js @@ -1,8 +1,9 @@ -import BlockInstance from "../BlockInstance.js"; +import BlockInstance from "./BlockInstance.js"; import BlockFlasher from "./BlockFlasher.js"; -// A file to split Editor Devtools by features. - +// Make these global so that every addon uses the same arrays. +let views = []; +let forward = []; export default class Utils { constructor(addon) { this.addon = addon; @@ -17,7 +18,7 @@ export default class Utils { // this._myFlash = { block: null, timerID: null, colour: null }; this.offsetX = 32; this.offsetY = 32; - this.navigationHistory = new NavigationHistory(this); + this.navigationHistory = new NavigationHistory(); /** * The workspace */ @@ -113,7 +114,7 @@ export default class Utils { } /** - * Find the top stack block of a stack + * Find the top stack block of a stack * @param block a block in a stack * @returns {*} a block that is the top of the stack of blocks */ @@ -127,32 +128,26 @@ export default class Utils { } class NavigationHistory { - constructor(utils) { - this.utils = utils; - this.views = []; - this.forward = []; - } - /** * Keep a record of the scroll and zoom position */ storeView(next, dist) { - this.forward = []; - let workspace = this.utils.getWorkspace(), + forward = []; + let workspace = Blockly.getMainWorkspace(), s = workspace.getMetrics(); let pos = { left: s.viewLeft, top: s.viewTop }; if (!next || distance(pos, next) > dist) { - this.views.push(pos); + views.push(pos); } } peek() { - return this.views.length > 0 ? this.views[this.views.length - 1] : null; + return views.length > 0 ? views[views.length - 1] : null; } goBack() { - const workspace = this.utils.getWorkspace(), + const workspace = Blockly.getMainWorkspace(), s = workspace.getMetrics(); let pos = { left: s.viewLeft, top: s.viewTop }; @@ -162,9 +157,9 @@ class NavigationHistory { } if (distance(pos, view) < 64) { // Go back to current if we are already far away from it - if (this.views.length > 1) { - this.views.pop(); - this.forward.push(view); + if (views.length > 1) { + views.pop(); + forward.push(view); } } @@ -198,13 +193,13 @@ class NavigationHistory { } goForward() { - let view = this.forward.pop(); + let view = forward.pop(); if (!view) { return; } - this.views.push(view); + views.push(view); - let workspace = this.utils.getWorkspace(), + let workspace = Blockly.getMainWorkspace(), s = workspace.getMetrics(); let sx = view.left - s.contentLeft, diff --git a/src/addons/addons/find-bar/userscript.js b/src/addons/addons/find-bar/userscript.js new file mode 100644 index 00000000000..320389e266c --- /dev/null +++ b/src/addons/addons/find-bar/userscript.js @@ -0,0 +1,841 @@ +import BlockItem from "./blockly/BlockItem.js"; +import BlockInstance from "./blockly/BlockInstance.js"; +import Utils from "./blockly/Utils.js"; + +export default async function ({ addon, msg, console }) { + const Blockly = await addon.tab.traps.getBlockly(); + + class FindBar { + constructor() { + this.utils = new Utils(addon); + + this.prevValue = ""; + + this.findBarOuter = null; + this.findWrapper = null; + this.findInput = null; + this.dropdownOut = null; + this.dropdown = new Dropdown(this.utils); + + document.addEventListener("keydown", (e) => this.eventKeyDown(e), true); + } + + get workspace() { + return Blockly.getMainWorkspace(); + } + + createDom(root) { + this.findBarOuter = document.createElement("div"); + this.findBarOuter.className = "sa-find-bar"; + addon.tab.displayNoneWhileDisabled(this.findBarOuter, { display: "flex" }); + root.appendChild(this.findBarOuter); + + this.findWrapper = this.findBarOuter.appendChild(document.createElement("span")); + this.findWrapper.className = "sa-find-wrapper"; + + this.dropdownOut = this.findWrapper.appendChild(document.createElement("label")); + this.dropdownOut.className = "sa-find-dropdown-out"; + + this.findInput = this.dropdownOut.appendChild(document.createElement("input")); + this.findInput.className = addon.tab.scratchClass("input_input-form", { + others: "sa-find-input", + }); + // for