diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 08b86b5bec01..000000000000 --- a/.eslintignore +++ /dev/null @@ -1,38 +0,0 @@ -**/*.js.snap -/.opensearch -/.chromium -/build -/built_assets -/preinstall_check.js -/bwc_tmp -/config/apm.dev.js -/data -/html_docs -/optimize -/plugins -/test/fixtures/scenarios -node_modules -target -cypress/fixtures - -!/.eslintrc.js - -# plugin overrides -/src/core/lib/osd_internal_native_observable -/src/legacy/plugin_discovery/plugin_pack/__tests__/fixtures/plugins/broken -/src/plugins/**/_generated_/** - -# package overrides -/packages/opensearch-eslint-config-opensearch-dashboards -/packages/opensearch-safer-lodash-set -/packages/osd-interpreter/src/common/lib/grammar.js -/packages/osd-plugin-generator/template -/packages/osd-pm/dist -/packages/osd-test/src/functional_test_runner/__tests__/fixtures/ -/packages/osd-test/src/functional_test_runner/lib/config/__tests__/fixtures/ -/packages/osd-ui-framework/dist -/packages/osd-ui-shared-deps/flot_charts - -# antlr overrides -/src/plugins/data/public/antlr/opensearch_sql/.generated/* -/src/plugins/data/public/antlr/opensearch_sql/grammar/**/* diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index e755cd0b7e0f..000000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,808 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - * - * Any modifications Copyright OpenSearch Contributors. See - * GitHub history for details. - */ - -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you 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. - */ - -/** - * For new files created by OpenSearch Contributors - */ -const OSD_NEW_HEADER = ` -/* - * Copyright OpenSearch Contributors - * SPDX-License-Identifier: Apache-2.0 - */ -`; - -/** - * For modified and modified files with external open source code - */ -const OSD_HEADER = ` -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - * - * Any modifications Copyright OpenSearch Contributors. See - * GitHub history for details. - */ -`; - -const OSD_BAD_HEADER = ` -/* - * Modifications Copyright OpenSearch Contributors. See - * GitHub history for details. - */ -`; - -const APACHE_2_0_LICENSE_HEADER = ` -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you 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. - */ -`; - -const SAFER_LODASH_SET_HEADER = ` -/* - * Elasticsearch B.V licenses this file to you under the MIT License. - * See \`packages/elastic-safer-lodash-set/LICENSE\` for more information. - */ -`; - -const SAFER_LODASH_SET_LODASH_HEADER = ` -/* - * This file is forked from the lodash project (https://lodash.com/), - * and may include modifications made by Elasticsearch B.V. - * Elasticsearch B.V. licenses this file to you under the MIT License. - * See \`packages/elastic-safer-lodash-set/LICENSE\` for more information. - */ -`; - -const SAFER_LODASH_SET_DEFINITELYTYPED_HEADER = ` -/* - * This file is forked from the DefinitelyTyped project (https://github.com/DefinitelyTyped/DefinitelyTyped), - * and may include modifications made by Elasticsearch B.V. - * Elasticsearch B.V. licenses this file to you under the MIT License. - * See \`packages/elastic-safer-lodash-set/LICENSE\` for more information. - */ -`; - -const allMochaRulesOff = {}; -Object.keys(require('eslint-plugin-mocha').rules).forEach((k) => { - allMochaRulesOff['mocha/' + k] = 'off'; -}); - -module.exports = { - root: true, - - extends: ['@elastic/eslint-config-kibana', 'plugin:@elastic/eui/recommended'], - - overrides: [ - /** - * Temporarily disable some react rules for specific plugins, remove in separate PRs - */ - { - files: ['packages/osd-ui-framework/**/*.{js,mjs,ts,tsx}'], - rules: { - 'jsx-a11y/no-onchange': 'off', - }, - }, - { - files: ['src/plugins/eui_utils/**/*.{js,mjs,ts,tsx}'], - rules: { - 'react-hooks/exhaustive-deps': 'off', - }, - }, - { - files: ['src/plugins/opensearch_dashboards_react/**/*.{js,mjs,ts,tsx}'], - rules: { - 'react-hooks/rules-of-hooks': 'off', - 'react-hooks/exhaustive-deps': 'off', - }, - }, - { - files: ['src/plugins/opensearch_dashboards_utils/**/*.{js,mjs,ts,tsx}'], - rules: { - 'react-hooks/exhaustive-deps': 'off', - }, - }, - /** - * Files that require Apache 2.0 headers, settings - * are overridden below for files that require Elastic - * Licence headers - */ - { - files: ['**/*.{js,mjs,ts,tsx}', '!plugins/**/*'], - rules: { - '@osd/eslint/require-license-header': [ - 'error', - { - licenses: [OSD_NEW_HEADER, OSD_HEADER], - }, - ], - '@osd/eslint/disallow-license-headers': [ - 'error', - { - licenses: [ - OSD_BAD_HEADER, - SAFER_LODASH_SET_HEADER, - SAFER_LODASH_SET_LODASH_HEADER, - SAFER_LODASH_SET_DEFINITELYTYPED_HEADER, - ], - }, - ], - }, - }, - - /** - * New Platform client-side - */ - { - files: ['{src}/plugins/*/public/**/*.{js,mjs,ts,tsx}'], - rules: { - 'import/no-commonjs': 'error', - }, - }, - - /** - * safer-lodash-set package requires special license headers - */ - { - files: ['packages/elastic-safer-lodash-set/**/*.{js,mjs,ts,tsx}'], - rules: { - '@osd/eslint/require-license-header': [ - 'error', - { - licenses: [SAFER_LODASH_SET_LODASH_HEADER], - }, - ], - '@osd/eslint/disallow-license-headers': [ - 'error', - { - licenses: [ - OSD_BAD_HEADER, - OSD_NEW_HEADER, - OSD_HEADER, - APACHE_2_0_LICENSE_HEADER, - SAFER_LODASH_SET_HEADER, - SAFER_LODASH_SET_DEFINITELYTYPED_HEADER, - ], - }, - ], - }, - }, - { - files: ['packages/elastic-safer-lodash-set/test/*.{js,mjs,ts,tsx}'], - rules: { - '@osd/eslint/require-license-header': [ - 'error', - { - licenses: [SAFER_LODASH_SET_HEADER], - }, - ], - '@osd/eslint/disallow-license-headers': [ - 'error', - { - licenses: [ - OSD_BAD_HEADER, - OSD_NEW_HEADER, - OSD_HEADER, - APACHE_2_0_LICENSE_HEADER, - SAFER_LODASH_SET_LODASH_HEADER, - SAFER_LODASH_SET_DEFINITELYTYPED_HEADER, - ], - }, - ], - }, - }, - { - files: ['packages/elastic-safer-lodash-set/**/*.d.ts'], - rules: { - '@osd/eslint/require-license-header': [ - 'error', - { - licenses: [SAFER_LODASH_SET_DEFINITELYTYPED_HEADER], - }, - ], - '@osd/eslint/disallow-license-headers': [ - 'error', - { - licenses: [ - OSD_BAD_HEADER, - OSD_NEW_HEADER, - OSD_HEADER, - APACHE_2_0_LICENSE_HEADER, - SAFER_LODASH_SET_HEADER, - SAFER_LODASH_SET_LODASH_HEADER, - ], - }, - ], - }, - }, - - /** - * Restricted paths - */ - { - files: ['**/*.{js,mjs,ts,tsx}'], - rules: { - '@osd/eslint/no-restricted-paths': [ - 'error', - { - basePath: __dirname, - zones: [ - { - target: ['src/**/*', '!src/core/**/*'], - from: ['src/core/utils/**/*'], - errorMessage: `Plugins may only import from src/core/server and src/core/public.`, - }, - { - target: ['src/plugins/*/server/**/*'], - from: ['src/plugins/*/public/**/*'], - errorMessage: `Server code can not import from public, use a common directory.`, - }, - { - target: ['src/plugins/*/common/**/*'], - from: ['src/plugins/*/(server|public)/**/*'], - errorMessage: `Common code can not import from server or public, use a common directory.`, - }, - { - target: ['src/legacy/**/*', 'src/plugins/**/(public|server)/**/*', 'examples/**/*'], - from: [ - 'src/core/public/**/*', - '!src/core/public/index.ts', // relative import - '!src/core/public/mocks{,.ts}', - '!src/core/server/types{,.ts}', - '!src/core/public/utils/**/*', - '!src/core/public/*.test.mocks{,.ts}', - - 'src/core/server/**/*', - '!src/core/server/index.ts', // relative import - '!src/core/server/mocks{,.ts}', - '!src/core/server/types{,.ts}', - '!src/core/server/test_utils{,.ts}', - '!src/core/server/utils', // ts alias - '!src/core/server/utils/**/*', - // for absolute imports until fixed in - // https://github.com/elastic/kibana/issues/36096 - '!src/core/server/*.test.mocks{,.ts}', - - 'target/types/**', - ], - allowSameFolder: true, - errorMessage: - 'Plugins may only import from top-level public and server modules in core.', - }, - { - target: [ - 'src/legacy/**/*', - 'src/plugins/**/(public|server)/**/*', - 'examples/**/*', - '!src/**/*.test.*', - ], - from: [ - 'src/plugins/**/(public|server)/**/*', - '!src/plugins/**/(public|server)/mocks/index.{js,mjs,ts}', - '!src/plugins/**/(public|server)/(index|mocks).{js,mjs,ts,tsx}', - ], - allowSameFolder: true, - errorMessage: 'Plugins may only import from top-level public and server modules.', - }, - { - target: [ - 'src/plugins/**/*', - '!src/plugins/**/server/**/*', - - 'examples/**/*', - '!examples/**/server/**/*', - ], - from: [ - 'src/core/server', - 'src/core/server/**/*', - 'src/plugins/*/server/**/*', - 'examples/**/server/**/*', - ], - errorMessage: - 'Server modules cannot be imported into client modules or shared modules.', - }, - { - target: ['src/core/**/*'], - from: ['plugins/**/*', 'src/plugins/**/*', 'src/legacy/ui/**/*'], - errorMessage: 'The core cannot depend on any plugins.', - }, - { - target: ['src/plugins/*/public/**/*'], - from: ['ui/**/*'], - errorMessage: 'Plugins cannot import legacy UI code.', - }, - { - from: ['src/legacy/ui/**/*', 'ui/**/*'], - target: [ - 'test/plugin_functional/plugins/**/public/np_ready/**/*', - 'test/plugin_functional/plugins/**/server/np_ready/**/*', - ], - allowSameFolder: true, - errorMessage: - 'NP-ready code should not import from /src/legacy/ui/** folder. ' + - 'Instead of importing from /src/legacy/ui/** deeply within a np_ready folder, ' + - 'import those things once at the top level of your plugin and pass those down, just ' + - 'like you pass down `core` and `plugins` objects.', - }, - ], - }, - ], - }, - }, - - /** - * Allow default exports - */ - { - files: [ - 'test/*/config.ts', - 'test/*/config_open.ts', - 'test/*/{tests,test_suites,apis,apps}/**/*', - 'test/visual_regression/tests/**/*', - ], - rules: { - 'import/no-default-export': 'off', - 'import/no-named-as-default': 'off', - }, - }, - - /** - * Files that are allowed to import webpack-specific stuff - */ - { - files: [ - '**/public/**/*.js', - 'src/fixtures/**/*.js', // TODO: this directory needs to be more obviously "public" (or go away) - ], - settings: { - // instructs import/no-extraneous-dependencies to treat certain modules - // as core modules, even if they aren't listed in package.json - 'import/core-modules': ['plugins'], - - 'import/resolver': { - '@osd/eslint-import-resolver-opensearch-dashboards': { - forceNode: false, - rootPackageName: 'opensearch-dashboards', - opensearchDashboardsPath: '.', - pluginMap: {}, - }, - }, - }, - }, - /** - * Files that ARE NOT allowed to use devDependencies - */ - { - files: ['packages/osd-ui-framework/**/*.js', 'packages/osd-interpreter/**/*.js'], - rules: { - 'import/no-extraneous-dependencies': [ - 'error', - { - devDependencies: false, - peerDependencies: true, - }, - ], - }, - }, - - /** - * Files that ARE allowed to use devDependencies - */ - { - files: [ - 'packages/osd-ui-framework/**/*.test.js', - 'packages/osd-opensearch/src/**/*.js', - 'packages/osd-interpreter/tasks/**/*.js', - 'packages/osd-interpreter/src/plugin/**/*.js', - ], - rules: { - 'import/no-extraneous-dependencies': [ - 'error', - { - devDependencies: true, - peerDependencies: true, - }, - ], - }, - }, - - /** - * Files that run BEFORE node version check - */ - { - files: ['scripts/**/*.js', 'src/setup_node_env/**/!(*.test).js'], - rules: { - 'import/no-commonjs': 'off', - 'prefer-object-spread/prefer-object-spread': 'off', - 'no-var': 'off', - 'prefer-const': 'off', - 'prefer-destructuring': 'off', - 'no-restricted-syntax': [ - 'error', - 'ImportDeclaration', - 'ExportNamedDeclaration', - 'ExportDefaultDeclaration', - 'ExportAllDeclaration', - 'ArrowFunctionExpression', - 'AwaitExpression', - 'ClassDeclaration', - 'RestElement', - 'SpreadElement', - 'YieldExpression', - 'VariableDeclaration[kind="const"]', - 'VariableDeclaration[kind="let"]', - 'VariableDeclarator[id.type="ArrayPattern"]', - 'VariableDeclarator[id.type="ObjectPattern"]', - ], - }, - }, - - /** - * Files that run in the browser with only node-level transpilation - */ - { - files: [ - 'test/functional/services/lib/web_element_wrapper/scroll_into_view_if_necessary.js', - 'src/legacy/ui/ui_render/bootstrap/osd_bundles_loader_source.js', - '**/browser_exec_scripts/**/*.js', - ], - rules: { - 'prefer-object-spread/prefer-object-spread': 'off', - 'no-var': 'off', - 'prefer-const': 'off', - 'prefer-destructuring': 'off', - 'no-restricted-syntax': [ - 'error', - 'ArrowFunctionExpression', - 'AwaitExpression', - 'ClassDeclaration', - 'ImportDeclaration', - 'RestElement', - 'SpreadElement', - 'YieldExpression', - 'VariableDeclaration[kind="const"]', - 'VariableDeclaration[kind="let"]', - 'VariableDeclarator[id.type="ArrayPattern"]', - 'VariableDeclarator[id.type="ObjectPattern"]', - ], - }, - }, - - /** - * Files that run AFTER node version check - * and are not also transpiled with babel - */ - { - files: [ - '.eslintrc.js', - 'packages/osd-eslint-import-resolver-opensearch-dashboards/**/*.js', - 'packages/osd-eslint-plugin-eslint/**/*', - ], - excludedFiles: ['**/integration_tests/**/*'], - rules: { - 'import/no-commonjs': 'off', - 'prefer-object-spread/prefer-object-spread': 'off', - 'no-restricted-syntax': [ - 'error', - 'ImportDeclaration', - 'ExportNamedDeclaration', - 'ExportDefaultDeclaration', - 'ExportAllDeclaration', - ], - }, - }, - - /** - * Jest specific rules - */ - { - files: ['**/*.test.{js,mjs,ts,tsx}'], - rules: { - 'jest/valid-describe-callback': 'error', - }, - }, - - /** - * Harden specific rules - */ - { - files: ['test/harden/*.js', 'packages/elastic-safer-lodash-set/test/*.js'], - rules: allMochaRulesOff, - }, - { - files: ['**/*.{js,mjs,ts,tsx}'], - rules: { - 'no-restricted-imports': [ - 2, - { - paths: [ - { - name: 'lodash', - importNames: ['set', 'setWith'], - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash.set', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash.setwith', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash/set', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash/setWith', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash/fp', - importNames: ['set', 'setWith', 'assoc', 'assocPath'], - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash/fp/set', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash/fp/setWith', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash/fp/assoc', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash/fp/assocPath', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash', - importNames: ['template'], - message: 'lodash.template is not allowed due to security concerns', - }, - { - name: 'lodash.template', - message: 'lodash.template is not allowed due to security concerns', - }, - { - name: 'lodash/template', - message: 'lodash.template is not allowed due to security concerns', - }, - ], - }, - ], - 'no-restricted-modules': [ - 2, - { - paths: [ - { - name: 'lodash.set', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash.setwith', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash/set', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash/setWith', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - name: 'lodash.template', - message: 'lodash.template is not allowed due to security concerns', - }, - { - name: 'lodash/template', - message: 'lodash.template is not allowed due to security concerns', - }, - ], - }, - ], - 'no-restricted-properties': [ - 2, - { - object: 'lodash', - property: 'set', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - object: '_', - property: 'set', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - object: 'lodash', - property: 'setWith', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - object: '_', - property: 'setWith', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - object: 'lodash', - property: 'assoc', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - object: '_', - property: 'assoc', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - object: 'lodash', - property: 'assocPath', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - object: '_', - property: 'assocPath', - message: 'Please use @elastic/safer-lodash-set instead', - }, - { - object: 'lodash', - property: 'template', - message: 'lodash.template is not allowed due to security concerns', - }, - { - object: '_', - property: 'template', - message: 'lodash.template is not allowed due to security concerns', - }, - ], - }, - }, - - /** - * disable jsx-a11y for osd-ui-framework - */ - { - files: ['packages/osd-ui-framework/**/*.js'], - rules: { - 'jsx-a11y/click-events-have-key-events': 'off', - 'jsx-a11y/anchor-has-content': 'off', - 'jsx-a11y/tabindex-no-positive': 'off', - 'jsx-a11y/label-has-associated-control': 'off', - 'jsx-a11y/aria-role': 'off', - }, - }, - { - files: ['packages/osd-ui-shared-deps/flot_charts/**/*.js'], - env: { - jquery: true, - }, - }, - - /** - * TSVB overrides - */ - { - files: ['src/plugins/vis_type_timeseries/**/*.{js,mjs,ts,tsx}'], - rules: { - 'import/no-default-export': 'error', - }, - }, - - /** - * Prettier disables all conflicting rules, listing as last override so it takes precedence - */ - { - files: ['**/*'], - rules: { - ...require('eslint-config-prettier').rules, - ...require('eslint-config-prettier/react').rules, - }, - }, - - { - files: [ - // platform-team owned code - 'src/core/**', - 'packages/osd-config-schema', - 'src/plugins/status_page/**', - 'src/plugins/saved_objects_management/**', - ], - rules: { - '@typescript-eslint/prefer-ts-expect-error': 'error', - }, - }, - { - files: [ - '**/public/**/*.{js,mjs,ts,tsx}', - '**/common/**/*.{js,mjs,ts,tsx}', - 'packages/**/*.{js,mjs,ts,tsx}', - ], - rules: { - 'no-restricted-imports': [ - 'error', - { - patterns: ['lodash/*', '!lodash/fp'], - paths: [ - { - name: 'lodash', - importNames: ['template'], - message: 'lodash.template is not allowed due to security concerns', - }, - { - name: 'lodash.template', - message: 'lodash.template is not allowed due to security concerns', - }, - { - name: 'lodash/template', - message: 'lodash.template is not allowed due to security concerns', - }, - ], - }, - ], - }, - }, - { - files: ['cypress/**/*.js'], - rules: { - 'import/no-unresolved': 'off', - 'no-undef': 'off', - }, - }, - { - files: [ - 'src/plugins/data/public/antlr/opensearch_sql/.generated/*', - 'src/plugins/data/public/antlr/opensearch_sql/grammar/**/*', - ], - rules: { - 'filenames/match-regex': 'off', - }, - }, - ], -}; diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 8892cc3a8635..b95bc17119e8 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -1,42 +1,12 @@ +--- name: Backport on: pull_request_target: - types: - - closed - - labeled + types: [closed, labeled] jobs: backport: - runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - name: Backport - # Only react to merged PRs for security reasons. - # See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target. - if: > - github.event.pull_request.merged - && ( - github.event.action == 'closed' - || ( - github.event.action == 'labeled' - && contains(github.event.label.name, 'backport') - ) - ) - steps: - - name: GitHub App token - id: github_app_token - uses: tibdex/github-app-token@1901dc7d52169e70c27a8da37aef0d423e2867a2 # v1.5.0 - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - # opensearch-trigger-bot installation ID - installation_id: 22958780 - - - name: Backport - uses: VachaShah/backport@142d3b8a8c70dc54db515e653e5ed3c3fac64100 # v2.2.0 - with: - github_token: ${{ steps.github_app_token.outputs.token }} - head_template: backport/backport-<%= number %>-to-<%= base %> - labels_template: "<%= JSON.stringify([...labels, 'autocut']) %>" - failure_labels: 'failed backport' + if: github.repository == 'opensearch-project/OpenSearch-Dashboards' + uses: opensearch-project/opensearch-build/.github/workflows/backport-pr.yml@main + secrets: + OPENSEARCH_CI_BOT_TOKEN: ${{ secrets.OPENSEARCH_CI_BOT_TOKEN }} diff --git a/.github/workflows/cypress_workflow.yml b/.github/workflows/cypress_workflow.yml index 9ee52bb6a21a..2600c3852bbf 100644 --- a/.github/workflows/cypress_workflow.yml +++ b/.github/workflows/cypress_workflow.yml @@ -270,6 +270,10 @@ jobs: - group: 23Explore config: explore test_location: source + # Dashboard tests that require workspace and data source support + - group: Dashboards + config: explore + test_location: source # Observability tests (Traces, Metrics) - group: 1Observability config: observability @@ -284,7 +288,7 @@ jobs: START_CMD: ${{ matrix.config == 'query_enhanced' && 'node scripts/opensearch_dashboards --no-base-path --no-watch --savedObjects.maxImportPayloadBytes=10485760 --server.maxPayloadBytes=1759977 --logging.json=false --data.search.aggs.shardDelay.enabled=true --csp.warnLegacyBrowsers=false --uiSettings.overrides["query:enhancements:enabled"]=true --uiSettings.overrides[''home:useNewHomePage'']=true --data_source.enabled=true --workspace.enabled=true --opensearch.ignoreVersionMismatch=true --data.savedQueriesNewUI.enabled=true --home.disableExperienceModal=true' || matrix.config == 'explore' && - 'node scripts/opensearch_dashboards --no-base-path --no-watch --savedObjects.maxImportPayloadBytes=10485760 --server.maxPayloadBytes=1759977 --logging.json=false --data.search.aggs.shardDelay.enabled=true --csp.warnLegacyBrowsers=false --uiSettings.overrides["query:enhancements:enabled"]=true --uiSettings.overrides[''home:useNewHomePage'']=true --data_source.enabled=true --workspace.enabled=true --opensearch.ignoreVersionMismatch=true --data.savedQueriesNewUI.enabled=true --explore.enabled=true --explore.discoverTraces.enabled=true --home.disableExperienceModal=true --datasetManagement.enabled=true' || + 'node scripts/opensearch_dashboards --no-base-path --no-watch --savedObjects.maxImportPayloadBytes=10485760 --server.maxPayloadBytes=1759977 --logging.json=false --data.search.aggs.shardDelay.enabled=true --csp.warnLegacyBrowsers=false --uiSettings.overrides["query:enhancements:enabled"]=true --uiSettings.overrides[''home:useNewHomePage'']=true --data_source.enabled=true --workspace.enabled=true --opensearch.ignoreVersionMismatch=true --data.savedQueriesNewUI.enabled=true --explore.enabled=true --explore.discoverTraces.enabled=true --home.disableExperienceModal=true --datasetManagement.enabled=true --dashboard.variables.enabled=true' || matrix.config == 'observability' && 'node scripts/opensearch_dashboards --no-base-path --no-watch --savedObjects.maxImportPayloadBytes=10485760 --server.maxPayloadBytes=1759977 --logging.json=false --data.search.aggs.shardDelay.enabled=true --csp.warnLegacyBrowsers=false --uiSettings.overrides["query:enhancements:enabled"]=true --uiSettings.overrides[''home:useNewHomePage'']=true --data_source.enabled=true --workspace.enabled=true --opensearch.ignoreVersionMismatch=true --data.savedQueriesNewUI.enabled=true --explore.enabled=true --explore.discoverTraces.enabled=true --home.disableExperienceModal=true --datasetManagement.enabled=true' || matrix.config == 'dashboard' && diff --git a/.github/workflows/delete_backport_branch.yml b/.github/workflows/delete_backport_branch.yml deleted file mode 100644 index d12a36e99a2d..000000000000 --- a/.github/workflows/delete_backport_branch.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Delete merged branch of the backport PRs -on: - pull_request: - types: - - closed - -jobs: - delete-branch: - runs-on: ubuntu-latest - permissions: - contents: write - if: startsWith(github.event.pull_request.head.ref,'backport/') - steps: - - name: Delete merged branch - uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7 - with: - script: | - github.rest.git.deleteRef({ - owner: context.repo.owner, - repo: context.repo.repo, - ref: `heads/${context.payload.pull_request.head.ref}`, - }) diff --git a/.github/workflows/pr_review.yml b/.github/workflows/pr_review.yml index 72715d30edd5..fcc25f5a81c3 100644 --- a/.github/workflows/pr_review.yml +++ b/.github/workflows/pr_review.yml @@ -6,7 +6,7 @@ on: jobs: Code-Diff-Analyzer: - uses: opensearch-project/opensearch-build/.github/workflows/code-diff-analyzer.yml@c2498b758c08fb7bc48476509a5fc1b8dd5f7493 # main + uses: opensearch-project/opensearch-build/.github/workflows/code-diff-analyzer.yml@main if: github.repository == 'opensearch-project/OpenSearch-Dashboards' permissions: id-token: write # github oidc to assume aws roles @@ -18,7 +18,7 @@ jobs: update_pr_comment_with_analyzer_report: true Code-Diff-Reviewer: - uses: opensearch-project/opensearch-build/.github/workflows/code-diff-reviewer.yml@c2498b758c08fb7bc48476509a5fc1b8dd5f7493 # main + uses: opensearch-project/opensearch-build/.github/workflows/code-diff-reviewer.yml@main needs: Code-Diff-Analyzer if: github.repository == 'opensearch-project/OpenSearch-Dashboards' permissions: diff --git a/.github/workflows/release_cypress_workflow.yml b/.github/workflows/release_cypress_workflow.yml index 21c13d8364b9..6ccb88650aa8 100644 --- a/.github/workflows/release_cypress_workflow.yml +++ b/.github/workflows/release_cypress_workflow.yml @@ -51,7 +51,7 @@ env: jobs: Get-CI-Image-Tag: - uses: opensearch-project/opensearch-build/.github/workflows/get-ci-image-tag.yml@c2498b758c08fb7bc48476509a5fc1b8dd5f7493 # main + uses: opensearch-project/opensearch-build/.github/workflows/get-ci-image-tag.yml@main with: product: opensearch-dashboards diff --git a/.gitignore b/.gitignore index 586c6cb18cf2..d63508ad4157 100644 --- a/.gitignore +++ b/.gitignore @@ -94,3 +94,6 @@ snapshots.js # osd-pm bootstrap fast-path fingerprint (local machine state) /.osd-bootstrap-fingerprint + +# git worktrees (local isolated workspaces) +/.worktrees/ diff --git a/.node-version b/.node-version index 941d7c071de8..1c9aeda807da 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -22.22.3 +22.23.0 diff --git a/.nvmrc b/.nvmrc index 941d7c071de8..2bd5a0a98a36 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.22.3 +22 diff --git a/.prettierrc b/.prettierrc index d44017138061..0a8ef486081a 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,5 +1,6 @@ { "singleQuote": true, "trailingComma": "es5", - "printWidth": 100 + "printWidth": 100, + "endOfLine": "auto" } diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index 7830fdbd87c3..596ca1927924 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -68,6 +68,16 @@ We recommend using [Node Version Manager (nvm)](https://github.com/nvm-sh/nvm) t If it's the only version of node installed, it will automatically be set to the `default` alias. Otherwise, use `nvm list` to see all installed `node` versions, and `nvm use` to select the node version required by OpenSearch Dashboards. +#### Node.js version files + +The project uses multiple files to manage the Node.js version for different purposes: + +| File | Format | Purpose | When to update | +|------|--------|---------|----------------| +| `.node-version` | Exact version (e.g. `22.23.0`) | Used by the build system to download Node.js binaries for release builds | Patch, minor, and major bumps | +| `.nvmrc` | Major version only (e.g. `22`) | Used by nvm and GitHub Actions CI for development | Major version bumps only | +| `package.json` `engines.node` | Semver range | Validates compatible Node.js versions | Major version bumps only | + ### Fork and clone OpenSearch Dashboards All local development should be done in a [forked repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo). @@ -502,7 +512,7 @@ remove it, don't simply comment it out. #### Prettier and linting We are gradually moving the OpenSearch Dashboards code base over to Prettier. All TypeScript code -and some JavaScript code (check `.eslintrc.js`) is using Prettier to format code. You +and some JavaScript code (check `eslint.config.js`) is using Prettier to format code. You can run `yarn run lint:es --fix && yarn run lint:style --fix` to fix linting issues and apply Prettier formatting. We recommend you to enable running ESLint via your IDE. @@ -723,7 +733,7 @@ less likely to introduce bugs in the future due to insufficient types. If you’re not having `any` in your plugin or are starting a new plugin, you should enable the [`@typescript-eslint/no-explicit-any`](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-explicit-any.md) -linting rule for your plugin via the [`.eslintrc.js`](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/.eslintrc.js) config. +linting rule for your plugin via the [`eslint.config.js`](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/eslint.config.js) config. #### Avoid non-null assertions @@ -742,7 +752,7 @@ assertion would now wrongly disable proper type checking for us. If you’re not using non-null assertions in your plugin or are starting a new plugin, consider enabling the [`@typescript-eslint/no-non-null-assertion`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/no-non-null-assertion.md) -linting rule for you plugin in the [`.eslintrc.js`](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/.eslintrc.js) config. +linting rule for you plugin in the [`eslint.config.js`](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/eslint.config.js) config. #### Return/throw early from functions @@ -894,10 +904,10 @@ define(['lodash'], function (_) { ``` In those extremely rare cases where you're writing server-side JavaScript in a -file that does not pass run through webpack, then use CommonJS modules. +file that does not pass run through rspack, then use CommonJS modules. In those even rarer cases where you're writing client-side code that does not -run through webpack, then do not use a module loader at all. +run through rspack, then do not use a module loader at all. ##### Import only top-level modules diff --git a/changelogs/fragments/12216.yml b/changelogs/fragments/12216.yml new file mode 100644 index 000000000000..25501ce924fa --- /dev/null +++ b/changelogs/fragments/12216.yml @@ -0,0 +1,2 @@ +fix: +- Exclude the Observability (otel) sample data set on AnalyticEngine data sources, since its nested-field trace mappings cannot be created on a pluggable-dataformat domain ([#12216](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/12216)) diff --git a/changelogs/fragments/12327.yml b/changelogs/fragments/12327.yml new file mode 100644 index 000000000000..0e0c8e81cbc9 --- /dev/null +++ b/changelogs/fragments/12327.yml @@ -0,0 +1,2 @@ +fix: +- [Workspace] Combine the workspace switcher and manage-workspace links in the footer menu so it is never empty and offers workspace navigation outside a workspace ([#12327](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/12327)) diff --git a/changelogs/fragments/12410.yml b/changelogs/fragments/12410.yml new file mode 100644 index 000000000000..0231b8ce47cf --- /dev/null +++ b/changelogs/fragments/12410.yml @@ -0,0 +1,2 @@ +feat: +- Add a complex-query warning banner in Explore save windows behind the explore.queryProfiling.enabled feature flag ([#12410](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/12410)) diff --git a/config/opensearch_dashboards.yml b/config/opensearch_dashboards.yml index 3efd7ca33e96..8ed44ed357c3 100644 --- a/config/opensearch_dashboards.yml +++ b/config/opensearch_dashboards.yml @@ -282,6 +282,13 @@ # functionality in Visualization. # vis_builder.enabled: false +# Enable the Dashboard Variables feature (disabled by default). When off, the `variablesJSON` +# field is never added to the dashboard mapping or written on save. +# Turning it on triggers a one-time saved object index migration. +# Warning: before turning it back off, remove `variablesJSON` from all dashboard documents, +# otherwise the index migration fails with strict_dynamic_mapping_exception on every startup. +# dashboard.variables.enabled: false + # Set the value of this setting to true to hide local cluster in data source feature. # data_source.hideLocalCluster: true @@ -446,4 +453,9 @@ # @experimental Enable legacy Elasticsearch backend compatibility. # This feature is currently being developed and should be used with caution in production environments. -# backendCompatibility.enabled: false +# backend_compatibility.enabled: false + +# @experimental Gate SQL/PPL per selected dataset for legacy Elasticsearch data sources and route +# those queries to the Open Distro endpoints. When disabled (default), SQL/PPL are shown for all +# datasets and queries always use the /_plugins endpoints. +# queryEnhancements.legacyElasticsearchCompatibility.enabled: false diff --git a/cypress.config.ts b/cypress.config.ts index ca4f30bca90a..709fe0161061 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -5,7 +5,6 @@ import fs from 'fs'; import { defineConfig } from 'cypress'; -import webpackPreprocessor from '@cypress/webpack-preprocessor'; module.exports = defineConfig({ experimentalMemoryManagement: true, @@ -73,59 +72,6 @@ function setupNodeEvents( on: Cypress.PluginEvents, config: Cypress.PluginConfigOptions ): Cypress.PluginConfigOptions { - const { webpackOptions } = webpackPreprocessor.defaultOptions; - - // Fix: Error: Webpack Compilation Error - // Module not found: Error: Can't resolve 'path' - webpackOptions!.plugins = webpackOptions!.plugins || []; - // eslint-disable-next-line @typescript-eslint/no-var-requires - webpackOptions!.plugins.push(new (require('node-polyfill-webpack-plugin'))()); - - /** - * By default, cypress' internal webpack preprocessor doesn't allow imports without file extensions. - * This makes our life a bit hard since if any file in our testing dependency graph has an import without - * the .js extension our cypress build will fail. - * - * This extra rule relaxes this a bit by allowing imports without file extension - * ex. import module from './module' - */ - // @ts-expect-error TODO FIX ME - webpackOptions!.module!.rules.unshift({ - test: /\.m?js/, - resolve: { - fullySpecified: false, - }, - }); - - /** - * Add babel-loader to handle modern JavaScript syntax like optional chaining - */ - // @ts-expect-error TODO FIX ME - webpackOptions!.module!.rules.push({ - test: /\.(js|ts)$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - presets: [ - ['@babel/preset-env', { targets: { node: 'current' } }], - '@babel/preset-typescript', - ], - plugins: [ - '@babel/plugin-proposal-optional-chaining', - '@babel/plugin-proposal-nullish-coalescing-operator', - ], - }, - }, - }); - - on( - 'file:preprocessor', - webpackPreprocessor({ - webpackOptions, - }) - ); - // Delete video files for specs where all tests passed. // Keeps compressed videos only for failures to aid debugging. on('after:spec', (spec: Cypress.Spec, results: CypressCommandLine.RunResult) => { diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/dashboards/dashboard_variables.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/dashboards/dashboard_variables.spec.js new file mode 100644 index 000000000000..2ea01e03918a --- /dev/null +++ b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/dashboards/dashboard_variables.spec.js @@ -0,0 +1,427 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import { DATASOURCE_NAME, INDEX_WITH_TIME_1 } from '../../../../../utils/apps/constants'; +import { + getRandomizedWorkspaceName, + getRandomizedDatasetId, +} from '../../../../../utils/apps/explore/shared'; +import { + prepareTestSuite, + createWorkspaceAndDatasetUsingEndpoint, +} from '../../../../../utils/helpers'; + +const workspaceName = getRandomizedWorkspaceName(); +const datasetId = getRandomizedDatasetId(); +const dashboardName = 'variables-test-dashboard'; + +const navigateToDashboardList = () => { + cy.osd.navigateToWorkSpaceSpecificPage({ + workspaceName, + page: 'dashboards', + isEnhancement: true, + }); +}; + +const createAndSaveDashboard = () => { + navigateToDashboardList(); + // Create a new dashboard (starts in edit mode) + cy.getElementByTestId('newItemButton').click(); + cy.wait(2000); + // Save the dashboard so variables can be added (dashboard needs an ID) + cy.getElementByTestId('dashboardSaveMenuItem').click(); + cy.getElementByTestId('savedObjectTitle').clear().type(dashboardName); + cy.getElementByTestId('confirmSaveSavedObjectButton').click(); + cy.wait(2000); +}; + +const enterEditMode = () => { + cy.getElementByTestId('dashboardEditSwitch').click(); + cy.wait(1000); +}; + +const openVariableEditor = () => { + cy.getElementByTestId('addVariableButton').click(); + cy.getElementByTestId('variableEditorPanel').should('be.visible'); +}; + +const selectCustomType = () => { + cy.getElementByTestId('variableEditorType').click(); + cy.get('[role="option"]').contains('Custom').click(); +}; + +const addCustomOption = (index, value, label = '') => { + cy.getElementByTestId('variableEditorAddCustomOption').click(); + cy.getElementByTestId(`variableEditorCustomValue-${index}`).clear().type(value); + if (label) { + cy.getElementByTestId(`variableEditorCustomLabel-${index}`).clear().type(label); + } +}; + +const saveVariable = () => { + cy.getElementByTestId('variableEditorSave').click(); + cy.wait(1000); +}; + +export const runDashboardVariableTests = () => { + describe('Dashboard variables', () => { + before(() => { + cy.osd.setupEnvAndGetDataSource(DATASOURCE_NAME); + createWorkspaceAndDatasetUsingEndpoint( + DATASOURCE_NAME, + workspaceName, + datasetId, + `${INDEX_WITH_TIME_1}*`, + 'timestamp', + 'logs', + ['use-case-observability'] + ); + createAndSaveDashboard(); + }); + + after(() => { + cy.osd.cleanupWorkspaceAndDataSourceAndIndices(workspaceName); + }); + + describe('Create custom variable', () => { + it('should create a custom variable with multiple options', () => { + // Dashboard switches to view mode after save, enter edit mode + enterEditMode(); + openVariableEditor(); + + // Fill in variable name first before changing type + cy.getElementByTestId('variableEditorName').type('env'); + + selectCustomType(); + + // Add custom options + addCustomOption(0, 'production', 'Production'); + addCustomOption(1, 'staging', 'Staging'); + addCustomOption(2, 'development', 'Development'); + + saveVariable(); + + // Verify variable appears in the variables bar + cy.getElementByTestId('dashboardVariablesBar').should('be.visible'); + cy.getElementByTestId('variable-env').should('be.visible'); + }); + + it('should display the variable selector with correct default value', () => { + // The first custom option should be auto-selected + cy.getElementByTestId('variable-env').within(() => { + cy.getElementByTestId('variable-selector-current').should('contain.text', 'Production'); + }); + }); + + it('should allow selecting a different value', () => { + // Click to open the popover + cy.getElementByTestId('variable-env') + .find('[data-test-subj="variable-selector-button"]') + .click(); + + // Select a different option + cy.get('[role="option"]').contains('Staging').click(); + + // Verify the selected value changed + cy.getElementByTestId('variable-env').within(() => { + cy.getElementByTestId('variable-selector-current').should('contain.text', 'Staging'); + }); + }); + }); + + describe('Edit variable', () => { + it('should open the management panel and edit an existing variable', () => { + // Open management panel + cy.getElementByTestId('manageVariablesButton').click(); + cy.getElementByTestId('variableManagementPanel').should('be.visible'); + + // Click edit on the variable + cy.getElementByTestId('variableManagementPanel') + .find('[aria-label="Edit variable"]') + .first() + .click(); + + // Verify editor opens with existing values + cy.getElementByTestId('variableEditorPanel').should('be.visible'); + cy.getElementByTestId('variableEditorName').should('have.value', 'env'); + + // Update the label + cy.getElementByTestId('variableEditorLabel').clear().type('Environment'); + + // Add another custom option + cy.getElementByTestId('variableEditorAddCustomOption').click(); + cy.getElementByTestId('variableEditorCustomValue-3').clear().type('testing'); + cy.getElementByTestId('variableEditorCustomLabel-3').clear().type('Testing'); + + // Save changes + cy.getElementByTestId('variableEditorSave').click(); + cy.wait(1000); + + // Verify the variable is still visible in the bar + cy.getElementByTestId('variable-env').should('be.visible'); + }); + }); + + describe('Delete variable', () => { + it('should create a second variable to test deletion', () => { + openVariableEditor(); + cy.getElementByTestId('variableEditorName').type('region'); + selectCustomType(); + + addCustomOption(0, 'us_east', 'US East'); + addCustomOption(1, 'us_west', 'US West'); + + saveVariable(); + + // Verify both variables exist + cy.getElementByTestId('variable-env').should('be.visible'); + cy.getElementByTestId('variable-region').should('be.visible'); + }); + + it('should delete a variable from the management panel', () => { + // Open management panel + cy.getElementByTestId('manageVariablesButton').click(); + cy.getElementByTestId('variableManagementPanel').should('be.visible'); + + // Click delete on the second variable (region) + cy.getElementByTestId('variableManagementPanel') + .find('[aria-label="Delete variable"]') + .last() + .click(); + + // Confirm deletion in the modal + cy.getElementByTestId('confirmModalConfirmButton').click(); + cy.wait(1000); + + // Close management panel + cy.getElementByTestId('variableManagementPanel').find('button').contains('Close').click(); + + // Verify the variable is removed from the bar + cy.getElementByTestId('variable-region').should('not.exist'); + // First variable should still exist + cy.getElementByTestId('variable-env').should('be.visible'); + }); + }); + + describe('Variable bar interactions', () => { + it('should collapse and expand the variables bar', () => { + cy.getElementByTestId('toggleVariablesBarButton').click(); + + // Variables should be hidden + cy.getElementByTestId('variable-env').should('not.exist'); + + // Expand again + cy.getElementByTestId('toggleVariablesBarButton').click(); + cy.getElementByTestId('variable-env').should('be.visible'); + }); + + it('should hide a variable using the management panel', () => { + cy.getElementByTestId('manageVariablesButton').click(); + cy.getElementByTestId('variableManagementPanel').should('be.visible'); + + // Click hide on the variable + cy.getElementByTestId('variableManagementPanel') + .find('[aria-label="Hide variable"]') + .first() + .click(); + + // Close the management panel + cy.getElementByTestId('variableManagementPanel').find('button').contains('Close').click(); + + // Verify variable is hidden from the bar + cy.getElementByTestId('variable-env').should('not.exist'); + + // Re-show the variable for subsequent tests + cy.getElementByTestId('manageVariablesButton').click(); + cy.getElementByTestId('variableManagementPanel') + .find('[aria-label="Show variable"]') + .first() + .click(); + cy.getElementByTestId('variableManagementPanel').find('button').contains('Close').click(); + cy.getElementByTestId('variable-env').should('be.visible'); + }); + }); + + describe('Variable editor validation', () => { + it('should show error when saving without a name', () => { + openVariableEditor(); + selectCustomType(); + + // Try to save without name but with an option + addCustomOption(0, 'value1'); + saveVariable(); + + // Should show error + cy.getElementByTestId('variableEditorPanel').should( + 'contain.text', + 'Variable name is required' + ); + + cy.getElementByTestId('variableEditorCancel').click(); + }); + + it('should show error for invalid variable name', () => { + openVariableEditor(); + // Type an invalid name (starts with number) + cy.getElementByTestId('variableEditorName').type('123invalid'); + selectCustomType(); + addCustomOption(0, 'value1'); + saveVariable(); + + // Should show error about name format + cy.getElementByTestId('variableEditorPanel').should( + 'contain.text', + 'must start with a letter or underscore' + ); + + cy.getElementByTestId('variableEditorCancel').click(); + }); + + it('should show error for duplicate variable name', () => { + openVariableEditor(); + // Type existing variable name + cy.getElementByTestId('variableEditorName').type('env'); + selectCustomType(); + addCustomOption(0, 'value1'); + saveVariable(); + + // Should show conflict error + cy.getElementByTestId('variableEditorPanel').should('contain.text', 'conflicts'); + + cy.getElementByTestId('variableEditorCancel').click(); + }); + + it('should show error when custom type has no options', () => { + openVariableEditor(); + cy.getElementByTestId('variableEditorName').type('empty_var'); + selectCustomType(); + // Don't add any options + saveVariable(); + + // Should show error about custom values + cy.getElementByTestId('variableEditorPanel').should( + 'contain.text', + 'Custom values are required' + ); + + cy.getElementByTestId('variableEditorCancel').click(); + }); + }); + + describe('Create query variable', () => { + it('should create a query variable with value field and label field', () => { + openVariableEditor(); + cy.getElementByTestId('variableEditorName').type('user'); + + // Type is already "Query" by default - select the test dataset + cy.getElementByTestId('datasetSelectButton').click(); + cy.get('[role="option"]').contains(INDEX_WITH_TIME_1).click({ force: true }); + cy.wait(1000); + + // Type PPL query in the Monaco editor to get user_id and name fields + cy.getElementByTestId('variableQueryPanelEditor') + .find('.view-line') + .first() + .click({ force: true }); + cy.wait(200); + // Select all existing text and replace with our query + cy.focused().type('{selectall}'); + cy.focused().type( + `SOURCE = ${INDEX_WITH_TIME_1} | fields personal.name, personal.user_id`, + { parseSpecialCharSequences: false } + ); + cy.wait(500); + + // Click Preview to load available fields + cy.getElementByTestId('variableQueryPanelRunQuery').click(); + cy.wait(5000); + + // Select "personal.user_id" as value field (stored value) + cy.getElementByTestId('variableEditorValueField').select('personal.user_id'); + cy.wait(500); + + // Select "personal.name" as label field (display label) + cy.getElementByTestId('variableEditorLabelField').select('personal.name'); + cy.wait(500); + + // Click Preview again to update with selected fields + cy.getElementByTestId('variableQueryPanelRunQuery').click(); + cy.wait(5000); + + // Verify preview shows values + cy.getElementByTestId('variableEditorPanel').should('contain.text', 'Preview of values'); + + // Save the variable + saveVariable(); + + // Wait for query execution to load options + cy.wait(5000); + + // Verify variable appears in the bar + cy.getElementByTestId('variable-user').should('be.visible'); + }); + + it('should display label field values (names) in the selector', () => { + // Open the selector + cy.getElementByTestId('variable-user') + .find('[data-test-subj="variable-selector-button"]') + .click(); + cy.wait(1000); + + // Verify options exist (labels should be personal.name values) + cy.get('[role="option"]').should('have.length.at.least', 3); + + // Select an option + cy.get('[role="option"]').first().click(); + cy.wait(500); + + // Verify a value is selected (displayed text should be a name) + cy.getElementByTestId('variable-user').within(() => { + cy.getElementByTestId('variable-selector-current').invoke('text').should('not.be.empty'); + }); + }); + }); + + describe('Multi-select variable', () => { + it('should create a multi-select custom variable with include all', () => { + openVariableEditor(); + cy.getElementByTestId('variableEditorName').type('tags'); + selectCustomType(); + addCustomOption(0, 'critical', 'Critical'); + addCustomOption(1, 'warning', 'Warning'); + addCustomOption(2, 'info', 'Info'); + + // Enable multi-select + cy.getElementByTestId('variableEditorMulti').click(); + // Enable include all + cy.getElementByTestId('variableEditorIncludeAll').click(); + + saveVariable(); + + // Verify variable appears + cy.getElementByTestId('variable-tags').should('be.visible'); + }); + + it('should allow selecting multiple values', () => { + // Open the selector + cy.getElementByTestId('variable-tags') + .find('[data-test-subj="variable-selector-button"]') + .click(); + + // Select multiple options + cy.get('[role="option"]').contains('Critical').click(); + cy.get('[role="option"]').contains('Warning').click(); + + // Close popover by clicking outside + cy.get('body').click(0, 0); + + // Verify badge shows count + cy.getElementByTestId('variable-tags').find('.euiBadge').should('exist'); + }); + }); + }); +}; + +prepareTestSuite('Dashboard Variables', runDashboardVariableTests); diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/10/simple_dataset_select.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/10/simple_dataset_select.spec.js index 3f096e43339e..51bd5b202ef9 100644 --- a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/10/simple_dataset_select.spec.js +++ b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/10/simple_dataset_select.spec.js @@ -45,7 +45,7 @@ export const runSimpleDatasetSelectorTests = () => { ['use-case-observability'] // features ); // Creating the Non Timebased Dataset - // eslint-disable-next-line no-loop-func + cy.get('@DATASOURCE_ID').then((datasourceId) => { cy.get(`@${workspaceName}:WORKSPACE_ID`).then((workspaceId) => { cy.osd.createDatasetByEndpoint( diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/13/download_csv.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/13/download_csv.spec.js index 2f6c4ea19924..efb59cc3fc09 100644 --- a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/13/download_csv.spec.js +++ b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/13/download_csv.spec.js @@ -58,7 +58,6 @@ const runDownloadCsvTests = () => { it(`should be able to download Visible option with default rows for ${config.saveName}`, () => { prepareDiscoverPageForDownload(config, workspaceName); - // eslint-disable-next-line no-loop-func downloadCsvAndVerify('Visible', (csvString) => { const { data } = Papa.parse(csvString); cy.wrap(data).should( @@ -78,7 +77,6 @@ const runDownloadCsvTests = () => { // select some fields toggleFieldsForCsvDownload(); - // eslint-disable-next-line no-loop-func downloadCsvAndVerify('Visible', (csvString) => { const { data } = Papa.parse(csvString); cy.wrap(data).should( diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/14/keyboard_shortcuts.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/14/keyboard_shortcuts.spec.js index c6eb33a908f1..b035208da77c 100644 --- a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/14/keyboard_shortcuts.spec.js +++ b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/14/keyboard_shortcuts.spec.js @@ -15,6 +15,15 @@ export const runKeyboardShortcutTests = () => { let workspaceId; const endpoint = Cypress.config('baseUrl') || 'http://localhost:5601'; + // Suppress the one-time "Workspace management moved" footer tour: on a fresh + // browser it auto-opens an EuiTour popover that overlays other UI — here it + // covers the workspace-creator data-source button during the `before` hook. + // Registered at describe scope (not in a hook) so it is active for the + // `before` hook's page loads too, seeding the dismissed flag pre-load. + Cypress.on('window:before:load', (win) => { + win.localStorage.setItem('workspace.manageWorkspaceMoved.tourDismissed', 'true'); + }); + before(() => { if (PATHS.SECONDARY_ENGINE) { cy.osd.addDataSource({ diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/15/sidebar.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/15/sidebar.spec.js index 6aa3b2c9a2f7..0ec246e3d7d6 100644 --- a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/15/sidebar.spec.js +++ b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/15/sidebar.spec.js @@ -343,9 +343,10 @@ export const runSideBarTests = () => { cy.getElementByTestId('typeSelect').select('string'); sideBar.verifyNumberOfActiveFilters(2); - const intersectionAggregatableStringTypeSidebarFields = sidebarFields.aggregatableFields.unnested - .concat(sidebarFields.aggregatableFields.nested) - .filter((field) => sidebarFields.stringTypeFields.includes(field)); + const intersectionAggregatableStringTypeSidebarFields = + sidebarFields.aggregatableFields.unnested + .concat(sidebarFields.aggregatableFields.nested) + .filter((field) => sidebarFields.stringTypeFields.includes(field)); intersectionAggregatableStringTypeSidebarFields.forEach((fieldName) => { cy.getElementByTestId(`field-${fieldName}`).should('exist'); }); diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/12/saved_search_in_dashboards.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/16/saved_search_in_dashboards.spec.js similarity index 100% rename from cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/12/saved_search_in_dashboards.spec.js rename to cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/16/saved_search_in_dashboards.spec.js diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/10/ai_editor.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/19/ai_editor.spec.js similarity index 100% rename from cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/10/ai_editor.spec.js rename to cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/explore/19/ai_editor.spec.js diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/10fast/simple_dataset_selector.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/10fast/simple_dataset_selector.spec.js index 13c7a77d60c7..7689a25c9b6c 100644 --- a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/10fast/simple_dataset_selector.spec.js +++ b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/10fast/simple_dataset_selector.spec.js @@ -32,7 +32,7 @@ const timebasedDatasetId = getRandomizedDatasetId(); const nontimebasedDatasetId = getRandomizedDatasetId(); const noIndexPatterns = 5; // Determines the no of index patterns that should be in the dropdown for filtering test case -// eslint-disable-next-line no-loop-func + export const runSimpleDatasetSelectorTests = () => { before(() => { cy.osd.setupEnvAndGetDataSource(DATASOURCE_NAME); @@ -145,9 +145,8 @@ export const runSimpleDatasetSelectorTests = () => { for (let i = 1; i <= noIndexPatterns; i++) { const currentDatasetId = getRandomizedDatasetId(); - // eslint-disable-next-line no-loop-func + cy.get('@DATASOURCE_ID').then((datasourceId) => { - // eslint-disable-next-line no-loop-func cy.get(`@${workspaceName}:WORKSPACE_ID`).then((workspaceId) => { cy.osd.createDatasetByEndpoint( currentDatasetId, diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/12/dataset_selector.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/12/dataset_selector.spec.js index 13c7a77d60c7..7689a25c9b6c 100644 --- a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/12/dataset_selector.spec.js +++ b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/12/dataset_selector.spec.js @@ -32,7 +32,7 @@ const timebasedDatasetId = getRandomizedDatasetId(); const nontimebasedDatasetId = getRandomizedDatasetId(); const noIndexPatterns = 5; // Determines the no of index patterns that should be in the dropdown for filtering test case -// eslint-disable-next-line no-loop-func + export const runSimpleDatasetSelectorTests = () => { before(() => { cy.osd.setupEnvAndGetDataSource(DATASOURCE_NAME); @@ -145,9 +145,8 @@ export const runSimpleDatasetSelectorTests = () => { for (let i = 1; i <= noIndexPatterns; i++) { const currentDatasetId = getRandomizedDatasetId(); - // eslint-disable-next-line no-loop-func + cy.get('@DATASOURCE_ID').then((datasourceId) => { - // eslint-disable-next-line no-loop-func cy.get(`@${workspaceName}:WORKSPACE_ID`).then((workspaceId) => { cy.osd.createDatasetByEndpoint( currentDatasetId, diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/14/queries_ui.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/14/queries_ui.spec.js index 3bc84c7a650e..a7ffe69f0dcc 100644 --- a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/14/queries_ui.spec.js +++ b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/14/queries_ui.spec.js @@ -31,6 +31,14 @@ const datasetId = getRandomizedDatasetId(); export const runQueryTests = () => { describe('discover Query UI tests', () => { + // Suppress the one-time "Workspace management moved" footer tour: on a fresh + // browser it auto-opens an EuiTour popover that persists in the DOM, which + // trips assertions expecting no popover. Seed the dismissed flag before + // every page load so the tour never opens. + Cypress.on('window:before:load', (win) => { + win.localStorage.setItem('workspace.manageWorkspaceMoved.tourDismissed', 'true'); + }); + before(() => { cy.osd.setupEnvAndGetDataSource(DATASOURCE_NAME); diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/17/download_csv.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/17/download_csv.spec.js index 85319778acf4..80286c846a75 100644 --- a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/17/download_csv.spec.js +++ b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/17/download_csv.spec.js @@ -74,7 +74,6 @@ const runDownloadCsvTests = () => { it(`should be able to download Visible option with default rows for ${config.saveName}`, () => { prepareDiscoverPageForDownload(config, workspaceName); - // eslint-disable-next-line no-loop-func downloadCsvAndVerify('Visible', (csvString) => { const { data } = Papa.parse(csvString); cy.wrap(data).should( @@ -94,7 +93,6 @@ const runDownloadCsvTests = () => { // select some fields toggleFieldsForCsvDownload(); - // eslint-disable-next-line no-loop-func downloadCsvAndVerify('Visible', (csvString) => { const { data } = Papa.parse(csvString); cy.wrap(data).should( @@ -183,7 +181,6 @@ const runDownloadCsvTests = () => { cy.setQueryLanguage(language.name); setDatePickerDatesAndSearchIfRelevant(language.name); - // eslint-disable-next-line no-loop-func downloadCsvAndVerify('Visible', (csvString) => { const { data } = Papa.parse(csvString); cy.wrap(data).should('have.length', expectedCount + 1); diff --git a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/19/sidebar.spec.js b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/19/sidebar.spec.js index 2955e86d4ce9..c33032244760 100644 --- a/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/19/sidebar.spec.js +++ b/cypress/integration/core_opensearch_dashboards/opensearch_dashboards/apps/query_enhancements/19/sidebar.spec.js @@ -249,6 +249,15 @@ export const runSideBarTests = () => { }, }; + // Suppress the one-time "Workspace management moved" footer tour: on a fresh + // browser it auto-opens an EuiTour popover whose header overlays the discover + // sidebar fields, tripping the field-visibility assertions. Registered at + // describe scope so it re-seeds on every page load — note afterEach clears + // localStorage, so seeding once is not enough. + Cypress.on('window:before:load', (win) => { + win.localStorage.setItem('workspace.manageWorkspaceMoved.tourDismissed', 'true'); + }); + before(() => { cy.osd.setupEnvAndGetDataSource(DATASOURCE_NAME); @@ -386,9 +395,10 @@ export const runSideBarTests = () => { cy.getElementByTestId('typeSelect').select('string'); sideBar.verifyNumberOfActiveFilters(2); - const intersectionAggregatableStringTypeSidebarFields = sidebarFields.aggregatableFields.unnested - .concat(sidebarFields.aggregatableFields.nested) - .filter((field) => sidebarFields.stringTypeFields.includes(field)); + const intersectionAggregatableStringTypeSidebarFields = + sidebarFields.aggregatableFields.unnested + .concat(sidebarFields.aggregatableFields.nested) + .filter((field) => sidebarFields.stringTypeFields.includes(field)); intersectionAggregatableStringTypeSidebarFields.forEach((fieldName) => { cy.getElementByTestId(`field-${fieldName}`).should('be.visible'); }); diff --git a/cypress/scripts/generate_data/test_data_generator.js b/cypress/scripts/generate_data/test_data_generator.js index e5697851a1b7..fbda8a26fffb 100644 --- a/cypress/scripts/generate_data/test_data_generator.js +++ b/cypress/scripts/generate_data/test_data_generator.js @@ -135,9 +135,8 @@ class TestDataGenerator { const doc = { category: this.categories[Math.floor((index * this.categoryCount) / this.docCount)], // Remove for some indices to create a unique field. Test for modifyColumnsOnSwitch. - unique_category: this.uniqueCategories[ - Math.floor((index * this.uniqueCategoriesCount) / this.docCount) - ], + unique_category: + this.uniqueCategories[Math.floor((index * this.uniqueCategoriesCount) / this.docCount)], status_code: faker.helpers.arrayElement(this.statusCodes), response_time: faker.datatype.float({ min: 0.1, max: 5.0, precision: 0.01 }), bytes_transferred: faker.datatype.number({ min: 100, max: 10000 }), diff --git a/cypress/support/e2e.js b/cypress/support/e2e.js index 5e3a9e6c3399..248490b62f73 100644 --- a/cypress/support/e2e.js +++ b/cypress/support/e2e.js @@ -12,7 +12,8 @@ import '../utils/apps/commands'; import '../utils/dashboards/workspace_plugin/commands'; // TODO: Remove this after https://github.com/opensearch-project/OpenSearch-Dashboards/issues/5476 is resolved -const scopedHistoryNavigationError = /^[^(ScopedHistory instance has fell out of navigation scope)]/; +const scopedHistoryNavigationError = + /^[^(ScopedHistory instance has fell out of navigation scope)]/; Cypress.on('uncaught:exception', (err) => { /* returning false here prevents Cypress from failing the test */ if (scopedHistoryNavigationError.test(err.message)) { diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json new file mode 100644 index 000000000000..03bf423dd6f6 --- /dev/null +++ b/cypress/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "ignoreDeprecations": "6.0", + "target": "es2018", + "lib": ["es2018", "dom"], + "module": "commonjs", + "moduleResolution": "node", + "strict": false, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "types": ["node", "cypress"] + }, + "include": ["**/*.ts", "**/*.tsx", "../cypress.config.ts"] +} diff --git a/cypress/utils/apps/explore/download_csv.js b/cypress/utils/apps/explore/download_csv.js index c022ea7796db..5abb4b89a570 100644 --- a/cypress/utils/apps/explore/download_csv.js +++ b/cypress/utils/apps/explore/download_csv.js @@ -187,7 +187,6 @@ export const downloadCsvAndVerify = (downloadOption, readCsvCallback) => { Cypress.config('downloadsFolder'), `opensearch_export_${moment().format('YYYY-MM-DD')}.csv` ) - // eslint-disable-next-line no-loop-func ).then(readCsvCallback); }; diff --git a/cypress/utils/apps/query_enhancements/download_csv.js b/cypress/utils/apps/query_enhancements/download_csv.js index f5694c62ee61..2dbad6d0084b 100644 --- a/cypress/utils/apps/query_enhancements/download_csv.js +++ b/cypress/utils/apps/query_enhancements/download_csv.js @@ -221,7 +221,6 @@ export const downloadCsvAndVerify = (downloadOption, readCsvCallback) => { Cypress.config('downloadsFolder'), `opensearch_export_${moment().format('YYYY-MM-DD')}.csv` ) - // eslint-disable-next-line no-loop-func ).then(readCsvCallback); }; diff --git a/docs/theme.md b/docs/theme.md index 4ac3f3f5141a..eddc20858226 100644 --- a/docs/theme.md +++ b/docs/theme.md @@ -6,7 +6,7 @@ Themes are defined in OUI via https://github.com/opensearch-project/oui/blob/main/src/themes/themes.ts. When Building OUI, there are several theming artifacts generated (beyond the react components) for each mode (light/dark) of each theme: -1. Theme compiled stylesheets (e.g. `@elastic/eui/dist/eui_theme_dark.css`). Consumed as entry files in [/packages/osd-ui-shared-deps/webpack.config.js](/packages/osd-ui-shared-deps/webpack.config.js) and republished by `osd-ui-shared-deps` (e.g. [UiSharedDeps.themeCssDistFilenames](/packages/osd-ui-shared-deps/index.js)). +1. Theme compiled stylesheets (e.g. `@elastic/eui/dist/eui_theme_dark.css`). Consumed as entry files in [/packages/osd-ui-shared-deps/rspack.config.js](/packages/osd-ui-shared-deps/rspack.config.js) and republished by `osd-ui-shared-deps` (e.g. [UiSharedDeps.themeCssDistFilenames](/packages/osd-ui-shared-deps/index.js)). 2. Theme compiled and minified stylesheets (e.g. `@elastic/eui/dist/eui_theme_dark.min.css`). These appear unused by OpenSearch Dashboards 3. Theme computed SASS variables as JSON (e.g. `@elastic/eui/dist/eui_theme_dark.json`). Consumed by [/packages/osd-ui-shared-deps/theme.ts](/packages/osd-ui-shared-deps/theme.ts) and made available to other components via the mode and theme aware `euiThemeVars`. In general, these should not be consumed by any other component directly. 4. Theme type definition file for SASS variables as JSON (e.g. `@elastic/eui/dist/eui_theme_dark.json.d.ts`) @@ -18,7 +18,7 @@ In addition to these artifacts, OpenSearch Dashboards also makes heavy use of th ### Theme definitions in OpenSearch Dashboards 1. Theme tags are defined in [/packages/osd-optimizer/src/common/theme_tags.ts](/packages/osd-optimizer/src/common/theme_tags.ts) corresponding to each mode (light/dark) of each OUI theme. -2. These tags must correspond to entrypoint SCSS files in [/src/core/public/core_app/styles/](/src/core/public/core_app/styles/_globals_v8dark.scss), because they are imported by all SCSS files as part of the `sass-loader` in [/packages/osd-optimizer/src/worker/webpack.config.ts](/packages/osd-optimizer/src/worker/webpack.config.ts) and [/packages/osd-optimizer/src/worker/theme_loader.ts](/packages/osd-optimizer/src/worker/theme_loader.ts). Note that the optimizer webpack will compile a separate stylesheet for each unique mode and theme combination. +2. These tags must correspond to entrypoint SCSS files in [/src/core/public/core_app/styles/](/src/core/public/core_app/styles/_globals_v8dark.scss), because they are imported by all SCSS files as part of the `sass-loader` in [/packages/osd-optimizer/src/worker/rspack.config.ts](/packages/osd-optimizer/src/worker/rspack.config.ts) and [/packages/osd-optimizer/src/worker/theme_loader.ts](/packages/osd-optimizer/src/worker/theme_loader.ts). Note that the optimizer rspack will compile a separate stylesheet for each unique mode and theme combination. 3. OUI SCSS source files are also imported by `osd-ui-framework`, which generates the legacy KUI stylesheets (e.g. [/packages/osd-ui-framework/src/kui_next_dark.scss](/packages/osd-ui-framework/src/kui_next_dark.scss)). KUI is a UI library that predates EUI/OUI, and should be deprecated and fully removed via [#1060](https://github.com/opensearch-project/OpenSearch-Dashboards/issues/1060). The compiled CSS files are committed in `packages/osd-ui-framework/dist/`. But similarly to 2., a separate stylesheet is generated for each mode and theme combination. ### Thmemed assets in OpenSearch Dasboards @@ -108,8 +108,8 @@ sequenceDiagram Each of the following are loaded in the browser by the [bootstrap script](/src/legacy/ui/ui_render/bootstrap/template.js.hbs) in this order. Currently, these are never unloaded. -1. Monaco editor styles (e.g. [/packages/osd-ui-shared-deps/target/osd-ui-shared-deps.css](/packages/osd-ui-shared-deps/target/osd-ui-shared-deps.css)), packaged by [/packages/osd-ui-shared-deps/webpack.config.js](/packages/osd-ui-shared-deps/webpack.config.js). In theory, this file could include styles from other shared dependencies, but currently `osd-monaco` is the only package that exports styles. Note that these are the default, un-themed styles; theming of monaco editors is handled by [/src/plugins/opensearch_dashboards_react/public/code_editor/editor_theme.ts](/src/plugins/opensearch_dashboards_react/public/code_editor/editor_theme.ts). -2. Theme and mode-specific OUI styles (e.g. [](), compiled by `packages/osd-ui-shared-deps/webpack.config.js`). +1. Monaco editor styles (e.g. [/packages/osd-ui-shared-deps/target/osd-ui-shared-deps.css](/packages/osd-ui-shared-deps/target/osd-ui-shared-deps.css)), packaged by [/packages/osd-ui-shared-deps/rspack.config.js](/packages/osd-ui-shared-deps/rspack.config.js). In theory, this file could include styles from other shared dependencies, but currently `osd-monaco` is the only package that exports styles. Note that these are the default, un-themed styles; theming of monaco editors is handled by [/src/plugins/opensearch_dashboards_react/public/code_editor/editor_theme.ts](/src/plugins/opensearch_dashboards_react/public/code_editor/editor_theme.ts). +2. Theme and mode-specific OUI styles (e.g. [](), compiled by `packages/osd-ui-shared-deps/rspack.config.js`). 3. Theme and mode-specific KUI styles (e.g. `packages/osd-ui-framework/src/kui_next_dark.scss`, compiled CSS committed in `packages/osd-ui-framework/dist/`). Separate stylesheets for each theme version/dark mode combo (colors). 4. Mode-specific legacy styles (e.g. [/src/core/server/core_app/assets/legacy_dark_theme.css](/src/core/server/core_app/assets/legacy_dark_theme.css)) @@ -142,7 +142,7 @@ Update `DEFAULT_THEME_VERSION` in `src/core/server/ui_settings/ui_settings_confi 2. Update OSD to consume new OUI version 3. Make the following changes in OSD: 1. Load your theme by creating sass files in `src/core/public/core_app/styles` - 2. Update [webpack config](packages/osd-ui-shared-deps/webpack.config.js) to create css files for your theme + 2. Update [rspack config](packages/osd-ui-shared-deps/rspack.config.js) to create css files for your theme 2. Add kui css files: 1. Create kui sass files for your theme in `packages/osd-ui-framework/src/` 2. Compile the SCSS and commit the resulting CSS in `packages/osd-ui-framework/dist/` diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000000..52d5139c6c60 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,842 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +const { defineConfig, globalIgnores } = require('eslint/config'); + +const { includeIgnoreFile } = require('@eslint/compat'); + +const path = require('node:path'); +const globals = require('globals'); + +const gitignorePath = path.resolve(__dirname, '.gitignore'); + +// Shared flat-config array from the local eslint config package (no FlatCompat bridge needed) +const sharedConfig = require('@elastic/eslint-config-kibana'); + +const OSD_NEW_HEADER = ` +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ +`; + +const OSD_HEADER = ` +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + * + * Any modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ +`; + +const OSD_BAD_HEADER = ` +/* + * Modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ +`; + +const APACHE_2_0_LICENSE_HEADER = ` +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you 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. + */ +`; + +const SAFER_LODASH_SET_HEADER = ` +/* + * Elasticsearch B.V licenses this file to you under the MIT License. + * See \`packages/elastic-safer-lodash-set/LICENSE\` for more information. + */ +`; + +const SAFER_LODASH_SET_LODASH_HEADER = ` +/* + * This file is forked from the lodash project (https://lodash.com/), + * and may include modifications made by Elasticsearch B.V. + * Elasticsearch B.V. licenses this file to you under the MIT License. + * See \`packages/elastic-safer-lodash-set/LICENSE\` for more information. + */ +`; + +const SAFER_LODASH_SET_DEFINITELYTYPED_HEADER = ` +/* + * This file is forked from the DefinitelyTyped project (https://github.com/DefinitelyTyped/DefinitelyTyped), + * and may include modifications made by Elasticsearch B.V. + * Elasticsearch B.V. licenses this file to you under the MIT License. + * See \`packages/elastic-safer-lodash-set/LICENSE\` for more information. + */ +`; + +const allMochaRulesOff = {}; +const _mochaPlugin = require('eslint-plugin-mocha'); +const _mochaRules = (_mochaPlugin.default || _mochaPlugin).rules || {}; +Object.keys(_mochaRules).forEach((k) => { + allMochaRulesOff['mocha/' + k] = 'off'; +}); + +const euiPlugin = require('@elastic/eslint-plugin-eui'); + +module.exports = defineConfig([ + includeIgnoreFile(gitignorePath), + + // Shared base config: JS + TS + Jest + React + prettier + @osd/eslint rules + ...sharedConfig, + + // @elastic/eui recommended rules + { + plugins: { '@elastic/eui': euiPlugin }, + rules: euiPlugin.configs.recommended.rules, + }, + + // adjust Eui accessibility rules project-wide + { + rules: { + '@elastic/eui/badge-accessibility-rules': 'off', + '@elastic/eui/callout-announce-on-mount': 'off', + '@elastic/eui/icon-accessibility-rules': 'off', + '@elastic/eui/no-css-color': 'off', + '@elastic/eui/no-restricted-eui-imports': 'off', + '@elastic/eui/no-static-z-index': 'off', + '@elastic/eui/no-unnamed-interactive-element': 'off', + '@elastic/eui/no-unnamed-radio-group': 'off', + '@elastic/eui/prefer-eui-icon-tip': 'off', + '@elastic/eui/require-aria-label-for-modals': 'off', + '@elastic/eui/require-href-for-link': 'off', + '@elastic/eui/require-table-caption': 'off', + '@elastic/eui/sr-output-disabled-tooltip': 'off', + '@elastic/eui/tooltip-button-icon-wrap': 'off', + '@elastic/eui/tooltip-focusable-anchor': 'off', + }, + }, + { + files: ['packages/osd-ui-framework/**/*.{js,mjs,ts,tsx}'], + + rules: { + 'jsx-a11y/no-onchange': 'off', + }, + }, + { + files: ['src/plugins/eui_utils/**/*.{js,mjs,ts,tsx}'], + + rules: { + 'react-hooks/exhaustive-deps': 'off', + }, + }, + { + files: ['src/plugins/opensearch_dashboards_react/**/*.{js,mjs,ts,tsx}'], + + rules: { + 'react-hooks/rules-of-hooks': 'off', + 'react-hooks/exhaustive-deps': 'off', + }, + }, + { + files: ['src/plugins/opensearch_dashboards_utils/**/*.{js,mjs,ts,tsx}'], + + rules: { + 'react-hooks/exhaustive-deps': 'off', + }, + }, + { + files: ['**/*.{js,mjs,ts,tsx}', '!plugins/**/*'], + + rules: { + '@osd/eslint/require-license-header': [ + 'error', + { + licenses: [OSD_NEW_HEADER, OSD_HEADER], + }, + ], + + '@osd/eslint/disallow-license-headers': [ + 'error', + { + licenses: [ + OSD_BAD_HEADER, + SAFER_LODASH_SET_HEADER, + SAFER_LODASH_SET_LODASH_HEADER, + SAFER_LODASH_SET_DEFINITELYTYPED_HEADER, + ], + }, + ], + }, + }, + { + files: ['{src}/plugins/*/public/**/*.{js,mjs,ts,tsx}'], + + rules: { + 'import/no-commonjs': 'error', + }, + }, + { + files: ['packages/elastic-safer-lodash-set/**/*.{js,mjs,ts,tsx}'], + + rules: { + '@osd/eslint/require-license-header': [ + 'error', + { + licenses: [SAFER_LODASH_SET_LODASH_HEADER], + }, + ], + + '@osd/eslint/disallow-license-headers': [ + 'error', + { + licenses: [ + OSD_BAD_HEADER, + OSD_NEW_HEADER, + OSD_HEADER, + APACHE_2_0_LICENSE_HEADER, + SAFER_LODASH_SET_HEADER, + SAFER_LODASH_SET_DEFINITELYTYPED_HEADER, + ], + }, + ], + }, + }, + { + files: ['packages/elastic-safer-lodash-set/test/*.{js,mjs,ts,tsx}'], + + rules: { + '@osd/eslint/require-license-header': [ + 'error', + { + licenses: [SAFER_LODASH_SET_HEADER], + }, + ], + + '@osd/eslint/disallow-license-headers': [ + 'error', + { + licenses: [ + OSD_BAD_HEADER, + OSD_NEW_HEADER, + OSD_HEADER, + APACHE_2_0_LICENSE_HEADER, + SAFER_LODASH_SET_LODASH_HEADER, + SAFER_LODASH_SET_DEFINITELYTYPED_HEADER, + ], + }, + ], + }, + }, + { + files: ['packages/elastic-safer-lodash-set/**/*.d.ts'], + + rules: { + '@osd/eslint/require-license-header': [ + 'error', + { + licenses: [SAFER_LODASH_SET_DEFINITELYTYPED_HEADER], + }, + ], + + '@osd/eslint/disallow-license-headers': [ + 'error', + { + licenses: [ + OSD_BAD_HEADER, + OSD_NEW_HEADER, + OSD_HEADER, + APACHE_2_0_LICENSE_HEADER, + SAFER_LODASH_SET_HEADER, + SAFER_LODASH_SET_LODASH_HEADER, + ], + }, + ], + }, + }, + { + files: ['**/*.{js,mjs,ts,tsx}'], + + rules: { + '@osd/eslint/no-restricted-paths': [ + 'error', + { + basePath: __dirname, + + zones: [ + { + target: ['src/**/*', '!src/core/**/*'], + from: ['src/core/utils/**/*'], + errorMessage: `Plugins may only import from src/core/server and src/core/public.`, + }, + { + target: ['src/plugins/*/server/**/*'], + from: ['src/plugins/*/public/**/*'], + errorMessage: `Server code can not import from public, use a common directory.`, + }, + { + target: ['src/plugins/*/common/**/*'], + from: ['src/plugins/*/(server|public)/**/*'], + errorMessage: `Common code can not import from server or public, use a common directory.`, + }, + { + target: ['src/legacy/**/*', 'src/plugins/**/(public|server)/**/*', 'examples/**/*'], + + from: [ + 'src/core/public/**/*', + '!src/core/public/index.ts', + '!src/core/public/mocks{,.ts}', + '!src/core/server/types{,.ts}', + '!src/core/public/utils/**/*', + '!src/core/public/*.test.mocks{,.ts}', + 'src/core/server/**/*', + '!src/core/server/index.ts', + '!src/core/server/mocks{,.ts}', + '!src/core/server/types{,.ts}', + '!src/core/server/test_utils{,.ts}', + '!src/core/server/utils', + '!src/core/server/utils/**/*', + '!src/core/server/*.test.mocks{,.ts}', + 'target/types/**', + ], + + allowSameFolder: true, + errorMessage: + 'Plugins may only import from top-level public and server modules in core.', + }, + { + target: [ + 'src/legacy/**/*', + 'src/plugins/**/(public|server)/**/*', + 'examples/**/*', + '!src/**/*.test.*', + ], + + from: [ + 'src/plugins/**/(public|server)/**/*', + '!src/plugins/**/(public|server)/mocks/index.{js,mjs,ts}', + '!src/plugins/**/(public|server)/(index|mocks).{js,mjs,ts,tsx}', + ], + + allowSameFolder: true, + errorMessage: 'Plugins may only import from top-level public and server modules.', + }, + { + target: [ + 'src/plugins/**/*', + '!src/plugins/**/server/**/*', + 'examples/**/*', + '!examples/**/server/**/*', + ], + + from: [ + 'src/core/server', + 'src/core/server/**/*', + 'src/plugins/*/server/**/*', + 'examples/**/server/**/*', + ], + + errorMessage: + 'Server modules cannot be imported into client modules or shared modules.', + }, + { + target: ['src/core/**/*'], + from: ['plugins/**/*', 'src/plugins/**/*', 'src/legacy/ui/**/*'], + errorMessage: 'The core cannot depend on any plugins.', + }, + { + target: ['src/plugins/*/public/**/*'], + from: ['ui/**/*'], + errorMessage: 'Plugins cannot import legacy UI code.', + }, + { + from: ['src/legacy/ui/**/*', 'ui/**/*'], + + target: [ + 'test/plugin_functional/plugins/**/public/np_ready/**/*', + 'test/plugin_functional/plugins/**/server/np_ready/**/*', + ], + + allowSameFolder: true, + errorMessage: + 'NP-ready code should not import from /src/legacy/ui/** folder. ' + + 'Instead of importing from /src/legacy/ui/** deeply within a np_ready folder, ' + + 'import those things once at the top level of your plugin and pass those down, just ' + + 'like you pass down `core` and `plugins` objects.', + }, + ], + }, + ], + }, + }, + { + files: [ + 'test/*/config.ts', + 'test/*/config_open.ts', + 'test/*/{tests,test_suites,apis,apps}/**/*', + 'test/visual_regression/tests/**/*', + ], + + rules: { + 'import/no-default-export': 'off', + 'import/no-named-as-default': 'off', + }, + }, + { + files: ['**/public/**/*.js', 'src/fixtures/**/*.js'], + + settings: { + 'import/core-modules': ['plugins'], + + 'import-x/resolver': { + '@osd/eslint-import-resolver-opensearch-dashboards': { + forceNode: false, + rootPackageName: 'opensearch-dashboards', + opensearchDashboardsPath: '.', + pluginMap: {}, + }, + }, + }, + }, + { + files: ['packages/osd-ui-framework/**/*.js', 'packages/osd-interpreter/**/*.js'], + + rules: { + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: false, + peerDependencies: true, + }, + ], + }, + }, + { + files: [ + 'packages/osd-ui-framework/**/*.test.js', + 'packages/osd-opensearch/src/**/*.js', + 'packages/osd-interpreter/tasks/**/*.js', + 'packages/osd-interpreter/src/plugin/**/*.js', + ], + + rules: { + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: true, + peerDependencies: true, + }, + ], + }, + }, + { + files: ['scripts/**/*.js', 'src/setup_node_env/**/!(*.test).js'], + + rules: { + 'import/no-commonjs': 'off', + 'prefer-object-spread': 'off', + 'no-var': 'off', + 'prefer-const': 'off', + 'prefer-destructuring': 'off', + + 'no-restricted-syntax': [ + 'error', + 'ImportDeclaration', + 'ExportNamedDeclaration', + 'ExportDefaultDeclaration', + 'ExportAllDeclaration', + 'ArrowFunctionExpression', + 'AwaitExpression', + 'ClassDeclaration', + 'RestElement', + 'SpreadElement', + 'YieldExpression', + 'VariableDeclaration[kind="const"]', + 'VariableDeclaration[kind="let"]', + 'VariableDeclarator[id.type="ArrayPattern"]', + 'VariableDeclarator[id.type="ObjectPattern"]', + ], + }, + }, + { + files: [ + 'test/functional/services/lib/web_element_wrapper/scroll_into_view_if_necessary.js', + 'src/legacy/ui/ui_render/bootstrap/osd_bundles_loader_source.js', + '**/browser_exec_scripts/**/*.js', + ], + + languageOptions: { + globals: { + visualViewport: 'readonly', + }, + }, + + rules: { + 'prefer-object-spread': 'off', + 'no-var': 'off', + 'prefer-const': 'off', + 'prefer-destructuring': 'off', + + 'no-restricted-syntax': [ + 'error', + 'ArrowFunctionExpression', + 'AwaitExpression', + 'ClassDeclaration', + 'ImportDeclaration', + 'RestElement', + 'SpreadElement', + 'YieldExpression', + 'VariableDeclaration[kind="const"]', + 'VariableDeclaration[kind="let"]', + 'VariableDeclarator[id.type="ArrayPattern"]', + 'VariableDeclarator[id.type="ObjectPattern"]', + ], + }, + }, + { + files: [ + 'packages/osd-eslint-import-resolver-opensearch-dashboards/**/*.js', + 'packages/osd-eslint-plugin-eslint/**/*', + ], + + ignores: ['**/integration_tests/**/*'], + + rules: { + 'import/no-commonjs': 'off', + 'prefer-object-spread': 'off', + + 'no-restricted-syntax': [ + 'error', + 'ImportDeclaration', + 'ExportNamedDeclaration', + 'ExportDefaultDeclaration', + 'ExportAllDeclaration', + ], + }, + }, + { + // Jest setup/helper files that use jest globals but don't match *.test.* patterns + files: [ + 'src/dev/jest/setup/*.js', + 'packages/osd-monaco/src/test_setup.js', + 'packages/osd-test/src/functional_tests/test_helpers.js', + ], + + plugins: { + jest: require('eslint-plugin-jest'), + }, + + languageOptions: { + globals: { + ...require('eslint-plugin-jest').environments.globals.globals, + }, + }, + }, + { + files: ['**/*.test.{js,mjs,ts,tsx}'], + + rules: { + 'jest/valid-describe-callback': 'error', + }, + }, + { + files: ['test/harden/*.js', 'packages/elastic-safer-lodash-set/test/*.js'], + + rules: { + ...allMochaRulesOff, + }, + }, + { + files: ['**/*.{js,mjs,ts,tsx}'], + + rules: { + 'no-restricted-imports': [ + 2, + { + paths: [ + { + name: 'lodash', + importNames: ['set', 'setWith'], + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash.set', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash.setwith', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash/set', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash/setWith', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash/fp', + importNames: ['set', 'setWith', 'assoc', 'assocPath'], + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash/fp/set', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash/fp/setWith', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash/fp/assoc', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash/fp/assocPath', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash', + importNames: ['template'], + message: 'lodash.template is not allowed due to security concerns', + }, + { + name: 'lodash.template', + message: 'lodash.template is not allowed due to security concerns', + }, + { + name: 'lodash/template', + message: 'lodash.template is not allowed due to security concerns', + }, + ], + }, + ], + + 'no-restricted-modules': [ + 2, + { + paths: [ + { + name: 'lodash.set', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash.setwith', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash/set', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash/setWith', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + name: 'lodash.template', + message: 'lodash.template is not allowed due to security concerns', + }, + { + name: 'lodash/template', + message: 'lodash.template is not allowed due to security concerns', + }, + ], + }, + ], + + 'no-restricted-properties': [ + 2, + { + object: 'lodash', + property: 'set', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + object: '_', + property: 'set', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + object: 'lodash', + property: 'setWith', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + object: '_', + property: 'setWith', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + object: 'lodash', + property: 'assoc', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + object: '_', + property: 'assoc', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + object: 'lodash', + property: 'assocPath', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + object: '_', + property: 'assocPath', + message: 'Please use @elastic/safer-lodash-set instead', + }, + { + object: 'lodash', + property: 'template', + message: 'lodash.template is not allowed due to security concerns', + }, + { + object: '_', + property: 'template', + message: 'lodash.template is not allowed due to security concerns', + }, + ], + }, + }, + { + files: ['packages/osd-ui-framework/**/*.js'], + + rules: { + 'jsx-a11y/click-events-have-key-events': 'off', + 'jsx-a11y/anchor-has-content': 'off', + 'jsx-a11y/tabindex-no-positive': 'off', + 'jsx-a11y/label-has-associated-control': 'off', + 'jsx-a11y/aria-role': 'off', + }, + }, + { + files: ['packages/osd-ui-shared-deps/flot_charts/**/*.js'], + + languageOptions: { + globals: { + ...globals.jquery, + }, + }, + }, + { + files: ['src/plugins/vis_type_timeseries/**/*.{js,mjs,ts,tsx}'], + + rules: { + 'import/no-default-export': 'error', + }, + }, + { + files: [ + 'src/core/**/*.{ts,tsx}', + 'packages/osd-config-schema/**/*.{ts,tsx}', + 'src/plugins/status_page/**/*.{ts,tsx}', + 'src/plugins/saved_objects_management/**/*.{ts,tsx}', + ], + + plugins: { + '@typescript-eslint': require('@typescript-eslint/eslint-plugin'), + }, + + rules: { + '@typescript-eslint/prefer-ts-expect-error': 'error', + }, + }, + { + files: [ + '**/public/**/*.{js,mjs,ts,tsx}', + '**/common/**/*.{js,mjs,ts,tsx}', + 'packages/**/*.{js,mjs,ts,tsx}', + ], + + rules: { + 'no-restricted-imports': [ + 'error', + { + patterns: ['lodash/*', '!lodash/fp'], + + paths: [ + { + name: 'lodash', + importNames: ['template'], + message: 'lodash.template is not allowed due to security concerns', + }, + { + name: 'lodash.template', + message: 'lodash.template is not allowed due to security concerns', + }, + { + name: 'lodash/template', + message: 'lodash.template is not allowed due to security concerns', + }, + ], + }, + ], + }, + }, + { + files: ['cypress/**/*.js'], + + rules: { + 'import/no-unresolved': 'off', + 'no-undef': 'off', + }, + }, + { + // ESLint config files use require() against installed packages that the + // import resolver cannot statically resolve (e.g. eslint/config sub-path + // export, optional peer deps). Turn off the rule for config files only. + files: ['eslint.config.js', '**/eslint.config.js', '**/eslint.config.mjs'], + + rules: { + 'import/no-unresolved': 'off', + }, + }, + globalIgnores([ + '**/eslint.config.mjs', + '**/*.js.snap', + '.opensearch', + '.chromium', + 'build', + 'built_assets', + 'preinstall_check.js', + 'bwc_tmp', + 'config/apm.dev.js', + 'data', + 'html_docs', + 'optimize', + 'plugins', + 'test/fixtures/scenarios', + '**/node_modules', + '**/target', + 'cypress/fixtures', + 'src/core/lib/osd_internal_native_observable', + 'src/legacy/plugin_discovery/plugin_pack/__tests__/fixtures/plugins/broken', + '**/_generated_', + 'packages/opensearch-eslint-config-opensearch-dashboards', + 'packages/opensearch-safer-lodash-set', + 'packages/osd-interpreter/src/common/lib/grammar.js', + 'packages/osd-plugin-generator/template', + 'packages/osd-pm/dist', + 'packages/osd-test/src/functional_test_runner/__tests__/fixtures/', + 'packages/osd-test/src/functional_test_runner/lib/config/__tests__/fixtures/', + 'packages/osd-ui-framework/dist', + 'packages/osd-ui-shared-deps/flot_charts', + '**/.generated', + 'src/plugins/data/public/antlr/opensearch_sql/grammar/**/*', + ]), +]); diff --git a/examples/bfetch_explorer/public/mount.tsx b/examples/bfetch_explorer/public/mount.tsx index bdaf4268038f..baae75b34d48 100644 --- a/examples/bfetch_explorer/public/mount.tsx +++ b/examples/bfetch_explorer/public/mount.tsx @@ -42,18 +42,17 @@ export interface BfetchDeps { explorer: ExplorerService; } -export const mount = ( - coreSetup: CoreSetup, - explorer: ExplorerService -) => async ({ appBasePath, element }: AppMountParameters) => { - const [core, plugins] = await coreSetup.getStartServices(); - const deps: BfetchDeps = { appBasePath, core, plugins, explorer }; - const reactElement = ( - - - - ); - const root = createRoot(element); - root.render(reactElement); - return () => root.unmount(); -}; +export const mount = + (coreSetup: CoreSetup, explorer: ExplorerService) => + async ({ appBasePath, element }: AppMountParameters) => { + const [core, plugins] = await coreSetup.getStartServices(); + const deps: BfetchDeps = { appBasePath, core, plugins, explorer }; + const reactElement = ( + + + + ); + const root = createRoot(element); + root.render(reactElement); + return () => root.unmount(); + }; diff --git a/examples/bfetch_explorer/public/plugin.tsx b/examples/bfetch_explorer/public/plugin.tsx index b3645eb90379..6ae0a45d50c0 100644 --- a/examples/bfetch_explorer/public/plugin.tsx +++ b/examples/bfetch_explorer/public/plugin.tsx @@ -74,8 +74,7 @@ export class BfetchExplorerPlugin implements Plugin { links: [ { label: 'README', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/bfetch/README.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/bfetch/README.md', iconType: 'logoGithub', size: 's', target: '_blank', diff --git a/examples/dashboard_embeddable_examples/public/by_value/input_editor.tsx b/examples/dashboard_embeddable_examples/public/by_value/input_editor.tsx index 917e85b9c053..b3f72488cd8c 100644 --- a/examples/dashboard_embeddable_examples/public/by_value/input_editor.tsx +++ b/examples/dashboard_embeddable_examples/public/by_value/input_editor.tsx @@ -39,7 +39,7 @@ export const InputEditor = (props: { input: T; onSubmit: (value: T) => void try { JSON.parse(value); return true; - } catch (e) { + } catch { return false; } })(); diff --git a/examples/embeddable_examples/public/book/book_embeddable.tsx b/examples/embeddable_examples/public/book/book_embeddable.tsx index 0b97b745cb37..d76f4f7c9914 100644 --- a/examples/embeddable_examples/public/book/book_embeddable.tsx +++ b/examples/embeddable_examples/public/book/book_embeddable.tsx @@ -67,13 +67,14 @@ function getHasMatch(search?: string, savedAttributes?: BookSavedObjectAttribute if (!savedAttributes) return false; return Boolean( (savedAttributes.author && savedAttributes.author.match(search)) || - (savedAttributes.title && savedAttributes.title.match(search)) + (savedAttributes.title && savedAttributes.title.match(search)) ); } export class BookEmbeddable extends Embeddable - implements ReferenceOrValueEmbeddable { + implements ReferenceOrValueEmbeddable +{ public readonly type = BOOK_EMBEDDABLE; private subscription: Subscription; private root: Root | null = null; diff --git a/examples/embeddable_examples/public/book/book_embeddable_factory.tsx b/examples/embeddable_examples/public/book/book_embeddable_factory.tsx index 78f38b20c325..e76d79f97bb0 100644 --- a/examples/embeddable_examples/public/book/book_embeddable_factory.tsx +++ b/examples/embeddable_examples/public/book/book_embeddable_factory.tsx @@ -65,14 +65,12 @@ export type BookEmbeddableFactory = EmbeddableFactory< BookSavedObjectAttributes >; -export class BookEmbeddableFactoryDefinition - implements - EmbeddableFactoryDefinition< - BookEmbeddableInput, - BookEmbeddableOutput, - BookEmbeddable, - BookSavedObjectAttributes - > { +export class BookEmbeddableFactoryDefinition implements EmbeddableFactoryDefinition< + BookEmbeddableInput, + BookEmbeddableOutput, + BookEmbeddable, + BookSavedObjectAttributes +> { public readonly type = BOOK_EMBEDDABLE; public savedObjectMetaData = { name: 'Book', @@ -136,9 +134,8 @@ export class BookEmbeddableFactoryDefinition private async unwrapMethod(savedObjectId: string): Promise { const { savedObjectsClient } = await this.getStartServices(); - const savedObject: SimpleSavedObject = await savedObjectsClient.get< - BookSavedObjectAttributes - >(this.type, savedObjectId); + const savedObject: SimpleSavedObject = + await savedObjectsClient.get(this.type, savedObjectId); return { ...savedObject.attributes }; } @@ -172,9 +169,9 @@ export class BookEmbeddableFactoryDefinition private async getAttributeService() { if (!this.attributeService) { - this.attributeService = (await this.getStartServices()).getAttributeService< - BookSavedObjectAttributes - >(this.type, { + this.attributeService = ( + await this.getStartServices() + ).getAttributeService(this.type, { saveMethod: this.saveMethod.bind(this), unwrapMethod: this.unwrapMethod.bind(this), checkForDuplicateTitle: this.checkForDuplicateTitleMethod.bind(this), diff --git a/examples/embeddable_examples/public/list_container/list_container.tsx b/examples/embeddable_examples/public/list_container/list_container.tsx index b54edb83a510..808a7e3207ed 100644 --- a/examples/embeddable_examples/public/list_container/list_container.tsx +++ b/examples/embeddable_examples/public/list_container/list_container.tsx @@ -42,7 +42,10 @@ export class ListContainer extends Container<{}, ContainerInput> { public readonly type = LIST_CONTAINER; private root: Root | null = null; - constructor(input: ContainerInput, private embeddableServices: EmbeddableStart) { + constructor( + input: ContainerInput, + private embeddableServices: EmbeddableStart + ) { super(input, { embeddableLoaded: {} }, embeddableServices.getEmbeddableFactory); } diff --git a/examples/embeddable_examples/public/list_container/list_container_factory.ts b/examples/embeddable_examples/public/list_container/list_container_factory.ts index 6f896012d5a1..cb2ed9beaaf3 100644 --- a/examples/embeddable_examples/public/list_container/list_container_factory.ts +++ b/examples/embeddable_examples/public/list_container/list_container_factory.ts @@ -43,8 +43,10 @@ interface StartServices { } export type ListContainerFactory = EmbeddableFactory; -export class ListContainerFactoryDefinition - implements EmbeddableFactoryDefinition { +export class ListContainerFactoryDefinition implements EmbeddableFactoryDefinition< + ContainerInput, + ContainerOutput +> { public readonly type = LIST_CONTAINER; public readonly isContainerType = true; diff --git a/examples/embeddable_examples/public/multi_task_todo/multi_task_todo_embeddable_factory.ts b/examples/embeddable_examples/public/multi_task_todo/multi_task_todo_embeddable_factory.ts index f082d11d92c7..4cb808bce6ea 100644 --- a/examples/embeddable_examples/public/multi_task_todo/multi_task_todo_embeddable_factory.ts +++ b/examples/embeddable_examples/public/multi_task_todo/multi_task_todo_embeddable_factory.ts @@ -47,9 +47,11 @@ export type MultiTaskTodoEmbeddableFactory = EmbeddableFactory< MultiTaskTodoEmbeddable >; -export class MultiTaskTodoEmbeddableFactoryDefinition - implements - EmbeddableFactoryDefinition { +export class MultiTaskTodoEmbeddableFactoryDefinition implements EmbeddableFactoryDefinition< + MultiTaskTodoInput, + MultiTaskTodoOutput, + MultiTaskTodoEmbeddable +> { public readonly type = MULTI_TASK_TODO_EMBEDDABLE; public async isEditable() { diff --git a/examples/embeddable_examples/public/plugin.ts b/examples/embeddable_examples/public/plugin.ts index eb634292b312..49eebd66eb6c 100644 --- a/examples/embeddable_examples/public/plugin.ts +++ b/examples/embeddable_examples/public/plugin.ts @@ -113,67 +113,72 @@ declare module '../../../src/plugins/ui_actions/public' { } } -export class EmbeddableExamplesPlugin - implements - Plugin< - void, - EmbeddableExamplesStart, - EmbeddableExamplesSetupDependencies, - EmbeddableExamplesStartDependencies - > { +export class EmbeddableExamplesPlugin implements Plugin< + void, + EmbeddableExamplesStart, + EmbeddableExamplesSetupDependencies, + EmbeddableExamplesStartDependencies +> { private exampleEmbeddableFactories: Partial = {}; public setup( core: CoreSetup, deps: EmbeddableExamplesSetupDependencies ) { - this.exampleEmbeddableFactories.getHelloWorldEmbeddableFactory = deps.embeddable.registerEmbeddableFactory( - HELLO_WORLD_EMBEDDABLE, - new HelloWorldEmbeddableFactoryDefinition() - ); - - this.exampleEmbeddableFactories.getMultiTaskTodoEmbeddableFactory = deps.embeddable.registerEmbeddableFactory( - MULTI_TASK_TODO_EMBEDDABLE, - new MultiTaskTodoEmbeddableFactoryDefinition() - ); - - this.exampleEmbeddableFactories.getSearchableListContainerEmbeddableFactory = deps.embeddable.registerEmbeddableFactory( - SEARCHABLE_LIST_CONTAINER, - new SearchableListContainerFactoryDefinition(async () => ({ - embeddableServices: (await core.getStartServices())[1].embeddable, - })) - ); - - this.exampleEmbeddableFactories.getListContainerEmbeddableFactory = deps.embeddable.registerEmbeddableFactory( - LIST_CONTAINER, - new ListContainerFactoryDefinition(async () => ({ - embeddableServices: (await core.getStartServices())[1].embeddable, - })) - ); - - this.exampleEmbeddableFactories.getTodoEmbeddableFactory = deps.embeddable.registerEmbeddableFactory( - TODO_EMBEDDABLE, - new TodoEmbeddableFactoryDefinition(async () => ({ - openModal: (await core.getStartServices())[0].overlays.openModal, - })) - ); - - this.exampleEmbeddableFactories.getTodoRefEmbeddableFactory = deps.embeddable.registerEmbeddableFactory( - TODO_REF_EMBEDDABLE, - new TodoRefEmbeddableFactoryDefinition(async () => ({ - savedObjectsClient: (await core.getStartServices())[0].savedObjects.client, - getEmbeddableFactory: (await core.getStartServices())[1].embeddable.getEmbeddableFactory, - })) - ); - this.exampleEmbeddableFactories.getBookEmbeddableFactory = deps.embeddable.registerEmbeddableFactory( - BOOK_EMBEDDABLE, - new BookEmbeddableFactoryDefinition(async () => ({ - getAttributeService: (await core.getStartServices())[1].dashboard.getAttributeService, - openModal: (await core.getStartServices())[0].overlays.openModal, - savedObjectsClient: (await core.getStartServices())[0].savedObjects.client, - overlays: (await core.getStartServices())[0].overlays, - })) - ); + this.exampleEmbeddableFactories.getHelloWorldEmbeddableFactory = + deps.embeddable.registerEmbeddableFactory( + HELLO_WORLD_EMBEDDABLE, + new HelloWorldEmbeddableFactoryDefinition() + ); + + this.exampleEmbeddableFactories.getMultiTaskTodoEmbeddableFactory = + deps.embeddable.registerEmbeddableFactory( + MULTI_TASK_TODO_EMBEDDABLE, + new MultiTaskTodoEmbeddableFactoryDefinition() + ); + + this.exampleEmbeddableFactories.getSearchableListContainerEmbeddableFactory = + deps.embeddable.registerEmbeddableFactory( + SEARCHABLE_LIST_CONTAINER, + new SearchableListContainerFactoryDefinition(async () => ({ + embeddableServices: (await core.getStartServices())[1].embeddable, + })) + ); + + this.exampleEmbeddableFactories.getListContainerEmbeddableFactory = + deps.embeddable.registerEmbeddableFactory( + LIST_CONTAINER, + new ListContainerFactoryDefinition(async () => ({ + embeddableServices: (await core.getStartServices())[1].embeddable, + })) + ); + + this.exampleEmbeddableFactories.getTodoEmbeddableFactory = + deps.embeddable.registerEmbeddableFactory( + TODO_EMBEDDABLE, + new TodoEmbeddableFactoryDefinition(async () => ({ + openModal: (await core.getStartServices())[0].overlays.openModal, + })) + ); + + this.exampleEmbeddableFactories.getTodoRefEmbeddableFactory = + deps.embeddable.registerEmbeddableFactory( + TODO_REF_EMBEDDABLE, + new TodoRefEmbeddableFactoryDefinition(async () => ({ + savedObjectsClient: (await core.getStartServices())[0].savedObjects.client, + getEmbeddableFactory: (await core.getStartServices())[1].embeddable.getEmbeddableFactory, + })) + ); + this.exampleEmbeddableFactories.getBookEmbeddableFactory = + deps.embeddable.registerEmbeddableFactory( + BOOK_EMBEDDABLE, + new BookEmbeddableFactoryDefinition(async () => ({ + getAttributeService: (await core.getStartServices())[1].dashboard.getAttributeService, + openModal: (await core.getStartServices())[0].overlays.openModal, + savedObjectsClient: (await core.getStartServices())[0].savedObjects.client, + overlays: (await core.getStartServices())[0].overlays, + })) + ); const editBookAction = createEditBookAction(async () => ({ getAttributeService: (await core.getStartServices())[1].dashboard.getAttributeService, diff --git a/examples/embeddable_examples/public/searchable_list_container/searchable_list_container.tsx b/examples/embeddable_examples/public/searchable_list_container/searchable_list_container.tsx index ca1308f01700..379215ad063e 100644 --- a/examples/embeddable_examples/public/searchable_list_container/searchable_list_container.tsx +++ b/examples/embeddable_examples/public/searchable_list_container/searchable_list_container.tsx @@ -51,7 +51,10 @@ export class SearchableListContainer extends Container; -export class SearchableListContainerFactoryDefinition - implements EmbeddableFactoryDefinition { +export class SearchableListContainerFactoryDefinition implements EmbeddableFactoryDefinition< + SearchableContainerInput, + ContainerOutput +> { public readonly type = SEARCHABLE_LIST_CONTAINER; public readonly isContainerType = true; diff --git a/examples/embeddable_examples/public/todo/todo_embeddable_factory.tsx b/examples/embeddable_examples/public/todo/todo_embeddable_factory.tsx index 5275db9d7816..f4cdaed2322a 100644 --- a/examples/embeddable_examples/public/todo/todo_embeddable_factory.tsx +++ b/examples/embeddable_examples/public/todo/todo_embeddable_factory.tsx @@ -65,8 +65,11 @@ interface StartServices { export type TodoEmbeddableFactory = EmbeddableFactory; -export class TodoEmbeddableFactoryDefinition - implements EmbeddableFactoryDefinition { +export class TodoEmbeddableFactoryDefinition implements EmbeddableFactoryDefinition< + TodoInput, + TodoOutput, + TodoEmbeddable +> { public readonly type = TODO_EMBEDDABLE; constructor(private getStartServices: () => Promise) {} diff --git a/examples/embeddable_examples/public/todo/todo_ref_embeddable.tsx b/examples/embeddable_examples/public/todo/todo_ref_embeddable.tsx index 3355c6392605..24936bee97f5 100644 --- a/examples/embeddable_examples/public/todo/todo_ref_embeddable.tsx +++ b/examples/embeddable_examples/public/todo/todo_ref_embeddable.tsx @@ -77,7 +77,7 @@ function getHasMatch(search?: string, savedAttributes?: TodoSavedObjectAttribute if (!savedAttributes) return false; return Boolean( (savedAttributes.task && savedAttributes.task.match(search)) || - (savedAttributes.title && savedAttributes.title.match(search)) + (savedAttributes.title && savedAttributes.title.match(search)) ); } diff --git a/examples/embeddable_examples/public/todo/todo_ref_embeddable_factory.tsx b/examples/embeddable_examples/public/todo/todo_ref_embeddable_factory.tsx index 5f6f3a51300d..430f3103298c 100644 --- a/examples/embeddable_examples/public/todo/todo_ref_embeddable_factory.tsx +++ b/examples/embeddable_examples/public/todo/todo_ref_embeddable_factory.tsx @@ -58,14 +58,12 @@ export type TodoRefEmbeddableFactory = EmbeddableFactory< TodoSavedObjectAttributes >; -export class TodoRefEmbeddableFactoryDefinition - implements - EmbeddableFactoryDefinition< - TodoRefInput, - TodoRefOutput, - TodoRefEmbeddable, - TodoSavedObjectAttributes - > { +export class TodoRefEmbeddableFactoryDefinition implements EmbeddableFactoryDefinition< + TodoRefInput, + TodoRefOutput, + TodoRefEmbeddable, + TodoSavedObjectAttributes +> { public readonly type = TODO_REF_EMBEDDABLE; public readonly savedObjectMetaData = { name: 'Todo', diff --git a/examples/embeddable_explorer/public/plugin.tsx b/examples/embeddable_explorer/public/plugin.tsx index f36a556ea93a..90a4117a3e3a 100644 --- a/examples/embeddable_explorer/public/plugin.tsx +++ b/examples/embeddable_explorer/public/plugin.tsx @@ -85,8 +85,7 @@ export class EmbeddableExplorerPlugin implements Plugin { +export class ExpressionsExamplePlugin implements Plugin< + ExpressionsExamplePluginSetup, + ExpressionsExamplePluginStart +> { public setup( core: CoreSetup, { expressions, developerExamples }: ExpressionsExampleSetupDependencies @@ -72,8 +74,7 @@ export class ExpressionsExamplePlugin links: [ { label: 'README', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/expressions/README.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/expressions/README.md', iconType: 'logoGithub', target: '_blank', size: 's', diff --git a/examples/multiple_data_source_examples/public/components/data_source_list_active_example.tsx b/examples/multiple_data_source_examples/public/components/data_source_list_active_example.tsx index 9563c65769f8..6ee1dee00d88 100644 --- a/examples/multiple_data_source_examples/public/components/data_source_list_active_example.tsx +++ b/examples/multiple_data_source_examples/public/components/data_source_list_active_example.tsx @@ -39,9 +39,8 @@ export const DataSourceListActiveExample = ({ dataSourceManagement, uiSettings, }: DataSourceListActiveExampleProps) => { - const DataSourceMenu = dataSourceManagement.ui.getDataSourceMenu< - DataSourceAggregatedViewConfig - >(); + const DataSourceMenu = + dataSourceManagement.ui.getDataSourceMenu(); const data: ComponentProp[] = [ { name: 'savedObjects', diff --git a/examples/multiple_data_source_examples/public/components/data_source_list_all_example.tsx b/examples/multiple_data_source_examples/public/components/data_source_list_all_example.tsx index d2d5d89d3c6a..d3fd15d53e90 100644 --- a/examples/multiple_data_source_examples/public/components/data_source_list_all_example.tsx +++ b/examples/multiple_data_source_examples/public/components/data_source_list_all_example.tsx @@ -39,9 +39,8 @@ export const DataSourceListAllExample = ({ dataSourceManagement, uiSettings, }: DataSourceListAllExampleProps) => { - const DataSourceMenu = dataSourceManagement.ui.getDataSourceMenu< - DataSourceAggregatedViewConfig - >(); + const DataSourceMenu = + dataSourceManagement.ui.getDataSourceMenu(); const data: ComponentProp[] = [ { diff --git a/examples/multiple_data_source_examples/public/components/data_source_multi_selectable_example.tsx b/examples/multiple_data_source_examples/public/components/data_source_multi_selectable_example.tsx index f6e41afc209d..17fc0525930f 100644 --- a/examples/multiple_data_source_examples/public/components/data_source_multi_selectable_example.tsx +++ b/examples/multiple_data_source_examples/public/components/data_source_multi_selectable_example.tsx @@ -40,9 +40,8 @@ export const DataSourceMultiSelectableExample = ({ dataSourceManagement, }: DataSourceMultiSelectableExampleProps) => { const [selectedDataSources, setSelectedDataSources] = useState([]); - const DataSourceMenu = dataSourceManagement.ui.getDataSourceMenu< - DataSourceMultiSelectableConfig - >(); + const DataSourceMenu = + dataSourceManagement.ui.getDataSourceMenu(); const data: ComponentProp[] = [ { name: 'savedObjects', diff --git a/examples/multiple_data_source_examples/public/plugin.ts b/examples/multiple_data_source_examples/public/plugin.ts index 5eb81c60e201..a6485975417a 100644 --- a/examples/multiple_data_source_examples/public/plugin.ts +++ b/examples/multiple_data_source_examples/public/plugin.ts @@ -19,8 +19,10 @@ import { MultipleDataSourceExamplesPluginStartDependencies, } from './types'; -export class MultipleDataSourceExamplesPlugin - implements Plugin { +export class MultipleDataSourceExamplesPlugin implements Plugin< + MultipleDataSourceExamplesPluginSetup, + void +> { public setup( core: CoreSetup, { @@ -54,8 +56,7 @@ export class MultipleDataSourceExamplesPlugin links: [ { label: 'README', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/data_source_management/README.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/data_source_management/README.md', iconType: 'logoGithub', target: '_blank', size: 's', diff --git a/examples/routing_example/public/app.tsx b/examples/routing_example/public/app.tsx index fb58d60a4698..69ccd1831de0 100644 --- a/examples/routing_example/public/app.tsx +++ b/examples/routing_example/public/app.tsx @@ -69,24 +69,21 @@ function RoutingExplorer({ listItems={[ { label: 'IRouter API docs', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/docs/development/core/server/opensearch-dashboards-plugin-core-server.irouter.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/docs/development/core/server/opensearch-dashboards-plugin-core-server.irouter.md', iconType: 'logoGithub', target: '_blank', size: 's', }, { label: 'HttpHandler (core.http.fetch) API docs', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/docs/development/core/public/opensearch-dashboards-plugin-core-public.httphandler.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/docs/development/core/public/opensearch-dashboards-plugin-core-public.httphandler.md', iconType: 'logoGithub', target: '_blank', size: 's', }, { label: 'Conventions', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/tree/main/DEVELOPER_GUIDE.md#api-endpoints', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/tree/main/DEVELOPER_GUIDE.md#api-endpoints', iconType: 'logoGithub', target: '_blank', size: 's', diff --git a/examples/routing_example/public/plugin.tsx b/examples/routing_example/public/plugin.tsx index e36f5ad9bd06..8e7967d8fd94 100644 --- a/examples/routing_example/public/plugin.tsx +++ b/examples/routing_example/public/plugin.tsx @@ -63,16 +63,14 @@ export class RoutingExamplePlugin implements Plugin<{}, {}, SetupDeps, {}> { links: [ { label: 'IRouter', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/docs/development/core/server/opensearch-dashboards-plugin-core-server.irouter.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/docs/development/core/server/opensearch-dashboards-plugin-core-server.irouter.md', iconType: 'logoGithub', target: '_blank', size: 's', }, { label: 'HttpHandler (core.http.fetch)', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/docs/development/core/public/opensearch-dashboards-plugin-core-public.httphandler.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/master/docs/development/core/public/opensearch-dashboards-plugin-core-public.httphandler.md', iconType: 'logoGithub', target: '_blank', size: 's', diff --git a/examples/search_examples/public/components/app.tsx b/examples/search_examples/public/components/app.tsx index ca4a71514447..8e3c3b7974d2 100644 --- a/examples/search_examples/public/components/app.tsx +++ b/examples/search_examples/public/components/app.tsx @@ -206,7 +206,7 @@ export const SearchExamplesApp = ({ }); notifications.toasts.addSuccess(`Server returned ${JSON.stringify(response)}`); - } catch (e) { + } catch { notifications.toasts.addDanger('Failed to run search'); } }; diff --git a/examples/search_examples/public/plugin.ts b/examples/search_examples/public/plugin.ts index a6040f5e8bb0..386e88286890 100644 --- a/examples/search_examples/public/plugin.ts +++ b/examples/search_examples/public/plugin.ts @@ -43,14 +43,12 @@ import { } from './types'; import { PLUGIN_NAME } from '../common'; -export class SearchExamplesPlugin - implements - Plugin< - SearchExamplesPluginSetup, - SearchExamplesPluginStart, - AppPluginSetupDependencies, - AppPluginStartDependencies - > { +export class SearchExamplesPlugin implements Plugin< + SearchExamplesPluginSetup, + SearchExamplesPluginStart, + AppPluginSetupDependencies, + AppPluginStartDependencies +> { public setup( core: CoreSetup, { developerExamples }: AppPluginSetupDependencies diff --git a/examples/search_examples/server/plugin.ts b/examples/search_examples/server/plugin.ts index 2b6f5df4878b..a3002553ae80 100644 --- a/examples/search_examples/server/plugin.ts +++ b/examples/search_examples/server/plugin.ts @@ -45,14 +45,12 @@ import { import { mySearchStrategyProvider } from './my_strategy'; import { registerRoutes } from './routes'; -export class SearchExamplesPlugin - implements - Plugin< - SearchExamplesPluginSetup, - SearchExamplesPluginStart, - SearchExamplesPluginSetupDeps, - SearchExamplesPluginStartDeps - > { +export class SearchExamplesPlugin implements Plugin< + SearchExamplesPluginSetup, + SearchExamplesPluginStart, + SearchExamplesPluginSetupDeps, + SearchExamplesPluginStartDeps +> { private readonly logger: Logger; constructor(initializerContext: PluginInitializerContext) { diff --git a/examples/state_containers_examples/public/plugin.ts b/examples/state_containers_examples/public/plugin.ts index e404c48ccd86..f8ba5a3eed1d 100644 --- a/examples/state_containers_examples/public/plugin.ts +++ b/examples/state_containers_examples/public/plugin.ts @@ -90,8 +90,7 @@ export class StateContainersExamplesPlugin implements Plugin { links: [ { label: 'README', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/tree/main/src/plugins/opensearch_dashboards_utils/docs/state_containers/README.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/tree/main/src/plugins/opensearch_dashboards_utils/docs/state_containers/README.md', iconType: 'logoGithub', size: 's', target: '_blank', @@ -109,8 +108,7 @@ export class StateContainersExamplesPlugin implements Plugin { links: [ { label: 'README', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/tree/main/src/plugins/opensearch_dashboards_utils/docs/state_containers/README.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/tree/main/src/plugins/opensearch_dashboards_utils/docs/state_containers/README.md', iconType: 'logoGithub', size: 's', target: '_blank', @@ -127,8 +125,7 @@ export class StateContainersExamplesPlugin implements Plugin { links: [ { label: 'README', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/data/public/query/state_sync/README.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/data/public/query/state_sync/README.md', iconType: 'logoGithub', size: 's', target: '_blank', diff --git a/examples/state_containers_examples/public/todo/todo.tsx b/examples/state_containers_examples/public/todo/todo.tsx index 3acf3d087f66..ffd304dcfcdb 100644 --- a/examples/state_containers_examples/public/todo/todo.tsx +++ b/examples/state_containers_examples/public/todo/todo.tsx @@ -79,9 +79,8 @@ const globalStateContainer = createStateContainer(); const container = createStateContainer(defaultState, pureTransitions); -const { Provider, connect, useTransitions, useState } = createStateContainerReactHelpers< - typeof container ->(); +const { Provider, connect, useTransitions, useState } = + createStateContainerReactHelpers(); interface TodoAppProps { filter: 'completed' | 'not-completed' | null; @@ -226,9 +225,8 @@ export const TodoAppPage: React.FC<{ initialAppUrl.current ); const globalStateFromCurrentUrl = osdUrlStateStorage.get(globalStateKey); - const globalStateFromSessionStorage = sessionStorageStateStorage.get( - globalStateKey - ); + const globalStateFromSessionStorage = + sessionStorageStateStorage.get(globalStateKey); const initialGlobalState: GlobalState = { ...defaultGlobalState, diff --git a/examples/state_management_example/public/plugin.ts b/examples/state_management_example/public/plugin.ts index 65a1cf9d2bb5..4385a30c5164 100644 --- a/examples/state_management_example/public/plugin.ts +++ b/examples/state_management_example/public/plugin.ts @@ -19,8 +19,10 @@ interface SetupDeps { developerExamples: DeveloperExamplesSetup; } -export class StateManagementExamplePlugin - implements Plugin { +export class StateManagementExamplePlugin implements Plugin< + StateManagementExamplePluginSetup, + StateManagementExamplePluginStart +> { public setup(core: CoreSetup, { developerExamples }: SetupDeps) { // Register an application into the side navigation menu // Initialize Observable-based counter (original approach) diff --git a/examples/ui_action_examples/public/plugin.ts b/examples/ui_action_examples/public/plugin.ts index b31f2d6621ed..c1761bcac7f8 100644 --- a/examples/ui_action_examples/public/plugin.ts +++ b/examples/ui_action_examples/public/plugin.ts @@ -51,9 +51,12 @@ declare module '../../../src/plugins/ui_actions/public' { } } -export class UiActionExamplesPlugin - implements - Plugin { +export class UiActionExamplesPlugin implements Plugin< + void, + void, + UiActionExamplesSetupDependencies, + UiActionExamplesStartDependencies +> { public setup( core: CoreSetup, { uiActions }: UiActionExamplesSetupDependencies diff --git a/examples/ui_actions_explorer/public/plugin.tsx b/examples/ui_actions_explorer/public/plugin.tsx index a0eaf1d8e0d7..88e652f17395 100644 --- a/examples/ui_actions_explorer/public/plugin.tsx +++ b/examples/ui_actions_explorer/public/plugin.tsx @@ -73,8 +73,12 @@ declare module '../../../src/plugins/ui_actions/public' { } } -export class UiActionsExplorerPlugin - implements Plugin { +export class UiActionsExplorerPlugin implements Plugin< + void, + void, + {}, + UiActionsExplorerPluginStart +> { public setup( core: CoreSetup, deps: UiActionsExplorerPluginSetup @@ -128,8 +132,7 @@ export class UiActionsExplorerPlugin links: [ { label: 'README', - href: - 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/ui_actions/README.md', + href: 'https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/ui_actions/README.md', iconType: 'logoGithub', size: 's', target: '_blank', diff --git a/examples/url_generators_explorer/public/plugin.tsx b/examples/url_generators_explorer/public/plugin.tsx index aa8da11f0b83..efd2295978a6 100644 --- a/examples/url_generators_explorer/public/plugin.tsx +++ b/examples/url_generators_explorer/public/plugin.tsx @@ -69,8 +69,7 @@ export class AccessLinksExplorerPlugin implements Plugin({ reducer: (x, y) => y || x, - default: () => (undefined as unknown) as any[], + default: () => undefined as unknown as any[], }), clientTools: Annotation({ reducer: (x, y) => y || x, - default: () => (undefined as unknown) as any[], + default: () => undefined as unknown as any[], }), threadId: Annotation({ reducer: (x, y) => y || x, - default: () => (undefined as unknown) as string, + default: () => undefined as unknown as string, }), runId: Annotation({ reducer: (x, y) => y || x, - default: () => (undefined as unknown) as string, + default: () => undefined as unknown as string, }), modelId: Annotation({ reducer: (x, y) => y || x, - default: () => (undefined as unknown) as string, + default: () => undefined as unknown as string, }), lastToolExecution: Annotation({ reducer: (x, y) => y || x, - default: () => (undefined as unknown) as number, + default: () => undefined as unknown as number, }), }); diff --git a/packages/osd-agents/src/agents/langgraph/react_graph_nodes.ts b/packages/osd-agents/src/agents/langgraph/react_graph_nodes.ts index e017b734d27a..a23010dfa06f 100644 --- a/packages/osd-agents/src/agents/langgraph/react_graph_nodes.ts +++ b/packages/osd-agents/src/agents/langgraph/react_graph_nodes.ts @@ -311,15 +311,8 @@ export class ReactGraphNodes { async executeToolsNode( state: ReactAgentState ): Promise | Record> { - const { - toolCalls, - streamingCallbacks, - messages, - clientState, - clientContext, - threadId, - runId, - } = state; + const { toolCalls, streamingCallbacks, messages, clientState, clientContext, threadId, runId } = + state; // Safety check: reject tool execution at max iterations // This is a defensive check in case the model ignores the system prompt instruction diff --git a/packages/osd-agents/src/config/model_config.ts b/packages/osd-agents/src/config/model_config.ts index dab4d85ad20b..cc2edafa20eb 100644 --- a/packages/osd-agents/src/config/model_config.ts +++ b/packages/osd-agents/src/config/model_config.ts @@ -14,7 +14,7 @@ export interface ModelConfig { export class ModelConfigManager { private static logger = new Logger(); private static configPath = join(__dirname, '../../configuration/default-model.json'); - private static defaultModelId = 'us.anthropic.claude-sonnet-4-20250514-v1:0'; + private static defaultModelId = 'us.anthropic.claude-sonnet-4-6'; static getDefaultModel(): ModelConfig { if (existsSync(this.configPath)) { diff --git a/packages/osd-agents/src/opensearch_ingestion.ts b/packages/osd-agents/src/opensearch_ingestion.ts index 83c172d5d403..b0c6d0af0e3d 100644 --- a/packages/osd-agents/src/opensearch_ingestion.ts +++ b/packages/osd-agents/src/opensearch_ingestion.ts @@ -207,7 +207,7 @@ class OpenSearchIngestor { if (isValid(parsedDate)) { break; } - } catch (e) { + } catch { // Try next format } } diff --git a/packages/osd-agents/src/prompts/observability_prompt.md b/packages/osd-agents/src/prompts/observability_prompt.md index 700209ea157d..28f7341fba3b 100644 --- a/packages/osd-agents/src/prompts/observability_prompt.md +++ b/packages/osd-agents/src/prompts/observability_prompt.md @@ -448,4 +448,10 @@ Only when investigating issues, use this structured format: - Provide context for handoffs between teams - Include relevant stakeholders in communication plans -Remember: Your goal is to help users quickly understand what's happening in their systems, why it's happening, and what they should do about it. Always prioritize system stability and user experience while providing clear, actionable guidance. \ No newline at end of file +Remember: Your goal is to help users quickly understand what's happening in their systems, why it's happening, and what they should do about it. Always prioritize system stability and user experience while providing clear, actionable guidance. + +## Follow-up Suggestions + +After answering the user's question, suggest 2-4 short follow-up actions the user might want to take next. Format them as a JSON array on the LAST line of your response, prefixed with SUGGESTIONS: like: +SUGGESTIONS:["Check cluster health","Show index mapping","List recent errors"] +Each suggestion must be under 60 characters. Do not include suggestions if the conversation is just a greeting or the answer is trivial. diff --git a/packages/osd-agents/src/server/http_server.ts b/packages/osd-agents/src/server/http_server.ts index 37a64a6b8c95..105229cfed3c 100644 --- a/packages/osd-agents/src/server/http_server.ts +++ b/packages/osd-agents/src/server/http_server.ts @@ -864,8 +864,8 @@ export class HTTPServer {
⏱️ ${formattedDuration} 🔧 ${toolCount} tool${ - toolCount !== 1 ? 's' : '' - } + toolCount !== 1 ? 's' : '' + } 📝 ${ iteration.request?.messages?.length || 0 } messages diff --git a/packages/osd-analytics/package.json b/packages/osd-analytics/package.json index 4f7cd16db15d..d95e816edbb0 100644 --- a/packages/osd-analytics/package.json +++ b/packages/osd-analytics/package.json @@ -14,7 +14,7 @@ "osd:watch": "../../scripts/use_node scripts/build --source-maps --watch" }, "devDependencies": { - "@babel/cli": "^7.22.9", + "@babel/cli": "^7.29.7", "@osd/dev-utils": "1.0.0", "@osd/babel-preset": "1.0.0" } diff --git a/packages/osd-apm-config-loader/package.json b/packages/osd-apm-config-loader/package.json index f61342d70bf6..edc7fb58e898 100644 --- a/packages/osd-apm-config-loader/package.json +++ b/packages/osd-apm-config-loader/package.json @@ -13,7 +13,7 @@ "dependencies": { "@elastic/safer-lodash-set": "0.0.0", "@osd/utils": "1.0.0", - "js-yaml": "^4.1.1", + "js-yaml": "^4.3.0", "lodash": "^4.18.0" }, "devDependencies": { diff --git a/packages/osd-apm-config-loader/src/config.ts b/packages/osd-apm-config-loader/src/config.ts index dc05c9cb3133..44b901aea5e7 100644 --- a/packages/osd-apm-config-loader/src/config.ts +++ b/packages/osd-apm-config-loader/src/config.ts @@ -133,14 +133,14 @@ export class ApmConfiguration { try { const filename = join(dataPath, 'uuid'); return readFileSync(filename, 'utf8'); - } catch (e) {} // eslint-disable-line no-empty + } catch {} // eslint-disable-line no-empty } private getDevConfig(): ApmAgentConfig { try { const apmDevConfigPath = join(this.rootDir, 'config', 'apm.dev.js'); return require(apmDevConfigPath); - } catch (e) { + } catch { return {}; } } @@ -167,7 +167,7 @@ export class ApmConfiguration { encoding: 'utf-8' as BufferEncoding, stdio: ['ignore', 'pipe', 'ignore'], }).trim(); - } catch (e) { + } catch { return null; } } diff --git a/packages/osd-apm-config-loader/src/utils/__snapshots__/read_config.test.ts.snap b/packages/osd-apm-config-loader/src/utils/__snapshots__/read_config.test.ts.snap index bd11ca300711..333d2e02922b 100644 --- a/packages/osd-apm-config-loader/src/utils/__snapshots__/read_config.test.ts.snap +++ b/packages/osd-apm-config-loader/src/utils/__snapshots__/read_config.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`different cwd() resolves relative files based on the cwd 1`] = ` Object { diff --git a/packages/osd-apm-config-loader/src/utils/read_config.test.ts b/packages/osd-apm-config-loader/src/utils/read_config.test.ts index 0d4ad4b36bd7..40ce6037c577 100644 --- a/packages/osd-apm-config-loader/src/utils/read_config.test.ts +++ b/packages/osd-apm-config-loader/src/utils/read_config.test.ts @@ -85,6 +85,6 @@ describe('different cwd()', () => { test('fails to load relative paths, not found because of the cwd', () => { const relativePath = relative(resolve(__dirname, '..', '..'), fixtureFile('one.yml')); - expect(() => getConfigFromFiles([relativePath])).toThrowError(/ENOENT/); + expect(() => getConfigFromFiles([relativePath])).toThrow(/ENOENT/); }); }); diff --git a/packages/osd-apm-topology/src/components/celestial_card/celestial_card.test.tsx b/packages/osd-apm-topology/src/components/celestial_card/celestial_card.test.tsx index 928ad002ae45..38f7c73634b3 100644 --- a/packages/osd-apm-topology/src/components/celestial_card/celestial_card.test.tsx +++ b/packages/osd-apm-topology/src/components/celestial_card/celestial_card.test.tsx @@ -121,7 +121,8 @@ describe('CelestialCard', () => { wrapper: Providers, }); const card = container.firstChild as HTMLElement; - expect(card.style.borderColor).toBe('#6366f1'); + // jsdom converts hex to rgb + expect(card.style.borderColor).toBe('rgb(99, 102, 241)'); expect(card.style.getPropertyValue('--osd-node-glow-color')).toBe('#6366F1'); }); diff --git a/packages/osd-apm-topology/src/components/celestial_card/celestial_card.tsx b/packages/osd-apm-topology/src/components/celestial_card/celestial_card.tsx index adb2a90262e4..7da78931d29f 100644 --- a/packages/osd-apm-topology/src/components/celestial_card/celestial_card.tsx +++ b/packages/osd-apm-topology/src/components/celestial_card/celestial_card.tsx @@ -77,8 +77,8 @@ export const CelestialCard = (props: CelestialCardProps) => { health?.breached ? 'osd:hover:border-status-breached-hover' : color - ? '' - : 'osd:hover:border-status-default-hover' + ? '' + : 'osd:hover:border-status-default-hover' } ${ isSelected diff --git a/packages/osd-apm-topology/src/components/celestial_controls/use_celestial_controls.hook.test.ts b/packages/osd-apm-topology/src/components/celestial_controls/use_celestial_controls.hook.test.ts index c77fdc5057a0..bcce695d0741 100644 --- a/packages/osd-apm-topology/src/components/celestial_controls/use_celestial_controls.hook.test.ts +++ b/packages/osd-apm-topology/src/components/celestial_controls/use_celestial_controls.hook.test.ts @@ -17,9 +17,9 @@ describe('useCelestialControls', () => { const mockFitView = jest.fn(); const createMockEvent = () => - (({ + ({ stopPropagation: jest.fn(), - } as unknown) as React.MouseEvent); + }) as unknown as React.MouseEvent; beforeEach(() => { jest.clearAllMocks(); diff --git a/packages/osd-apm-topology/src/components/celestial_node/celestial_node.tsx b/packages/osd-apm-topology/src/components/celestial_node/celestial_node.tsx index 060187f5bd5f..247c61513c3a 100644 --- a/packages/osd-apm-topology/src/components/celestial_node/celestial_node.tsx +++ b/packages/osd-apm-topology/src/components/celestial_node/celestial_node.tsx @@ -29,20 +29,10 @@ export const CelestialNode = ({ data, id }: NodeProps) => { getChildrenNodes, } = useNodeRelationships(); - const { - isCollapsed, - isCollapsable, - isStacked, - isStackable, - isExpanded, - isExpandable, - } = useNodeClustering(); - const { - onExpandChildren, - onExpandSiblings, - onCollapseSiblings, - onCollapseDescendants, - } = useContextMenuActions(id); + const { isCollapsed, isCollapsable, isStacked, isStackable, isExpanded, isExpandable } = + useNodeClustering(); + const { onExpandChildren, onExpandSiblings, onCollapseSiblings, onCollapseDescendants } = + useContextMenuActions(id); const count = data.isStacked ? getAggregateSiblingsCount(id) + 1 : getOutgoingEdgesCount(id, Visibility.Hidden); diff --git a/packages/osd-apm-topology/src/components/donut/components/donut_segments/donut_segments.tsx b/packages/osd-apm-topology/src/components/donut/components/donut_segments/donut_segments.tsx index 4152c47aac28..33796ca16e4f 100644 --- a/packages/osd-apm-topology/src/components/donut/components/donut_segments/donut_segments.tsx +++ b/packages/osd-apm-topology/src/components/donut/components/donut_segments/donut_segments.tsx @@ -17,14 +17,8 @@ interface DonutSegmentsProps { } export const DonutSegments = memo(({ diameter, segments, fill, stroke }: DonutSegmentsProps) => { - const { - center, - radius, - backgroundStrokeWidth, - segmentStrokeWidth, - getArcLength, - circumference, - } = useCircleDimensions(diameter); + const { center, radius, backgroundStrokeWidth, segmentStrokeWidth, getArcLength, circumference } = + useCircleDimensions(diameter); return ( <> diff --git a/packages/osd-apm-topology/src/components/edges/celestial_edge.tsx b/packages/osd-apm-topology/src/components/edges/celestial_edge.tsx index ef6cf757d89f..0ac15fdfe63b 100644 --- a/packages/osd-apm-topology/src/components/edges/celestial_edge.tsx +++ b/packages/osd-apm-topology/src/components/edges/celestial_edge.tsx @@ -25,18 +25,18 @@ export const CelestialEdge: React.FC = (props) => { edgeStyle.type === 'dotted' ? '2 4' : edgeStyle.type === 'dashed' || edgeStyle.dashed - ? '8 4' - : undefined; + ? '8 4' + : undefined; // Resolve animation class: animationType takes precedence over animated const animClass = edgeStyle.animationType === 'flow' ? 'celEdge--flow' : edgeStyle.animationType === 'pulse' - ? 'celEdge--pulse' - : edgeStyle.animated - ? 'celEdge--flow' - : ''; + ? 'celEdge--pulse' + : edgeStyle.animated + ? 'celEdge--flow' + : ''; const labelStyleProps = edgeStyle.labelStyle ? { diff --git a/packages/osd-apm-topology/src/components/layout_controls/use_layout_controls.hook.test.ts b/packages/osd-apm-topology/src/components/layout_controls/use_layout_controls.hook.test.ts index 058bb033e751..8c6793e19f5c 100644 --- a/packages/osd-apm-topology/src/components/layout_controls/use_layout_controls.hook.test.ts +++ b/packages/osd-apm-topology/src/components/layout_controls/use_layout_controls.hook.test.ts @@ -78,7 +78,7 @@ describe('useLayoutControls', () => { it('should handle layout change correctly', () => { const { result } = renderHook(() => useLayoutControls()); - const mockEvent = ({ stopPropagation: jest.fn() } as unknown) as React.MouseEvent; + const mockEvent = { stopPropagation: jest.fn() } as unknown as React.MouseEvent; act(() => { result.current.onLayoutChange(mockEvent); @@ -95,7 +95,7 @@ describe('useLayoutControls', () => { it('should expand all nodes and edges correctly', () => { const { result } = renderHook(() => useLayoutControls()); - const mockEvent = ({ stopPropagation: jest.fn() } as unknown) as React.MouseEvent; + const mockEvent = { stopPropagation: jest.fn() } as unknown as React.MouseEvent; act(() => { result.current.onExpandAll(mockEvent); diff --git a/packages/osd-apm-topology/src/components/legend/hooks/use_legend.hook.test.ts b/packages/osd-apm-topology/src/components/legend/hooks/use_legend.hook.test.ts index 4c28d7f4fedf..fa55a36a0ba2 100644 --- a/packages/osd-apm-topology/src/components/legend/hooks/use_legend.hook.test.ts +++ b/packages/osd-apm-topology/src/components/legend/hooks/use_legend.hook.test.ts @@ -31,18 +31,18 @@ describe('useLegend', () => { const { result } = renderHook(() => useLegend()); act(() => { - result.current.onToggle(({ + result.current.onToggle({ stopPropagation: mockStopPropagation, - } as unknown) as React.MouseEvent); + } as unknown as React.MouseEvent); }); expect(mockStopPropagation).toHaveBeenCalled(); expect(result.current.isOpen).toBe(true); act(() => { - result.current.onToggle(({ + result.current.onToggle({ stopPropagation: mockStopPropagation, - } as unknown) as React.MouseEvent); + } as unknown as React.MouseEvent); }); expect(result.current.isOpen).toBe(false); }); @@ -51,9 +51,9 @@ describe('useLegend', () => { const { result } = renderHook(() => useLegend()); act(() => { - result.current.onToggle(({ + result.current.onToggle({ stopPropagation: mockStopPropagation, - } as unknown) as React.MouseEvent); + } as unknown as React.MouseEvent); }); expect(result.current.isOpen).toBe(true); @@ -65,14 +65,14 @@ describe('useLegend', () => { }); it('should calculate position using useLegendPosition', () => { - const mockedUseLegendPosition = (useLegendPosition as unknown) as ReturnType; + const mockedUseLegendPosition = useLegendPosition as unknown as ReturnType; const { result } = renderHook(() => useLegend()); expect(mockedUseLegendPosition).toHaveBeenCalledWith(false, null); act(() => { - result.current.onToggle(({ + result.current.onToggle({ stopPropagation: mockStopPropagation, - } as unknown) as React.MouseEvent); + } as unknown as React.MouseEvent); }); expect(mockedUseLegendPosition).toHaveBeenCalledWith(true, null); }); diff --git a/packages/osd-apm-topology/src/components/legend/hooks/use_legend_position.hook.test.ts b/packages/osd-apm-topology/src/components/legend/hooks/use_legend_position.hook.test.ts index 9d2b20070521..3ce55e279a8a 100644 --- a/packages/osd-apm-topology/src/components/legend/hooks/use_legend_position.hook.test.ts +++ b/packages/osd-apm-topology/src/components/legend/hooks/use_legend_position.hook.test.ts @@ -32,13 +32,25 @@ describe('useLegendPosition', () => { mockTrigger.getBoundingClientRect = jest.fn().mockReturnValue(mockRect); // Mock window properties using Object.defineProperty (innerWidth and scrollY are value properties in jsdom) - Object.defineProperty(window, 'innerWidth', { value: 1024, writable: true }); - Object.defineProperty(window, 'scrollY', { value: 10, writable: true }); + Object.defineProperty(window, 'innerWidth', { + value: 1024, + writable: true, + configurable: true, + }); + Object.defineProperty(window, 'scrollY', { value: 10, writable: true, configurable: true }); }); afterEach(() => { - Object.defineProperty(window, 'innerWidth', { value: originalInnerWidth, writable: true }); - Object.defineProperty(window, 'scrollY', { value: originalScrollY, writable: true }); + Object.defineProperty(window, 'innerWidth', { + value: originalInnerWidth, + writable: true, + configurable: true, + }); + Object.defineProperty(window, 'scrollY', { + value: originalScrollY, + writable: true, + configurable: true, + }); }); // Test cases diff --git a/packages/osd-apm-topology/src/components/map_container.tsx b/packages/osd-apm-topology/src/components/map_container.tsx index 3b8bf6794da6..34273a8d08b3 100644 --- a/packages/osd-apm-topology/src/components/map_container.tsx +++ b/packages/osd-apm-topology/src/components/map_container.tsx @@ -123,12 +123,14 @@ export const MapContainer: React.FC = ({ }) => { const { viewLock } = useCelestialStateContext(); const reactFlowInstance = useReactFlow(); - const mergedNodeTypes = useMemo(() => ({ ...defaultNodeTypes, ...consumerNodeTypes }), [ - consumerNodeTypes, - ]); - const mergedEdgeTypes = useMemo(() => ({ ...defaultEdgeTypes, ...consumerEdgeTypes }), [ - consumerEdgeTypes, - ]); + const mergedNodeTypes = useMemo( + () => ({ ...defaultNodeTypes, ...consumerNodeTypes }), + [consumerNodeTypes] + ); + const mergedEdgeTypes = useMemo( + () => ({ ...defaultEdgeTypes, ...consumerEdgeTypes }), + [consumerEdgeTypes] + ); const resolvedEdges = useMemo(() => resolveEdgeMarkers(edges), [edges]); const renderLegend = () => { diff --git a/packages/osd-apm-topology/src/components/nodes/agent_card_node.test.tsx b/packages/osd-apm-topology/src/components/nodes/agent_card_node.test.tsx index d657553a2088..bc4f1d1e7360 100644 --- a/packages/osd-apm-topology/src/components/nodes/agent_card_node.test.tsx +++ b/packages/osd-apm-topology/src/components/nodes/agent_card_node.test.tsx @@ -46,7 +46,7 @@ describe('AgentCardNode', () => { zIndex: 0, positionAbsoluteX: 0, positionAbsoluteY: 0, - } as any); + }) as any; it('renders title', () => { render(); diff --git a/packages/osd-apm-topology/src/components/nodes/node_shell.test.tsx b/packages/osd-apm-topology/src/components/nodes/node_shell.test.tsx index 51ffe721274d..d423e72fb0b5 100644 --- a/packages/osd-apm-topology/src/components/nodes/node_shell.test.tsx +++ b/packages/osd-apm-topology/src/components/nodes/node_shell.test.tsx @@ -200,7 +200,8 @@ describe('NodeShell', () => { ); const shell = container.firstChild as HTMLElement; - expect(shell.style.borderColor).toBe('#ff0000'); + // jsdom converts hex to rgb + expect(shell.style.borderColor).toBe('rgb(255, 0, 0)'); }); it('applies custom backgroundColor inline style', () => { diff --git a/packages/osd-apm-topology/src/components/nodes/node_shell.tsx b/packages/osd-apm-topology/src/components/nodes/node_shell.tsx index 616c712fffb7..91a37a710498 100644 --- a/packages/osd-apm-topology/src/components/nodes/node_shell.tsx +++ b/packages/osd-apm-topology/src/components/nodes/node_shell.tsx @@ -58,7 +58,7 @@ export const NodeShell: React.FC = ({ (event: React.KeyboardEvent) => { if (onClick && (event.key === 'Enter' || event.key === ' ')) { event.preventDefault(); - onClick((event as unknown) as React.MouseEvent); + onClick(event as unknown as React.MouseEvent); } }, [onClick] @@ -71,8 +71,8 @@ export const NodeShell: React.FC = ({ disableGlow ? 'osd:outline-none osd:shadow-none osd:focus:outline-none osd:focus:shadow-none osd:hover:shadow-none' : isSelected - ? 'osd:shadow-node-selected osd:outline-0' - : 'osd:hover:shadow-node-hover' + ? 'osd:shadow-node-selected osd:outline-0' + : 'osd:hover:shadow-node-hover' } ${isFaded ? 'osd:opacity-30' : 'osd:opacity-100'} ${isInteractive ? 'osd:cursor-pointer' : ''} diff --git a/packages/osd-apm-topology/src/components/nodes/service_card_node.test.tsx b/packages/osd-apm-topology/src/components/nodes/service_card_node.test.tsx index 8ba42512746c..5aed7d81aec2 100644 --- a/packages/osd-apm-topology/src/components/nodes/service_card_node.test.tsx +++ b/packages/osd-apm-topology/src/components/nodes/service_card_node.test.tsx @@ -47,7 +47,7 @@ describe('ServiceCardNode', () => { zIndex: 0, positionAbsoluteX: 0, positionAbsoluteY: 0, - } as any); + }) as any; it('renders title and subtitle', () => { render(); @@ -146,7 +146,8 @@ describe('ServiceCardNode', () => { const shell = container.querySelector( '[data-test-subj="serviceCardNode-svc-1"]' ) as HTMLElement; - expect(shell.style.borderColor).toBe('#6366f1'); + // jsdom converts hex to rgb + expect(shell.style.borderColor).toBe('rgb(99, 102, 241)'); expect(shell.style.getPropertyValue('--osd-node-glow-color')).toBe('#6366F1'); }); diff --git a/packages/osd-apm-topology/src/components/nodes/service_card_node.tsx b/packages/osd-apm-topology/src/components/nodes/service_card_node.tsx index 1bb0f86868a7..dcc2220c47b7 100644 --- a/packages/osd-apm-topology/src/components/nodes/service_card_node.tsx +++ b/packages/osd-apm-topology/src/components/nodes/service_card_node.tsx @@ -44,8 +44,8 @@ export const ServiceCardNode = ({ data }: NodeProps) => { data.health?.status === 'breached' ? 'error' : data.health?.status === 'recovered' - ? 'warning' - : undefined; + ? 'warning' + : undefined; const onViewDashboardClick = useCallback( (event: React.MouseEvent) => { diff --git a/packages/osd-apm-topology/src/components/nodes/service_circle_node.test.tsx b/packages/osd-apm-topology/src/components/nodes/service_circle_node.test.tsx index c5201fb726dc..62943e2215a9 100644 --- a/packages/osd-apm-topology/src/components/nodes/service_circle_node.test.tsx +++ b/packages/osd-apm-topology/src/components/nodes/service_circle_node.test.tsx @@ -57,7 +57,7 @@ describe('ServiceCircleNode', () => { zIndex: 0, positionAbsoluteX: 0, positionAbsoluteY: 0, - } as any); + }) as any; it('renders title and subtitle', () => { render(); @@ -138,7 +138,8 @@ describe('ServiceCircleNode', () => { it('applies custom color as borderColor when no metrics', () => { const { container } = render(); const circleContainer = container.querySelector('.celServiceCircle__container') as HTMLElement; - expect(circleContainer.style.borderColor).toBe('#6366f1'); + // jsdom converts hex to rgb + expect(circleContainer.style.borderColor).toBe('rgb(99, 102, 241)'); }); it('does not apply custom borderColor when metrics are present', () => { diff --git a/packages/osd-apm-topology/src/shared/contexts/node_actions_context.tsx b/packages/osd-apm-topology/src/shared/contexts/node_actions_context.tsx index 1464f8cbb3f9..818948152b48 100644 --- a/packages/osd-apm-topology/src/shared/contexts/node_actions_context.tsx +++ b/packages/osd-apm-topology/src/shared/contexts/node_actions_context.tsx @@ -24,9 +24,9 @@ interface CelestialNodeActionsProviderProps { } const CelestialNodeActions = createContext(undefined); -export const CelestialNodeActionsProvider: React.FC> = ({ onDataFetch, addBreadcrumb, onDashboardClick, children }) => { +export const CelestialNodeActionsProvider: React.FC< + PropsWithChildren +> = ({ onDataFetch, addBreadcrumb, onDashboardClick, children }) => { // Track the selected node ID const { selectedNodeId, diff --git a/packages/osd-apm-topology/src/shared/i18n/t.ts b/packages/osd-apm-topology/src/shared/i18n/t.ts index b8857274ad48..b8fc3d804ed8 100644 --- a/packages/osd-apm-topology/src/shared/i18n/t.ts +++ b/packages/osd-apm-topology/src/shared/i18n/t.ts @@ -10,27 +10,27 @@ import en from './lang/en.json'; type Messages = typeof en; const localizedMessages: Record = { - en, + en, }; export const getLocalizedMessages = (selectedLocale: string): Messages => - localizedMessages[selectedLocale] ?? localizedMessages[DEFAULT_LOCALE]; + localizedMessages[selectedLocale] ?? localizedMessages[DEFAULT_LOCALE]; const replaceParameters = (value: string, parameters: Array<[string, string]>): string => - parameters.reduce( - (acc: string, [parameterName, parameterValue]) => - acc.replace(new RegExp(`{${parameterName}}`, 'g'), parameterValue), - value, - ); + parameters.reduce( + (acc: string, [parameterName, parameterValue]) => + acc.replace(new RegExp(`{${parameterName}}`, 'g'), parameterValue), + value + ); // https://stackoverflow.com/questions/47057649/typescript-string-dot-notation-of-nested-object type PathsToStringProps = T extends string - ? [] - : { - [K in Extract]: [K, ...PathsToStringProps]; - }[Extract]; + ? [] + : { + [K in Extract]: [K, ...PathsToStringProps]; + }[Extract]; // prettier-ignore -/* eslint-disable prettier/prettier */ + type Join = T extends [] ? never : T extends [infer F] @@ -40,17 +40,15 @@ type Join = T extends [] ? `${F}${D}${Join, D>}` : never : string; -/* eslint-enable prettier/prettier */ + export type TId = Join, '.'>; -export const t = ( - messageId: TId, - parameters = {}, - selectedLocale?: string, -): string => { - const messages = getLocalizedMessages(selectedLocale ?? getLocale()); - const messagePath = messageId.split('.'); - const message = pathOr(messageId, messagePath, messages); +export const t = (messageId: TId, parameters = {}, selectedLocale?: string): string => { + const messages = getLocalizedMessages(selectedLocale ?? getLocale()); + const messagePath = messageId.split('.'); + const message = pathOr(messageId, messagePath, messages); - return typeof message === 'string' ? replaceParameters(message, Object.entries(parameters)) : messageId; + return typeof message === 'string' + ? replaceParameters(message, Object.entries(parameters)) + : messageId; }; diff --git a/packages/osd-apm-topology/src/shared/presenters/topology_node.presenter.test.ts b/packages/osd-apm-topology/src/shared/presenters/topology_node.presenter.test.ts index e8533ed1b0d3..b420b76c3bf2 100644 --- a/packages/osd-apm-topology/src/shared/presenters/topology_node.presenter.test.ts +++ b/packages/osd-apm-topology/src/shared/presenters/topology_node.presenter.test.ts @@ -7,7 +7,7 @@ import { TopologyNodePresenter } from './topology_node.presenter'; import { TopologyNodeModel } from '../models/topology_node.model'; const createMockModel = (overrides: Record = {}): TopologyNodeModel => - (({ + ({ name: 'TestNode', isGroup: false, platform: undefined, @@ -16,7 +16,7 @@ const createMockModel = (overrides: Record = {}): TopologyNodeModel numberOfServices: 0, numberOfUninstrumentedServices: 0, ...overrides, - } as unknown) as TopologyNodeModel); + }) as unknown as TopologyNodeModel; describe('TopologyNodePresenter', () => { it('title returns model name', () => { diff --git a/packages/osd-apm-topology/src/shared/types/agent.types.ts b/packages/osd-apm-topology/src/shared/types/agent.types.ts index 7b1ae70975c9..96a5ff848971 100644 --- a/packages/osd-apm-topology/src/shared/types/agent.types.ts +++ b/packages/osd-apm-topology/src/shared/types/agent.types.ts @@ -18,13 +18,7 @@ import type { BaseNodeData } from '../../types'; * - Unknown operations → `'other'` */ export type AgentNodeKind = - | 'agent' - | 'llm' - | 'tool' - | 'retrieval' - | 'embeddings' - | 'content' - | 'other'; + 'agent' | 'llm' | 'tool' | 'retrieval' | 'embeddings' | 'content' | 'other'; export interface AgentNodeData extends BaseNodeData { nodeKind: AgentNodeKind; diff --git a/packages/osd-babel-preset/common_preset.js b/packages/osd-babel-preset/common_preset.js index d2c10ffb61dd..db40a4b7ac06 100644 --- a/packages/osd-babel-preset/common_preset.js +++ b/packages/osd-babel-preset/common_preset.js @@ -33,18 +33,14 @@ const plugins = [ require.resolve('@babel/plugin-transform-private-methods'), require.resolve('babel-plugin-add-module-exports'), - // Optional Chaining proposal is stage 4 (https://github.com/tc39/proposal-optional-chaining) // Need this since we are using TypeScript 3.7+ require.resolve('@babel/plugin-transform-optional-chaining'), - // Nullish coalescing proposal is stage 4 (https://github.com/tc39/proposal-nullish-coalescing) // Need this since we are using TypeScript 3.7+ require.resolve('@babel/plugin-transform-nullish-coalescing-operator'), - // Proposal is merged into ECMA-262 (https://github.com/tc39/proposal-export-ns-from) // Need this since we are using TypeScript 3.8+ require.resolve('@babel/plugin-transform-export-namespace-from'), - // Proposal is on stage 4 (https://github.com/tc39/proposal-logical-assignment) require.resolve('@babel/plugin-transform-logical-assignment-operators'), ]; diff --git a/packages/osd-babel-preset/package.json b/packages/osd-babel-preset/package.json index c71fe6b64712..1335e0bec69c 100644 --- a/packages/osd-babel-preset/package.json +++ b/packages/osd-babel-preset/package.json @@ -7,22 +7,22 @@ "devOnly": true }, "dependencies": { - "@babel/plugin-transform-export-namespace-from": "^7.22.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.9", - "@babel/plugin-transform-optional-chaining": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/preset-react": "^7.22.9", - "@babel/preset-typescript": "^7.22.9", + "@babel/plugin-transform-export-namespace-from": "^7.29.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.29.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7", + "@babel/preset-env": "^7.29.7", + "@babel/preset-react": "^7.29.7", + "@babel/preset-typescript": "^7.29.7", "babel-plugin-add-module-exports": "^1.0.4", - "babel-plugin-module-resolver": "^5.0.1", + "babel-plugin-module-resolver": "^5.0.3", "babel-plugin-styled-components": "^2.0.2", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "browserslist": "^4.21.10", + "browserslist": "^4.28.5", "react-is": "^18.2.0", "styled-components": "^5.3.9" }, "devDependencies": { - "@types/browserslist": "^4.15.0" + "@types/browserslist": "^4.15.4" } } diff --git a/packages/osd-config-schema/README.md b/packages/osd-config-schema/README.md index 0614b86943e8..4c0fb368989c 100644 --- a/packages/osd-config-schema/README.md +++ b/packages/osd-config-schema/README.md @@ -81,14 +81,14 @@ expect(valueSchema.validate({ isEnabled: true }, { envName: 'staging' })).toEqua // Fail because of type mismatch expect(() => valueSchema.validate({ isEnabled: 'non-bool' }, { envName: 'staging' }) -).toThrowError( +).toThrow( '[isEnabled]: expected value of type [boolean] but got [string]' ); // Fail because of type mismatch and prefix error with a custom namespace expect(() => valueSchema.validate({ isEnabled: 'non-bool' }, { envName: 'staging' }, 'configuration') -).toThrowError( +).toThrow( '[configuration.isEnabled]: expected value of type [boolean] but got [string]' ); ``` diff --git a/packages/osd-config-schema/src/errors/__snapshots__/schema_error.test.ts.snap b/packages/osd-config-schema/src/errors/__snapshots__/schema_error.test.ts.snap index 1f5e056ba69a..da7dacb05587 100644 --- a/packages/osd-config-schema/src/errors/__snapshots__/schema_error.test.ts.snap +++ b/packages/osd-config-schema/src/errors/__snapshots__/schema_error.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`includes stack 1`] = ` "SchemaError: test diff --git a/packages/osd-config-schema/src/errors/schema_type_error.ts b/packages/osd-config-schema/src/errors/schema_type_error.ts index 2c43f255017f..3fcb153a7f31 100644 --- a/packages/osd-config-schema/src/errors/schema_type_error.ts +++ b/packages/osd-config-schema/src/errors/schema_type_error.ts @@ -31,7 +31,10 @@ import { SchemaError } from '.'; export class SchemaTypeError extends SchemaError { - constructor(error: Error | string, public readonly path: Array) { + constructor( + error: Error | string, + public readonly path: Array + ) { super(typeof error === 'string' ? error : error.message); // Set the prototype explicitly, see: diff --git a/packages/osd-config-schema/src/internals/index.ts b/packages/osd-config-schema/src/internals/index.ts index bd1ad9322738..0fd0f2b4fd1d 100644 --- a/packages/osd-config-schema/src/internals/index.ts +++ b/packages/osd-config-schema/src/internals/index.ts @@ -263,7 +263,7 @@ const extensions: Extension[] = [ return { value: parsed }; } return { errors: [helpers.error('object.base', { value: parsed })] }; - } catch (e) { + } catch { return { errors: [helpers.error('object.parse')] }; } } @@ -297,7 +297,7 @@ const extensions: Extension[] = [ return { value: new Map(Object.entries(parsed)) }; } return { errors: [helpers.error('map.base')] }; - } catch (e) { + } catch { return { errors: [helpers.error('map.parse')] }; } } @@ -327,10 +327,10 @@ const extensions: Extension[] = [ return helpers.error('map.key', { entryKey, reason: keyError }); } - const { - value: validatedEntryValue, - error: valueError, - } = args.value.validate(entryValue, { presence: 'required' }); + const { value: validatedEntryValue, error: valueError } = args.value.validate( + entryValue, + { presence: 'required' } + ); if (valueError) { return helpers.error('map.value', { entryKey, reason: valueError }); @@ -365,7 +365,7 @@ const extensions: Extension[] = [ return { value: parsed }; } return { errors: [helpers.error('record.base', { value: parsed })] }; - } catch (e) { + } catch { return { errors: [helpers.error('record.parse')] }; } } @@ -395,10 +395,10 @@ const extensions: Extension[] = [ return helpers.error('record.key', { entryKey, reason: keyError }); } - const { - value: validatedEntryValue, - error: valueError, - } = args.value.validate(entryValue, { presence: 'required' }); + const { value: validatedEntryValue, error: valueError } = args.value.validate( + entryValue, + { presence: 'required' } + ); if (valueError) { return helpers.error('record.value', { entryKey, reason: valueError }); @@ -431,7 +431,7 @@ const extensions: Extension[] = [ return { value: parsed }; } return { errors: [helpers.error('array.base', { value: parsed })] }; - } catch (e) { + } catch { return { errors: [helpers.error('array.parse')] }; } } @@ -460,4 +460,4 @@ export type JoiRoot = Joi.Root & { /** * @internal */ -export const internals = (Joi.extend(...extensions) as unknown) as JoiRoot; +export const internals = Joi.extend(...extensions) as unknown as JoiRoot; diff --git a/packages/osd-config-schema/src/types/any_type.test.ts b/packages/osd-config-schema/src/types/any_type.test.ts index cabcf060ed60..859c60e934ab 100644 --- a/packages/osd-config-schema/src/types/any_type.test.ts +++ b/packages/osd-config-schema/src/types/any_type.test.ts @@ -40,7 +40,10 @@ test('works for any value', () => { test('is required by default', () => { expect(() => schema.any().validate(undefined)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [any] but got [undefined]"` + ` +"expected value of type [any] but got [undefined] +Cause: expected value of type [any] but got [undefined]" +` ); }); @@ -48,7 +51,10 @@ test('includes namespace in failure', () => { expect(() => schema.any().validate(undefined, {}, 'foo-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [any] but got [undefined]"` + ` +"[foo-namespace]: expected value of type [any] but got [undefined] +Cause: expected value of type [any] but got [undefined]" +` ); }); diff --git a/packages/osd-config-schema/src/types/array_type.test.ts b/packages/osd-config-schema/src/types/array_type.test.ts index b112acb73826..0e1ba847c5d8 100644 --- a/packages/osd-config-schema/src/types/array_type.test.ts +++ b/packages/osd-config-schema/src/types/array_type.test.ts @@ -43,56 +43,80 @@ test('properly parse the value if input is a string', () => { test('fails if wrong input type', () => { const type = schema.arrayOf(schema.string()); expect(() => type.validate(12)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [array] but got [number]"` + ` +"expected value of type [array] but got [number] +Cause: expected value of type [array] but got [number]" +` ); }); test('fails if string input cannot be parsed', () => { const type = schema.arrayOf(schema.string()); expect(() => type.validate('test')).toThrowErrorMatchingInlineSnapshot( - `"could not parse array value from json input"` + ` +"could not parse array value from json input +Cause: could not parse array value from json input" +` ); }); test('fails with correct type if parsed input is not an array', () => { const type = schema.arrayOf(schema.string()); expect(() => type.validate('{"foo": "bar"}')).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [array] but got [Object]"` + ` +"expected value of type [array] but got [Object] +Cause: expected value of type [array] but got [Object]" +` ); }); test('includes namespace in failure when wrong top-level type', () => { const type = schema.arrayOf(schema.string()); expect(() => type.validate('test', {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: could not parse array value from json input"` + ` +"[foo-namespace]: could not parse array value from json input +Cause: could not parse array value from json input" +` ); }); test('includes namespace in failure when wrong item type', () => { const type = schema.arrayOf(schema.string()); expect(() => type.validate([123], {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace.0]: expected value of type [string] but got [number]"` + ` +"[foo-namespace.0]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); test('fails if wrong type of content in array', () => { const type = schema.arrayOf(schema.string()); expect(() => type.validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"[0]: expected value of type [string] but got [number]"` + ` +"[0]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); test('fails when parsing if wrong type of content in array', () => { const type = schema.arrayOf(schema.string()); expect(() => type.validate('[1, 2, 3]')).toThrowErrorMatchingInlineSnapshot( - `"[0]: expected value of type [string] but got [number]"` + ` +"[0]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); test('fails if mixed types of content in array', () => { const type = schema.arrayOf(schema.string()); expect(() => type.validate(['foo', 'bar', true, {}])).toThrowErrorMatchingInlineSnapshot( - `"[2]: expected value of type [string] but got [boolean]"` + ` +"[2]: expected value of type [string] but got [boolean] +Cause: expected value of type [string] but got [boolean]" +` ); }); @@ -100,7 +124,10 @@ test('fails if sparse content in array', () => { const type = schema.arrayOf(schema.string()); expect(type.validate([])).toEqual([]); expect(() => type.validate([undefined])).toThrowErrorMatchingInlineSnapshot( - `"[0]: sparse array are not allowed"` + ` +"[0]: sparse array are not allowed +Cause: sparse array are not allowed" +` ); }); @@ -108,7 +135,10 @@ test('fails if sparse content in array if optional', () => { const type = schema.arrayOf(schema.maybe(schema.string())); expect(type.validate([])).toEqual([]); expect(() => type.validate([undefined])).toThrowErrorMatchingInlineSnapshot( - `"[0]: sparse array are not allowed"` + ` +"[0]: sparse array are not allowed +Cause: sparse array are not allowed" +` ); }); @@ -117,14 +147,20 @@ test('fails if sparse content in array if nullable', () => { expect(type.validate([])).toEqual([]); expect(type.validate([null])).toEqual([null]); expect(() => type.validate([undefined])).toThrowErrorMatchingInlineSnapshot( - `"[0]: sparse array are not allowed"` + ` +"[0]: sparse array are not allowed +Cause: sparse array are not allowed" +` ); }); test('fails for null values if optional', () => { const type = schema.arrayOf(schema.maybe(schema.string())); expect(() => type.validate([null])).toThrowErrorMatchingInlineSnapshot( - `"[0]: expected value of type [string] but got [null]"` + ` +"[0]: expected value of type [string] but got [null] +Cause: expected value of type [string] but got [null]" +` ); }); @@ -183,7 +219,10 @@ test('object within array with required', () => { const value = [{}]; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[0.foo]: expected value of type [string] but got [undefined]"` + ` +"[0.foo]: expected value of type [string] but got [undefined] +Cause: expected value of type [string] but got [undefined]" +` ); }); @@ -195,7 +234,12 @@ describe('#minSize', () => { test('returns error when fewer items', () => { expect(() => schema.arrayOf(schema.string(), { minSize: 2 }).validate(['foo']) - ).toThrowErrorMatchingInlineSnapshot(`"array size is [1], but cannot be smaller than [2]"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"array size is [1], but cannot be smaller than [2] +Cause: array size is [1], but cannot be smaller than [2]" +` + ); }); }); @@ -207,6 +251,11 @@ describe('#maxSize', () => { test('returns error when more items', () => { expect(() => schema.arrayOf(schema.string(), { maxSize: 1 }).validate(['foo', 'bar']) - ).toThrowErrorMatchingInlineSnapshot(`"array size is [2], but cannot be greater than [1]"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"array size is [2], but cannot be greater than [1] +Cause: array size is [2], but cannot be greater than [1]" +` + ); }); }); diff --git a/packages/osd-config-schema/src/types/boolean_type.test.ts b/packages/osd-config-schema/src/types/boolean_type.test.ts index 473995ffcc23..f7caec9f285f 100644 --- a/packages/osd-config-schema/src/types/boolean_type.test.ts +++ b/packages/osd-config-schema/src/types/boolean_type.test.ts @@ -47,7 +47,10 @@ test('handles boolean strings', () => { test('is required by default', () => { expect(() => schema.boolean().validate(undefined)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [boolean] but got [undefined]"` + ` +"expected value of type [boolean] but got [undefined] +Cause: expected value of type [boolean] but got [undefined]" +` ); }); @@ -55,7 +58,10 @@ test('includes namespace in failure', () => { expect(() => schema.boolean().validate(undefined, {}, 'foo-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [boolean] but got [undefined]"` + ` +"[foo-namespace]: expected value of type [boolean] but got [undefined] +Cause: expected value of type [boolean] but got [undefined]" +` ); }); @@ -71,22 +77,37 @@ describe('#defaultValue', () => { test('returns error when not boolean', () => { expect(() => schema.boolean().validate(123)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [boolean] but got [number]"` + ` +"expected value of type [boolean] but got [number] +Cause: expected value of type [boolean] but got [number]" +` ); expect(() => schema.boolean().validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [boolean] but got [Array]"` + ` +"expected value of type [boolean] but got [Array] +Cause: expected value of type [boolean] but got [Array]" +` ); expect(() => schema.boolean().validate('abc')).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [boolean] but got [string]"` + ` +"expected value of type [boolean] but got [string] +Cause: expected value of type [boolean] but got [string]" +` ); expect(() => schema.boolean().validate(0)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [boolean] but got [number]"` + ` +"expected value of type [boolean] but got [number] +Cause: expected value of type [boolean] but got [number]" +` ); expect(() => schema.boolean().validate('no')).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [boolean] but got [string]"` + ` +"expected value of type [boolean] but got [string] +Cause: expected value of type [boolean] but got [string]" +` ); }); diff --git a/packages/osd-config-schema/src/types/buffer_type.test.ts b/packages/osd-config-schema/src/types/buffer_type.test.ts index d75e45445932..6b59b31dc818 100644 --- a/packages/osd-config-schema/src/types/buffer_type.test.ts +++ b/packages/osd-config-schema/src/types/buffer_type.test.ts @@ -37,7 +37,10 @@ test('returns value by default', () => { test('is required by default', () => { expect(() => schema.buffer().validate(undefined)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [Buffer] but got [undefined]"` + ` +"expected value of type [Buffer] but got [undefined] +Cause: expected value of type [Buffer] but got [undefined]" +` ); }); @@ -45,7 +48,10 @@ test('includes namespace in failure', () => { expect(() => schema.buffer().validate(undefined, {}, 'foo-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [Buffer] but got [undefined]"` + ` +"[foo-namespace]: expected value of type [Buffer] but got [undefined] +Cause: expected value of type [Buffer] but got [undefined]" +` ); }); @@ -65,14 +71,23 @@ describe('#defaultValue', () => { test('returns error when not a buffer', () => { expect(() => schema.buffer().validate(123)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [Buffer] but got [number]"` + ` +"expected value of type [Buffer] but got [number] +Cause: expected value of type [Buffer] but got [number]" +` ); expect(() => schema.buffer().validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [Buffer] but got [Array]"` + ` +"expected value of type [Buffer] but got [Array] +Cause: expected value of type [Buffer] but got [Array]" +` ); expect(() => schema.buffer().validate('abc')).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [Buffer] but got [string]"` + ` +"expected value of type [Buffer] but got [string] +Cause: expected value of type [Buffer] but got [string]" +` ); }); diff --git a/packages/osd-config-schema/src/types/byte_size_type.test.ts b/packages/osd-config-schema/src/types/byte_size_type.test.ts index 6316f44343cd..8e03500d0e4c 100644 --- a/packages/osd-config-schema/src/types/byte_size_type.test.ts +++ b/packages/osd-config-schema/src/types/byte_size_type.test.ts @@ -47,7 +47,10 @@ test('handles numbers', () => { test('is required by default', () => { expect(() => byteSize().validate(undefined)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [ByteSize] but got [undefined]"` + ` +"expected value of type [ByteSize] but got [undefined] +Cause: expected value of type [ByteSize] but got [undefined]" +` ); }); @@ -55,7 +58,10 @@ test('includes namespace in failure', () => { expect(() => byteSize().validate(undefined, {}, 'foo-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [ByteSize] but got [undefined]"` + ` +"[foo-namespace]: expected value of type [ByteSize] but got [undefined] +Cause: expected value of type [ByteSize] but got [undefined]" +` ); }); @@ -127,7 +133,12 @@ describe('#min', () => { byteSize({ min: '1kb', }).validate('1b') - ).toThrowErrorMatchingInlineSnapshot(`"Value must be equal to or greater than [1kb]"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"Value must be equal to or greater than [1kb] +Cause: Value must be equal to or greater than [1kb]" +` + ); }); }); @@ -142,41 +153,68 @@ describe('#max', () => { test('returns error when larger', () => { expect(() => byteSize({ max: '1kb' }).validate('1mb')).toThrowErrorMatchingInlineSnapshot( - `"Value must be equal to or less than [1kb]"` + ` +"Value must be equal to or less than [1kb] +Cause: Value must be equal to or less than [1kb]" +` ); }); }); test('returns error when not valid string or positive safe integer', () => { expect(() => byteSize().validate(-123)).toThrowErrorMatchingInlineSnapshot( - `"Value in bytes is expected to be a safe positive integer."` + ` +"Value in bytes is expected to be a safe positive integer. +Cause: Value in bytes is expected to be a safe positive integer." +` ); expect(() => byteSize().validate(NaN)).toThrowErrorMatchingInlineSnapshot( - `"Value in bytes is expected to be a safe positive integer."` + ` +"Value in bytes is expected to be a safe positive integer. +Cause: Value in bytes is expected to be a safe positive integer." +` ); expect(() => byteSize().validate(Infinity)).toThrowErrorMatchingInlineSnapshot( - `"Value in bytes is expected to be a safe positive integer."` + ` +"Value in bytes is expected to be a safe positive integer. +Cause: Value in bytes is expected to be a safe positive integer." +` ); expect(() => byteSize().validate(Math.pow(2, 53))).toThrowErrorMatchingInlineSnapshot( - `"Value in bytes is expected to be a safe positive integer."` + ` +"Value in bytes is expected to be a safe positive integer. +Cause: Value in bytes is expected to be a safe positive integer." +` ); expect(() => byteSize().validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [ByteSize] but got [Array]"` + ` +"expected value of type [ByteSize] but got [Array] +Cause: expected value of type [ByteSize] but got [Array]" +` ); expect(() => byteSize().validate(/abc/)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [ByteSize] but got [RegExp]"` + ` +"expected value of type [ByteSize] but got [RegExp] +Cause: expected value of type [ByteSize] but got [RegExp]" +` ); expect(() => byteSize().validate('123foo')).toThrowErrorMatchingInlineSnapshot( - `"Failed to parse value as byte value. Value must be either number of bytes, or follow the format [b|kb|mb|gb] (e.g., '1024kb', '200mb', '1gb'), where the number is a safe positive integer."` + ` +"Failed to parse value as byte value. Value must be either number of bytes, or follow the format [b|kb|mb|gb] (e.g., '1024kb', '200mb', '1gb'), where the number is a safe positive integer. +Cause: Failed to parse value as byte value. Value must be either number of bytes, or follow the format [b|kb|mb|gb] (e.g., '1024kb', '200mb', '1gb'), where the number is a safe positive integer." +` ); expect(() => byteSize().validate('123 456')).toThrowErrorMatchingInlineSnapshot( - `"Failed to parse value as byte value. Value must be either number of bytes, or follow the format [b|kb|mb|gb] (e.g., '1024kb', '200mb', '1gb'), where the number is a safe positive integer."` + ` +"Failed to parse value as byte value. Value must be either number of bytes, or follow the format [b|kb|mb|gb] (e.g., '1024kb', '200mb', '1gb'), where the number is a safe positive integer. +Cause: Failed to parse value as byte value. Value must be either number of bytes, or follow the format [b|kb|mb|gb] (e.g., '1024kb', '200mb', '1gb'), where the number is a safe positive integer." +` ); }); diff --git a/packages/osd-config-schema/src/types/conditional_type.test.ts b/packages/osd-config-schema/src/types/conditional_type.test.ts index 276cba0f1dc6..9845f9ae7165 100644 --- a/packages/osd-config-schema/src/types/conditional_type.test.ts +++ b/packages/osd-config-schema/src/types/conditional_type.test.ts @@ -43,7 +43,12 @@ test('required by default', () => { context_value_1: 0, context_value_2: 0, }) - ).toThrowErrorMatchingInlineSnapshot(`"expected value of type [string] but got [undefined]"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"expected value of type [string] but got [undefined] +Cause: expected value of type [string] but got [undefined]" +` + ); }); test('returns default', () => { @@ -102,7 +107,10 @@ test('properly validates types according chosen schema', () => { context_value_2: 0, }) ).toThrowErrorMatchingInlineSnapshot( - `"value has length [1] but it must have a minimum length of [2]."` + ` +"value has length [1] but it must have a minimum length of [2]. +Cause: value has length [1] but it must have a minimum length of [2]." +` ); expect( @@ -118,7 +126,10 @@ test('properly validates types according chosen schema', () => { context_value_2: 1, }) ).toThrowErrorMatchingInlineSnapshot( - `"value has length [2] but it must have a maximum length of [1]."` + ` +"value has length [2] but it must have a maximum length of [1]. +Cause: value has length [2] but it must have a maximum length of [1]." +` ); expect( @@ -142,7 +153,10 @@ test('properly validates when compares with Schema', () => { context_value_1: 0, }) ).toThrowErrorMatchingInlineSnapshot( - `"value has length [1] but it must have a minimum length of [2]."` + ` +"value has length [1] but it must have a minimum length of [2]. +Cause: value has length [1] but it must have a minimum length of [2]." +` ); expect( @@ -156,7 +170,10 @@ test('properly validates when compares with Schema', () => { context_value_1: 'b', }) ).toThrowErrorMatchingInlineSnapshot( - `"value has length [2] but it must have a minimum length of [3]."` + ` +"value has length [2] but it must have a minimum length of [3]. +Cause: value has length [2] but it must have a minimum length of [3]." +` ); expect( @@ -179,7 +196,10 @@ test('properly validates when compares with "null" literal Schema', () => { context_value_1: null, }) ).toThrowErrorMatchingInlineSnapshot( - `"value has length [1] but it must have a minimum length of [2]."` + ` +"value has length [1] but it must have a minimum length of [2]. +Cause: value has length [1] but it must have a minimum length of [2]." +` ); expect( @@ -193,7 +213,10 @@ test('properly validates when compares with "null" literal Schema', () => { context_value_1: 'b', }) ).toThrowErrorMatchingInlineSnapshot( - `"value has length [2] but it must have a minimum length of [3]."` + ` +"value has length [2] but it must have a minimum length of [3]. +Cause: value has length [2] but it must have a minimum length of [3]." +` ); expect( @@ -216,7 +239,12 @@ test('properly handles schemas with incompatible types', () => { context_value_1: 0, context_value_2: 0, }) - ).toThrowErrorMatchingInlineSnapshot(`"expected value of type [string] but got [boolean]"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"expected value of type [string] but got [boolean] +Cause: expected value of type [string] but got [boolean]" +` + ); expect( type.validate('a', { @@ -230,7 +258,12 @@ test('properly handles schemas with incompatible types', () => { context_value_1: 0, context_value_2: 1, }) - ).toThrowErrorMatchingInlineSnapshot(`"expected value of type [boolean] but got [string]"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"expected value of type [boolean] but got [string] +Cause: expected value of type [boolean] but got [string]" +` + ); expect( type.validate(true, { @@ -247,7 +280,10 @@ test('properly handles conditionals within objects', () => { }); expect(() => type.validate({ key: 'string', value: 1 })).toThrowErrorMatchingInlineSnapshot( - `"[value]: expected value of type [string] but got [number]"` + ` +"[value]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); expect(type.validate({ key: 'string', value: 'a' })).toEqual({ @@ -256,7 +292,10 @@ test('properly handles conditionals within objects', () => { }); expect(() => type.validate({ key: 'number', value: 'a' })).toThrowErrorMatchingInlineSnapshot( - `"[value]: expected value of type [number] but got [string]"` + ` +"[value]: expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); expect(type.validate({ key: 'number', value: 1 })).toEqual({ @@ -297,7 +336,10 @@ test('works with both context and sibling references', () => { expect(() => type.validate({ key: 'string', value: 1 }, { context_key: 'number' }) ).toThrowErrorMatchingInlineSnapshot( - `"[value]: expected value of type [string] but got [number]"` + ` +"[value]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); expect(type.validate({ key: 'string', value: 'a' }, { context_key: 'number' })).toEqual({ @@ -308,7 +350,10 @@ test('works with both context and sibling references', () => { expect(() => type.validate({ key: 'number', value: 'a' }, { context_key: 'number' }) ).toThrowErrorMatchingInlineSnapshot( - `"[value]: expected value of type [number] but got [string]"` + ` +"[value]: expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); expect(type.validate({ key: 'number', value: 1 }, { context_key: 'number' })).toEqual({ @@ -326,13 +371,19 @@ test('includes namespace into failures', () => { expect(() => type.validate({ key: 'string', value: 1 }, {}, 'mega-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[mega-namespace.value]: expected value of type [string] but got [number]"` + ` +"[mega-namespace.value]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); expect(() => type.validate({ key: 'number', value: 'a' }, {}, 'mega-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[mega-namespace.value]: expected value of type [number] but got [string]"` + ` +"[mega-namespace.value]: expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); }); @@ -347,7 +398,10 @@ test('correctly handles missing references', () => { }); expect(() => type.validate({ value: 1 })).toThrowErrorMatchingInlineSnapshot( - `"[value]: expected value of type [string] but got [number]"` + ` +"[value]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); expect(type.validate({ value: 'a' })).toEqual({ value: 'a' }); @@ -370,10 +424,16 @@ test('works within `oneOf`', () => { expect(type.validate(['a', 'b'], { type: 'array' })).toEqual(['a', 'b']); expect(() => type.validate(1, { type: 'string' })).toThrowErrorMatchingInlineSnapshot( - `"SchemaTypeError: expected value of type [array] but got [number]"` + ` +"SchemaTypeError: expected value of type [array] but got [number] +Cause: SchemaTypeError: expected value of type [array] but got [number]" +` ); expect(() => type.validate(true, { type: 'string' })).toThrowErrorMatchingInlineSnapshot( - `"SchemaTypeError: expected value of type [array] but got [boolean]"` + ` +"SchemaTypeError: expected value of type [array] but got [boolean] +Cause: SchemaTypeError: expected value of type [array] but got [boolean]" +` ); }); diff --git a/packages/osd-config-schema/src/types/duration_type.test.ts b/packages/osd-config-schema/src/types/duration_type.test.ts index 1f2a001d3de3..e80fee3f47a2 100644 --- a/packages/osd-config-schema/src/types/duration_type.test.ts +++ b/packages/osd-config-schema/src/types/duration_type.test.ts @@ -47,7 +47,10 @@ test('handles number', () => { test('is required by default', () => { expect(() => duration().validate(undefined)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [moment.Duration] but got [undefined]"` + ` +"expected value of type [moment.Duration] but got [undefined] +Cause: expected value of type [moment.Duration] but got [undefined]" +` ); }); @@ -55,7 +58,10 @@ test('includes namespace in failure', () => { expect(() => duration().validate(undefined, {}, 'foo-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [moment.Duration] but got [undefined]"` + ` +"[foo-namespace]: expected value of type [moment.Duration] but got [undefined] +Cause: expected value of type [moment.Duration] but got [undefined]" +` ); }); @@ -159,34 +165,58 @@ describe('#defaultValue', () => { test('returns error when not valid string or non-safe positive integer', () => { expect(() => duration().validate(-123)).toThrowErrorMatchingInlineSnapshot( - `"Value in milliseconds is expected to be a safe positive integer."` + ` +"Value in milliseconds is expected to be a safe positive integer. +Cause: Value in milliseconds is expected to be a safe positive integer." +` ); expect(() => duration().validate(NaN)).toThrowErrorMatchingInlineSnapshot( - `"Value in milliseconds is expected to be a safe positive integer."` + ` +"Value in milliseconds is expected to be a safe positive integer. +Cause: Value in milliseconds is expected to be a safe positive integer." +` ); expect(() => duration().validate(Infinity)).toThrowErrorMatchingInlineSnapshot( - `"Value in milliseconds is expected to be a safe positive integer."` + ` +"Value in milliseconds is expected to be a safe positive integer. +Cause: Value in milliseconds is expected to be a safe positive integer." +` ); expect(() => duration().validate(Math.pow(2, 53))).toThrowErrorMatchingInlineSnapshot( - `"Value in milliseconds is expected to be a safe positive integer."` + ` +"Value in milliseconds is expected to be a safe positive integer. +Cause: Value in milliseconds is expected to be a safe positive integer." +` ); expect(() => duration().validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [moment.Duration] but got [Array]"` + ` +"expected value of type [moment.Duration] but got [Array] +Cause: expected value of type [moment.Duration] but got [Array]" +` ); expect(() => duration().validate(/abc/)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [moment.Duration] but got [RegExp]"` + ` +"expected value of type [moment.Duration] but got [RegExp] +Cause: expected value of type [moment.Duration] but got [RegExp]" +` ); expect(() => duration().validate('123foo')).toThrowErrorMatchingInlineSnapshot( - `"Failed to parse value as time value. Value must be a duration in milliseconds, or follow the format [ms|s|m|h|d|w|M|Y] (e.g. '70ms', '5s', '3d', '1Y'), where the duration is a safe positive integer."` + ` +"Failed to parse value as time value. Value must be a duration in milliseconds, or follow the format [ms|s|m|h|d|w|M|Y] (e.g. '70ms', '5s', '3d', '1Y'), where the duration is a safe positive integer. +Cause: Failed to parse value as time value. Value must be a duration in milliseconds, or follow the format [ms|s|m|h|d|w|M|Y] (e.g. '70ms', '5s', '3d', '1Y'), where the duration is a safe positive integer." +` ); expect(() => duration().validate('123 456')).toThrowErrorMatchingInlineSnapshot( - `"Failed to parse value as time value. Value must be a duration in milliseconds, or follow the format [ms|s|m|h|d|w|M|Y] (e.g. '70ms', '5s', '3d', '1Y'), where the duration is a safe positive integer."` + ` +"Failed to parse value as time value. Value must be a duration in milliseconds, or follow the format [ms|s|m|h|d|w|M|Y] (e.g. '70ms', '5s', '3d', '1Y'), where the duration is a safe positive integer. +Cause: Failed to parse value as time value. Value must be a duration in milliseconds, or follow the format [ms|s|m|h|d|w|M|Y] (e.g. '70ms', '5s', '3d', '1Y'), where the duration is a safe positive integer." +` ); }); diff --git a/packages/osd-config-schema/src/types/ip_type.test.ts b/packages/osd-config-schema/src/types/ip_type.test.ts index 6052001500ba..d2df6b16bf10 100644 --- a/packages/osd-config-schema/src/types/ip_type.test.ts +++ b/packages/osd-config-schema/src/types/ip_type.test.ts @@ -44,39 +44,70 @@ describe('ip validation', () => { test('rejects ipv6 when not specified', () => { expect(() => ip({ versions: ['ipv4'] }).validate('1200:0000:AB00:1234:0000:2552:7777:1313') - ).toThrowErrorMatchingInlineSnapshot(`"value must be a valid ipv4 address"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"value must be a valid ipv4 address +Cause: value must be a valid ipv4 address" +` + ); }); test('rejects ipv4 when not specified', () => { expect(() => ip({ versions: ['ipv6'] }).validate('1.1.1.1')).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid ipv6 address"` + ` +"value must be a valid ipv6 address +Cause: value must be a valid ipv6 address" +` ); }); test('rejects invalid ip addresses', () => { expect(() => ip().validate('1.1.1.1/24')).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid ipv4 or ipv6 address"` + ` +"value must be a valid ipv4 or ipv6 address +Cause: value must be a valid ipv4 or ipv6 address" +` ); expect(() => ip().validate('99999.1.1.1')).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid ipv4 or ipv6 address"` + ` +"value must be a valid ipv4 or ipv6 address +Cause: value must be a valid ipv4 or ipv6 address" +` ); expect(() => ip().validate('ZZZZ:0000:AB00:1234:0000:2552:7777:1313') - ).toThrowErrorMatchingInlineSnapshot(`"value must be a valid ipv4 or ipv6 address"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"value must be a valid ipv4 or ipv6 address +Cause: value must be a valid ipv4 or ipv6 address" +` + ); expect(() => ip().validate('blah 1234')).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid ipv4 or ipv6 address"` + ` +"value must be a valid ipv4 or ipv6 address +Cause: value must be a valid ipv4 or ipv6 address" +` ); }); }); test('returns error when not string', () => { expect(() => ip().validate(123)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [number]"` + ` +"expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); expect(() => ip().validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [Array]"` + ` +"expected value of type [string] but got [Array] +Cause: expected value of type [string] but got [Array]" +` ); expect(() => ip().validate(/abc/)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [RegExp]"` + ` +"expected value of type [string] but got [RegExp] +Cause: expected value of type [string] but got [RegExp]" +` ); }); diff --git a/packages/osd-config-schema/src/types/literal_type.test.ts b/packages/osd-config-schema/src/types/literal_type.test.ts index fc81d7df23c1..a20ed6226a43 100644 --- a/packages/osd-config-schema/src/types/literal_type.test.ts +++ b/packages/osd-config-schema/src/types/literal_type.test.ts @@ -50,28 +50,48 @@ test('handles null', () => { test('returns error when not correct', () => { expect(() => literal('test').validate('foo')).toThrowErrorMatchingInlineSnapshot( - `"expected value to equal [test]"` + ` +"expected value to equal [test] +Cause: expected value to equal [test]" +` ); expect(() => literal(true).validate(false)).toThrowErrorMatchingInlineSnapshot( - `"expected value to equal [true]"` + ` +"expected value to equal [true] +Cause: expected value to equal [true]" +` ); expect(() => literal('test').validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"expected value to equal [test]"` + ` +"expected value to equal [test] +Cause: expected value to equal [test]" +` ); expect(() => literal(123).validate('abc')).toThrowErrorMatchingInlineSnapshot( - `"expected value to equal [123]"` + ` +"expected value to equal [123] +Cause: expected value to equal [123]" +` ); expect(() => literal(null).validate(42)).toThrowErrorMatchingInlineSnapshot( - `"expected value to equal [null]"` + ` +"expected value to equal [null] +Cause: expected value to equal [null]" +` ); }); test('includes namespace in failure', () => { expect(() => literal('test').validate('foo', {}, 'foo-namespace') - ).toThrowErrorMatchingInlineSnapshot(`"[foo-namespace]: expected value to equal [test]"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"[foo-namespace]: expected value to equal [test] +Cause: expected value to equal [test]" +` + ); }); diff --git a/packages/osd-config-schema/src/types/map_of_type.test.ts b/packages/osd-config-schema/src/types/map_of_type.test.ts index 91055f8dc732..7f418f654ae0 100644 --- a/packages/osd-config-schema/src/types/map_of_type.test.ts +++ b/packages/osd-config-schema/src/types/map_of_type.test.ts @@ -51,14 +51,20 @@ test('properly parse the value if input is a string', () => { test('fails if string input cannot be parsed', () => { const type = schema.mapOf(schema.string(), schema.string()); expect(() => type.validate(`invalidjson`)).toThrowErrorMatchingInlineSnapshot( - `"could not parse map value from json input"` + ` +"could not parse map value from json input +Cause: could not parse map value from json input" +` ); }); test('fails with correct type if parsed input is not an object', () => { const type = schema.mapOf(schema.string(), schema.string()); expect(() => type.validate('[1,2,3]')).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [Map] or [object] but got [string]"` + ` +"expected value of type [Map] or [object] but got [string] +Cause: expected value of type [Map] or [object] but got [string]" +` ); }); @@ -69,7 +75,10 @@ test('fails when not receiving expected value type', () => { }; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[name]: expected value of type [string] but got [number]"` + ` +"[name]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); @@ -78,7 +87,10 @@ test('fails after parsing when not receiving expected value type', () => { const value = `{"name": 123}`; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[name]: expected value of type [string] but got [number]"` + ` +"[name]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); @@ -89,7 +101,10 @@ test('fails when not receiving expected key type', () => { }; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[key(\\"name\\")]: expected value of type [number] but got [string]"` + ` +"[key(\\"name\\")]: expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); }); @@ -98,14 +113,20 @@ test('fails after parsing when not receiving expected key type', () => { const value = `{"name": "foo"}`; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[key(\\"name\\")]: expected value of type [number] but got [string]"` + ` +"[key(\\"name\\")]: expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); }); test('includes namespace in failure when wrong top-level type', () => { const type = schema.mapOf(schema.string(), schema.string()); expect(() => type.validate([], {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [Map] or [object] but got [Array]"` + ` +"[foo-namespace]: expected value of type [Map] or [object] but got [Array] +Cause: expected value of type [Map] or [object] but got [Array]" +` ); }); @@ -116,7 +137,10 @@ test('includes namespace in failure when wrong value type', () => { }; expect(() => type.validate(value, {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace.name]: expected value of type [string] but got [number]"` + ` +"[foo-namespace.name]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); @@ -127,7 +151,10 @@ test('includes namespace in failure when wrong key type', () => { }; expect(() => type.validate(value, {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace.key(\\"name\\")]: expected value of type [number] but got [string]"` + ` +"[foo-namespace.key(\\"name\\")]: expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); }); @@ -184,7 +211,10 @@ test('enforces required object fields within mapOf', () => { }; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[foo.bar.baz]: expected value of type [number] but got [undefined]"` + ` +"[foo.bar.baz]: expected value of type [number] but got [undefined] +Cause: expected value of type [number] but got [undefined]" +` ); }); @@ -198,12 +228,18 @@ test('error preserves full path', () => { expect(() => type.validate({ grandParentKey: { parentKey: { a: 'some-value' } } }) ).toThrowErrorMatchingInlineSnapshot( - `"[grandParentKey.parentKey.key(\\"a\\")]: value has length [1] but it must have a minimum length of [2]."` + ` +"[grandParentKey.parentKey.key(\\"a\\")]: value has length [1] but it must have a minimum length of [2]. +Cause: value has length [1] but it must have a minimum length of [2]." +` ); expect(() => type.validate({ grandParentKey: { parentKey: { ab: 'some-value' } } }) ).toThrowErrorMatchingInlineSnapshot( - `"[grandParentKey.parentKey.ab]: expected value of type [number] but got [string]"` + ` +"[grandParentKey.parentKey.ab]: expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); }); diff --git a/packages/osd-config-schema/src/types/maybe_type.test.ts b/packages/osd-config-schema/src/types/maybe_type.test.ts index 12803f63261e..d8eaa944ab85 100644 --- a/packages/osd-config-schema/src/types/maybe_type.test.ts +++ b/packages/osd-config-schema/src/types/maybe_type.test.ts @@ -54,7 +54,10 @@ test('validates contained type', () => { const type = schema.maybe(schema.string({ maxLength: 1 })); expect(() => type.validate('foo')).toThrowErrorMatchingInlineSnapshot( - `"value has length [3] but it must have a maximum length of [1]."` + ` +"value has length [3] but it must have a maximum length of [1]. +Cause: value has length [3] but it must have a maximum length of [1]." +` ); }); @@ -62,21 +65,30 @@ test('validates basic type', () => { const type = schema.maybe(schema.string()); expect(() => type.validate(666)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [number]"` + ` +"expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); test('fails if null', () => { const type = schema.maybe(schema.string()); expect(() => type.validate(null)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [null]"` + ` +"expected value of type [string] but got [null] +Cause: expected value of type [string] but got [null]" +` ); }); test('includes namespace in failure', () => { const type = schema.maybe(schema.string()); expect(() => type.validate(null, {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [string] but got [null]"` + ` +"[foo-namespace]: expected value of type [string] but got [null] +Cause: expected value of type [string] but got [null]" +` ); }); diff --git a/packages/osd-config-schema/src/types/never_type.test.ts b/packages/osd-config-schema/src/types/never_type.test.ts index 8f14ef92cb23..7475d0caf9ac 100644 --- a/packages/osd-config-schema/src/types/never_type.test.ts +++ b/packages/osd-config-schema/src/types/never_type.test.ts @@ -34,16 +34,28 @@ test('throws on any value set', () => { const type = schema.never(); expect(() => type.validate(1)).toThrowErrorMatchingInlineSnapshot( - `"a value wasn't expected to be present"` + ` +"a value wasn't expected to be present +Cause: a value wasn't expected to be present" +` ); expect(() => type.validate('a')).toThrowErrorMatchingInlineSnapshot( - `"a value wasn't expected to be present"` + ` +"a value wasn't expected to be present +Cause: a value wasn't expected to be present" +` ); expect(() => type.validate(null)).toThrowErrorMatchingInlineSnapshot( - `"a value wasn't expected to be present"` + ` +"a value wasn't expected to be present +Cause: a value wasn't expected to be present" +` ); expect(() => type.validate({})).toThrowErrorMatchingInlineSnapshot( - `"a value wasn't expected to be present"` + ` +"a value wasn't expected to be present +Cause: a value wasn't expected to be present" +` ); expect(() => type.validate(undefined)).not.toThrow(); }); @@ -56,7 +68,12 @@ test('throws on value set as object property', () => { expect(() => type.validate({ name: 'name', status: 'in progress' }) - ).toThrowErrorMatchingInlineSnapshot(`"[name]: a value wasn't expected to be present"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"[name]: a value wasn't expected to be present +Cause: a value wasn't expected to be present" +` + ); expect(() => type.validate({ status: 'in progress' })).not.toThrow(); expect(() => type.validate({ name: undefined, status: 'in progress' })).not.toThrow(); @@ -90,5 +107,10 @@ test('works for conditional types', () => { context_value_2: 1, } ) - ).toThrowErrorMatchingInlineSnapshot(`"[name]: a value wasn't expected to be present"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"[name]: a value wasn't expected to be present +Cause: a value wasn't expected to be present" +` + ); }); diff --git a/packages/osd-config-schema/src/types/nullable_type.test.ts b/packages/osd-config-schema/src/types/nullable_type.test.ts index 13fb02bcbc69..98f5d79131da 100644 --- a/packages/osd-config-schema/src/types/nullable_type.test.ts +++ b/packages/osd-config-schema/src/types/nullable_type.test.ts @@ -106,7 +106,10 @@ test('validates contained type', () => { const type = schema.nullable(schema.string({ maxLength: 1 })); expect(() => type.validate('foo')).toThrowErrorMatchingInlineSnapshot( - `"SchemaTypeError: expected value to equal [null]"` + ` +"SchemaTypeError: expected value to equal [null] +Cause: SchemaTypeError: expected value to equal [null]" +` ); }); @@ -114,7 +117,10 @@ test('validates basic type', () => { const type = schema.nullable(schema.string()); expect(() => type.validate(666)).toThrowErrorMatchingInlineSnapshot( - `"SchemaTypeError: expected value to equal [null]"` + ` +"SchemaTypeError: expected value to equal [null] +Cause: SchemaTypeError: expected value to equal [null]" +` ); }); @@ -137,7 +143,10 @@ test('validates type errors in object', () => { }); expect(() => type.validate({ foo: 'ab' })).toThrowErrorMatchingInlineSnapshot( - `"[foo]: SchemaTypeError: expected value to equal [null]"` + ` +"[foo]: SchemaTypeError: expected value to equal [null] +Cause: SchemaTypeError: expected value to equal [null]" +` ); }); @@ -145,6 +154,9 @@ test('includes namespace in failure', () => { const type = schema.nullable(schema.string({ maxLength: 1 })); expect(() => type.validate('foo', {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: SchemaTypeError: expected value to equal [null]"` + ` +"[foo-namespace]: SchemaTypeError: expected value to equal [null] +Cause: SchemaTypeError: expected value to equal [null]" +` ); }); diff --git a/packages/osd-config-schema/src/types/number_type.test.ts b/packages/osd-config-schema/src/types/number_type.test.ts index cceb42a88992..32ee627b0eda 100644 --- a/packages/osd-config-schema/src/types/number_type.test.ts +++ b/packages/osd-config-schema/src/types/number_type.test.ts @@ -44,13 +44,19 @@ test('handles numeric strings with floats', () => { test('fails if number is `NaN`', () => { expect(() => schema.number().validate(NaN)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [number] but got [number]"` + ` +"expected value of type [number] but got [number] +Cause: expected value of type [number] but got [number]" +` ); }); test('is required by default', () => { expect(() => schema.number().validate(undefined)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [number] but got [undefined]"` + ` +"expected value of type [number] but got [undefined] +Cause: expected value of type [number] but got [undefined]" +` ); }); @@ -58,7 +64,10 @@ test('includes namespace in failure', () => { expect(() => schema.number().validate(undefined, {}, 'foo-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [number] but got [undefined]"` + ` +"[foo-namespace]: expected value of type [number] but got [undefined] +Cause: expected value of type [number] but got [undefined]" +` ); }); @@ -69,7 +78,10 @@ describe('#min', () => { test('returns error when smaller number', () => { expect(() => schema.number({ min: 4 }).validate(3)).toThrowErrorMatchingInlineSnapshot( - `"Value must be equal to or greater than [4]."` + ` +"Value must be equal to or greater than [4]. +Cause: Value must be equal to or greater than [4]." +` ); }); }); @@ -81,7 +93,10 @@ describe('#max', () => { test('returns error when larger number', () => { expect(() => schema.number({ max: 2 }).validate(3)).toThrowErrorMatchingInlineSnapshot( - `"Value must be equal to or lower than [2]."` + ` +"Value must be equal to or lower than [2]. +Cause: Value must be equal to or lower than [2]." +` ); }); }); @@ -98,14 +113,23 @@ describe('#defaultValue', () => { test('returns error when not number or numeric string', () => { expect(() => schema.number().validate('test')).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [number] but got [string]"` + ` +"expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); expect(() => schema.number().validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [number] but got [Array]"` + ` +"expected value of type [number] but got [Array] +Cause: expected value of type [number] but got [Array]" +` ); expect(() => schema.number().validate(/abc/)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [number] but got [RegExp]"` + ` +"expected value of type [number] but got [RegExp] +Cause: expected value of type [number] but got [RegExp]" +` ); }); diff --git a/packages/osd-config-schema/src/types/object_type.test.ts b/packages/osd-config-schema/src/types/object_type.test.ts index fa2c1fea17b6..7da3926d907d 100644 --- a/packages/osd-config-schema/src/types/object_type.test.ts +++ b/packages/osd-config-schema/src/types/object_type.test.ts @@ -62,7 +62,10 @@ test('fails if string input cannot be parsed', () => { name: schema.string(), }); expect(() => type.validate(`invalidjson`)).toThrowErrorMatchingInlineSnapshot( - `"could not parse object value from json input"` + ` +"could not parse object value from json input +Cause: could not parse object value from json input" +` ); }); @@ -71,7 +74,10 @@ test('fails with correct type if parsed input is not an object', () => { name: schema.string(), }); expect(() => type.validate('[1,2,3]')).toThrowErrorMatchingInlineSnapshot( - `"expected a plain object value, but found [Array] instead."` + ` +"expected a plain object value, but found [Array] instead. +Cause: expected a plain object value, but found [Array] instead." +` ); }); @@ -82,7 +88,10 @@ test('fails if missing required value', () => { const value = {}; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[name]: expected value of type [string] but got [undefined]"` + ` +"[name]: expected value of type [string] but got [undefined] +Cause: expected value of type [string] but got [undefined]" +` ); }); @@ -105,7 +114,10 @@ test('fails if key does not exist in schema', () => { }; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[bar]: definition for this key is missing"` + ` +"[bar]: definition for this key is missing +Cause: definition for this key is missing" +` ); }); @@ -158,10 +170,16 @@ test('object within object with key without defaultValue', () => { const value = { foo: {} }; expect(() => type.validate(undefined)).toThrowErrorMatchingInlineSnapshot( - `"[foo.bar]: expected value of type [string] but got [undefined]"` + ` +"[foo.bar]: expected value of type [string] but got [undefined] +Cause: expected value of type [string] but got [undefined]" +` ); expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[foo.bar]: expected value of type [string] but got [undefined]"` + ` +"[foo.bar]: expected value of type [string] but got [undefined] +Cause: expected value of type [string] but got [undefined]" +` ); }); @@ -194,10 +212,16 @@ test('called with wrong type', () => { const type = schema.object({}); expect(() => type.validate('foo')).toThrowErrorMatchingInlineSnapshot( - `"could not parse object value from json input"` + ` +"could not parse object value from json input +Cause: could not parse object value from json input" +` ); expect(() => type.validate(123)).toThrowErrorMatchingInlineSnapshot( - `"expected a plain object value, but found [number] instead."` + ` +"expected a plain object value, but found [number] instead. +Cause: expected a plain object value, but found [number] instead." +` ); }); @@ -208,7 +232,10 @@ test('handles oneOf', () => { expect(type.validate({ key: 'foo' })).toEqual({ key: 'foo' }); expect(() => type.validate({ key: 123 })).toThrowErrorMatchingInlineSnapshot( - `"[key]: expected value of type [string] but got [number]"` + ` +"[key]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); @@ -259,7 +286,10 @@ test('includes namespace in failure when wrong top-level type', () => { }); expect(() => type.validate([], {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected a plain object value, but found [Array] instead."` + ` +"[foo-namespace]: expected a plain object value, but found [Array] instead. +Cause: expected a plain object value, but found [Array] instead." +` ); }); @@ -272,7 +302,10 @@ test('includes namespace in failure when wrong value type', () => { }; expect(() => type.validate(value, {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace.foo]: expected value of type [string] but got [number]"` + ` +"[foo-namespace.foo]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); @@ -282,7 +315,7 @@ test('individual keys can validated', () => { }); const value = false; - expect(() => type.validateKey('foo', value)).not.toThrowError(); + expect(() => type.validateKey('foo', value)).not.toThrow(); expect(() => type.validateKey('bar', '')).toThrowErrorMatchingInlineSnapshot( `"bar is not a valid part of this schema"` ); @@ -317,7 +350,12 @@ test('unknowns = `allow` affects only own keys', () => { baz: 'baz', }, }) - ).toThrowErrorMatchingInlineSnapshot(`"[foo.baz]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"[foo.baz]: definition for this key is missing +Cause: definition for this key is missing" +` + ); }); test('does not allow unknown keys when unknowns = `forbid`', () => { @@ -329,7 +367,12 @@ test('does not allow unknown keys when unknowns = `forbid`', () => { type.validate({ bar: 'baz', }) - ).toThrowErrorMatchingInlineSnapshot(`"[bar]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"[bar]: definition for this key is missing +Cause: definition for this key is missing" +` + ); }); test('allow and remove unknown keys when unknowns = `ignore`', () => { @@ -360,7 +403,12 @@ test('unknowns = `ignore` affects only own keys', () => { baz: 'baz', }, }) - ).toThrowErrorMatchingInlineSnapshot(`"[foo.baz]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"[foo.baz]: definition for this key is missing +Cause: definition for this key is missing" +` + ); }); test('handles optional properties', () => { @@ -397,12 +445,15 @@ describe('#extends', () => { expect(() => { extended.validate({ initial: 'foo' }); }).toThrowErrorMatchingInlineSnapshot( - `"[added]: expected value of type [number] but got [undefined]"` + ` +"[added]: expected value of type [number] but got [undefined] +Cause: expected value of type [number] but got [undefined]" +` ); expect(() => { extended.validate({ initial: 'foo', added: 42 }); - }).not.toThrowError(); + }).not.toThrow(); expectType>({ added: 12, @@ -420,11 +471,16 @@ describe('#extends', () => { expect(() => { extended.validate({ string: 'foo', number: 12 }); - }).toThrowErrorMatchingInlineSnapshot(`"[number]: definition for this key is missing"`); + }).toThrowErrorMatchingInlineSnapshot( + ` +"[number]: definition for this key is missing +Cause: definition for this key is missing" +` + ); expect(() => { extended.validate({ string: 'foo' }); - }).not.toThrowError(); + }).not.toThrow(); expectType>({ string: 'foo', @@ -444,12 +500,15 @@ describe('#extends', () => { expect(() => { extended.validate({ string: 'foo', mutated: 12 }); }).toThrowErrorMatchingInlineSnapshot( - `"[mutated]: expected value of type [string] but got [number]"` + ` +"[mutated]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); expect(() => { extended.validate({ string: 'foo', mutated: 'bar' }); - }).not.toThrowError(); + }).not.toThrow(); expectType>({ string: 'foo', @@ -472,16 +531,22 @@ describe('#extends', () => { expect(() => { extended.validate({ original: 'foo' }); }).toThrowErrorMatchingInlineSnapshot( - `"[mutated]: expected value of type [string] but got [undefined]"` + ` +"[mutated]: expected value of type [string] but got [undefined] +Cause: expected value of type [string] but got [undefined]" +` ); expect(() => { extended.validate({ original: 'foo' }); }).toThrowErrorMatchingInlineSnapshot( - `"[mutated]: expected value of type [string] but got [undefined]"` + ` +"[mutated]: expected value of type [string] but got [undefined] +Cause: expected value of type [string] but got [undefined]" +` ); expect(() => { extended.validate({ original: 'foo', mutated: 'bar' }); - }).not.toThrowError(); + }).not.toThrow(); expectType>({ original: 'foo', diff --git a/packages/osd-config-schema/src/types/object_type.ts b/packages/osd-config-schema/src/types/object_type.ts index 980bf2f10a9f..a32891cf100c 100644 --- a/packages/osd-config-schema/src/types/object_type.ts +++ b/packages/osd-config-schema/src/types/object_type.ts @@ -56,10 +56,9 @@ type RequiredProperties = Pick< // Because of https://github.com/Microsoft/TypeScript/issues/14041 // this might not have perfect _rendering_ output, but it will be typed. export type ObjectResultType

= Readonly< - { [K in keyof OptionalProperties

]?: TypeOf } & - { - [K in keyof RequiredProperties

]: TypeOf; - } + { [K in keyof OptionalProperties

]?: TypeOf } & { + [K in keyof RequiredProperties

]: TypeOf; + } >; type DefinedProperties = Pick< @@ -69,10 +68,9 @@ type DefinedProperties = Pick< }[keyof Base] >; -type ExtendedProps

= Omit & - { - [K in keyof DefinedProperties]: NP[K]; - }; +type ExtendedProps

= Omit & { + [K in keyof DefinedProperties]: NP[K]; +}; type ExtendedObjectType

= ObjectType< ExtendedProps @@ -188,15 +186,18 @@ export class ObjectType

extends Type> const extendedProps = Object.entries({ ...this.props, ...newProps, - }).reduce((memo, [key, value]) => { - if (value !== null && value !== undefined) { - return { - ...memo, - [key]: value, - }; - } - return memo; - }, {} as ExtendedProps); + }).reduce( + (memo, [key, value]) => { + if (value !== null && value !== undefined) { + return { + ...memo, + [key]: value, + }; + } + return memo; + }, + {} as ExtendedProps + ); const extendedOptions = { ...this.options, diff --git a/packages/osd-config-schema/src/types/one_of_type.test.ts b/packages/osd-config-schema/src/types/one_of_type.test.ts index ae4ca00fa89e..9e3884dac2b3 100644 --- a/packages/osd-config-schema/src/types/one_of_type.test.ts +++ b/packages/osd-config-schema/src/types/one_of_type.test.ts @@ -87,7 +87,10 @@ test('handles object with wrong type', () => { const type = schema.oneOf([schema.object({ age: schema.number() })]); expect(() => type.validate({ age: 'foo' })).toThrowErrorMatchingInlineSnapshot( - `"[age]: expected value of type [number] but got [string]"` + ` +"[age]: expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); }); @@ -97,7 +100,10 @@ test('includes namespace in failure', () => { expect(() => type.validate({ age: 'foo' }, {}, 'foo-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace.age]: expected value of type [number] but got [string]"` + ` +"[foo-namespace.age]: expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); }); @@ -128,10 +134,16 @@ test('fails if not matching type', () => { const type = schema.oneOf([schema.string()]); expect(() => type.validate(false)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [boolean]"` + ` +"expected value of type [string] but got [boolean] +Cause: expected value of type [string] but got [boolean]" +` ); expect(() => type.validate(123)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [number]"` + ` +"expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); @@ -139,7 +151,10 @@ test('fails if not matching multiple types', () => { const type = schema.oneOf([schema.string(), schema.number()]); expect(() => type.validate(false)).toThrowErrorMatchingInlineSnapshot( - `"SchemaTypeError: expected value of type [number] but got [boolean]"` + ` +"SchemaTypeError: expected value of type [number] but got [boolean] +Cause: SchemaTypeError: expected value of type [number] but got [boolean]" +` ); }); @@ -147,7 +162,10 @@ test('fails if not matching literal', () => { const type = schema.oneOf([schema.literal('foo')]); expect(() => type.validate('bar')).toThrowErrorMatchingInlineSnapshot( - `"expected value to equal [foo]"` + ` +"expected value to equal [foo] +Cause: expected value to equal [foo]" +` ); }); @@ -158,6 +176,9 @@ test('fails if nested union type fail', () => { ]); expect(() => type.validate('aaa')).toThrowErrorMatchingInlineSnapshot( - `"SchemaTypeError: SchemaTypeError: expected value of type [number] but got [string]"` + ` +"SchemaTypeError: SchemaTypeError: expected value of type [number] but got [string] +Cause: SchemaTypeError: SchemaTypeError: expected value of type [number] but got [string]" +` ); }); diff --git a/packages/osd-config-schema/src/types/record_of_type.test.ts b/packages/osd-config-schema/src/types/record_of_type.test.ts index 07ace4fae473..46302a0432a5 100644 --- a/packages/osd-config-schema/src/types/record_of_type.test.ts +++ b/packages/osd-config-schema/src/types/record_of_type.test.ts @@ -48,7 +48,10 @@ test('fails with correct type if parsed input is a plain object', () => { const type = schema.recordOf(schema.string(), schema.string()); const value = `["a", "b"]`; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [object] but got [Array]"` + ` +"expected value of type [object] but got [Array] +Cause: expected value of type [object] but got [Array]" +` ); }); @@ -59,7 +62,10 @@ test('fails when not receiving expected value type', () => { }; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[name]: expected value of type [string] but got [number]"` + ` +"[name]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); @@ -68,7 +74,10 @@ test('fails after parsing when not receiving expected value type', () => { const value = `{"name": 123}`; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[name]: expected value of type [string] but got [number]"` + ` +"[name]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); @@ -83,7 +92,10 @@ test('fails when not receiving expected key type', () => { }; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[key(\\"name\\")]: SchemaTypeError: expected value to equal [lastName]"` + ` +"[key(\\"name\\")]: SchemaTypeError: expected value to equal [lastName] +Cause: SchemaTypeError: expected value to equal [lastName]" +` ); }); @@ -96,14 +108,20 @@ test('fails after parsing when not receiving expected key type', () => { const value = `{"name": "foo"}`; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[key(\\"name\\")]: SchemaTypeError: expected value to equal [lastName]"` + ` +"[key(\\"name\\")]: SchemaTypeError: expected value to equal [lastName] +Cause: SchemaTypeError: expected value to equal [lastName]" +` ); }); test('includes namespace in failure when wrong top-level type', () => { const type = schema.recordOf(schema.string(), schema.string()); expect(() => type.validate([], {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [object] but got [Array]"` + ` +"[foo-namespace]: expected value of type [object] but got [Array] +Cause: expected value of type [object] but got [Array]" +` ); }); @@ -114,7 +132,10 @@ test('includes namespace in failure when wrong value type', () => { }; expect(() => type.validate(value, {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace.name]: expected value of type [string] but got [number]"` + ` +"[foo-namespace.name]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); @@ -125,7 +146,10 @@ test('includes namespace in failure when wrong key type', () => { }; expect(() => type.validate(value, {}, 'foo-namespace')).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace.key(\\"name\\")]: value has length [4] but it must have a minimum length of [10]."` + ` +"[foo-namespace.key(\\"name\\")]: value has length [4] but it must have a minimum length of [10]. +Cause: value has length [4] but it must have a minimum length of [10]." +` ); }); @@ -180,7 +204,10 @@ test('enforces required object fields within recordOf', () => { }; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[foo.bar.baz]: expected value of type [number] but got [undefined]"` + ` +"[foo.bar.baz]: expected value of type [number] but got [undefined] +Cause: expected value of type [number] but got [undefined]" +` ); }); @@ -194,12 +221,18 @@ test('error preserves full path', () => { expect(() => type.validate({ grandParentKey: { parentKey: { a: 'some-value' } } }) ).toThrowErrorMatchingInlineSnapshot( - `"[grandParentKey.parentKey.key(\\"a\\")]: value has length [1] but it must have a minimum length of [2]."` + ` +"[grandParentKey.parentKey.key(\\"a\\")]: value has length [1] but it must have a minimum length of [2]. +Cause: value has length [1] but it must have a minimum length of [2]." +` ); expect(() => type.validate({ grandParentKey: { parentKey: { ab: 'some-value' } } }) ).toThrowErrorMatchingInlineSnapshot( - `"[grandParentKey.parentKey.ab]: expected value of type [number] but got [string]"` + ` +"[grandParentKey.parentKey.ab]: expected value of type [number] but got [string] +Cause: expected value of type [number] but got [string]" +` ); }); diff --git a/packages/osd-config-schema/src/types/stream_type.test.ts b/packages/osd-config-schema/src/types/stream_type.test.ts index dd12897a86fd..49e63b680c64 100644 --- a/packages/osd-config-schema/src/types/stream_type.test.ts +++ b/packages/osd-config-schema/src/types/stream_type.test.ts @@ -53,7 +53,10 @@ test('Passthrough is valid', () => { test('is required by default', () => { expect(() => schema.buffer().validate(undefined)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [Buffer] but got [undefined]"` + ` +"expected value of type [Buffer] but got [undefined] +Cause: expected value of type [Buffer] but got [undefined]" +` ); }); @@ -61,7 +64,10 @@ test('includes namespace in failure', () => { expect(() => schema.stream().validate(undefined, {}, 'foo-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [Stream] but got [undefined]"` + ` +"[foo-namespace]: expected value of type [Stream] but got [undefined] +Cause: expected value of type [Stream] but got [undefined]" +` ); }); @@ -90,14 +96,23 @@ describe('#defaultValue', () => { test('returns error when not a stream', () => { expect(() => schema.stream().validate(123)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [Stream] but got [number]"` + ` +"expected value of type [Stream] but got [number] +Cause: expected value of type [Stream] but got [number]" +` ); expect(() => schema.stream().validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [Stream] but got [Array]"` + ` +"expected value of type [Stream] but got [Array] +Cause: expected value of type [Stream] but got [Array]" +` ); expect(() => schema.stream().validate('abc')).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [Stream] but got [string]"` + ` +"expected value of type [Stream] but got [string] +Cause: expected value of type [Stream] but got [string]" +` ); }); diff --git a/packages/osd-config-schema/src/types/string_type.test.ts b/packages/osd-config-schema/src/types/string_type.test.ts index 6a6598347937..df3215f73cd6 100644 --- a/packages/osd-config-schema/src/types/string_type.test.ts +++ b/packages/osd-config-schema/src/types/string_type.test.ts @@ -40,7 +40,10 @@ test('allows empty strings', () => { test('is required by default', () => { expect(() => schema.string().validate(undefined)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [undefined]"` + ` +"expected value of type [string] but got [undefined] +Cause: expected value of type [string] but got [undefined]" +` ); }); @@ -48,7 +51,10 @@ test('includes namespace in failure', () => { expect(() => schema.string().validate(undefined, {}, 'foo-namespace') ).toThrowErrorMatchingInlineSnapshot( - `"[foo-namespace]: expected value of type [string] but got [undefined]"` + ` +"[foo-namespace]: expected value of type [string] but got [undefined] +Cause: expected value of type [string] but got [undefined]" +` ); }); @@ -61,13 +67,19 @@ describe('#minLength', () => { expect(() => schema.string({ minLength: 4 }).validate('foo') ).toThrowErrorMatchingInlineSnapshot( - `"value has length [3] but it must have a minimum length of [4]."` + ` +"value has length [3] but it must have a minimum length of [4]. +Cause: value has length [3] but it must have a minimum length of [4]." +` ); }); test('returns error when empty string', () => { expect(() => schema.string({ minLength: 2 }).validate('')).toThrowErrorMatchingInlineSnapshot( - `"value has length [0] but it must have a minimum length of [2]."` + ` +"value has length [0] but it must have a minimum length of [2]. +Cause: value has length [0] but it must have a minimum length of [2]." +` ); }); }); @@ -81,11 +93,63 @@ describe('#maxLength', () => { expect(() => schema.string({ maxLength: 2 }).validate('foo') ).toThrowErrorMatchingInlineSnapshot( - `"value has length [3] but it must have a maximum length of [2]."` + ` +"value has length [3] but it must have a maximum length of [2]. +Cause: value has length [3] but it must have a maximum length of [2]." +` ); }); }); +describe('#minLength and #maxLength combined', () => { + test('returns value when within range', () => { + expect(schema.string({ minLength: 1, maxLength: 10 }).validate('hello')).toBe('hello'); + }); + + test('rejects empty string when minLength is 1', () => { + expect(() => + schema.string({ minLength: 1, maxLength: 200000 }).validate('') + ).toThrowErrorMatchingInlineSnapshot( + ` +"value has length [0] but it must have a minimum length of [1]. +Cause: value has length [0] but it must have a minimum length of [1]." +` + ); + }); + + test('rejects string exceeding maxLength', () => { + expect(() => + schema.string({ minLength: 1, maxLength: 5 }).validate('toolong') + ).toThrowErrorMatchingInlineSnapshot( + ` +"value has length [7] but it must have a maximum length of [5]. +Cause: value has length [7] but it must have a maximum length of [5]." +` + ); + }); + + test('rejects empty string inside schema.object', () => { + const objSchema = schema.object({ + value: schema.string({ minLength: 1, maxLength: 200000 }), + }); + expect(() => objSchema.validate({ value: '' })).toThrow( + 'value has length [0] but it must have a minimum length of [1]' + ); + }); + + test('works with minLength + maxLength + validate combined', () => { + const s = schema.string({ + minLength: 1, + maxLength: 512, + validate: (value) => (/^[A-Za-z0-9_-]+$/.test(value) ? undefined : 'invalid chars'), + }); + expect(() => s.validate('')).toThrow('minimum length of [1]'); + expect(() => s.validate('a'.repeat(513))).toThrow('maximum length of [512]'); + expect(() => s.validate('abc/def')).toThrow('invalid chars'); + expect(s.validate('valid-id_123')).toBe('valid-id_123'); + }); +}); + describe('#hostname', () => { test('returns value for valid hostname as per RFC1123', () => { const hostNameSchema = schema.string({ hostname: true }); @@ -110,27 +174,45 @@ describe('#hostname', () => { const hostNameSchema = schema.string({ hostname: true }); expect(() => hostNameSchema.validate('host:name')).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid hostname (see RFC 1123)."` + ` +"value must be a valid hostname (see RFC 1123). +Cause: value must be a valid hostname (see RFC 1123)." +` ); expect(() => hostNameSchema.validate('localhost:5601')).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid hostname (see RFC 1123)."` + ` +"value must be a valid hostname (see RFC 1123). +Cause: value must be a valid hostname (see RFC 1123)." +` ); expect(() => hostNameSchema.validate('-')).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid hostname (see RFC 1123)."` + ` +"value must be a valid hostname (see RFC 1123). +Cause: value must be a valid hostname (see RFC 1123)." +` ); expect(() => hostNameSchema.validate('0:?:0:0:0:0:0:1')).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid hostname (see RFC 1123)."` + ` +"value must be a valid hostname (see RFC 1123). +Cause: value must be a valid hostname (see RFC 1123)." +` ); const tooLongHostName = 'a'.repeat(256); expect(() => hostNameSchema.validate(tooLongHostName)).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid hostname (see RFC 1123)."` + ` +"value must be a valid hostname (see RFC 1123). +Cause: value must be a valid hostname (see RFC 1123)." +` ); }); test('returns error when empty string', () => { expect(() => schema.string({ hostname: true }).validate('')).toThrowErrorMatchingInlineSnapshot( - `"string.empty"` + ` +"string.empty +Cause: string.empty" +` ); }); @@ -138,7 +220,10 @@ describe('#hostname', () => { expect(() => schema.string({ hostname: true, maxLength: 3 }).validate('www.example.com') ).toThrowErrorMatchingInlineSnapshot( - `"value has length [15] but it must have a maximum length of [3]."` + ` +"value has length [15] but it must have a maximum length of [3]. +Cause: value has length [15] but it must have a maximum length of [3]." +` ); }); }); @@ -186,7 +271,10 @@ describe('#validate', () => { const validate = () => 'validator failure'; expect(() => schema.string({ validate }).validate('foo')).toThrowErrorMatchingInlineSnapshot( - `"validator failure"` + ` +"validator failure +Cause: validator failure" +` ); }); @@ -194,21 +282,33 @@ describe('#validate', () => { const validate = () => 'validator failure'; expect(() => schema.string({ validate }).validate('')).toThrowErrorMatchingInlineSnapshot( - `"validator failure"` + ` +"validator failure +Cause: validator failure" +` ); }); }); test('returns error when not string', () => { expect(() => schema.string().validate(123)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [number]"` + ` +"expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); expect(() => schema.string().validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [Array]"` + ` +"expected value of type [string] but got [Array] +Cause: expected value of type [string] but got [Array]" +` ); expect(() => schema.string().validate(/abc/)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [RegExp]"` + ` +"expected value of type [string] but got [RegExp] +Cause: expected value of type [string] but got [RegExp]" +` ); }); diff --git a/packages/osd-config-schema/src/types/string_type.ts b/packages/osd-config-schema/src/types/string_type.ts index 8ec3219c48d2..d31df0feef85 100644 --- a/packages/osd-config-schema/src/types/string_type.ts +++ b/packages/osd-config-schema/src/types/string_type.ts @@ -47,26 +47,27 @@ export class StringType extends Type { let schema = options.hostname === true ? internals.string().hostname() - : ((internals.any() as unknown) as OsdSchema).osdCustom((value: any) => { + : (internals.any() as unknown as OsdSchema).osdCustom((value: any) => { if (typeof value !== 'string') { return `expected value of type [string] but got [${typeDetect(value)}]`; } }); - if (options.minLength !== undefined) { - schema = ((schema as unknown) as OsdSchema).osdCustom((value: any) => { - if (value.length < options.minLength!) { - return `value has length [${value.length}] but it must have a minimum length of [${options.minLength}].`; + if (options.minLength !== undefined || options.maxLength !== undefined || options.validate) { + const { minLength, maxLength, validate: userValidate } = options; + schema = (schema as unknown as OsdSchema).osdCustom((value: any) => { + if (minLength !== undefined && value.length < minLength) { + return `value has length [${value.length}] but it must have a minimum length of [${minLength}].`; } - }); - } - - if (options.maxLength !== undefined) { - schema = ((schema as unknown) as OsdSchema).osdCustom((value: any) => { - if (value.length > options.maxLength!) { - return `value has length [${value.length}] but it must have a maximum length of [${options.maxLength}].`; + if (maxLength !== undefined && value.length > maxLength) { + return `value has length [${value.length}] but it must have a maximum length of [${maxLength}].`; + } + if (userValidate) { + return userValidate(value); } }); + // Prevent the base Type class from adding another osdCustom for validate + delete (options as any).validate; } super(schema, options); diff --git a/packages/osd-config-schema/src/types/type.ts b/packages/osd-config-schema/src/types/type.ts index bc3cc2528bfa..bf945fe71394 100644 --- a/packages/osd-config-schema/src/types/type.ts +++ b/packages/osd-config-schema/src/types/type.ts @@ -69,7 +69,7 @@ export abstract class Type { } if (options.validate) { - schema = ((schema as unknown) as OsdSchema).osdCustom(options.validate); + schema = (schema as unknown as OsdSchema).osdCustom(options.validate); } // Attach generic error handler only if it hasn't been attached yet since diff --git a/packages/osd-config-schema/src/types/uri_type.test.ts b/packages/osd-config-schema/src/types/uri_type.test.ts index 92386d95de9d..62ff3d5aef32 100644 --- a/packages/osd-config-schema/src/types/uri_type.test.ts +++ b/packages/osd-config-schema/src/types/uri_type.test.ts @@ -32,7 +32,10 @@ import { schema } from '..'; test('is required by default', () => { expect(() => schema.uri().validate(undefined)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [undefined]."` + ` +"expected value of type [string] but got [undefined]. +Cause: expected value of type [string] but got [undefined]." +` ); }); @@ -74,21 +77,40 @@ test('returns error when value is not a URI', () => { const uriSchema = schema.uri(); expect(() => uriSchema.validate('3domain.local')).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid URI (see RFC 3986)."` + ` +"value must be a valid URI (see RFC 3986). +Cause: value must be a valid URI (see RFC 3986)." +` ); expect(() => uriSchema.validate('http://8010:0:0:0:9:500:300C:200A') - ).toThrowErrorMatchingInlineSnapshot(`"value must be a valid URI (see RFC 3986)."`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"value must be a valid URI (see RFC 3986). +Cause: value must be a valid URI (see RFC 3986)." +` + ); expect(() => uriSchema.validate('-')).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid URI (see RFC 3986)."` + ` +"value must be a valid URI (see RFC 3986). +Cause: value must be a valid URI (see RFC 3986)." +` ); expect(() => uriSchema.validate('https://example.com?baz[]=foo&baz[]=bar') - ).toThrowErrorMatchingInlineSnapshot(`"value must be a valid URI (see RFC 3986)."`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"value must be a valid URI (see RFC 3986). +Cause: value must be a valid URI (see RFC 3986)." +` + ); const tooLongUri = `http://${'a'.repeat(256)}`; expect(() => uriSchema.validate(tooLongUri)).toThrowErrorMatchingInlineSnapshot( - `"value must be a valid URI (see RFC 3986)."` + ` +"value must be a valid URI (see RFC 3986). +Cause: value must be a valid URI (see RFC 3986)." +` ); }); @@ -104,11 +126,19 @@ describe('#scheme', () => { const uriSchema = schema.uri({ scheme: ['http', 'https'] }); expect(() => uriSchema.validate('ftp://opensearch.org')).toThrowErrorMatchingInlineSnapshot( - `"expected URI with scheme [http|https]."` + ` +"expected URI with scheme [http|https]. +Cause: expected URI with scheme [http|https]." +` ); expect(() => uriSchema.validate('file:///opensearch_dashboards.log') - ).toThrowErrorMatchingInlineSnapshot(`"expected URI with scheme [http|https]."`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"expected URI with scheme [http|https]. +Cause: expected URI with scheme [http|https]." +` + ); }); }); @@ -164,20 +194,34 @@ describe('#validate', () => { expect(() => schema.uri({ validate }).validate('http://opensearch-dashboards.local') - ).toThrowErrorMatchingInlineSnapshot(`"validator failure"`); + ).toThrowErrorMatchingInlineSnapshot( + ` +"validator failure +Cause: validator failure" +` + ); }); }); test('returns error when not string', () => { expect(() => schema.uri().validate(123)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [number]."` + ` +"expected value of type [string] but got [number]. +Cause: expected value of type [string] but got [number]." +` ); expect(() => schema.uri().validate([1, 2, 3])).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [Array]."` + ` +"expected value of type [string] but got [Array]. +Cause: expected value of type [string] but got [Array]." +` ); expect(() => schema.uri().validate(/abc/)).toThrowErrorMatchingInlineSnapshot( - `"expected value of type [string] but got [RegExp]."` + ` +"expected value of type [string] but got [RegExp]. +Cause: expected value of type [string] but got [RegExp]." +` ); }); diff --git a/packages/osd-config/package.json b/packages/osd-config/package.json index 2b94b9efa1f0..6689990d56ce 100644 --- a/packages/osd-config/package.json +++ b/packages/osd-config/package.json @@ -14,7 +14,7 @@ "@osd/config-schema": "1.0.0", "@osd/logging": "1.0.0", "@osd/std": "1.0.0", - "js-yaml": "^4.1.1", + "js-yaml": "^4.3.0", "load-json-file": "^6.2.0", "lodash": "^4.18.0", "moment": "^2.24.0", diff --git a/packages/osd-config/src/__snapshots__/config_service.test.ts.snap b/packages/osd-config/src/__snapshots__/config_service.test.ts.snap index 1f5c442e1ae2..8626fc688401 100644 --- a/packages/osd-config/src/__snapshots__/config_service.test.ts.snap +++ b/packages/osd-config/src/__snapshots__/config_service.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`correctly passes context 1`] = ` Object { diff --git a/packages/osd-config/src/__snapshots__/env.test.ts.snap b/packages/osd-config/src/__snapshots__/env.test.ts.snap index 74a05672b5d0..0f8f9b63a38e 100644 --- a/packages/osd-config/src/__snapshots__/env.test.ts.snap +++ b/packages/osd-config/src/__snapshots__/env.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`correctly creates default environment if \`--env.name\` is supplied.: dev env properties 1`] = ` Env { diff --git a/packages/osd-config/src/config_service.test.ts b/packages/osd-config/src/config_service.test.ts index 0f634537be7e..5574867cf290 100644 --- a/packages/osd-config/src/config_service.test.ts +++ b/packages/osd-config/src/config_service.test.ts @@ -452,7 +452,10 @@ test('throws during validation is any schema is invalid', async () => { await configService.setSchema('numberKey', schema.number()); await expect(configService.validate()).rejects.toThrowErrorMatchingInlineSnapshot( - `"[config validation of [stringKey]]: expected value of type [string] but got [number]"` + ` +"[config validation of [stringKey]]: expected value of type [string] but got [number] +Cause: expected value of type [string] but got [number]" +` ); }); diff --git a/packages/osd-config/src/deprecation/deprecation_factory.test.ts b/packages/osd-config/src/deprecation/deprecation_factory.test.ts index 0930bca55eab..d5dba2357e4e 100644 --- a/packages/osd-config/src/deprecation/deprecation_factory.test.ts +++ b/packages/osd-config/src/deprecation/deprecation_factory.test.ts @@ -32,13 +32,8 @@ import { ConfigDeprecationLogger } from './types'; import { configDeprecationFactory } from './deprecation_factory'; describe('DeprecationFactory', () => { - const { - rename, - unused, - renameFromRoot, - unusedFromRoot, - renameFromRootWithoutMap, - } = configDeprecationFactory; + const { rename, unused, renameFromRoot, unusedFromRoot, renameFromRootWithoutMap } = + configDeprecationFactory; let deprecationMessages: string[]; const logger: ConfigDeprecationLogger = (msg) => deprecationMessages.push(msg); diff --git a/packages/osd-config/src/deprecation/deprecation_factory.ts b/packages/osd-config/src/deprecation/deprecation_factory.ts index 458292745f59..b2514b81655c 100644 --- a/packages/osd-config/src/deprecation/deprecation_factory.ts +++ b/packages/osd-config/src/deprecation/deprecation_factory.ts @@ -113,33 +113,35 @@ const _unused = ( return config; }; -const renameWithoutMap = (oldKey: string, newKey: string): ConfigDeprecation => ( - config, - rootPath, - log -) => _renameWithoutMap(config, rootPath, log, oldKey, newKey); - -const renameFromRootWithoutMap = ( - oldKey: string, - newKey: string, - silent?: boolean -): ConfigDeprecation => (config, rootPath, log) => - _renameWithoutMap(config, '', log, oldKey, newKey, silent); - -const rename = (oldKey: string, newKey: string): ConfigDeprecation => (config, rootPath, log) => - _rename(config, rootPath, log, oldKey, newKey); - -const renameFromRoot = (oldKey: string, newKey: string, silent?: boolean): ConfigDeprecation => ( - config, - rootPath, - log -) => _rename(config, '', log, oldKey, newKey, silent); - -const unused = (unusedKey: string): ConfigDeprecation => (config, rootPath, log) => - _unused(config, rootPath, log, unusedKey); - -const unusedFromRoot = (unusedKey: string): ConfigDeprecation => (config, rootPath, log) => - _unused(config, '', log, unusedKey); +const renameWithoutMap = + (oldKey: string, newKey: string): ConfigDeprecation => + (config, rootPath, log) => + _renameWithoutMap(config, rootPath, log, oldKey, newKey); + +const renameFromRootWithoutMap = + (oldKey: string, newKey: string, silent?: boolean): ConfigDeprecation => + (config, rootPath, log) => + _renameWithoutMap(config, '', log, oldKey, newKey, silent); + +const rename = + (oldKey: string, newKey: string): ConfigDeprecation => + (config, rootPath, log) => + _rename(config, rootPath, log, oldKey, newKey); + +const renameFromRoot = + (oldKey: string, newKey: string, silent?: boolean): ConfigDeprecation => + (config, rootPath, log) => + _rename(config, '', log, oldKey, newKey, silent); + +const unused = + (unusedKey: string): ConfigDeprecation => + (config, rootPath, log) => + _unused(config, rootPath, log, unusedKey); + +const unusedFromRoot = + (unusedKey: string): ConfigDeprecation => + (config, rootPath, log) => + _unused(config, '', log, unusedKey); const getPath = (rootPath: string, subPath: string) => rootPath !== '' ? `${rootPath}.${subPath}` : subPath; diff --git a/packages/osd-config/src/env.ts b/packages/osd-config/src/env.ts index e27498c341a0..b33562e4736d 100644 --- a/packages/osd-config/src/env.ts +++ b/packages/osd-config/src/env.ts @@ -120,7 +120,11 @@ export class Env { /** * @internal */ - constructor(public readonly homeDir: string, pkg: RawPackageInfo, options: EnvOptions) { + constructor( + public readonly homeDir: string, + pkg: RawPackageInfo, + options: EnvOptions + ) { this.configDir = resolve(this.homeDir, 'config'); this.binDir = resolve(this.homeDir, 'bin'); this.logDir = resolve(this.homeDir, 'log'); diff --git a/packages/osd-config/src/legacy/__snapshots__/legacy_object_to_config_adapter.test.ts.snap b/packages/osd-config/src/legacy/__snapshots__/legacy_object_to_config_adapter.test.ts.snap index 1aef768a96e5..6f05dfacaf15 100644 --- a/packages/osd-config/src/legacy/__snapshots__/legacy_object_to_config_adapter.test.ts.snap +++ b/packages/osd-config/src/legacy/__snapshots__/legacy_object_to_config_adapter.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`#get correctly handles server config.: default 1`] = ` Object { diff --git a/packages/osd-config/src/raw/__snapshots__/read_config.test.ts.snap b/packages/osd-config/src/raw/__snapshots__/read_config.test.ts.snap index bd11ca300711..333d2e02922b 100644 --- a/packages/osd-config/src/raw/__snapshots__/read_config.test.ts.snap +++ b/packages/osd-config/src/raw/__snapshots__/read_config.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`different cwd() resolves relative files based on the cwd 1`] = ` Object { diff --git a/packages/osd-config/src/raw/read_config.test.ts b/packages/osd-config/src/raw/read_config.test.ts index 68cf03664974..3f9f5a4146a1 100644 --- a/packages/osd-config/src/raw/read_config.test.ts +++ b/packages/osd-config/src/raw/read_config.test.ts @@ -85,6 +85,6 @@ describe('different cwd()', () => { test('fails to load relative paths, not found because of the cwd', () => { const relativePath = relative(resolve(__dirname, '../../'), fixtureFile('/one.yml')); - expect(() => getConfigFromFiles([relativePath])).toThrowError(/ENOENT/); + expect(() => getConfigFromFiles([relativePath])).toThrow(/ENOENT/); }); }); diff --git a/packages/osd-cross-platform/src/__snapshots__/path.test.ts.snap b/packages/osd-cross-platform/src/__snapshots__/path.test.ts.snap index 20c44ec1c2d6..03e901186cb2 100644 --- a/packages/osd-cross-platform/src/__snapshots__/path.test.ts.snap +++ b/packages/osd-cross-platform/src/__snapshots__/path.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`Cross Platform path standardize on POSIX-compatible platforms ignores additional parameters 1`] = `"/a/b/c"`; diff --git a/packages/osd-cross-platform/src/path.test.ts b/packages/osd-cross-platform/src/path.test.ts index 3e338a426fda..210d9067cc66 100644 --- a/packages/osd-cross-platform/src/path.test.ts +++ b/packages/osd-cross-platform/src/path.test.ts @@ -109,9 +109,9 @@ describe('Cross Platform', () => { }); describe('on platforms other than Windows', () => { - let mockPathNormalize: jest.SpyInstance; - let mockPathResolve: jest.SpyInstance; - let mockFSRealPathSync: jest.SpyInstance; + let mockPathNormalize: jest.SpyInstance; + let mockPathResolve: jest.SpyInstance; + let mockFSRealPathSync: jest.SpyInstance; beforeAll(() => { Object.defineProperty(process, 'platform', { @@ -121,9 +121,7 @@ describe('Cross Platform', () => { mockPathNormalize = jest.spyOn(path, 'normalize').mockReturnValue(dummyPOSIXPath); mockPathResolve = jest.spyOn(path, 'resolve').mockReturnValue(dummyPOSIXPath); - mockFSRealPathSync = jest - .spyOn(fs, 'realpathSync') - .mockReturnValue(dummyPOSIXPath) as jest.SpyInstance; + mockFSRealPathSync = jest.spyOn(fs, 'realpathSync').mockReturnValue(dummyPOSIXPath); }); afterAll(() => { @@ -143,7 +141,7 @@ describe('Cross Platform', () => { describe('standardize', () => { describe('on Windows', () => { - let mockPathNormalize: jest.SpyInstance; + let mockPathNormalize: jest.SpyInstance; beforeAll(() => { Object.defineProperty(process, 'platform', { @@ -178,7 +176,7 @@ describe('Cross Platform', () => { }); describe('on POSIX-compatible platforms', () => { - let mockPathNormalize: jest.SpyInstance; + let mockPathNormalize: jest.SpyInstance; beforeAll(() => { Object.defineProperty(process, 'platform', { diff --git a/packages/osd-cross-platform/src/repo_root.ts b/packages/osd-cross-platform/src/repo_root.ts index ea2975d19eb5..d6a4735b1e53 100644 --- a/packages/osd-cross-platform/src/repo_root.ts +++ b/packages/osd-cross-platform/src/repo_root.ts @@ -76,10 +76,8 @@ const findOpenSearchDashboardsPackageJson = () => { } }; -const { - opensearchDashboardsDir, - opensearchDashboardsPkgJson, -} = findOpenSearchDashboardsPackageJson(); +const { opensearchDashboardsDir, opensearchDashboardsPkgJson } = + findOpenSearchDashboardsPackageJson(); export const REPO_ROOT = resolveToFullPathSync(opensearchDashboardsDir); export const REPO_ROOT_8_3 = resolveToShortPathSync(opensearchDashboardsDir); diff --git a/packages/osd-dev-utils/package.json b/packages/osd-dev-utils/package.json index 87d75e66c3d4..bc8c5f95bd71 100644 --- a/packages/osd-dev-utils/package.json +++ b/packages/osd-dev-utils/package.json @@ -13,7 +13,7 @@ "devOnly": true }, "dependencies": { - "@babel/core": "^7.22.9", + "@babel/core": "^7.29.7", "@osd/utils": "1.0.0", "axios": "^1.17.0", "chalk": "^4.1.0", diff --git a/packages/osd-dev-utils/src/ci_stats_reporter/ci_stats_reporter.ts b/packages/osd-dev-utils/src/ci_stats_reporter/ci_stats_reporter.ts index d7a82b7c8024..5f117bfce907 100644 --- a/packages/osd-dev-utils/src/ci_stats_reporter/ci_stats_reporter.ts +++ b/packages/osd-dev-utils/src/ci_stats_reporter/ci_stats_reporter.ts @@ -105,7 +105,10 @@ export class CiStatsReporter { return new CiStatsReporter(parseConfig(log), log); } - constructor(private config: Config | undefined, private log: ToolingLog) {} + constructor( + private config: Config | undefined, + private log: ToolingLog + ) {} isEnabled() { return !!this.config; diff --git a/packages/osd-dev-utils/src/osd_client/osd_client_requester.ts b/packages/osd-dev-utils/src/osd_client/osd_client_requester.ts index 4a4c41c256d2..618e5f75c2ca 100644 --- a/packages/osd-dev-utils/src/osd_client/osd_client_requester.ts +++ b/packages/osd-dev-utils/src/osd_client/osd_client_requester.ts @@ -89,7 +89,10 @@ export class OsdClientRequester { private readonly url: string; private readonly httpsAgent: Https.Agent | null; - constructor(private readonly log: ToolingLog, options: Options) { + constructor( + private readonly log: ToolingLog, + options: Options + ) { this.url = options.url; this.httpsAgent = new URL(options.url).protocol === 'https:' diff --git a/packages/osd-dev-utils/src/osd_client/osd_client_saved_objects.ts b/packages/osd-dev-utils/src/osd_client/osd_client_saved_objects.ts index 153bbd100a04..68e5d8dd000a 100644 --- a/packages/osd-dev-utils/src/osd_client/osd_client_saved_objects.ts +++ b/packages/osd-dev-utils/src/osd_client/osd_client_saved_objects.ts @@ -74,7 +74,10 @@ interface MigrateResponse { } export class OsdClientSavedObjects { - constructor(private readonly log: ToolingLog, private readonly requester: OsdClientRequester) {} + constructor( + private readonly log: ToolingLog, + private readonly requester: OsdClientRequester + ) {} /** * Run the saved objects migration diff --git a/packages/osd-dev-utils/src/proc_runner/proc.ts b/packages/osd-dev-utils/src/proc_runner/proc.ts index c5e905204915..e333a0068f94 100644 --- a/packages/osd-dev-utils/src/proc_runner/proc.ts +++ b/packages/osd-dev-utils/src/proc_runner/proc.ts @@ -169,7 +169,7 @@ export function startProc(name: string, options: ProcOptions, log: ToolingLog) { async () => { try { await outcomePromise; - } catch (error) { + } catch { // ignore } }, diff --git a/packages/osd-dev-utils/src/proc_runner/with_proc_runner.test.ts b/packages/osd-dev-utils/src/proc_runner/with_proc_runner.test.ts index 00b1009033e6..b9a554ae5c3c 100644 --- a/packages/osd-dev-utils/src/proc_runner/with_proc_runner.test.ts +++ b/packages/osd-dev-utils/src/proc_runner/with_proc_runner.test.ts @@ -56,7 +56,7 @@ it('calls procRunner.teardown() if function throw synchronous error, and rejects teardownSpy = jest.spyOn(proc, 'teardown'); throw error; }) - ).rejects.toThrowError(error); + ).rejects.toThrow(error); expect(teardownSpy).toHaveBeenCalled(); }); @@ -83,7 +83,7 @@ it('waits for promise to reject before tearing down proc and rejecting with the teardownSpy = jest.spyOn(proc, 'teardown'); throw error; }) - ).rejects.toThrowError(error); + ).rejects.toThrow(error); expect(teardownSpy).not.toBe(undefined); expect(teardownSpy).toHaveBeenCalled(); diff --git a/packages/osd-dev-utils/src/tooling_log/__snapshots__/log_levels.test.ts.snap b/packages/osd-dev-utils/src/tooling_log/__snapshots__/log_levels.test.ts.snap index 56ad7de85884..e1ec62a6e44a 100644 --- a/packages/osd-dev-utils/src/tooling_log/__snapshots__/log_levels.test.ts.snap +++ b/packages/osd-dev-utils/src/tooling_log/__snapshots__/log_levels.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`parses valid log levels correctly: debug 1`] = ` Object { diff --git a/packages/osd-dev-utils/src/tooling_log/__snapshots__/tooling_log.test.ts.snap b/packages/osd-dev-utils/src/tooling_log/__snapshots__/tooling_log.test.ts.snap index 059e3d49c368..47d3bd5f5f74 100644 --- a/packages/osd-dev-utils/src/tooling_log/__snapshots__/tooling_log.test.ts.snap +++ b/packages/osd-dev-utils/src/tooling_log/__snapshots__/tooling_log.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`#debug() sends a msg of type "debug" to each writer with indent and arguments 1`] = ` Array [ diff --git a/packages/osd-dev-utils/src/tooling_log/__snapshots__/tooling_log_text_writer.test.ts.snap b/packages/osd-dev-utils/src/tooling_log/__snapshots__/tooling_log_text_writer.test.ts.snap index eb278cc0d165..216732564960 100644 --- a/packages/osd-dev-utils/src/tooling_log/__snapshots__/tooling_log_text_writer.test.ts.snap +++ b/packages/osd-dev-utils/src/tooling_log/__snapshots__/tooling_log_text_writer.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`formats %s patterns and indents multi-line messages correctly 1`] = ` " │ succ foo bar diff --git a/packages/osd-eslint-plugin-eslint/package.json b/packages/osd-eslint-plugin-eslint/package.json index ec88ac00698b..431f00a809c2 100644 --- a/packages/osd-eslint-plugin-eslint/package.json +++ b/packages/osd-eslint-plugin-eslint/package.json @@ -7,12 +7,12 @@ "devOnly": true }, "peerDependencies": { - "eslint": "^8.57.1", - "@babel/eslint-parser": "^7.25.0" + "eslint": "^10.6.0", + "@babel/eslint-parser": "^8.0.1" }, "dependencies": { "micromatch": "^4.0.7", "dedent": "^0.7.0", - "eslint-module-utils": "2.5.0" + "eslint-module-utils": "^2.14.0" } } diff --git a/packages/osd-eslint-plugin-eslint/rules/disallow_license_headers.js b/packages/osd-eslint-plugin-eslint/rules/disallow_license_headers.js index d2a509a930a9..8b9994480af7 100644 --- a/packages/osd-eslint-plugin-eslint/rules/disallow_license_headers.js +++ b/packages/osd-eslint-plugin-eslint/rules/disallow_license_headers.js @@ -94,7 +94,7 @@ module.exports = { if (!licenses || !licenses.length) return; - const sourceCode = context.getSourceCode(); + const sourceCode = context.sourceCode; sourceCode .getAllComments() diff --git a/packages/osd-eslint-plugin-eslint/rules/disallow_license_headers.test.js b/packages/osd-eslint-plugin-eslint/rules/disallow_license_headers.test.js index 19d1777b1cb7..4b69a65624e1 100644 --- a/packages/osd-eslint-plugin-eslint/rules/disallow_license_headers.test.js +++ b/packages/osd-eslint-plugin-eslint/rules/disallow_license_headers.test.js @@ -33,10 +33,12 @@ const rule = require('./disallow_license_headers'); const dedent = require('dedent'); const ruleTester = new RuleTester({ - parser: require.resolve('@babel/eslint-parser'), - parserOptions: { - ecmaVersion: 2015, - requireConfigFile: false, + languageOptions: { + parser: require('@babel/eslint-parser'), + parserOptions: { + ecmaVersion: 2015, + requireConfigFile: false, + }, }, }); diff --git a/packages/osd-eslint-plugin-eslint/rules/module_migration.js b/packages/osd-eslint-plugin-eslint/rules/module_migration.js index 5d783b9799cf..965980d52832 100644 --- a/packages/osd-eslint-plugin-eslint/rules/module_migration.js +++ b/packages/osd-eslint-plugin-eslint/rules/module_migration.js @@ -53,7 +53,7 @@ function checkModuleNameNode(context, mappings, node) { // support for toRelative added to migrate away from X-Pack being bundled // within node modules. after that migration, this can be removed. if (mapping.toRelative) { - const sourceDirectory = path.dirname(context.getFilename()); + const sourceDirectory = path.dirname(context.filename); const localModulePath = node.value.replace(new RegExp(`^${mapping.from}\/`), ''); const modulePath = path.resolve( OPENSEARCH_DASHBOARDS_ROOT, diff --git a/packages/osd-eslint-plugin-eslint/rules/no_restricted_paths.js b/packages/osd-eslint-plugin-eslint/rules/no_restricted_paths.js index 52b1b27ba360..4616a945e074 100644 --- a/packages/osd-eslint-plugin-eslint/rules/no_restricted_paths.js +++ b/packages/osd-eslint-plugin-eslint/rules/no_restricted_paths.js @@ -9,7 +9,6 @@ * GitHub history for details. */ -/* eslint-disable-line @osd/eslint/require-license-header */ /* * This product uses import/no-restricted-paths which is available under a * "MIT" license. @@ -111,7 +110,7 @@ module.exports = { function checkForRestrictedImportPath(importPath, node) { const absoluteImportPath = importPath[0] === '.' ? resolve(importPath, context) : undefined; - const currentFilename = context.getFilename(); + const currentFilename = context.filename; for (const { target, from, allowSameFolder, errorMessage = '' } of zones) { const srcFilePath = resolve(currentFilename, context); diff --git a/packages/osd-eslint-plugin-eslint/rules/no_restricted_paths.test.js b/packages/osd-eslint-plugin-eslint/rules/no_restricted_paths.test.js index b6d0ed0a35fe..c2ee2aa8bda2 100644 --- a/packages/osd-eslint-plugin-eslint/rules/no_restricted_paths.test.js +++ b/packages/osd-eslint-plugin-eslint/rules/no_restricted_paths.test.js @@ -9,7 +9,6 @@ * GitHub history for details. */ -/* eslint-disable-line @osd/eslint/require-license-header */ /* * This product uses import/no-restricted-paths which is available under a * "MIT" license. @@ -43,11 +42,13 @@ const { RuleTester } = require('eslint'); const rule = require('./no_restricted_paths'); const ruleTester = new RuleTester({ - parser: require.resolve('@babel/eslint-parser'), - parserOptions: { - sourceType: 'module', - ecmaVersion: 2015, - requireConfigFile: false, + languageOptions: { + parser: require('@babel/eslint-parser'), + parserOptions: { + sourceType: 'module', + ecmaVersion: 2015, + requireConfigFile: false, + }, }, }); diff --git a/packages/osd-eslint-plugin-eslint/rules/require_license_header.js b/packages/osd-eslint-plugin-eslint/rules/require_license_header.js index 3cc907edd915..32ba0f246266 100644 --- a/packages/osd-eslint-plugin-eslint/rules/require_license_header.js +++ b/packages/osd-eslint-plugin-eslint/rules/require_license_header.js @@ -36,6 +36,26 @@ function isHashbang(text) { return text.trim().startsWith('#!') && !text.trim().includes('\n'); } +/** + * Returns true if `text` consists solely of a Jest docblock pragma comment, + * e.g. `/** @jest-environment node *\/`. These must appear before the license + * header so that jest-docblock can read them (it only inspects the first block + * comment in a file). + */ +function isJestDocblock(text) { + return /^\s*\/\*\*[\s\S]*?@jest-environment\s+\S+[\s\S]*?\*\/\s*$/.test(text); +} + +/** + * If `sourceText` begins with a jest docblock pragma, returns the index + * immediately after it (past any trailing whitespace/newlines). Returns 0 + * otherwise, so callers can always use the result as a safe insertion point. + */ +function insertionPointAfterJestDocblock(sourceText) { + const match = sourceText.match(/^(\s*\/\*\*[\s\S]*?@jest-environment\s+\S+[\s\S]*?\*\/\s*)/); + return match ? match[1].length : 0; +} + module.exports = { meta: { fixable: 'code', @@ -111,7 +131,7 @@ module.exports = { if (!licenses || !licenses.length) return; - const sourceCode = context.getSourceCode(); + const sourceCode = context.sourceCode; const comment = sourceCode .getAllComments() .find((node) => @@ -131,7 +151,9 @@ module.exports = { return undefined; } - return fixer.replaceTextRange([0, 0], licenses[0].source + '\n\n'); + const fullSource = sourceCode.getText(); + const insertAt = insertionPointAfterJestDocblock(fullSource); + return fixer.replaceTextRange([insertAt, insertAt], licenses[0].source + '\n\n'); }, }); return; @@ -144,7 +166,11 @@ module.exports = { const sourceBeforeNode = sourceCode .getText() .slice(0, sourceCode.getIndexFromLoc(comment.loc.start)); - if (sourceBeforeNode.length && !isHashbang(sourceBeforeNode)) { + if ( + sourceBeforeNode.length && + !isHashbang(sourceBeforeNode) && + !isJestDocblock(sourceBeforeNode) + ) { context.report({ node: comment, message: 'License header must be at the very beginning of the file', @@ -154,11 +180,12 @@ module.exports = { return fixer.replaceTextRange([0, sourceBeforeNode.length], ''); } - // inject content at top and remove node from current location - // if removing whitespace is not possible + // inject content at top (after any jest docblock) and remove + // node from current location if removing whitespace is not possible + const insertAt = insertionPointAfterJestDocblock(sourceCode.getText()); return [ fixer.remove(comment), - fixer.replaceTextRange([0, 0], currentLicense.source + '\n\n'), + fixer.replaceTextRange([insertAt, insertAt], currentLicense.source + '\n\n'), ]; }, }); diff --git a/packages/osd-eslint-plugin-eslint/rules/require_license_header.test.js b/packages/osd-eslint-plugin-eslint/rules/require_license_header.test.js index c8df2aa2a137..39e5e13229a1 100644 --- a/packages/osd-eslint-plugin-eslint/rules/require_license_header.test.js +++ b/packages/osd-eslint-plugin-eslint/rules/require_license_header.test.js @@ -33,10 +33,12 @@ const rule = require('./require_license_header'); const dedent = require('dedent'); const ruleTester = new RuleTester({ - parser: require.resolve('@babel/eslint-parser'), - parserOptions: { - ecmaVersion: 2015, - requireConfigFile: false, + languageOptions: { + parser: require('@babel/eslint-parser'), + parserOptions: { + ecmaVersion: 2015, + requireConfigFile: false, + }, }, }); @@ -70,6 +72,19 @@ ruleTester.run('@osd/eslint/require-license-header', rule, { options: [{ licenses: ['/* license 1 */', '/* license 2 */'] }], }, + + // jest docblock pragma before the license header is allowed + { + code: dedent` + /** @jest-environment node */ + + /* license */ + + console.log('foo') + `, + + options: [{ licenses: ['/* license */'] }], + }, ], invalid: [ @@ -267,5 +282,29 @@ ruleTester.run('@osd/eslint/require-license-header', rule, { console.log('foo') `, }, + + // missing license when a jest docblock is present — fix must insert after the docblock + { + code: dedent` + /** @jest-environment node */ + + console.log('foo') + `, + + options: [{ licenses: ['/* license */'] }], + errors: [ + { + message: 'File must start with a license header', + }, + ], + + output: dedent` + /** @jest-environment node */ + + /* license */ + + console.log('foo') + `, + }, ], }); diff --git a/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/client/a.js b/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/client/a.js index 788022c68256..7e6a83d98779 100644 --- a/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/client/a.js +++ b/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/client/a.js @@ -8,5 +8,3 @@ * Any modifications Copyright OpenSearch Contributors. See * GitHub history for details. */ - -/* eslint-disable */ diff --git a/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/b.js b/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/b.js index 788022c68256..7e6a83d98779 100644 --- a/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/b.js +++ b/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/b.js @@ -8,5 +8,3 @@ * Any modifications Copyright OpenSearch Contributors. See * GitHub history for details. */ - -/* eslint-disable */ diff --git a/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/c.js b/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/c.js index 788022c68256..7e6a83d98779 100644 --- a/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/c.js +++ b/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/c.js @@ -8,5 +8,3 @@ * Any modifications Copyright OpenSearch Contributors. See * GitHub history for details. */ - -/* eslint-disable */ diff --git a/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/deep/d.js b/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/deep/d.js index 788022c68256..7e6a83d98779 100644 --- a/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/deep/d.js +++ b/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/deep/d.js @@ -8,5 +8,3 @@ * Any modifications Copyright OpenSearch Contributors. See * GitHub history for details. */ - -/* eslint-disable */ diff --git a/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/index_patterns/index.js b/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/index_patterns/index.js index 788022c68256..7e6a83d98779 100644 --- a/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/index_patterns/index.js +++ b/packages/osd-eslint-plugin-eslint/rules/testfiles/no_restricted_paths/server/index_patterns/index.js @@ -8,5 +8,3 @@ * Any modifications Copyright OpenSearch Contributors. See * GitHub history for details. */ - -/* eslint-disable */ diff --git a/packages/osd-i18n/package.json b/packages/osd-i18n/package.json index 73b531413f5e..0eae8aa9c661 100644 --- a/packages/osd-i18n/package.json +++ b/packages/osd-i18n/package.json @@ -7,8 +7,8 @@ "license": "Apache-2.0", "private": true, "devDependencies": { - "@babel/cli": "^7.22.9", - "@babel/core": "^7.22.9", + "@babel/cli": "^7.29.7", + "@babel/core": "^7.29.7", "@osd/babel-preset": "1.0.0", "@osd/dev-utils": "1.0.0", "@types/intl-relativeformat": "^2.1.0", diff --git a/packages/osd-i18n/src/__snapshots__/loader.test.ts.snap b/packages/osd-i18n/src/__snapshots__/loader.test.ts.snap index 941d9fbf7d6a..e4ca8c54baac 100644 --- a/packages/osd-i18n/src/__snapshots__/loader.test.ts.snap +++ b/packages/osd-i18n/src/__snapshots__/loader.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`I18n loader registerTranslationFile should throw error if path to translation file is not an absolute 1`] = `"Paths to translation files must be absolute. Got relative path: \\"./en.json\\""`; diff --git a/packages/osd-i18n/src/core/__snapshots__/i18n.test.ts.snap b/packages/osd-i18n/src/core/__snapshots__/i18n.test.ts.snap index 30d4f3f88505..832e8e3ac88f 100644 --- a/packages/osd-i18n/src/core/__snapshots__/i18n.test.ts.snap +++ b/packages/osd-i18n/src/core/__snapshots__/i18n.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`I18n engine addMessages should throw error if locale is not specified or empty 1`] = `"[I18n] A \`locale\` must be a non-empty string to add messages."`; diff --git a/packages/osd-i18n/src/core/__snapshots__/pseudo_locale.test.ts.snap b/packages/osd-i18n/src/core/__snapshots__/pseudo_locale.test.ts.snap index c7f29a6c883f..cea6e143e96c 100644 --- a/packages/osd-i18n/src/core/__snapshots__/pseudo_locale.test.ts.snap +++ b/packages/osd-i18n/src/core/__snapshots__/pseudo_locale.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`translateUsingPseudoLocale() should translate @I18N@ placeholders with wrong reference name 1`] = `"Ṁéšššàĝĝé ŵîîţĥ àà @Î18Ñ@ññôñ-ššîñĝĝļé-ŵŵôŕðð@Î18Ñ@ þþļàççéĥôôļðééŕ."`; diff --git a/packages/osd-i18n/src/core/i18n.ts b/packages/osd-i18n/src/core/i18n.ts index fc040bb834e6..0179388ec6cf 100644 --- a/packages/osd-i18n/src/core/i18n.ts +++ b/packages/osd-i18n/src/core/i18n.ts @@ -52,7 +52,8 @@ const getMessageFormat = memoizeIntlConstructor(IntlMessageFormat); * Ref: https://www.rfc-editor.org/rfc/rfc5646.txt * Note: While case carries no distinction with locale codes, proper formatting is recommended. */ -const localeParser = /^(?[a-z]{2,3})(?:-(?'); - expect(alertSpy).toBeCalledTimes(0); + expect(alertSpy).toHaveBeenCalledTimes(0); alertSpy.mockRestore(); }); diff --git a/src/plugins/workspace/public/components/workspace_detail_app.tsx b/src/plugins/workspace/public/components/workspace_detail_app.tsx index 0e24942f3529..dbfd2cd12733 100644 --- a/src/plugins/workspace/public/components/workspace_detail_app.tsx +++ b/src/plugins/workspace/public/components/workspace_detail_app.tsx @@ -55,9 +55,8 @@ export const WorkspaceDetailApp = (props: WorkspaceDetailPropsWithOnAppLeave) => http, }, } = useOpenSearchDashboards<{ CoreStart: CoreStart; workspaceClient: WorkspaceClient }>(); - const [currentWorkspaceFormData, setCurrentWorkspaceFormData] = useState< - WorkspaceFormSubmitData - >(); + const [currentWorkspaceFormData, setCurrentWorkspaceFormData] = + useState(); const currentWorkspace = useObservable(workspaces ? workspaces.currentWorkspace$ : of(null)); const availableUseCases = useObservable(props.registeredUseCases$, []); const isPermissionEnabled = application?.capabilities.workspaces.permissionEnabled; diff --git a/src/plugins/workspace/public/components/workspace_fatal_error/__snapshots__/workspace_fatal_error.test.tsx.snap b/src/plugins/workspace/public/components/workspace_fatal_error/__snapshots__/workspace_fatal_error.test.tsx.snap index e33c75aa2080..f8ae9eb857b3 100644 --- a/src/plugins/workspace/public/components/workspace_fatal_error/__snapshots__/workspace_fatal_error.test.tsx.snap +++ b/src/plugins/workspace/public/components/workspace_fatal_error/__snapshots__/workspace_fatal_error.test.tsx.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[` render error with callout 1`] = `

diff --git a/src/plugins/workspace/public/components/workspace_fatal_error/workspace_fatal_error.test.tsx b/src/plugins/workspace/public/components/workspace_fatal_error/workspace_fatal_error.test.tsx index 6a2a109a9fbc..554c558f6454 100644 --- a/src/plugins/workspace/public/components/workspace_fatal_error/workspace_fatal_error.test.tsx +++ b/src/plugins/workspace/public/components/workspace_fatal_error/workspace_fatal_error.test.tsx @@ -33,19 +33,12 @@ describe('', () => { }); it('click go back to homepage', async () => { - const { location } = window; - const setHrefSpy = jest.fn((href) => href); - if (window.location) { - // @ts-ignore - delete window.location; - } - // @ts-expect-error TS2322 TODO(ts-upgrade): fixme - window.location = {} as Location; - Object.defineProperty(window.location, 'href', { - get: () => 'http://localhost/', - set: setHrefSpy, - }); const coreStartMock = coreMock.createStart(); + // Replace prepend with a jest.fn() that returns an absolute URL so that + // window.location.href = prepend('/') doesn't throw "Invalid URL" in jsdom 26. + const prependMock = jest.fn().mockReturnValue('http://localhost:5601/'); + coreStartMock.http.basePath.prepend = prependMock; + const { getByText } = render( // @ts-expect-error TS2769 TODO(ts-error): fixme @@ -61,15 +54,8 @@ describe('', () => { ); fireEvent.click(getByText('Go back to homepage')); - await waitFor( - () => { - expect(setHrefSpy).toBeCalledTimes(1); - }, - { - container: document.body, - } - ); - // @ts-expect-error TS2322 TODO(ts-upgrade): fixme - window.location = location; + await waitFor(() => { + expect(prependMock).toHaveBeenCalledWith('/', expect.anything()); + }); }); }); diff --git a/src/plugins/workspace/public/components/workspace_form/__snapshots__/add_collaborator_button.test.tsx.snap b/src/plugins/workspace/public/components/workspace_form/__snapshots__/add_collaborator_button.test.tsx.snap index 33aaf83531e2..531467486a1b 100644 --- a/src/plugins/workspace/public/components/workspace_form/__snapshots__/add_collaborator_button.test.tsx.snap +++ b/src/plugins/workspace/public/components/workspace_form/__snapshots__/add_collaborator_button.test.tsx.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`AddCollaboratorButton should render normally 1`] = ` Object { diff --git a/src/plugins/workspace/public/components/workspace_form/__snapshots__/connection_type_icon.test.tsx.snap b/src/plugins/workspace/public/components/workspace_form/__snapshots__/connection_type_icon.test.tsx.snap index 04c420429881..39b101f852cc 100644 --- a/src/plugins/workspace/public/components/workspace_form/__snapshots__/connection_type_icon.test.tsx.snap +++ b/src/plugins/workspace/public/components/workspace_form/__snapshots__/connection_type_icon.test.tsx.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`ConnectionTypeIcon should render normally 1`] = ``; diff --git a/src/plugins/workspace/public/components/workspace_form/__snapshots__/workspace_collaborator_table.test.tsx.snap b/src/plugins/workspace/public/components/workspace_form/__snapshots__/workspace_collaborator_table.test.tsx.snap index ce0c0566cd2c..98b442c95d7a 100644 --- a/src/plugins/workspace/public/components/workspace_form/__snapshots__/workspace_collaborator_table.test.tsx.snap +++ b/src/plugins/workspace/public/components/workspace_form/__snapshots__/workspace_collaborator_table.test.tsx.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`WorkspaceCollaboratorTable should render normally 1`] = ` Object { diff --git a/src/plugins/workspace/public/components/workspace_form/__snapshots__/workspace_privacy_flyout.test.tsx.snap b/src/plugins/workspace/public/components/workspace_form/__snapshots__/workspace_privacy_flyout.test.tsx.snap index 67e6eda75b03..5d5b5936d65c 100644 --- a/src/plugins/workspace/public/components/workspace_form/__snapshots__/workspace_privacy_flyout.test.tsx.snap +++ b/src/plugins/workspace/public/components/workspace_form/__snapshots__/workspace_privacy_flyout.test.tsx.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`WorkspacePrivacyFlyout should render normally 1`] = ` Object { diff --git a/src/plugins/workspace/public/components/workspace_form/add_collaborator_button.tsx b/src/plugins/workspace/public/components/workspace_form/add_collaborator_button.tsx index 871b8f3f5ffa..c19502d876fe 100644 --- a/src/plugins/workspace/public/components/workspace_form/add_collaborator_button.tsx +++ b/src/plugins/workspace/public/components/workspace_form/add_collaborator_button.tsx @@ -150,11 +150,11 @@ export const AddCollaboratorButton = ({ diff --git a/src/plugins/workspace/public/components/workspace_form/select_data_source_panel.tsx b/src/plugins/workspace/public/components/workspace_form/select_data_source_panel.tsx index 6692fb30986a..9c97a191df7a 100644 --- a/src/plugins/workspace/public/components/workspace_form/select_data_source_panel.tsx +++ b/src/plugins/workspace/public/components/workspace_form/select_data_source_panel.tsx @@ -46,9 +46,10 @@ export const SelectDataSourcePanel = ({ services: { notifications, http, chrome }, } = useOpenSearchDashboards<{ CoreStart: CoreStart; workspaceClient: WorkspaceClient }>(); - const excludedConnectionIds = useMemo(() => assignedDataSourceConnections.map((c) => c.id), [ - assignedDataSourceConnections, - ]); + const excludedConnectionIds = useMemo( + () => assignedDataSourceConnections.map((c) => c.id), + [assignedDataSourceConnections] + ); const handleAssignDataSourceConnections = (newDataSourceConnections: DataSourceConnection[]) => { setModalVisible(false); diff --git a/src/plugins/workspace/public/components/workspace_form/types.ts b/src/plugins/workspace/public/components/workspace_form/types.ts index e238f779c55c..b844a3025286 100644 --- a/src/plugins/workspace/public/components/workspace_form/types.ts +++ b/src/plugins/workspace/public/components/workspace_form/types.ts @@ -29,8 +29,7 @@ export interface WorkspaceUserGroupPermissionSetting { } export type WorkspacePermissionSetting = - | WorkspaceUserPermissionSetting - | WorkspaceUserGroupPermissionSetting; + WorkspaceUserPermissionSetting | WorkspaceUserGroupPermissionSetting; export interface WorkspaceFormSubmitData { name: string; @@ -57,10 +56,12 @@ export interface WorkspaceFormError { } export type WorkspaceFormErrors = { - [key in keyof Omit< - WorkspaceFormSubmitData, - 'permissionSettings' | 'description' | 'selectedDataSourceConnections' - >]?: WorkspaceFormError; + [ + key in keyof Omit< + WorkspaceFormSubmitData, + 'permissionSettings' | 'description' | 'selectedDataSourceConnections' + > + ]?: WorkspaceFormError; } & { permissionSettings?: { overall?: WorkspaceFormError; @@ -84,16 +85,17 @@ export interface WorkspaceFormProps { onAppLeave?: AppMountParameters['onAppLeave']; } -export interface AvailableUseCaseItem - extends Pick< - WorkspaceUseCase, - 'id' | 'title' | 'features' | 'description' | 'systematic' | 'icon' - > { +export interface AvailableUseCaseItem extends Pick< + WorkspaceUseCase, + 'id' | 'title' | 'features' | 'description' | 'systematic' | 'icon' +> { disabled?: boolean; } -export interface WorkspaceFormDataState - extends Omit { +export interface WorkspaceFormDataState extends Omit< + WorkspaceFormSubmitData, + 'name' | 'permissionSettings' +> { name: string; useCase: string | undefined; selectedDataSourceConnections: DataSourceConnection[]; diff --git a/src/plugins/workspace/public/components/workspace_form/use_workspace_form.ts b/src/plugins/workspace/public/components/workspace_form/use_workspace_form.ts index 51c311607d6b..2863d9949208 100644 --- a/src/plugins/workspace/public/components/workspace_form/use_workspace_form.ts +++ b/src/plugins/workspace/public/components/workspace_form/use_workspace_form.ts @@ -41,9 +41,10 @@ export const useWorkspaceForm = ({ const [isEditing, setIsEditing] = useState(false); const [featureConfigs, setFeatureConfigs] = useState(defaultValues?.features ?? []); - const selectedUseCase = useMemo(() => getFirstUseCaseOfFeatureConfigs(featureConfigs), [ - featureConfigs, - ]); + const selectedUseCase = useMemo( + () => getFirstUseCaseOfFeatureConfigs(featureConfigs), + [featureConfigs] + ); const [permissionSettings, setPermissionSettings] = useState< WorkspaceFormDataState['permissionSettings'] >(defaultValues?.permissionSettings ?? []); @@ -76,9 +77,10 @@ export const useWorkspaceForm = ({ ? getNumberOfChanges(formData, defaultValuesRef.current) : 0; - const privacyType = useMemo(() => convertPermissionsToPrivacyType(permissionSettings), [ - permissionSettings, - ]); + const privacyType = useMemo( + () => convertPermissionsToPrivacyType(permissionSettings), + [permissionSettings] + ); if (!formIdRef.current) { formIdRef.current = workspaceHtmlIdGenerator(); diff --git a/src/plugins/workspace/public/components/workspace_form/utils.ts b/src/plugins/workspace/public/components/workspace_form/utils.ts index 22ff4894a1d4..43d9c7910789 100644 --- a/src/plugins/workspace/public/components/workspace_form/utils.ts +++ b/src/plugins/workspace/public/components/workspace_form/utils.ts @@ -288,7 +288,8 @@ export const generateNextPermissionSettingsId = (permissionSettings: Array<{ id: }; interface PermissionSettingLike - extends Omit, 'type'>, + extends + Omit, 'type'>, Omit, 'type'> { type?: string; } diff --git a/src/plugins/workspace/public/components/workspace_form/workspace_collaborator_privacy_setting_panel.tsx b/src/plugins/workspace/public/components/workspace_form/workspace_collaborator_privacy_setting_panel.tsx index 3fb217850413..a8547155e772 100644 --- a/src/plugins/workspace/public/components/workspace_form/workspace_collaborator_privacy_setting_panel.tsx +++ b/src/plugins/workspace/public/components/workspace_form/workspace_collaborator_privacy_setting_panel.tsx @@ -55,9 +55,10 @@ export const WorkspaceCollaboratorPrivacySettingPanel = ({ WorkspacePrivacyItemType.PrivateToCollaborators ); - const privacyType = useMemo(() => convertPermissionsToPrivacyType(permissionSettings), [ - permissionSettings, - ]); + const privacyType = useMemo( + () => convertPermissionsToPrivacyType(permissionSettings), + [permissionSettings] + ); const handleModalOpen = () => { setSelectedPrivacyType(privacyType); diff --git a/src/plugins/workspace/public/components/workspace_form/workspace_collaborator_table.tsx b/src/plugins/workspace/public/components/workspace_form/workspace_collaborator_table.tsx index 10fd0f4dfa1a..f1a503e773fc 100644 --- a/src/plugins/workspace/public/components/workspace_form/workspace_collaborator_table.tsx +++ b/src/plugins/workspace/public/components/workspace_form/workspace_collaborator_table.tsx @@ -616,9 +616,9 @@ const Actions = ({ services: { notifications }, } = useOpenSearchDashboards(); - const accessLevelOptions = (Object.keys( - WORKSPACE_ACCESS_LEVEL_NAMES - ) as WorkspaceCollaboratorAccessLevel[]).map((level) => ({ + const accessLevelOptions = ( + Object.keys(WORKSPACE_ACCESS_LEVEL_NAMES) as WorkspaceCollaboratorAccessLevel[] + ).map((level) => ({ name: WORKSPACE_ACCESS_LEVEL_NAMES[level], onClick: () => { setIsPopoverOpen(false); @@ -667,7 +667,7 @@ const Actions = ({ icon: '', })); - const panelItems = ([ + const panelItems = [ { id: 0, items: [ @@ -720,7 +720,7 @@ const Actions = ({ }), items: accessLevelOptions, }, - ] as unknown) as EuiContextMenuPanelDescriptor[]; + ] as unknown as EuiContextMenuPanelDescriptor[]; const button = isTableAction ? ( diff --git a/src/plugins/workspace/public/components/workspace_initial/utils.test.ts b/src/plugins/workspace/public/components/workspace_initial/utils.test.ts index af2e5920d392..ccc6f5d95b94 100644 --- a/src/plugins/workspace/public/components/workspace_initial/utils.test.ts +++ b/src/plugins/workspace/public/components/workspace_initial/utils.test.ts @@ -5,7 +5,16 @@ import moment from 'moment'; import { recentWorkspaceManager } from '../../recent_workspace_manager'; -import { getWorkspacesWithRecentMessage, sortByRecentVisitedAndAlphabetical } from './utils'; +import { + WorkspaceFilterCriteria, + buildWorkspaceFilterCriteria, + filterWorkspaces, + getRecencyCutoff, + getWorkspaceRole, + getWorkspacesWithRecentMessage, + isWorkspaceFilterActive, + sortByRecentVisitedAndAlphabetical, +} from './utils'; describe('getWorkspacesWithRecentMessage', () => { const workspaces = [ @@ -91,3 +100,124 @@ describe('sortByRecentVisitedAndAlphabetical', () => { expect(sorted).toEqual([workspace3, workspace4]); // Sorted alphabetically by name }); }); + +describe('getWorkspaceRole', () => { + it('returns owner when the owner flag is set', () => { + expect(getWorkspaceRole({ id: 'a', name: 'A', owner: true })).toBe('owner'); + }); + + it('returns readonly when the readonly flag is set', () => { + expect(getWorkspaceRole({ id: 'a', name: 'A', readonly: true })).toBe('readonly'); + }); + + it('returns readwrite when neither flag is set', () => { + expect(getWorkspaceRole({ id: 'a', name: 'A' })).toBe('readwrite'); + }); + + it('prioritizes owner over readonly', () => { + expect(getWorkspaceRole({ id: 'a', name: 'A', owner: true, readonly: true })).toBe('owner'); + }); +}); + +describe('getRecencyCutoff', () => { + it('returns null for "all" (no recency filter)', () => { + expect(getRecencyCutoff('all')).toBeNull(); + }); + + it('returns calendar start-of-period timestamps', () => { + expect(getRecencyCutoff('today')).toBe(moment().startOf('day').valueOf()); + expect(getRecencyCutoff('week')).toBe(moment().startOf('week').valueOf()); + expect(getRecencyCutoff('month')).toBe(moment().startOf('month').valueOf()); + }); +}); + +describe('isWorkspaceFilterActive', () => { + it('is false when all criteria are neutral', () => { + expect(isWorkspaceFilterActive({ searchQuery: '', roles: [], recency: 'all' })).toBe(false); + }); + + it('treats a whitespace-only query as inactive', () => { + expect(isWorkspaceFilterActive({ searchQuery: ' ', roles: [], recency: 'all' })).toBe(false); + }); + + it('is true when the search query is set', () => { + expect(isWorkspaceFilterActive({ searchQuery: 'abc', roles: [], recency: 'all' })).toBe(true); + }); + + it('is true when a role is selected', () => { + expect(isWorkspaceFilterActive({ searchQuery: '', roles: ['owner'], recency: 'all' })).toBe( + true + ); + }); + + it('is true when recency is not "all"', () => { + expect(isWorkspaceFilterActive({ searchQuery: '', roles: [], recency: 'today' })).toBe(true); + }); +}); + +describe('buildWorkspaceFilterCriteria', () => { + it('maps roleFilter "all" to an empty roles array', () => { + expect( + buildWorkspaceFilterCriteria({ searchQuery: 'x', roleFilter: 'all', recency: 'week' }) + ).toEqual({ searchQuery: 'x', roles: [], recency: 'week' }); + }); + + it('maps a specific roleFilter to a single-element roles array', () => { + expect( + buildWorkspaceFilterCriteria({ searchQuery: '', roleFilter: 'owner', recency: 'all' }) + ).toEqual({ searchQuery: '', roles: ['owner'], recency: 'all' }); + }); +}); + +describe('filterWorkspaces', () => { + const now = Date.now(); + const list = [ + // Admin (owner), visited just now + { id: '1', name: 'Payments', owner: true, accessTimeStamp: now }, + // Read only, never visited + { id: '2', name: 'Checkout Latency', readonly: true, accessTimeStamp: undefined }, + // Read and write, visited two months ago + { id: '3', name: 'Ingestion', accessTimeStamp: moment().subtract(2, 'months').valueOf() }, + ]; + const neutral: WorkspaceFilterCriteria = { searchQuery: '', roles: [], recency: 'all' }; + const ids = (result: Array<{ id: string }>) => result.map((w) => w.id); + + it('returns all workspaces when no criteria are active', () => { + expect(ids(filterWorkspaces(list, neutral))).toEqual(['1', '2', '3']); + }); + + it('filters by case-insensitive name substring', () => { + expect(ids(filterWorkspaces(list, { ...neutral, searchQuery: 'lat' }))).toEqual(['2']); + }); + + it('trims the search query before matching', () => { + expect(ids(filterWorkspaces(list, { ...neutral, searchQuery: ' payments ' }))).toEqual(['1']); + }); + + it('filters by a single role', () => { + expect(ids(filterWorkspaces(list, { ...neutral, roles: ['readonly'] }))).toEqual(['2']); + }); + + it('filters by a set of roles (OR within roles)', () => { + expect(ids(filterWorkspaces(list, { ...neutral, roles: ['owner', 'readwrite'] }))).toEqual([ + '1', + '3', + ]); + }); + + it('filters by recency and excludes items without an accessTimeStamp', () => { + // "today" keeps only id 1 (visited now); id 2 (undefined) and id 3 (old) are excluded + expect(ids(filterWorkspaces(list, { ...neutral, recency: 'today' }))).toEqual(['1']); + // "month" still excludes id 2 (undefined) and id 3 (two months old) + expect(ids(filterWorkspaces(list, { ...neutral, recency: 'month' }))).toEqual(['1']); + }); + + it('combines all criteria with AND', () => { + expect( + ids(filterWorkspaces(list, { searchQuery: 'payments', roles: ['owner'], recency: 'today' })) + ).toEqual(['1']); + expect( + filterWorkspaces(list, { searchQuery: 'payments', roles: ['readonly'], recency: 'all' }) + ).toEqual([]); + }); +}); diff --git a/src/plugins/workspace/public/components/workspace_initial/utils.ts b/src/plugins/workspace/public/components/workspace_initial/utils.ts index 22e0ef1866d9..ecc248c7f004 100644 --- a/src/plugins/workspace/public/components/workspace_initial/utils.ts +++ b/src/plugins/workspace/public/components/workspace_initial/utils.ts @@ -29,6 +29,84 @@ export const getWorkspacesWithRecentMessage = ( }); }; +export type WorkspaceRole = 'owner' | 'readwrite' | 'readonly'; +export type WorkspaceRecency = 'all' | 'today' | 'week' | 'month'; + +export interface WorkspaceFilterCriteria { + searchQuery: string; + roles: WorkspaceRole[]; + recency: WorkspaceRecency; +} + +export type WorkspaceRoleFilter = 'all' | WorkspaceRole; + +export const buildWorkspaceFilterCriteria = ({ + searchQuery, + roleFilter, + recency, +}: { + searchQuery: string; + roleFilter: WorkspaceRoleFilter; + recency: WorkspaceRecency; +}): WorkspaceFilterCriteria => ({ + searchQuery, + roles: roleFilter === 'all' ? [] : [roleFilter], + recency, +}); + +export const getWorkspaceRole = (workspace: WorkspaceObject): WorkspaceRole => { + if (workspace.owner) { + return 'owner'; + } + if (workspace.readonly) { + return 'readonly'; + } + return 'readwrite'; +}; + +export const getRecencyCutoff = (recency: WorkspaceRecency): number | null => { + switch (recency) { + case 'today': + return moment().startOf('day').valueOf(); + case 'week': + return moment().startOf('week').valueOf(); + case 'month': + return moment().startOf('month').valueOf(); + default: + return null; + } +}; + +export const isWorkspaceFilterActive = ({ + searchQuery, + roles, + recency, +}: WorkspaceFilterCriteria): boolean => + !!searchQuery.trim() || roles.length > 0 || recency !== 'all'; + +export const filterWorkspaces = ( + workspaces: UpdatedWorkspaceObject[], + { searchQuery, roles, recency }: WorkspaceFilterCriteria +): UpdatedWorkspaceObject[] => { + const normalizedQuery = searchQuery.trim().toLowerCase(); + const recencyCutoff = getRecencyCutoff(recency); + return workspaces.filter((workspace) => { + if (normalizedQuery && !workspace.name.toLowerCase().includes(normalizedQuery)) { + return false; + } + if (roles.length > 0 && !roles.includes(getWorkspaceRole(workspace))) { + return false; + } + if ( + recencyCutoff !== null && + (!workspace.accessTimeStamp || workspace.accessTimeStamp < recencyCutoff) + ) { + return false; + } + return true; + }); +}; + export const sortByRecentVisitedAndAlphabetical = ( ws1: UpdatedWorkspaceObject, ws2: UpdatedWorkspaceObject diff --git a/src/plugins/workspace/public/components/workspace_initial/workspace_initial.tsx b/src/plugins/workspace/public/components/workspace_initial/workspace_initial.tsx index 5c1ff395ad84..9f622282187e 100644 --- a/src/plugins/workspace/public/components/workspace_initial/workspace_initial.tsx +++ b/src/plugins/workspace/public/components/workspace_initial/workspace_initial.tsx @@ -4,7 +4,7 @@ */ import './workspace_initial.scss'; -import { useCallback, useEffect, useRef, useState } from 'react'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { CoreStart } from 'opensearch-dashboards/public'; import { EuiLink, @@ -28,6 +28,13 @@ import { WORKSPACE_CREATE_APP_ID, WORKSPACE_LIST_APP_ID } from '../../../common/ import { useOpenSearchDashboards } from '../../../../opensearch_dashboards_react/public'; import { WorkspaceUseCase } from '../../types'; import { WorkspaceUseCaseCard } from './workspace_use_case_card'; +import { WorkspaceSearchBar } from './workspace_search_bar'; +import { + WorkspaceFilterCriteria, + WorkspaceRecency, + WorkspaceRoleFilter, + buildWorkspaceFilterCriteria, +} from './utils'; import { WorkspaceUseCaseFlyout } from '../workspace_form'; import { navigateToWorkspacePageWithUseCase } from '../utils/workspace'; @@ -47,6 +54,14 @@ export const WorkspaceInitial = ({ registeredUseCases$ }: WorkspaceInitialProps) const [isUseCaseFlyoutVisible, setIsUseCaseFlyoutVisible] = useState(false); const [defaultExpandedUseCaseId, setDefaultExpandedUseCaseId] = useState(availableUseCases[0].id); + const [searchQuery, setSearchQuery] = useState(''); + const [recency, setRecency] = useState('all'); + const [roleFilter, setRoleFilter] = useState('all'); + const filterCriteria: WorkspaceFilterCriteria = useMemo( + () => buildWorkspaceFilterCriteria({ searchQuery, roleFilter, recency }), + [searchQuery, roleFilter, recency] + ); + const handleClickUseCaseInformation = useCallback((useCaseId: string) => { setIsUseCaseFlyoutVisible(true); setDefaultExpandedUseCaseId(useCaseId); @@ -64,6 +79,7 @@ export const WorkspaceInitial = ({ registeredUseCases$ }: WorkspaceInitialProps) application={application} http={http} isDashboardAdmin={isDashboardAdmin} + filterCriteria={filterCriteria} handleClickUseCaseInformation={handleClickUseCaseInformation} /> @@ -186,6 +202,18 @@ export const WorkspaceInitial = ({ registeredUseCases$ }: WorkspaceInitialProps) {isDashboardAdmin && createWorkspacePopover} + {workspaceList.length > 0 && ( + + + + )} {useCaseCards} diff --git a/src/plugins/workspace/public/components/workspace_initial/workspace_search_bar.test.tsx b/src/plugins/workspace/public/components/workspace_initial/workspace_search_bar.test.tsx new file mode 100644 index 000000000000..9d55463f88c3 --- /dev/null +++ b/src/plugins/workspace/public/components/workspace_initial/workspace_search_bar.test.tsx @@ -0,0 +1,59 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import React from 'react'; +import { fireEvent, render } from '@testing-library/react'; +import { WorkspaceSearchBar, WorkspaceSearchBarProps } from './workspace_search_bar'; + +describe('WorkspaceSearchBar', () => { + const setup = (overrides: Partial = {}) => { + const props: WorkspaceSearchBarProps = { + searchQuery: '', + onSearchChange: jest.fn(), + recency: 'all', + onRecencyChange: jest.fn(), + roleFilter: 'all', + onRoleFilterChange: jest.fn(), + ...overrides, + }; + return { props, ...render() }; + }; + + it('renders the search input and both filter dropdowns with their default displays', () => { + const { getByTestId, getByText } = setup(); + expect(getByTestId('workspace-initial-search-input')).toBeInTheDocument(); + expect(getByTestId('workspace-initial-search-recency-select')).toBeInTheDocument(); + expect(getByTestId('workspace-initial-search-role-select')).toBeInTheDocument(); + expect(getByText('Last viewed: All')).toBeInTheDocument(); + expect(getByText('Access level: All')).toBeInTheDocument(); + }); + + it('reflects the controlled search query value', () => { + const { getByTestId } = setup({ searchQuery: 'payments' }); + expect(getByTestId('workspace-initial-search-input')).toHaveValue('payments'); + }); + + it('calls onSearchChange when typing in the search box', () => { + const { props, getByTestId } = setup(); + fireEvent.change(getByTestId('workspace-initial-search-input'), { + target: { value: 'pay' }, + }); + expect(props.onSearchChange).toHaveBeenCalledWith('pay'); + }); + + it('calls onRecencyChange when selecting a recency option', () => { + const { props, getByTestId, getByText } = setup(); + fireEvent.click(getByTestId('workspace-initial-search-recency-select')); + fireEvent.click(getByText('This week')); + expect(props.onRecencyChange).toHaveBeenCalledWith('week'); + }); + + it('calls onRoleFilterChange when selecting an access level', () => { + const { props, getByTestId, getByText } = setup(); + fireEvent.click(getByTestId('workspace-initial-search-role-select')); + fireEvent.click(getByText('Read only')); + expect(props.onRoleFilterChange).toHaveBeenCalledWith('readonly'); + }); +}); diff --git a/src/plugins/workspace/public/components/workspace_initial/workspace_search_bar.tsx b/src/plugins/workspace/public/components/workspace_initial/workspace_search_bar.tsx new file mode 100644 index 000000000000..159732b2a2cb --- /dev/null +++ b/src/plugins/workspace/public/components/workspace_initial/workspace_search_bar.tsx @@ -0,0 +1,131 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import { + EuiCompressedFieldSearch, + EuiCompressedSuperSelect, + EuiFlexGroup, + EuiFlexItem, + EuiSuperSelectOption, +} from '@elastic/eui'; +import { i18n } from '@osd/i18n'; +import { WorkspaceRecency, WorkspaceRoleFilter } from './utils'; +import { WORKSPACE_ACCESS_LEVEL_NAMES } from '../../constants'; + +/** Value of the role filter dropdown: 'all' means no role filtering. */ +export interface WorkspaceSearchBarProps { + searchQuery: string; + onSearchChange: (value: string) => void; + recency: WorkspaceRecency; + onRecencyChange: (value: WorkspaceRecency) => void; + roleFilter: WorkspaceRoleFilter; + onRoleFilterChange: (value: WorkspaceRoleFilter) => void; +} + +const makeOption = ( + value: WorkspaceRecency, + label: string +): EuiSuperSelectOption => ({ + value, + inputDisplay: i18n.translate('workspace.initial.searchBar.recency.inputDisplay', { + defaultMessage: 'Last viewed: {label}', + values: { label }, + }), + dropdownDisplay: label, +}); + +const RECENCY_OPTIONS: Array> = [ + makeOption( + 'all', + i18n.translate('workspace.initial.searchBar.recency.all', { defaultMessage: 'All' }) + ), + makeOption( + 'today', + i18n.translate('workspace.initial.searchBar.recency.today', { defaultMessage: 'Today' }) + ), + makeOption( + 'week', + i18n.translate('workspace.initial.searchBar.recency.week', { defaultMessage: 'This week' }) + ), + makeOption( + 'month', + i18n.translate('workspace.initial.searchBar.recency.month', { defaultMessage: 'This month' }) + ), +]; + +const makeRoleOption = ( + value: WorkspaceRoleFilter, + label: string +): EuiSuperSelectOption => ({ + value, + inputDisplay: i18n.translate('workspace.initial.searchBar.role.inputDisplay', { + defaultMessage: 'Access level: {label}', + values: { label }, + }), + dropdownDisplay: label, +}); + +const ROLE_OPTIONS: Array> = [ + makeRoleOption( + 'all', + i18n.translate('workspace.initial.searchBar.role.all', { defaultMessage: 'All' }) + ), + makeRoleOption('owner', WORKSPACE_ACCESS_LEVEL_NAMES.admin), + makeRoleOption('readwrite', WORKSPACE_ACCESS_LEVEL_NAMES.readAndWrite), + makeRoleOption('readonly', WORKSPACE_ACCESS_LEVEL_NAMES.readOnly), +]; + +export const WorkspaceSearchBar = ({ + searchQuery, + onSearchChange, + recency, + onRecencyChange, + roleFilter, + onRoleFilterChange, +}: WorkspaceSearchBarProps) => { + return ( + + + onSearchChange(event.target.value)} + placeholder={i18n.translate('workspace.initial.searchBar.placeholder', { + defaultMessage: 'Search workspaces by name', + })} + aria-label={i18n.translate('workspace.initial.searchBar.ariaLabel', { + defaultMessage: 'Search workspaces by name', + })} + data-test-subj="workspace-initial-search-input" + /> + + + onRecencyChange(value as WorkspaceRecency)} + hasDividers + aria-label={i18n.translate('workspace.initial.searchBar.recency.ariaLabel', { + defaultMessage: 'Filter workspaces by when they were last viewed', + })} + data-test-subj="workspace-initial-search-recency-select" + /> + + + onRoleFilterChange(value as WorkspaceRoleFilter)} + hasDividers + aria-label={i18n.translate('workspace.initial.searchBar.role.ariaLabel', { + defaultMessage: 'Filter workspaces by access level', + })} + data-test-subj="workspace-initial-search-role-select" + /> + + + ); +}; diff --git a/src/plugins/workspace/public/components/workspace_initial/workspace_use_case_card.test.tsx b/src/plugins/workspace/public/components/workspace_initial/workspace_use_case_card.test.tsx index 8680f89a0a8e..61ccc8b483d9 100644 --- a/src/plugins/workspace/public/components/workspace_initial/workspace_use_case_card.test.tsx +++ b/src/plugins/workspace/public/components/workspace_initial/workspace_use_case_card.test.tsx @@ -6,6 +6,7 @@ import { render } from '@testing-library/react'; import { WorkspaceUseCaseCard } from './workspace_use_case_card'; import * as utils from './utils'; +import { WorkspaceFilterCriteria } from './utils'; import { applicationServiceMock, httpServiceMock } from '../../../../../core/public/mocks'; describe('WorkspaceUseCaseCard', () => { @@ -35,6 +36,8 @@ describe('WorkspaceUseCaseCard', () => { icon: 'wsObservability', }; + const noFilter: WorkspaceFilterCriteria = { searchQuery: '', roles: [], recency: 'all' }; + beforeEach(() => { jest.clearAllMocks(); }); @@ -48,6 +51,7 @@ describe('WorkspaceUseCaseCard', () => { application={applicationMock} http={httpMock} isDashboardAdmin={true} + filterCriteria={noFilter} handleClickUseCaseInformation={jest.fn} /> ); @@ -74,6 +78,7 @@ describe('WorkspaceUseCaseCard', () => { application={applicationMock} http={httpMock} isDashboardAdmin={true} + filterCriteria={noFilter} handleClickUseCaseInformation={jest.fn} /> ); @@ -95,6 +100,7 @@ describe('WorkspaceUseCaseCard', () => { application={applicationMock} http={httpMock} isDashboardAdmin={false} + filterCriteria={noFilter} handleClickUseCaseInformation={jest.fn} /> ); @@ -106,4 +112,28 @@ describe('WorkspaceUseCaseCard', () => { queryByText('Request a workspace owner to add you as a collaborator.') ).toBeInTheDocument(); }); + + it('shows "No matching workspaces" when the card has workspaces but none match the filter', () => { + jest.spyOn(utils, 'getWorkspacesWithRecentMessage').mockReturnValue(mockWorkspaces); + const { getByText, queryByText, getByTestId } = render( + + ); + + expect(getByText('No matching workspaces')).toBeInTheDocument(); + // the actual workspaces are filtered out + expect(queryByText('Workspace 1')).toBeNull(); + expect(queryByText('Workspace 2')).toBeNull(); + // the footer "View all" is still available + expect( + getByTestId('workspace-initial-useCaseCard-observability-button-view') + ).toBeInTheDocument(); + }); }); diff --git a/src/plugins/workspace/public/components/workspace_initial/workspace_use_case_card.tsx b/src/plugins/workspace/public/components/workspace_initial/workspace_use_case_card.tsx index a1c3c8700b45..d79af56f45b0 100644 --- a/src/plugins/workspace/public/components/workspace_initial/workspace_use_case_card.tsx +++ b/src/plugins/workspace/public/components/workspace_initial/workspace_use_case_card.tsx @@ -26,6 +26,8 @@ import { i18n } from '@osd/i18n'; import { Fragment, useMemo } from 'react'; import { UpdatedWorkspaceObject, + WorkspaceFilterCriteria, + filterWorkspaces, getWorkspacesWithRecentMessage, sortByRecentVisitedAndAlphabetical, } from './utils'; @@ -44,6 +46,7 @@ interface WorkspaceUseCaseCardProps { application: ApplicationStart; http: HttpSetup; isDashboardAdmin: boolean; + filterCriteria: WorkspaceFilterCriteria; handleClickUseCaseInformation: (useCaseId: string) => void; } @@ -53,22 +56,29 @@ export const WorkspaceUseCaseCard = ({ application, http, isDashboardAdmin, + filterCriteria, handleClickUseCaseInformation, }: WorkspaceUseCaseCardProps) => { const useCaseIcon = useCase.icon || 'logoOpenSearch'; // Display the recently accessed workspaces first, and then arrange other workspaces in alphabetical order. const sortedWorkspaceList: UpdatedWorkspaceObject[] = useMemo(() => { - const filterWorkspaces = workspaces.filter( + const workspacesForUseCase = workspaces.filter( (workspace) => getFirstUseCaseOfFeatureConfigs(workspace?.features || []) === useCase.id ); - return getWorkspacesWithRecentMessage(filterWorkspaces).sort( + return getWorkspacesWithRecentMessage(workspacesForUseCase).sort( sortByRecentVisitedAndAlphabetical ); }, [useCase.id, workspaces]); const hasWorkspaces = sortedWorkspaceList.length > 0; + const filteredWorkspaceList: UpdatedWorkspaceObject[] = useMemo( + () => filterWorkspaces(sortedWorkspaceList, filterCriteria), + [sortedWorkspaceList, filterCriteria] + ); + const hasMatches = filteredWorkspaceList.length > 0; + const adminCreateWorkspaceText = i18n.translate( 'workspace.initial.useCaseCard.adminCreateWorkspaceText', { @@ -157,15 +167,33 @@ export const WorkspaceUseCaseCard = ({ {hasWorkspaces ? ( <> - -
- +
+ +
+ + ) : ( + + -
-
+ color="subdued" + data-test-subj={`workspace-initial-useCaseCard-${useCase.id}-noMatchingWorkspaces`} + > + {i18n.translate('workspace.initial.useCaseCard.noMatchingWorkspaces', { + defaultMessage: 'No matching workspaces', + })} + + + )} diff --git a/src/plugins/workspace/public/components/workspace_list/__snapshots__/default_workspace.test.tsx.snap b/src/plugins/workspace/public/components/workspace_list/__snapshots__/default_workspace.test.tsx.snap index b43e356078ea..bfe1b9aed610 100644 --- a/src/plugins/workspace/public/components/workspace_list/__snapshots__/default_workspace.test.tsx.snap +++ b/src/plugins/workspace/public/components/workspace_list/__snapshots__/default_workspace.test.tsx.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`UserDefaultWorkspace should render title and table normally 1`] = `
@@ -196,7 +196,7 @@ exports[`UserDefaultWorkspace should render title and table normally 1`] = ` >
diff --git a/src/plugins/workspace/public/components/workspace_list/index.test.tsx b/src/plugins/workspace/public/components/workspace_list/index.test.tsx index cd39203b455c..f29ed7cff0c3 100644 --- a/src/plugins/workspace/public/components/workspace_list/index.test.tsx +++ b/src/plugins/workspace/public/components/workspace_list/index.test.tsx @@ -256,7 +256,7 @@ describe('WorkspaceList', () => { fireEvent.click(operationIcons); const editIcon = getByText('Edit'); fireEvent.click(editIcon); - expect(navigateToAppWithinWorkspace).toBeCalled(); + expect(navigateToAppWithinWorkspace).toHaveBeenCalled(); }); it('should be able to call delete modal after clicking delete button', async () => { diff --git a/src/plugins/workspace/public/components/workspace_list/index.tsx b/src/plugins/workspace/public/components/workspace_list/index.tsx index 6238dcbbf3aa..ae7a6aebc767 100644 --- a/src/plugins/workspace/public/components/workspace_list/index.tsx +++ b/src/plugins/workspace/public/components/workspace_list/index.tsx @@ -134,21 +134,19 @@ export const WorkspaceListInner = ({ }, [savedObjects, uiSettings]); const newWorkspaceList: WorkspaceAttributeWithUseCaseIDAndDataSources[] = useMemo(() => { - return workspaceList.map( - (workspace): WorkspaceAttributeWithUseCaseIDAndDataSources => { - const associatedDataSourcesTitles = allDataSources - .filter((ds) => ds.workspaces && ds.workspaces.includes(workspace.id)) - .map((ds) => ds.title as string); - return { - ...workspace, - useCase: extractUseCaseTitleFromFeatures( - registeredUseCases ?? [], - workspace.features ?? [] - ), - dataSources: associatedDataSourcesTitles, - }; - } - ); + return workspaceList.map((workspace): WorkspaceAttributeWithUseCaseIDAndDataSources => { + const associatedDataSourcesTitles = allDataSources + .filter((ds) => ds.workspaces && ds.workspaces.includes(workspace.id)) + .map((ds) => ds.title as string); + return { + ...workspace, + useCase: extractUseCaseTitleFromFeatures( + registeredUseCases ?? [], + workspace.features ?? [] + ), + dataSources: associatedDataSourcesTitles, + }; + }); }, [workspaceList, allDataSources, registeredUseCases]); const useCaseFilterOptions = useMemo(() => { @@ -164,7 +162,7 @@ export const WorkspaceListInner = ({ const params = new URLSearchParams(location.search); const useCase = params.get('useCase'); if (useCase && useCaseFilterOptions.find((item) => item.value === useCase)) { - setQuery((Query.parse(`useCase:"${useCase}"`) as unknown) as EuiSearchBarProps['query']); + setQuery(Query.parse(`useCase:"${useCase}"`) as unknown as EuiSearchBarProps['query']); } }, [location.search, useCaseFilterOptions]); @@ -382,7 +380,7 @@ export const WorkspaceListInner = ({ incremental: true, }, query, - onChange: (args) => setQuery((args.query as unknown) as EuiSearchBarProps['query']), + onChange: (args) => setQuery(args.query as unknown as EuiSearchBarProps['query']), filters: [ { type: 'field_value_selection', diff --git a/src/plugins/workspace/public/components/workspace_menu/workspace_menu.scss b/src/plugins/workspace/public/components/workspace_menu/workspace_menu.scss deleted file mode 100644 index 7fe456168b68..000000000000 --- a/src/plugins/workspace/public/components/workspace_menu/workspace_menu.scss +++ /dev/null @@ -1,3 +0,0 @@ -.workspaceMenuHeader { - padding: $ouiSizeL; -} diff --git a/src/plugins/workspace/public/components/workspace_menu/workspace_menu.test.tsx b/src/plugins/workspace/public/components/workspace_menu/workspace_menu.test.tsx deleted file mode 100644 index fe9f2ededb7c..000000000000 --- a/src/plugins/workspace/public/components/workspace_menu/workspace_menu.test.tsx +++ /dev/null @@ -1,229 +0,0 @@ -/* - * Copyright OpenSearch Contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -import { fireEvent, render, screen } from '@testing-library/react'; -import moment from 'moment'; -import { WorkspaceMenu } from './workspace_menu'; -import { coreMock } from '../../../../../core/public/mocks'; -import { CoreStart, DEFAULT_NAV_GROUPS } from '../../../../../core/public'; -import { BehaviorSubject } from 'rxjs'; -import { IntlProvider } from 'react-intl'; -import { recentWorkspaceManager } from '../../recent_workspace_manager'; - -describe('', () => { - let coreStartMock: CoreStart; - const navigateToApp = jest.fn(); - const registeredUseCases$ = new BehaviorSubject([ - { ...DEFAULT_NAV_GROUPS.observability, features: [{ id: 'discover', title: 'Discover' }] }, - ]); - - beforeEach(() => { - coreStartMock = coreMock.createStart(); - coreStartMock.application.capabilities = { - navLinks: {}, - management: {}, - catalogue: {}, - savedObjectsManagement: {}, - workspaces: { permissionEnabled: true }, - dashboards: { isDashboardAdmin: true }, - }; - coreStartMock.application = { - ...coreStartMock.application, - navigateToApp, - }; - - coreStartMock.workspaces.initialized$.next(true); - jest.spyOn(coreStartMock.application, 'getUrlForApp').mockImplementation((appId: string) => { - return `https://test.com/app/${appId}`; - }); - }); - - const WorkspaceMenuCreatorComponent = () => { - return ( - // @ts-expect-error TS2769 TODO(ts-error): fixme - - {/* @ts-expect-error TS2322 TODO(ts-error): fixme */} - - - ); - }; - - afterEach(() => { - jest.clearAllMocks(); - jest.restoreAllMocks(); - }); - - it('should display a list of workspaces in the dropdown', () => { - coreStartMock.workspaces.workspaceList$.next([ - { id: 'workspace-1', name: 'workspace 1', features: [] }, - { id: 'workspace-2', name: 'workspace 2' }, - ]); - - render(); - const selectButton = screen.getByTestId('workspace-select-button'); - fireEvent.click(selectButton); - - expect(screen.getByTestId('workspace-menu-item-workspace-1')).toBeInTheDocument(); - expect(screen.getByTestId('workspace-menu-item-workspace-2')).toBeInTheDocument(); - }); - - it('should display viewed xx ago for recent workspaces', () => { - jest - .spyOn(recentWorkspaceManager, 'getRecentWorkspaces') - .mockReturnValue([{ id: 'workspace-1', timestamp: 1234567890 }]); - - coreStartMock.workspaces.workspaceList$.next([ - { id: 'workspace-1', name: 'workspace 1', features: [] }, - { id: 'workspace-2', name: 'workspace 2', features: [] }, - ]); - - render(); - - const selectButton = screen.getByTestId('workspace-select-button'); - fireEvent.click(selectButton); - - expect(screen.getByText(`Viewed ${moment(1234567890).fromNow()}`)).toBeInTheDocument(); - }); - - it('should be able to display empty state when the workspace list is empty', () => { - coreStartMock.workspaces.workspaceList$.next([]); - render(); - const selectButton = screen.getByTestId('workspace-select-button'); - fireEvent.click(selectButton); - expect(screen.getByText(/no workspace available/i)).toBeInTheDocument(); - }); - - it('should be able to perform search and filter and the results will be shown', () => { - coreStartMock.workspaces.workspaceList$.next([ - { id: 'workspace-1', name: 'workspace 1', features: [] }, - { id: 'test-2', name: 'test 2', features: [] }, - ]); - jest - .spyOn(recentWorkspaceManager, 'getRecentWorkspaces') - .mockReturnValue([{ id: 'workspace-1', timestamp: 1234567890 }]); - render(); - - const selectButton = screen.getByTestId('workspace-select-button'); - fireEvent.click(selectButton); - - const searchInput = screen.getByRole('searchbox'); - fireEvent.change(searchInput, { target: { value: 'works' } }); - expect(screen.getByTestId('workspace-menu-item-workspace-1')).toBeInTheDocument(); - expect(screen.queryByText('workspace-menu-item-workspace-1')).not.toBeInTheDocument(); - }); - - it('should be able to display empty state when seach is not found', () => { - coreStartMock.workspaces.workspaceList$.next([ - { id: 'workspace-1', name: 'workspace 1', features: [] }, - { id: 'test-2', name: 'test 2', features: [] }, - ]); - jest - .spyOn(recentWorkspaceManager, 'getRecentWorkspaces') - .mockReturnValue([{ id: 'workspace-1', timestamp: 1234567890 }]); - render(); - - const selectButton = screen.getByTestId('workspace-select-button'); - fireEvent.click(selectButton); - - const searchInput = screen.getByRole('searchbox'); - fireEvent.change(searchInput, { target: { value: 'noitems' } }); - expect(screen.getByText(/no workspace available/i)).toBeInTheDocument(); - }); - - it('should display current workspace name, use case name and associated icon', () => { - coreStartMock.workspaces.currentWorkspace$.next({ - id: 'workspace-1', - name: 'workspace 1', - features: ['use-case-observability'], - }); - render(); - - fireEvent.click(screen.getByTestId('workspace-select-button')); - expect(screen.getByTestId('workspace-menu-current-workspace-name')).toBeInTheDocument(); - expect(screen.getByTestId('workspace-menu-current-workspace-use-case')).toBeInTheDocument(); - expect(screen.getByTestId('current-workspace-icon-wsObservability')).toBeInTheDocument(); - expect(screen.getByText('Observability')).toBeInTheDocument(); - }); - - it('should navigate to the first feature of workspace use case', () => { - coreStartMock.workspaces.workspaceList$.next([ - { id: 'workspace-1', name: 'workspace 1', features: ['use-case-observability'] }, - ]); - - const originalLocation = window.location; - Object.defineProperty(window, 'location', { - value: { - assign: jest.fn(), - }, - }); - - render(); - fireEvent.click(screen.getByTestId('workspace-select-button')); - fireEvent.click(screen.getByText(/workspace 1/i)); - - expect(window.location.assign).toHaveBeenCalledWith( - 'https://test.com/w/workspace-1/app/discover' - ); - - Object.defineProperty(window, 'location', { - value: originalLocation, - }); - }); - - it('should navigate to the workspace detail page when use case is all', () => { - coreStartMock.workspaces.workspaceList$.next([ - { id: 'workspace-1', name: 'workspace 1', features: ['use-case-all'] }, - ]); - - const originalLocation = window.location; - Object.defineProperty(window, 'location', { - value: { - assign: jest.fn(), - }, - }); - - render(); - fireEvent.click(screen.getByTestId('workspace-select-button')); - fireEvent.click(screen.getByText(/workspace 1/i)); - - expect(window.location.assign).toHaveBeenCalledWith( - 'https://test.com/w/workspace-1/app/workspace_detail' - ); - - Object.defineProperty(window, 'location', { - value: originalLocation, - }); - }); - - it('should navigate to create workspace page', () => { - render(); - fireEvent.click(screen.getByTestId('workspace-select-button')); - fireEvent.click(screen.getByText(/create workspace/i)); - expect(coreStartMock.application.navigateToApp).toHaveBeenCalledWith('workspace_create'); - }); - - it('should navigate to workspace list page', () => { - render(); - - fireEvent.click(screen.getByTestId('workspace-select-button')); - fireEvent.click(screen.getByText(/manage/i)); - expect(coreStartMock.application.navigateToApp).toHaveBeenCalledWith('workspace_list'); - }); - - it('should hide create workspace button for non dashboard admin', () => { - coreStartMock.application.capabilities = { - ...coreStartMock.application.capabilities, - dashboards: { - ...coreStartMock.application.capabilities.dashboards, - isDashboardAdmin: false, - }, - }; - render(); - - fireEvent.click(screen.getByTestId('workspace-select-button')); - expect(screen.queryByText(/manage/i)).not.toBeInTheDocument(); - expect(screen.queryByText(/create workspaces/i)).toBeNull(); - }); -}); diff --git a/src/plugins/workspace/public/components/workspace_menu/workspace_menu.tsx b/src/plugins/workspace/public/components/workspace_menu/workspace_menu.tsx deleted file mode 100644 index 5a5c785b350d..000000000000 --- a/src/plugins/workspace/public/components/workspace_menu/workspace_menu.tsx +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright OpenSearch Contributors - * SPDX-License-Identifier: Apache-2.0 - */ -import { i18n } from '@osd/i18n'; -import { useState } from 'react'; -import { useObservable } from 'react-use'; -import { - EuiText, - EuiPanel, - EuiPopover, - EuiButtonIcon, - EuiFlexItem, - EuiIcon, - EuiSpacer, - EuiFlexGroup, - EuiHorizontalRule, - EuiButtonEmpty, - EuiToolTip, -} from '@elastic/eui'; -import { BehaviorSubject } from 'rxjs'; -import { WORKSPACE_CREATE_APP_ID, WORKSPACE_LIST_APP_ID } from '../../../common/constants'; -import { CoreStart, WorkspaceObject } from '../../../../../core/public'; -import { getFirstUseCaseOfFeatureConfigs } from '../../utils'; -import { WorkspaceUseCase } from '../../types'; -import { validateWorkspaceColor } from '../../../common/utils'; -import { WorkspacePickerContent } from '../workspace_picker_content/workspace_picker_content'; -import './workspace_menu.scss'; - -const defaultHeaderName = i18n.translate('workspace.menu.defaultHeaderName', { - defaultMessage: 'Workspaces', -}); - -const createWorkspaceButton = i18n.translate('workspace.menu.button.createWorkspace', { - defaultMessage: 'Create workspace', -}); - -const manageWorkspacesButton = i18n.translate('workspace.menu.button.manageWorkspaces', { - defaultMessage: 'Manage', -}); - -const getValidWorkspaceColor = (color?: string) => - validateWorkspaceColor(color) ? color : undefined; - -interface Props { - coreStart: CoreStart; - registeredUseCases$: BehaviorSubject; -} - -export const WorkspaceMenu = ({ coreStart, registeredUseCases$ }: Props) => { - const [isPopoverOpen, setPopover] = useState(false); - const currentWorkspace = useObservable(coreStart.workspaces.currentWorkspace$, null); - const isDashboardAdmin = coreStart.application.capabilities?.dashboards?.isDashboardAdmin; - const availableUseCases = useObservable(registeredUseCases$, []); - - const currentWorkspaceName = currentWorkspace?.name ?? defaultHeaderName; - - const getUseCase = (workspace: WorkspaceObject) => { - if (!workspace.features) { - return; - } - const useCaseId = getFirstUseCaseOfFeatureConfigs(workspace.features); - return availableUseCases.find((useCase) => useCase.id === useCaseId); - }; - - const openPopover = () => { - setPopover(!isPopoverOpen); - }; - - const closePopover = () => { - setPopover(false); - }; - - const currentWorkspaceButton = ( - - - - ); - - return ( - - - - - {currentWorkspace ? ( - <> - - - - - -

{currentWorkspaceName}

-
-
- - - {getUseCase(currentWorkspace)?.title ?? ''} - - - - ) : ( - <> - - - - - {currentWorkspaceName} - - - )} -
-
- - - setPopover(false)} - isInTwoLines={false} - /> - - - {isDashboardAdmin && ( - - - - - - { - closePopover(); - coreStart.application.navigateToApp(WORKSPACE_LIST_APP_ID); - }} - > - {manageWorkspacesButton} - - - - - { - closePopover(); - coreStart.application.navigateToApp(WORKSPACE_CREATE_APP_ID); - }} - > - {createWorkspaceButton} - - - - - )} -
-
- ); -}; diff --git a/src/plugins/workspace/public/components/workspace_selector/workspace_selector.scss b/src/plugins/workspace/public/components/workspace_selector/workspace_selector.scss index c3b319c573e3..107e86ccc3b8 100644 --- a/src/plugins/workspace/public/components/workspace_selector/workspace_selector.scss +++ b/src/plugins/workspace/public/components/workspace_selector/workspace_selector.scss @@ -29,3 +29,18 @@ font-weight: $euiFontWeightMedium; max-width: 160px; } + +// Flush variant used inside context-menu-style popovers (e.g. the footer +// "Manage workspace" menu): a flat, full-width row that matches sibling menu +// items instead of the boxed nav-header button. +.workspaceSelectorFlushButton { + cursor: pointer; + + &:hover, + &:focus { + // stylelint-disable-next-line @osd/stylelint/no_restricted_values + background-color: rgba($euiTextColor, 0.04); + transition: none !important; + transform: none !important; + } +} diff --git a/src/plugins/workspace/public/components/workspace_selector/workspace_selector.test.tsx b/src/plugins/workspace/public/components/workspace_selector/workspace_selector.test.tsx index 3c560b909f52..4f48eeded03d 100644 --- a/src/plugins/workspace/public/components/workspace_selector/workspace_selector.test.tsx +++ b/src/plugins/workspace/public/components/workspace_selector/workspace_selector.test.tsx @@ -148,24 +148,15 @@ describe('', () => { { id: 'workspace-1', name: 'workspace 1', features: ['use-case-observability'] }, ]); - const originalLocation = window.location; - Object.defineProperty(window, 'location', { - value: { - assign: jest.fn(), - }, - }); + const assignSpy = jest.spyOn(window.location, 'assign').mockImplementation(jest.fn()); render(); fireEvent.click(screen.getByTestId('workspace-selector-button')); fireEvent.click(screen.getByText(/workspace 1/i)); - expect(window.location.assign).toHaveBeenCalledWith( - 'https://test.com/w/workspace-1/app/discover' - ); + expect(assignSpy).toHaveBeenCalledWith('https://test.com/w/workspace-1/app/discover'); - Object.defineProperty(window, 'location', { - value: originalLocation, - }); + assignSpy.mockRestore(); }); it('should navigate to the workspace detail page when use case is all', () => { @@ -173,24 +164,15 @@ describe('', () => { { id: 'workspace-1', name: 'workspace 1', features: ['use-case-all'] }, ]); - const originalLocation = window.location; - Object.defineProperty(window, 'location', { - value: { - assign: jest.fn(), - }, - }); + const assignSpy = jest.spyOn(window.location, 'assign').mockImplementation(jest.fn()); render(); fireEvent.click(screen.getByTestId('workspace-selector-button')); fireEvent.click(screen.getByText(/workspace 1/i)); - expect(window.location.assign).toHaveBeenCalledWith( - 'https://test.com/w/workspace-1/app/workspace_detail' - ); + expect(assignSpy).toHaveBeenCalledWith('https://test.com/w/workspace-1/app/workspace_detail'); - Object.defineProperty(window, 'location', { - value: originalLocation, - }); + assignSpy.mockRestore(); }); it('should navigate to create workspace page', () => { @@ -222,4 +204,45 @@ describe('', () => { expect(screen.queryByText(/manage/i)).not.toBeInTheDocument(); expect(screen.queryByText(/create workspaces/i)).toBeNull(); }); + + describe('flush variant', () => { + const FlushComponent = () => ( + + + + ); + + it('renders the flat trigger showing the current workspace name', () => { + render(); + const button = screen.getByTestId('workspace-selector-button'); + expect(button).toBeInTheDocument(); + expect(button).toHaveClass('workspaceSelectorFlushButton'); + expect(screen.getByTestId('workspace-selector-current-name')).toHaveTextContent( + 'workspace 3' + ); + }); + + it('opens the same picker popover on click', () => { + coreStartMock.workspaces.workspaceList$.next([ + { id: 'workspace-1', name: 'workspace 1', features: [] }, + ]); + render(); + fireEvent.click(screen.getByTestId('workspace-selector-button')); + expect(screen.getByText('workspace 1')).toBeInTheDocument(); + }); + + it('shows "Select a workspace" as a flat row when outside a workspace', () => { + coreStartMock.workspaces.currentWorkspace$ = new BehaviorSubject( + null + ); + render(); + const button = screen.getByTestId('workspace-selector-button'); + expect(button).toHaveClass('workspaceSelectorFlushButton'); + expect(screen.getByText(/select a workspace/i)).toBeInTheDocument(); + }); + }); }); diff --git a/src/plugins/workspace/public/components/workspace_selector/workspace_selector.tsx b/src/plugins/workspace/public/components/workspace_selector/workspace_selector.tsx index 390e97e39682..ccaa9324f626 100644 --- a/src/plugins/workspace/public/components/workspace_selector/workspace_selector.tsx +++ b/src/plugins/workspace/public/components/workspace_selector/workspace_selector.tsx @@ -41,9 +41,31 @@ const getValidWorkspaceColor = (color?: string) => interface Props { coreStart: CoreStart; registeredUseCases$: BehaviorSubject; + /** + * Render the trigger as a flush, full-width menu row (icon + name + chevron) + * instead of the default nav-header panel button. Used when the selector is + * embedded inside a context-menu-style popover (e.g. the footer "Manage + * workspace" menu) so it visually matches the sibling menu rows. The + * outside-a-workspace state renders the same flat row ("Select a workspace") + * rather than a large primary button. + */ + flush?: boolean; + /** + * Render only the picker content (search + workspace list + Manage/Create), + * with no trigger button and no popover wrapper. Used when a parent popover + * already provides the container (e.g. the footer "Manage workspace" menu on + * pages with no manage-workspace links) so the picker shows directly instead + * of a redundant popover-in-a-popover. + */ + inline?: boolean; } -export const WorkspaceSelector = ({ coreStart, registeredUseCases$ }: Props) => { +export const WorkspaceSelector = ({ + coreStart, + registeredUseCases$, + flush = false, + inline = false, +}: Props) => { const [isPopoverOpen, setPopover] = useState(false); const currentWorkspace = useObservable(coreStart.workspaces.currentWorkspace$, null); const availableUseCases = useObservable(registeredUseCases$, []); @@ -65,7 +87,48 @@ export const WorkspaceSelector = ({ coreStart, registeredUseCases$ }: Props) => setPopover(false); }; - const button = currentWorkspace ? ( + const selectWorkspaceLabel = i18n.translate('workspace.menu.selectWorkspace', { + defaultMessage: 'Select a workspace', + }); + + // Flush variant: a flat, full-width menu row for both the in-workspace and + // outside-a-workspace states, so it matches the context-menu rows it sits + // alongside when embedded in a popover. + const flushButton = ( + + + + + + + + + {currentWorkspace ? currentWorkspace.name : selectWorkspaceLabel} + + + + + {/* The flush picker opens to the right, so point the chevron toward it + (submenu-style disclosure) rather than down. */} + + + + + ); + + const defaultButton = currentWorkspace ? (
Select a Workspace ); + const button = flush ? flushButton : defaultButton; + + // The picker body (search + workspace list + Manage/Create). Shared between the + // popover (default/flush) and the inline variant, which renders it directly + // without a trigger button or nested popover. + const pickerContent = ( + + + + setPopover(false)} + isInTwoLines={false} + /> + + + + {isDashboardAdmin && ( + + + + + + { + closePopover(); + coreStart.application.navigateToApp(WORKSPACE_LIST_APP_ID); + }} + > + {manageWorkspacesButton} + + + + + { + closePopover(); + coreStart.application.navigateToApp(WORKSPACE_CREATE_APP_ID); + }} + > + {createWorkspaceButton} + + + + + )} + + ); + + // Inline: render just the picker content (no trigger, no popover) so a parent + // popover (e.g. the footer "Manage workspace" menu on pages with no manage + // links) can show the picker directly without a redundant popover-in-popover. + if (inline) { + return pickerContent; + } + return ( - - - - setPopover(false)} - isInTwoLines={false} - /> - - - - {isDashboardAdmin && ( - - - - - - { - closePopover(); - coreStart.application.navigateToApp(WORKSPACE_LIST_APP_ID); - }} - > - {manageWorkspacesButton} - - - - - { - closePopover(); - coreStart.application.navigateToApp(WORKSPACE_CREATE_APP_ID); - }} - > - {createWorkspaceButton} - - - - - )} - + {pickerContent} ); }; diff --git a/src/plugins/workspace/public/components/workspace_use_case_overview_app.test.tsx b/src/plugins/workspace/public/components/workspace_use_case_overview_app.test.tsx index 1881fb167239..fc5dce73603c 100644 --- a/src/plugins/workspace/public/components/workspace_use_case_overview_app.test.tsx +++ b/src/plugins/workspace/public/components/workspace_use_case_overview_app.test.tsx @@ -152,7 +152,7 @@ describe('WorkspaceUseCaseOverviewApp - Essential', () => { act(() => { fireEvent.click(queryByText(/Show Get started/)!); }); - expect(coreStartMocks.uiSettings.set).toBeCalledWith( + expect(coreStartMocks.uiSettings.set).toHaveBeenCalledWith( ESSENTIAL_WORKSPACE_DISMISS_GET_STARTED, false ); diff --git a/src/plugins/workspace/public/plugin.test.ts b/src/plugins/workspace/public/plugin.test.ts index e861ffdc6666..3be6bbc932f4 100644 --- a/src/plugins/workspace/public/plugin.test.ts +++ b/src/plugins/workspace/public/plugin.test.ts @@ -51,9 +51,9 @@ describe('Workspace plugin', () => { savedObjectsManagement: savedObjectManagementSetupMock, management: managementPluginMock.createSetupContract(), }); - expect(setupMock.application.register).toBeCalledTimes(registrationAppNumber); - expect(WorkspaceClientMock).toBeCalledTimes(1); - expect(savedObjectManagementSetupMock.columns.register).toBeCalledTimes(1); + expect(setupMock.application.register).toHaveBeenCalledTimes(registrationAppNumber); + expect(WorkspaceClientMock).toHaveBeenCalledTimes(1); + expect(savedObjectManagementSetupMock.columns.register).toHaveBeenCalledTimes(1); }); it('#call savedObjectsClient.setCurrentWorkspace when current workspace id changed', async () => { @@ -64,9 +64,9 @@ describe('Workspace plugin', () => { workspacePlugin.start(coreStart, getMockDependencies()); coreStart.workspaces.currentWorkspaceId$.next('foo'); expect(coreStart.savedObjects.client.setCurrentWorkspace).toHaveBeenCalledWith('foo'); - expect(setupMock.application.register).toBeCalledTimes(registrationAppNumber); - expect(WorkspaceClientMock).toBeCalledTimes(1); - expect(workspaceClientMock.enterWorkspace).toBeCalledTimes(0); + expect(setupMock.application.register).toHaveBeenCalledTimes(registrationAppNumber); + expect(WorkspaceClientMock).toHaveBeenCalledTimes(1); + expect(workspaceClientMock.enterWorkspace).toHaveBeenCalledTimes(0); }); it('#setup should register workspace list with a visible application and register to settingsAndSetup nav group', async () => { @@ -133,15 +133,7 @@ describe('Workspace plugin', () => { }); it('#setup should register registerCollapsibleNavHeader when enter a workspace', async () => { - const windowSpy = jest.spyOn(window, 'window', 'get'); - windowSpy.mockImplementation( - () => - ({ - location: { - href: 'http://localhost/w/workspaceId/app', - }, - } as any) - ); + window.history.pushState({}, '', '/w/workspaceId/app'); workspaceClientMock.enterWorkspace.mockResolvedValueOnce({ success: true, result: null, @@ -158,7 +150,7 @@ describe('Workspace plugin', () => { const startMock = coreMock.createStart(); await workspacePlugin.start(startMock, getMockDependencies()); expect(collapsibleNavHeaderImplementation()).not.toEqual(null); - windowSpy.mockRestore(); + window.history.pushState({}, '', '/'); }); it('#setup should register workspace essential use case when new home is disabled', async () => { @@ -276,15 +268,7 @@ describe('Workspace plugin', () => { }); it('#start should handle fatal error when workspace is stale', async () => { - const windowSpy = jest.spyOn(window, 'window', 'get'); - windowSpy.mockImplementation( - () => - ({ - location: { - href: 'http://localhost/w/workspaceId/app', - }, - } as any) - ); + window.history.pushState({}, '', '/w/workspaceId/app'); const setupMock = coreMock.createSetup(); @@ -292,8 +276,8 @@ describe('Workspace plugin', () => { await workspacePlugin.setup(setupMock, {}); - expect(WorkspaceClientMock).toBeCalledTimes(1); - expect(workspaceClientMock.enterWorkspace).toBeCalledWith('workspaceId'); + expect(WorkspaceClientMock).toHaveBeenCalledTimes(1); + expect(workspaceClientMock.enterWorkspace).toHaveBeenCalledWith('workspaceId'); const startMock = coreMock.createStart(); startMock.application.currentAppId$ = new BehaviorSubject(WORKSPACE_DETAIL_APP_ID); @@ -302,25 +286,17 @@ describe('Workspace plugin', () => { startMock.workspaces.workspaceError$.next(WorkspaceError.WORKSPACE_IS_STALE); startMock.workspaces.initialized$.next(true); - expect(startMock.application.navigateToApp).toBeCalledWith(WORKSPACE_FATAL_ERROR_APP_ID, { + expect(startMock.application.navigateToApp).toHaveBeenCalledWith(WORKSPACE_FATAL_ERROR_APP_ID, { replace: true, state: { error: 'Cannot find current workspace since it is stale', }, }); - windowSpy.mockRestore(); + window.history.pushState({}, '', '/'); }); it('#start when workspace id is in url and enterWorkspace return success', async () => { - const windowSpy = jest.spyOn(window, 'window', 'get'); - windowSpy.mockImplementation( - () => - ({ - location: { - href: 'http://localhost/w/workspaceId/app', - }, - } as any) - ); + window.history.pushState({}, '', '/w/workspaceId/app'); workspaceClientMock.enterWorkspace.mockResolvedValue({ success: true, result: null, @@ -329,8 +305,8 @@ describe('Workspace plugin', () => { const workspacePlugin = new WorkspacePlugin(); await workspacePlugin.setup(getSetupMock(), {}); - expect(WorkspaceClientMock).toBeCalledTimes(1); - expect(workspaceClientMock.enterWorkspace).toBeCalledWith('workspaceId'); + expect(WorkspaceClientMock).toHaveBeenCalledTimes(1); + expect(workspaceClientMock.enterWorkspace).toHaveBeenCalledWith('workspaceId'); const startMock = coreMock.createStart(); workspacePlugin.start(startMock, getMockDependencies()); @@ -339,27 +315,19 @@ describe('Workspace plugin', () => { startMock.application.currentAppId$ = new BehaviorSubject(WORKSPACE_FATAL_ERROR_APP_ID); startMock.workspaces.initialized$.next(true); - expect(startMock.application.navigateToApp).toBeCalledWith(WORKSPACE_DETAIL_APP_ID); - windowSpy.mockRestore(); + expect(startMock.application.navigateToApp).toHaveBeenCalledWith(WORKSPACE_DETAIL_APP_ID); + window.history.pushState({}, '', '/'); }); it('#start when workspace id is in url and enterWorkspace return error', async () => { - const windowSpy = jest.spyOn(window, 'window', 'get'); - windowSpy.mockImplementation( - () => - ({ - location: { - href: 'http://localhost/w/workspaceId/app', - }, - } as any) - ); + window.history.pushState({}, '', '/w/workspaceId/app'); const workspacePlugin = new WorkspacePlugin(); await workspacePlugin.setup(getSetupMock(), {}); - expect(WorkspaceClientMock).toBeCalledTimes(1); - expect(workspaceClientMock.enterWorkspace).toBeCalledWith('workspaceId'); + expect(WorkspaceClientMock).toHaveBeenCalledTimes(1); + expect(workspaceClientMock.enterWorkspace).toHaveBeenCalledWith('workspaceId'); const startMock = coreMock.createStart(); startMock.application.currentAppId$ = new BehaviorSubject(WORKSPACE_DETAIL_APP_ID); @@ -369,14 +337,14 @@ describe('Workspace plugin', () => { startMock.workspaces.initialized$.next(true); startMock.workspaces.workspaceError$.next('error'); - expect(startMock.application.navigateToApp).toBeCalledWith(WORKSPACE_FATAL_ERROR_APP_ID, { + expect(startMock.application.navigateToApp).toHaveBeenCalledWith(WORKSPACE_FATAL_ERROR_APP_ID, { replace: true, state: { error: 'error', }, }); - windowSpy.mockRestore(); + window.history.pushState({}, '', '/'); }); it('#start add workspace detail page to breadcrumbs when start', async () => { @@ -390,7 +358,7 @@ describe('Workspace plugin', () => { startMock.chrome.getBreadcrumbs$.mockReturnValue(breadcrumbs); const workspacePlugin = new WorkspacePlugin(); workspacePlugin.start(startMock, getMockDependencies()); - expect(startMock.chrome.setBreadcrumbs).toBeCalledWith( + expect(startMock.chrome.setBreadcrumbs).toHaveBeenCalledWith( expect.arrayContaining([ expect.objectContaining({ text: 'bar', @@ -460,7 +428,7 @@ describe('Workspace plugin', () => { const workspacePlugin = new WorkspacePlugin(); workspacePlugin.start(coreStart, getMockDependencies()); - expect(coreStart.chrome.navControls.registerLeftBottom).toBeCalledTimes(1); + expect(coreStart.chrome.navControls.registerLeftBottom).toHaveBeenCalledTimes(1); }); it('#start should not update systematic use case features after currentWorkspace set', async () => { @@ -555,7 +523,9 @@ describe('Workspace plugin', () => { workspacePlugin.start(coreStart, getMockDependencies()); - expect(coreStart.chrome.globalSearch.unregisterSearchCommand).toBeCalledWith('pagesSearch'); + expect(coreStart.chrome.globalSearch.unregisterSearchCommand).toHaveBeenCalledWith( + 'pagesSearch' + ); }); it('#start should update collaboratorsAppUpdater correctly if permission enabled', async () => { diff --git a/src/plugins/workspace/public/plugin.ts b/src/plugins/workspace/public/plugin.ts index f47679dd125a..671aec4fc11e 100644 --- a/src/plugins/workspace/public/plugin.ts +++ b/src/plugins/workspace/public/plugin.ts @@ -44,7 +44,7 @@ import { ContentManagementPluginStart, ESSENTIAL_OVERVIEW_PAGE_ID, } from '../../../plugins/content_management/public'; -import { WorkspaceMenu } from './components/workspace_menu/workspace_menu'; +import { ManageWorkspaceMenu } from './components/manage_workspace_menu/manage_workspace_menu'; import { getWorkspaceColumn } from './components/workspace_column'; import { DataSourceManagementPluginSetup } from '../../../plugins/data_source_management/public'; import { DataPublicPluginStart } from '../../../plugins/data/public'; @@ -96,8 +96,12 @@ export interface WorkspacePluginStartDeps { data: DataPublicPluginStart; } -export class WorkspacePlugin - implements Plugin { +export class WorkspacePlugin implements Plugin< + WorkspacePluginSetup, + {}, + WorkspacePluginSetupDeps, + WorkspacePluginStartDeps +> { private coreStart?: CoreStart; private currentWorkspaceSubscription?: Subscription; private breadcrumbsSubscription?: Subscription; @@ -641,12 +645,21 @@ export class WorkspacePlugin this.addWorkspaceToBreadcrumbs(core); } else { /** - * Register workspace dropdown selector on the left navigation bottom + * Register the "Manage workspace" menu on the left navigation bottom. This + * replaces the former workspace switcher button — switching/creating + * workspaces lives in the always-present top-of-nav workspace selector, + * while this footer entry-point opens a popover of the manage-workspace + * apps (Workspace details, Collaborators, Data sources, etc.). + * + * Registered only in the `leftBottom` slot — the expanded footer (and the + * classic nav). This matches the button it replaces, which was never in the + * collapsed icon rail. The collapsed rail stays slim; manage-workspace is a + * low-frequency action reachable by expanding the nav. */ core.chrome.navControls.registerLeftBottom({ order: 2, mount: toMountPoint( - React.createElement(WorkspaceMenu, { + React.createElement(ManageWorkspaceMenu, { coreStart: core, registeredUseCases$: this.registeredUseCases$, }) diff --git a/src/plugins/workspace/public/register_default_collaborator_types.tsx b/src/plugins/workspace/public/register_default_collaborator_types.tsx index e02a23d5a6c4..b0ea2614e794 100644 --- a/src/plugins/workspace/public/register_default_collaborator_types.tsx +++ b/src/plugins/workspace/public/register_default_collaborator_types.tsx @@ -20,29 +20,29 @@ export const generateOnAddCallback: ( options: Omit & { getStartServices: CoreSetup['getStartServices']; } -) => WorkspaceCollaboratorType['onAdd'] = ({ getStartServices, ...props }) => async ({ - onAddCollaborators, -}) => { - let overlayRef: OverlayRef | null = null; - const [coreStart] = await getStartServices(); - overlayRef = coreStart.overlays.openModal( - toMountPoint( - - { - overlayRef?.close(); - }} - onAddCollaborators={async (collaborators) => { - await onAddCollaborators(collaborators); - overlayRef?.close(); - }} - /> - - ) - ); -}; +) => WorkspaceCollaboratorType['onAdd'] = + ({ getStartServices, ...props }) => + async ({ onAddCollaborators }) => { + let overlayRef: OverlayRef | null = null; + const [coreStart] = await getStartServices(); + overlayRef = coreStart.overlays.openModal( + toMountPoint( + + { + overlayRef?.close(); + }} + onAddCollaborators={async (collaborators) => { + await onAddCollaborators(collaborators); + overlayRef?.close(); + }} + /> + + ) + ); + }; export const registerDefaultCollaboratorTypes = ({ getStartServices, diff --git a/src/plugins/workspace/public/services/use_case_service.test.ts b/src/plugins/workspace/public/services/use_case_service.test.ts index dfc3faa03e1c..d42b241c7ede 100644 --- a/src/plugins/workspace/public/services/use_case_service.test.ts +++ b/src/plugins/workspace/public/services/use_case_service.test.ts @@ -12,6 +12,7 @@ import { DEFAULT_NAV_GROUPS, NavGroupItemInMap, NavGroupType, + OBSERVABILITY_USE_CASE_ID, } from '../../../../core/public'; import { UseCaseService } from './use_case_service'; import { waitFor } from '@testing-library/dom'; @@ -81,26 +82,28 @@ describe('UseCaseService', () => { coreSetup.getStartServices.mockResolvedValue([coreStartMock, {}, {}]); coreStartMock.chrome.navGroup.getNavGroupsMap$.mockReturnValue(navGroupMap$); useCaseService.setup(coreSetup); + // Use the Observability workspace so the full manage-workspace list + // (including the observability-only `datasets` entry) is registered. const navGroupInfo = { - ...DEFAULT_NAV_GROUPS.all, + ...DEFAULT_NAV_GROUPS.observability, navLinks: [], }; navGroupMap$.next({ - [ALL_USE_CASE_ID]: navGroupInfo, + [OBSERVABILITY_USE_CASE_ID]: navGroupInfo, }); coreSetup.workspaces.currentWorkspace$.next({ - id: ALL_USE_CASE_ID, - name: ALL_USE_CASE_ID, - features: [`use-case-${ALL_USE_CASE_ID}`], + id: OBSERVABILITY_USE_CASE_ID, + name: OBSERVABILITY_USE_CASE_ID, + features: [`use-case-${OBSERVABILITY_USE_CASE_ID}`], }); await waitFor(() => { - expect(coreSetup.chrome.navGroup.addNavLinksToGroup).toBeCalledWith(navGroupInfo, [ + expect(coreSetup.chrome.navGroup.addNavLinksToGroup).toHaveBeenCalledWith(navGroupInfo, [ { id: WORKSPACE_DETAIL_APP_ID, category: DEFAULT_APP_CATEGORIES.manageWorkspace, order: 100, title: 'Workspace details', - euiIconType: 'spacesApp', + euiIconType: 'wsSelector', }, { id: 'workspace_collaborators', @@ -140,10 +143,49 @@ describe('UseCaseService', () => { title: 'Sample data', euiIconType: 'navGetStarted', }, + { + id: 'workspace_settings', + category: DEFAULT_APP_CATEGORIES.manageWorkspace, + order: 700, + title: 'Settings', + euiIconType: 'gear', + }, ]); }); }); + it('excludes the datasets entry for non-observability use cases', async () => { + const useCaseService = new UseCaseService(); + const coreSetup = coreMock.createSetup(); + const navGroupMap$ = new BehaviorSubject>({}); + const coreStartMock = coreMock.createStart(); + coreSetup.getStartServices.mockResolvedValue([coreStartMock, {}, {}]); + coreStartMock.chrome.navGroup.getNavGroupsMap$.mockReturnValue(navGroupMap$); + useCaseService.setup(coreSetup); + const navGroupInfo = { + ...DEFAULT_NAV_GROUPS.search, + navLinks: [], + }; + navGroupMap$.next({ + search: navGroupInfo, + }); + coreSetup.workspaces.currentWorkspace$.next({ + id: 'search', + name: 'search', + features: ['use-case-search'], + }); + await waitFor(() => { + expect(coreSetup.chrome.navGroup.addNavLinksToGroup).toHaveBeenCalled(); + }); + const registeredLinks = (coreSetup.chrome.navGroup.addNavLinksToGroup as jest.Mock).mock + .calls[0][1]; + expect(registeredLinks.some((link: { id: string }) => link.id === 'datasets')).toBe(false); + // Other manage-workspace links are still present. + expect(registeredLinks.some((link: { id: string }) => link.id === 'indexPatterns')).toBe( + true + ); + }); + it('should register nav links with correct euiIconType values', async () => { const useCaseService = new UseCaseService(); const coreSetup = coreMock.createSetup(); @@ -160,24 +202,24 @@ describe('UseCaseService', () => { coreStartMock.chrome.navGroup.getNavGroupsMap$.mockReturnValue(navGroupMap$); useCaseService.setup(coreSetup); const navGroupInfo = { - ...DEFAULT_NAV_GROUPS.all, + ...DEFAULT_NAV_GROUPS.observability, navLinks: [], }; navGroupMap$.next({ - [ALL_USE_CASE_ID]: navGroupInfo, + [OBSERVABILITY_USE_CASE_ID]: navGroupInfo, }); coreSetup.workspaces.currentWorkspace$.next({ - id: ALL_USE_CASE_ID, - name: ALL_USE_CASE_ID, - features: [`use-case-${ALL_USE_CASE_ID}`], + id: OBSERVABILITY_USE_CASE_ID, + name: OBSERVABILITY_USE_CASE_ID, + features: [`use-case-${OBSERVABILITY_USE_CASE_ID}`], }); await waitFor(() => { - expect(coreSetup.chrome.navGroup.addNavLinksToGroup).toBeCalledWith( + expect(coreSetup.chrome.navGroup.addNavLinksToGroup).toHaveBeenCalledWith( navGroupInfo, expect.arrayContaining([ expect.objectContaining({ id: WORKSPACE_DETAIL_APP_ID, - euiIconType: 'spacesApp', + euiIconType: 'wsSelector', }), expect.objectContaining({ id: 'workspace_collaborators', @@ -203,6 +245,10 @@ describe('UseCaseService', () => { id: 'import_sample_data', euiIconType: 'navGetStarted', }), + expect.objectContaining({ + id: 'workspace_settings', + euiIconType: 'gear', + }), ]) ); }); diff --git a/src/plugins/workspace/public/services/use_case_service.ts b/src/plugins/workspace/public/services/use_case_service.ts index acc49b5f9c04..bfff2b11d113 100644 --- a/src/plugins/workspace/public/services/use_case_service.ts +++ b/src/plugins/workspace/public/services/use_case_service.ts @@ -15,6 +15,7 @@ import { WorkspacesSetup, DEFAULT_NAV_GROUPS, ALL_USE_CASE_ID, + OBSERVABILITY_USE_CASE_ID, } from '../../../../core/public'; import { WORKSPACE_DETAIL_APP_ID, @@ -78,7 +79,7 @@ export class UseCaseService { title: i18n.translate('workspace.settings.workspaceDetails', { defaultMessage: 'Workspace details', }), - euiIconType: 'spacesApp', + euiIconType: 'wsSelector', }, ...(isPermissionEnabled ? [ @@ -105,12 +106,18 @@ export class UseCaseService { order: 400, euiIconType: 'indexPatternApp', }, - { - id: 'datasets', - category: DEFAULT_APP_CATEGORIES.manageWorkspace, - order: 400, - euiIconType: 'indexMapping', - }, + // Datasets management only applies to the Observability workspace; do + // not surface it under "Manage workspace" for other use cases. + ...(navGroupInfo.id === OBSERVABILITY_USE_CASE_ID + ? [ + { + id: 'datasets', + category: DEFAULT_APP_CATEGORIES.manageWorkspace, + order: 400, + euiIconType: 'indexMapping', + }, + ] + : []), { id: 'objects', category: DEFAULT_APP_CATEGORIES.manageWorkspace, @@ -126,6 +133,15 @@ export class UseCaseService { }), euiIconType: 'navGetStarted', }, + { + id: 'workspace_settings', + category: DEFAULT_APP_CATEGORIES.manageWorkspace, + order: 700, + title: i18n.translate('workspace.left.settings.label', { + defaultMessage: 'Settings', + }), + euiIconType: 'gear', + }, ]); } }); @@ -208,7 +224,7 @@ export class UseCaseService { title: configurableApps.find((app) => app.id === featureId)?.title, id: featureId, })), - } as WorkspaceUseCase) + }) as WorkspaceUseCase ) .concat({ ...DEFAULT_NAV_GROUPS.all, diff --git a/src/plugins/workspace/public/services/workspace_validation.service.test.ts b/src/plugins/workspace/public/services/workspace_validation.service.test.ts index ff84068def8a..8bfc51b0e948 100644 --- a/src/plugins/workspace/public/services/workspace_validation.service.test.ts +++ b/src/plugins/workspace/public/services/workspace_validation.service.test.ts @@ -42,9 +42,9 @@ describe('WorkspaceValidationService', () => { const service = new WorkspaceValidationService(); await service.setup(core, 'test-workspace-123'); - expect(WorkspaceClientMock).toBeCalledTimes(1); + expect(WorkspaceClientMock).toHaveBeenCalledTimes(1); expect(core.workspaces.setClient).toHaveBeenCalled(); - expect(workspaceClientMock.enterWorkspace).toBeCalledTimes(1); + expect(workspaceClientMock.enterWorkspace).toHaveBeenCalledTimes(1); }); it('should not enter workspace it workspace id is not set', async () => { @@ -52,9 +52,9 @@ describe('WorkspaceValidationService', () => { const service = new WorkspaceValidationService(); await service.setup(core, ''); - expect(WorkspaceClientMock).toBeCalledTimes(1); + expect(WorkspaceClientMock).toHaveBeenCalledTimes(1); expect(core.workspaces.setClient).toHaveBeenCalled(); - expect(workspaceClientMock.enterWorkspace).toBeCalledTimes(0); + expect(workspaceClientMock.enterWorkspace).toHaveBeenCalledTimes(0); }); }); diff --git a/src/plugins/workspace/public/utils.test.ts b/src/plugins/workspace/public/utils.test.ts index 41e8b4a25455..a513c62f9c33 100644 --- a/src/plugins/workspace/public/utils.test.ts +++ b/src/plugins/workspace/public/utils.test.ts @@ -3,7 +3,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AppNavLinkStatus, NavGroupType, PublicAppInfo } from '../../../core/public'; +import { BehaviorSubject } from 'rxjs'; +import { AppNavLinkStatus, AppStatus, NavGroupType, PublicAppInfo } from '../../../core/public'; import { featureMatchesConfig, filterWorkspaceConfigurableApps, @@ -12,6 +13,7 @@ import { getDataSourcesList, convertNavGroupToWorkspaceUseCase, isEqualWorkspaceUseCase, + pickUseCaseLandingAppId, prependWorkspaceToBreadcrumbs, mergeDataSourcesWithConnections, fetchDataSourceConnections, @@ -690,6 +692,44 @@ describe('workspace utils: prependWorkspaceToBreadcrumbs', () => { /> `); }); + + it('workspace breadcrumb onClick skips feature-flag-disabled nav links', () => { + const navGroupSearch = { + id: 'search', + title: 'Search', + description: 'search desc', + // `alerting` is registered first but flagged off; the breadcrumb must + // fall through to `dashboards` instead of landing on the hidden page. + navLinks: [{ id: 'alerting' }, { id: 'dashboards' }], + }; + + const coreStart = coreMock.createStart(); + (coreStart.application.applications$ as BehaviorSubject>).next( + new Map([ + [ + 'alerting', + { + status: AppStatus.accessible, + navLinkStatus: AppNavLinkStatus.hidden, + } as Partial as PublicAppInfo, + ], + [ + 'dashboards', + { + status: AppStatus.accessible, + navLinkStatus: AppNavLinkStatus.default, + } as Partial as PublicAppInfo, + ], + ]) + ); + + prependWorkspaceToBreadcrumbs(coreStart, workspace, { search: navGroupSearch }, []); + const enricher = coreStart.chrome.setBreadcrumbsEnricher.mock.calls[0][0]; + const workspaceBreadcrumb = enricher?.([{ text: 'test app' }])?.[0]; + + workspaceBreadcrumb?.onClick?.({} as any); + expect(coreStart.application.navigateToApp).toHaveBeenCalledWith('dashboards'); + }); }); describe('workspace utils: mergeDataSourcesWithConnections', () => { @@ -967,6 +1007,81 @@ describe('workspace utils: mergeDataSourcesWithConnections', () => { }); }); +describe('workspace utils: pickUseCaseLandingAppId', () => { + const accessibleVisible = { + status: AppStatus.accessible, + navLinkStatus: AppNavLinkStatus.default, + } as Partial as PublicAppInfo; + const featureFlagDisabled = { + status: AppStatus.accessible, + navLinkStatus: AppNavLinkStatus.hidden, + } as Partial as PublicAppInfo; + const outsideWorkspaceHidden = { + // Mirrors the state read on the workspace creator page for an + // `insideWorkspace`-only app: workspace plugin pushed `inaccessible`, + // some other path pushed `navLinkStatus: hidden` — both flip back + // once the user enters the workspace, so the picker must keep them. + status: AppStatus.inaccessible, + navLinkStatus: AppNavLinkStatus.hidden, + } as Partial as PublicAppInfo; + + it('returns undefined when the use case has no features', () => { + expect(pickUseCaseLandingAppId(undefined, new Map())).toBeUndefined(); + expect(pickUseCaseLandingAppId([], new Map())).toBeUndefined(); + }); + + it('falls back to features[0] when no apps snapshot is provided', () => { + expect(pickUseCaseLandingAppId([{ id: 'first' }, { id: 'second' }], undefined)).toBe('first'); + }); + + it('skips feature-flag-disabled apps (hidden + accessible)', () => { + const apps = new Map([ + ['alerting', featureFlagDisabled], + ['dashboards', accessibleVisible], + ]); + expect(pickUseCaseLandingAppId([{ id: 'alerting' }, { id: 'dashboards' }], apps)).toBe( + 'dashboards' + ); + }); + + it('keeps apps that are transiently hidden outside a workspace (hidden + inaccessible)', () => { + // Repro of the bug we shipped this for: workspace creator runs outside + // any workspace, so `insideWorkspace` apps look hidden — but we must + // still pick the first one as the landing target, because it'll be + // accessible immediately after the redirect. + const apps = new Map([ + ['dashboards', outsideWorkspaceHidden], + ['explore/logs', outsideWorkspaceHidden], + ]); + expect(pickUseCaseLandingAppId([{ id: 'dashboards' }, { id: 'explore/logs' }], apps)).toBe( + 'dashboards' + ); + }); + + it('falls back to features[0] when every feature is feature-flag-disabled', () => { + const apps = new Map([ + ['a', featureFlagDisabled], + ['b', featureFlagDisabled], + ]); + expect(pickUseCaseLandingAppId([{ id: 'a' }, { id: 'b' }], apps)).toBe('a'); + }); + + it('treats a feature id absent from the apps map as selectable', () => { + // Load-bearing for the transient-load case: feature ids come from + // `convertNavGroupToWorkspaceUseCase` over real nav links, so an + // absent lookup means the apps snapshot hasn't propagated yet, not + // that the app is missing. Skipping such features would silently + // skip the entire list during early page load. + const apps = new Map([['known-feature-flag-off', featureFlagDisabled]]); + expect( + pickUseCaseLandingAppId( + [{ id: 'known-feature-flag-off' }, { id: 'not-yet-in-apps-map' }], + apps + ) + ).toBe('not-yet-in-apps-map'); + }); +}); + describe('workspace utils: getUseCaseUrl', () => { it('should get use case url', () => { startMock.application.getUrlForApp.mockImplementation((id) => `http://localhost/${id}`); @@ -979,6 +1094,32 @@ describe('workspace utils: getUseCaseUrl', () => { const url = getUseCaseUrl(undefined, 'foo', startMock.application, startMock.http); expect(url).toEqual('http://localhost/w/foo/workspace_detail'); }); + + it('should skip feature-flag-disabled features when picking the landing app', () => { + startMock.application.getUrlForApp.mockImplementation((id) => `http://localhost/${id}`); + (startMock.application.applications$ as BehaviorSubject>).next( + new Map([ + // `bar` is the first feature of `useCaseMock`. Flag it off so the + // picker has to fall through to the next feature. + [ + 'bar', + { + status: AppStatus.accessible, + navLinkStatus: AppNavLinkStatus.hidden, + } as Partial as PublicAppInfo, + ], + [ + 'baz', + { + status: AppStatus.accessible, + navLinkStatus: AppNavLinkStatus.default, + } as Partial as PublicAppInfo, + ], + ]) + ); + const url = getUseCaseUrl(useCaseMock, 'foo', startMock.application, startMock.http); + expect(url).toEqual('http://localhost/w/foo/baz'); + }); }); describe('workspace utils: fetchDataSourceConnections', () => { @@ -1147,7 +1288,7 @@ describe('workspace utils: fetchRemoteClusterConnections', () => { const coreStart = coreMock.createStart(); const httpMock = coreStart.http; - const dataSources = ([ + const dataSources = [ { id: 'id1', title: 'title1', @@ -1155,7 +1296,7 @@ describe('workspace utils: fetchRemoteClusterConnections', () => { description: '', type: DATA_SOURCE_SAVED_OBJECT_TYPE, }, - ] as unknown) as DataSource[]; // force InvalidEngineType to be a valid type + ] as unknown as DataSource[]; // force InvalidEngineType to be a valid type const result = await fetchRemoteClusterConnections(dataSources, httpMock); diff --git a/src/plugins/workspace/public/utils.ts b/src/plugins/workspace/public/utils.ts index a42dcd33dd12..57717e3e9706 100644 --- a/src/plugins/workspace/public/utils.ts +++ b/src/plugins/workspace/public/utils.ts @@ -11,6 +11,7 @@ import { AppCategory, ApplicationStart, AppNavLinkStatus, + AppStatus, ChromeBreadcrumb, CoreStart, DEFAULT_APP_CATEGORIES, @@ -83,62 +84,58 @@ export const isFeatureIdInsideUseCase = ( * 6. For feature id start with use case prefix, it will read use case's features and match every passed apps. * For example, ['user-case-observability'] matches all features under observability use case. */ -export const featureMatchesConfig = (featureConfigs: string[], useCases: WorkspaceUseCase[]) => ({ - id, - category, -}: { - id: string; - category?: AppCategory; -}) => { - let matched = false; - let firstUseCaseId: string | undefined; - - /** - * Iterate through each feature configuration to determine if the given feature matches any of them. - * Note: The loop will not break prematurely because the order of featureConfigs array matters. - * Later configurations may override previous ones, so each configuration must be evaluated in sequence. - */ - for (const featureConfig of featureConfigs) { - // '*' matches any feature - if (featureConfig === '*') { - matched = true; - } +export const featureMatchesConfig = + (featureConfigs: string[], useCases: WorkspaceUseCase[]) => + ({ id, category }: { id: string; category?: AppCategory }) => { + let matched = false; + let firstUseCaseId: string | undefined; + + /** + * Iterate through each feature configuration to determine if the given feature matches any of them. + * Note: The loop will not break prematurely because the order of featureConfigs array matters. + * Later configurations may override previous ones, so each configuration must be evaluated in sequence. + */ + for (const featureConfig of featureConfigs) { + // '*' matches any feature + if (featureConfig === '*') { + matched = true; + } - // matches any feature inside use cases - if (!firstUseCaseId) { - const useCaseId = getUseCaseFromFeatureConfig(featureConfig); - if (useCaseId) { - firstUseCaseId = useCaseId; - if (isFeatureIdInsideUseCase(id, firstUseCaseId, useCases)) { - matched = true; + // matches any feature inside use cases + if (!firstUseCaseId) { + const useCaseId = getUseCaseFromFeatureConfig(featureConfig); + if (useCaseId) { + firstUseCaseId = useCaseId; + if (isFeatureIdInsideUseCase(id, firstUseCaseId, useCases)) { + matched = true; + } } } - } - - // The config starts with `@` matches a category - if (category && featureConfig === `@${category.id}`) { - matched = true; - } - // The config matches a feature id - if (featureConfig === id) { - matched = true; - } + // The config starts with `@` matches a category + if (category && featureConfig === `@${category.id}`) { + matched = true; + } - // If a config starts with `!`, such feature or category will be excluded - if (featureConfig.startsWith('!')) { - if (category && featureConfig === `!@${category.id}`) { - matched = false; + // The config matches a feature id + if (featureConfig === id) { + matched = true; } - if (featureConfig === `!${id}`) { - matched = false; + // If a config starts with `!`, such feature or category will be excluded + if (featureConfig.startsWith('!')) { + if (category && featureConfig === `!@${category.id}`) { + matched = false; + } + + if (featureConfig === `!${id}`) { + matched = false; + } } } - } - return matched; -}; + return matched; + }; /** * Check if an app is accessible in a workspace based on the workspace configured features @@ -360,10 +357,8 @@ export const mergeDataSourcesWithConnections = ( mode: AssociationDataSourceModalMode, remoteClusterConnections?: DataSourceConnection[] ): DataSourceConnection[] => { - const { - openSearchConnections, - dataConnections, - } = convertDataSourcesToOpenSearchAndDataConnections(dataSources); + const { openSearchConnections, dataConnections } = + convertDataSourcesToOpenSearchAndDataConnections(dataSources); let result; // if the mode is set to OpenSearchConnections, then only display OpenSearch connections if (mode === AssociationDataSourceModalMode.OpenSearchConnections) { @@ -514,7 +509,16 @@ export function prependWorkspaceToBreadcrumbs( onClick: () => { if (useCase) { const allNavGroups = navGroupsMap[useCase]; - core.application.navigateToApp(allNavGroups?.navLinks[0].id); + // Mirror the post-create redirect and `getUseCaseUrl`: skip + // feature-flag-disabled nav links (registered but hidden, e.g. + // alerting when `observability.alertManager.enabled` is false) + // instead of blindly landing on `navLinks[0]`. Falls back to the + // first nav link when no snapshot is available or none qualify. + const apps = getApplicationsSnapshot(core.application); + const landingAppId = pickUseCaseLandingAppId(allNavGroups?.navLinks, apps); + if (landingAppId) { + core.application.navigateToApp(landingAppId); + } } }, }; @@ -526,13 +530,71 @@ export function prependWorkspaceToBreadcrumbs( } } +/** + * Read the current value of `application.applications$` synchronously. + * + * Load-bearing assumption: `applications$` is wrapped in `shareReplay(1)` + * upstream (see `application_service.tsx`), so subscribing then immediately + * unsubscribing emits the latest cached value without leaking the + * subscription. If a future refactor drops `shareReplay`, this returns + * `undefined` instead of throwing — callers that branch on snapshot + * presence (e.g. `pickUseCaseLandingAppId`) will silently regress to + * pre-fix behavior. Keep this helper as the single source of truth so the + * regression has one place to surface rather than many. + */ +export const getApplicationsSnapshot = ( + application: ApplicationStart +): ReadonlyMap | undefined => { + let apps: ReadonlyMap | undefined; + const sub = application.applications$.subscribe((value) => { + apps = value; + }); + sub.unsubscribe(); + return apps; +}; + +/** + * Pick the landing app for a use case. Skips features that are + * **feature-flag-disabled** — i.e. `navLinkStatus === hidden` *and* + * `status === accessible`. An app gated by a feature flag is still + * accessible in principle, the plugin just hides the nav link to suppress + * the UI; an app that's transiently inaccessible (e.g. an + * `insideWorkspace`-only app read from outside any workspace, which the + * workspace plugin marks `inaccessible` and which therefore renders as + * `hidden` too) will become available once the user enters the workspace + * and must not be filtered out here. + * + * Reading both fields lets us distinguish "hidden by config" (skip) from + * "hidden because of where we are" (keep — it'll come back). A feature id + * with no entry in `apps` is treated as selectable: feature ids come from + * `convertNavGroupToWorkspaceUseCase` over real registered nav links, so + * an absent lookup means the applications snapshot hasn't propagated yet, + * not that the app doesn't exist. + */ +export const pickUseCaseLandingAppId = ( + features: WorkspaceUseCaseFeature[] | undefined, + apps: ReadonlyMap | undefined +): string | undefined => { + if (!features?.length) { + return undefined; + } + if (!apps) { + return features[0].id; + } + const isFeatureFlagDisabled = (app: PublicAppInfo | undefined) => + app?.navLinkStatus === AppNavLinkStatus.hidden && app?.status === AppStatus.accessible; + const firstSelectable = features.find((feature) => !isFeatureFlagDisabled(apps.get(feature.id))); + return (firstSelectable ?? features[0]).id; +}; + export const getUseCaseUrl = ( useCase: WorkspaceUseCase | undefined, workspaceId: string, application: ApplicationStart, http: HttpSetup ): string => { - const appId = useCase?.features?.[0]?.id || WORKSPACE_DETAIL_APP_ID; + const apps = getApplicationsSnapshot(application); + const appId = pickUseCaseLandingAppId(useCase?.features, apps) || WORKSPACE_DETAIL_APP_ID; const useCaseURL = formatUrlWithWorkspaceId( application.getUrlForApp(appId, { absolute: false, @@ -587,8 +649,15 @@ export const fetchDataSourceConnections = async ( mode === AssociationDataSourceModalMode.DirectQueryConnections ? await fetchDataSourceConnectionsByDataSourceIds( // Only data source saved object type needs to fetch data source connections, data connection type object not. + // Direct query (`_plugins/_query/_datasources`) is an OpenSearch SQL plugin + // feature; Elasticsearch clusters never expose it, so skip those to avoid + // confusing errors/log noise. Mirrors `fetchRemoteClusterConnections`. dataSources - .filter((ds) => ds.type === DATA_SOURCE_SAVED_OBJECT_TYPE) + .filter( + (ds) => + ds.type === DATA_SOURCE_SAVED_OBJECT_TYPE && + ds.dataSourceEngineType !== DataSourceEngineType.Elasticsearch + ) .map((ds) => ds.id), http ) @@ -605,7 +674,7 @@ export const fetchDataSourceConnections = async ( mode, remoteClusterConnections ); - } catch (error) { + } catch { notifications?.toasts.addDanger( i18n.translate('workspace.detail.dataSources.error.message', { defaultMessage: 'Cannot fetch direct query connections', diff --git a/src/plugins/workspace/public/workspace_client.test.ts b/src/plugins/workspace/public/workspace_client.test.ts index a3ecc1477dde..39bd84d2bd29 100644 --- a/src/plugins/workspace/public/workspace_client.test.ts +++ b/src/plugins/workspace/public/workspace_client.test.ts @@ -21,7 +21,7 @@ describe('#WorkspaceClient', () => { const { workspaceClient, httpSetupMock, workspaceMock } = getWorkspaceClient(); await workspaceClient.init(); expect(workspaceMock.initialized$.getValue()).toEqual(true); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, @@ -41,7 +41,7 @@ describe('#WorkspaceClient', () => { }); const successResult = await workspaceClient.enterWorkspace('foo'); expect(workspaceMock.currentWorkspaceId$.getValue()).toEqual('foo'); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/foo', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/foo', { method: 'GET', }); expect(successResult.success).toEqual(true); @@ -100,7 +100,7 @@ describe('#WorkspaceClient', () => { }); await workspaceClient.create({ name: 'foo' }, {}); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces', { method: 'POST', body: JSON.stringify({ attributes: { @@ -110,14 +110,14 @@ describe('#WorkspaceClient', () => { }), }); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, }), }); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, @@ -136,10 +136,10 @@ describe('#WorkspaceClient', () => { }, }); await workspaceClient.delete('foo'); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/foo', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/foo', { method: 'DELETE', }); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, @@ -158,7 +158,7 @@ describe('#WorkspaceClient', () => { await workspaceClient.list({ perPage: 999, }); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, @@ -169,7 +169,7 @@ describe('#WorkspaceClient', () => { it('#get', async () => { const { workspaceClient, httpSetupMock } = getWorkspaceClient(); await workspaceClient.get('foo'); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/foo', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/foo', { method: 'GET', }); }); @@ -199,7 +199,7 @@ describe('#WorkspaceClient', () => { await workspaceClient.update('foo', { name: 'foo' }, {}); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/foo', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/foo', { method: 'PUT', body: JSON.stringify({ attributes: { @@ -209,14 +209,14 @@ describe('#WorkspaceClient', () => { }), }); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, }), }); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, @@ -257,7 +257,7 @@ describe('#WorkspaceClient', () => { includeReferencesDeep: false, }); await workspaceClient.copy([{ id: 'url_id', type: 'url' }], 'workspace-1', false); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_duplicate_saved_objects', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_duplicate_saved_objects', { body, method: 'POST', }); @@ -393,7 +393,7 @@ describe('WorkspaceClient.batchDelete', () => { expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/bar', { method: 'DELETE', }); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, @@ -416,7 +416,7 @@ describe('WorkspaceClient.batchDelete', () => { expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/bar', { method: 'DELETE', }); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, @@ -439,7 +439,7 @@ describe('WorkspaceClient.batchDelete', () => { expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/bar', { method: 'DELETE', }); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, @@ -452,7 +452,7 @@ describe('WorkspaceClient.batchDelete', () => { const { workspaceClient, httpSetupMock } = getWorkspaceClient(); const result = await workspaceClient.batchDelete([]); - expect(httpSetupMock.fetch).toBeCalledWith('/api/workspaces/_list', { + expect(httpSetupMock.fetch).toHaveBeenCalledWith('/api/workspaces/_list', { method: 'POST', body: JSON.stringify({ perPage: 999, diff --git a/src/plugins/workspace/public/workspace_client.ts b/src/plugins/workspace/public/workspace_client.ts index b23857fc2bfd..74680eec6ad2 100644 --- a/src/plugins/workspace/public/workspace_client.ts +++ b/src/plugins/workspace/public/workspace_client.ts @@ -270,7 +270,7 @@ export class WorkspaceClient implements IWorkspaceClient { result.fail += 1; result.failedIds.push(id); } - } catch (error) { + } catch { result.fail += 1; result.failedIds.push(id); } @@ -295,9 +295,7 @@ export class WorkspaceClient implements IWorkspaceClient { * @property {string array} permissionModes * @returns A find result with workspaces matching the specified search. */ - public list( - options?: WorkspaceFindOptions - ): Promise< + public list(options?: WorkspaceFindOptions): Promise< IResponse<{ workspaces: WorkspaceAttributeWithPermission[]; total: number; diff --git a/src/plugins/workspace/server/integration_tests/duplicate.test.ts b/src/plugins/workspace/server/integration_tests/duplicate.test.ts index 7dd26ab8cc73..8460febe05bd 100644 --- a/src/plugins/workspace/server/integration_tests/duplicate.test.ts +++ b/src/plugins/workspace/server/integration_tests/duplicate.test.ts @@ -94,7 +94,7 @@ describe(`duplicate saved objects among workspaces`, () => { handlerContext.savedObjects.typeRegistry.getType.mockImplementation( (type: string) => // other attributes aren't needed for the purposes of injecting metadata - ({ management: { icon: `${type}-icon` } } as any) + ({ management: { icon: `${type}-icon` } }) as any ); savedObjectsClient = handlerContext.savedObjects.client; diff --git a/src/plugins/workspace/server/permission_control/client.ts b/src/plugins/workspace/server/permission_control/client.ts index 1d3940c56265..dcb0880a5296 100644 --- a/src/plugins/workspace/server/permission_control/client.ts +++ b/src/plugins/workspace/server/permission_control/client.ts @@ -146,10 +146,9 @@ export class SavedObjectsPermissionControl { principals: Principals, permissionModes: SavedObjectsPermissionModes ) { - const notPermittedSavedObjects: Array, - 'id' | 'type' | 'workspaces' | 'permissions' - >> = []; + const notPermittedSavedObjects: Array< + Pick, 'id' | 'type' | 'workspaces' | 'permissions'> + > = []; const hasPermissionToAllObjects = savedObjects.every((savedObject) => { // for object that doesn't contain ACL like config, return true if (!savedObject.permissions) { diff --git a/src/plugins/workspace/server/plugin.test.ts b/src/plugins/workspace/server/plugin.test.ts index 11c9301a15d7..0871f1434fd1 100644 --- a/src/plugins/workspace/server/plugin.test.ts +++ b/src/plugins/workspace/server/plugin.test.ts @@ -65,7 +65,7 @@ describe('Workspace server plugin', () => { }, } `); - expect(setupMock.savedObjects.addClientWrapper).toBeCalledTimes(5); + expect(setupMock.savedObjects.addClientWrapper).toHaveBeenCalledTimes(5); let registerSwitcher; let result; @@ -106,8 +106,8 @@ describe('Workspace server plugin', () => { path: '/w/foo/app', }); onPreRoutingFn(requestWithWorkspaceInUrl, httpServerMock.createResponseFactory(), toolKitMock); - expect(toolKitMock.rewriteUrl).toBeCalledWith('http://localhost/app'); - expect(toolKitMock.next).toBeCalledTimes(0); + expect(toolKitMock.rewriteUrl).toHaveBeenCalledWith('http://localhost/app'); + expect(toolKitMock.next).toHaveBeenCalledTimes(0); expect(getWorkspaceState(requestWithWorkspaceInUrl)).toEqual({ requestWorkspaceId: 'foo', }); @@ -120,7 +120,7 @@ describe('Workspace server plugin', () => { httpServerMock.createResponseFactory(), toolKitMock ); - expect(toolKitMock.next).toBeCalledTimes(1); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); }); describe('#setupPermission', () => { @@ -165,7 +165,7 @@ describe('Workspace server plugin', () => { httpServerMock.createResponseFactory(), toolKitMock ); - expect(toolKitMock.next).toBeCalledTimes(1); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); }); it('with dynamic config and user is dashboard admin', async () => { @@ -185,7 +185,7 @@ describe('Workspace server plugin', () => { expect(getWorkspaceState(requestWithWorkspaceInUrl)).toEqual({ isDashboardAdmin: true, }); - expect(toolKitMock.next).toBeCalledTimes(1); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); }); it('with dynamic config and user is not dashboard admin', async () => { @@ -205,7 +205,7 @@ describe('Workspace server plugin', () => { expect(getWorkspaceState(requestWithWorkspaceInUrl)).toEqual({ isDashboardAdmin: false, }); - expect(toolKitMock.next).toBeCalledTimes(1); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); }); it('with configuring wildcard * and anyone will be OSD admin', async () => { @@ -231,7 +231,7 @@ describe('Workspace server plugin', () => { expect(getWorkspaceState(requestWithWorkspaceInUrl)).toEqual({ isDashboardAdmin: true, }); - expect(toolKitMock.next).toBeCalledTimes(1); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); }); it('without configuring yml config and anyone will be not OSD admin', async () => { @@ -257,7 +257,7 @@ describe('Workspace server plugin', () => { expect(getWorkspaceState(requestWithWorkspaceInUrl)).toEqual({ isDashboardAdmin: false, }); - expect(toolKitMock.next).toBeCalledTimes(1); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); }); it('uninstall security plugin and anyone will be OSD admin', async () => { @@ -275,7 +275,7 @@ describe('Workspace server plugin', () => { expect(getWorkspaceState(requestWithWorkspaceInUrl)).toEqual({ isDashboardAdmin: true, }); - expect(toolKitMock.next).toBeCalledTimes(1); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); }); it('should clear saved objects cache', async () => { @@ -326,7 +326,7 @@ describe('Workspace server plugin', () => { preResponse(nonDashboardAdminRequest, { statusCode: 200 }, toolKitMock); - expect(checkoutSpy).toBeCalled(); + expect(checkoutSpy).toHaveBeenCalled(); expect(getACLAuditor(nonDashboardAdminRequest)).toBeFalsy(); expect(getClientCallAuditor(nonDashboardAdminRequest)).toBeFalsy(); }); @@ -352,7 +352,7 @@ describe('Workspace server plugin', () => { } preResponse(dashboardAdminRequest, { statusCode: 200 }, toolKitMock); - expect(checkoutSpy).toBeCalledTimes(0); + expect(checkoutSpy).toHaveBeenCalledTimes(0); }); }); }); @@ -382,7 +382,7 @@ describe('Workspace server plugin', () => { const toolKitMock = httpServerMock.createToolkit(); await registerOnPostAuthFn(request, response, toolKitMock); - expect(toolKitMock.next).toBeCalledTimes(1); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); }); it('with / request path and no workspaces', async () => { @@ -393,7 +393,7 @@ describe('Workspace server plugin', () => { const toolKitMock = httpServerMock.createToolkit(); await registerOnPostAuthFn(request, response, toolKitMock); - expect(response.redirected).toBeCalledWith({ + expect(response.redirected).toHaveBeenCalledWith({ headers: { location: '/mock-server-basepath/app/workspace_initial' }, }); }); @@ -416,7 +416,7 @@ describe('Workspace server plugin', () => { const toolKitMock = httpServerMock.createToolkit(); await registerOnPostAuthFn(request, response, toolKitMock); - expect(response.redirected).toBeCalledWith({ + expect(response.redirected).toHaveBeenCalledWith({ headers: { location: '/mock-server-basepath/w/workspace-1/app/workspace_navigation', }, @@ -444,7 +444,7 @@ describe('Workspace server plugin', () => { const toolKitMock = httpServerMock.createToolkit(); await registerOnPostAuthFn(request, response, toolKitMock); - expect(response.redirected).toBeCalledWith({ + expect(response.redirected).toHaveBeenCalledWith({ headers: { location: '/mock-server-basepath/app/home', }, @@ -489,12 +489,107 @@ describe('Workspace server plugin', () => { const toolKitMock = httpServerMock.createToolkit(); await registerOnPostAuthFn(request, response, toolKitMock); - expect(response.redirected).toBeCalledWith({ + expect(response.redirected).toHaveBeenCalledWith({ headers: { location: '/mock-server-basepath/w/defaultWorkspace/app/workspace_navigation', }, }); }); + + it('with / request path, defaultRoute set, and no workspaces', async () => { + const request = httpServerMock.createOpenSearchDashboardsRequest({ + path: '/', + }); + setupMock.getStartServices.mockResolvedValue([ + { + ...coreMock.createStart(), + uiSettings: { + asScopedToClient: () => ({ + ...uiSettingsMock, + get: jest.fn().mockResolvedValue('/app/dashboards'), + }), + }, + }, + {}, + {}, + ]); + await workspacePlugin.setup(setupMock, mockDeps); + const toolKitMock = httpServerMock.createToolkit(); + + await registerOnPostAuthFn(request, response, toolKitMock); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); + }); + + it('with / request path, defaultRoute set, and one workspace', async () => { + const request = httpServerMock.createOpenSearchDashboardsRequest({ + path: '/', + }); + setupMock.getStartServices.mockResolvedValue([ + { + ...coreMock.createStart(), + uiSettings: { + asScopedToClient: () => ({ + ...uiSettingsMock, + get: jest.fn().mockResolvedValue('/app/dashboards'), + }), + }, + }, + {}, + {}, + ]); + const workspaceSetup = await workspacePlugin.setup(setupMock, mockDeps); + const client = workspaceSetup.client; + jest.spyOn(client, 'list').mockResolvedValue({ + success: true, + result: { + total: 2, + per_page: 100, + page: 1, + workspaces: [{ id: 'workspace-1', name: 'workspace-1' }], + }, + }); + const toolKitMock = httpServerMock.createToolkit(); + + await registerOnPostAuthFn(request, response, toolKitMock); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); + }); + + it('with / request path, defaultRoute set, and more than one workspaces', async () => { + const request = httpServerMock.createOpenSearchDashboardsRequest({ + path: '/', + }); + setupMock.getStartServices.mockResolvedValue([ + { + ...coreMock.createStart(), + uiSettings: { + asScopedToClient: () => ({ + ...uiSettingsMock, + get: jest.fn().mockResolvedValue('/app/dashboards'), + }), + }, + }, + {}, + {}, + ]); + const workspaceSetup = await workspacePlugin.setup(setupMock, mockDeps); + const client = workspaceSetup.client; + jest.spyOn(client, 'list').mockResolvedValue({ + success: true, + result: { + total: 2, + per_page: 100, + page: 1, + workspaces: [ + { id: 'workspace-1', name: 'workspace-1' }, + { id: 'workspace-2', name: 'workspace-2' }, + ], + }, + }); + const toolKitMock = httpServerMock.createToolkit(); + + await registerOnPostAuthFn(request, response, toolKitMock); + expect(toolKitMock.next).toHaveBeenCalledTimes(1); + }); }); it('#start', async () => { @@ -510,7 +605,7 @@ describe('Workspace server plugin', () => { const workspacePlugin = new WorkspacePlugin(initializerContextConfigMock); await workspacePlugin.setup(setupMock, mockDeps); await workspacePlugin.start(startMock); - expect(startMock.savedObjects.createSerializer).toBeCalledTimes(1); + expect(startMock.savedObjects.createSerializer).toHaveBeenCalledTimes(1); }); describe('#authorizeWorkspace', () => { diff --git a/src/plugins/workspace/server/plugin.ts b/src/plugins/workspace/server/plugin.ts index d60bfffac3e6..9566c188cdbe 100644 --- a/src/plugins/workspace/server/plugin.ts +++ b/src/plugins/workspace/server/plugin.ts @@ -112,7 +112,7 @@ export class WorkspacePlugin implements Plugin { const path = request.url.pathname; if (path === '/') { + // initialize coreStart and uiSettingsClient first to allow access to defaultRoute + const [coreStart] = await core.getStartServices(); + const uiSettingsClient = coreStart.uiSettings.asScopedToClient( + coreStart.savedObjects.getScopedClient(request) + ); + + // check if defaultRoute is configured (and not the default home page) + // has to be handled here instead of core_app.ts as this method registers + // a middleware hook, which overrides registerDefaultRoutes in core_app.ts + const defaultRoute = await uiSettingsClient.get('defaultRoute'); + if (defaultRoute && defaultRoute !== '/app/home') { + // skips the middleware and allow registerDefaultRoutes to take effect + return toolkit.next(); + } + const workspaceListResponse = await this.client?.list( { request }, { page: 1, perPage: 100 } @@ -192,10 +207,6 @@ export class WorkspacePlugin implements Plugin workspace.id === defaultWorkspaceId @@ -318,9 +329,6 @@ export class WorkspacePlugin implements Plugin { permittedSavedObjectedClient = osd.coreStart.savedObjects.getScopedClient(permittedRequest, { includedHiddenTypes: ['workspace'], }); - notPermittedSavedObjectedClient = osd.coreStart.savedObjects.getScopedClient( - notPermittedRequest - ); + notPermittedSavedObjectedClient = + osd.coreStart.savedObjects.getScopedClient(notPermittedRequest); updateWorkspaceState(dashboardAdminRequest, { isDashboardAdmin: true }); - dashboardAdminSavedObjectedClient = osd.coreStart.savedObjects.getScopedClient( - dashboardAdminRequest - ); + dashboardAdminSavedObjectedClient = + osd.coreStart.savedObjects.getScopedClient(dashboardAdminRequest); }); afterAll(async () => { diff --git a/src/plugins/workspace/server/saved_objects/saved_objects_wrapper_for_check_workspace_conflict.test.ts b/src/plugins/workspace/server/saved_objects/saved_objects_wrapper_for_check_workspace_conflict.test.ts index 264f69453f43..802779f8509a 100644 --- a/src/plugins/workspace/server/saved_objects/saved_objects_wrapper_for_check_workspace_conflict.test.ts +++ b/src/plugins/workspace/server/saved_objects/saved_objects_wrapper_for_check_workspace_conflict.test.ts @@ -60,7 +60,7 @@ describe('WorkspaceConflictSavedObjectsClientWrapper', () => { } ); - expect(mockedClient.create).toBeCalledWith( + expect(mockedClient.create).toHaveBeenCalledWith( expect.anything(), expect.anything(), expect.objectContaining({ @@ -89,7 +89,7 @@ describe('WorkspaceConflictSavedObjectsClientWrapper', () => { workspaces: ['bar'], } ) - ).rejects.toThrowError('Saved object [dashboard/dashboard:foo] conflict'); + ).rejects.toThrow('Saved object [dashboard/dashboard:foo] conflict'); }); it(`Should use options.workspaces when get throws error`, async () => { @@ -111,7 +111,7 @@ describe('WorkspaceConflictSavedObjectsClientWrapper', () => { } ); - expect(mockedClient.create).toBeCalledWith( + expect(mockedClient.create).toHaveBeenCalledWith( expect.anything(), expect.anything(), expect.objectContaining({ @@ -180,8 +180,8 @@ describe('WorkspaceConflictSavedObjectsClientWrapper', () => { }), ]); - expect(mockedClient.bulkGet).not.toBeCalled(); - expect(mockedClient.bulkCreate).toBeCalledWith( + expect(mockedClient.bulkGet).not.toHaveBeenCalled(); + expect(mockedClient.bulkCreate).toHaveBeenCalledWith( [{ attributes: {}, id: 'foo', references: [], type: 'dashboard' }], {} ); @@ -198,8 +198,8 @@ describe('WorkspaceConflictSavedObjectsClientWrapper', () => { }), ]); - expect(mockedClient.bulkGet).not.toBeCalled(); - expect(mockedClient.bulkCreate).toBeCalledWith( + expect(mockedClient.bulkGet).not.toHaveBeenCalled(); + expect(mockedClient.bulkCreate).toHaveBeenCalledWith( [{ attributes: {}, id: 'foo', references: [], type: 'dashboard', workspaces: ['foo'] }], {} ); @@ -267,8 +267,8 @@ describe('WorkspaceConflictSavedObjectsClientWrapper', () => { } ); - expect(mockedClient.bulkGet).toBeCalled(); - expect(mockedClient.bulkCreate).toBeCalledWith( + expect(mockedClient.bulkGet).toHaveBeenCalled(); + expect(mockedClient.bulkCreate).toHaveBeenCalledWith( [ { attributes: {}, id: 'foo', references: [], type: 'dashboard', workspaces: ['foo'] }, { @@ -362,7 +362,7 @@ describe('WorkspaceConflictSavedObjectsClientWrapper', () => { } ); - expect(mockedClient.bulkCreate).toBeCalledWith([], { + expect(mockedClient.bulkCreate).toHaveBeenCalledWith([], { workspaces: ['foo'], }); expect(result.saved_objects[0].error).toEqual( @@ -397,7 +397,7 @@ describe('WorkspaceConflictSavedObjectsClientWrapper', () => { it(`Return early when no objects`, async () => { const result = await wrapperClient.checkConflicts([]); expect(result.errors).toEqual([]); - expect(mockedClient.bulkGet).not.toBeCalled(); + expect(mockedClient.bulkGet).not.toHaveBeenCalled(); }); it(`Should filter out workspace conflict objects`, async () => { @@ -448,8 +448,8 @@ describe('WorkspaceConflictSavedObjectsClientWrapper', () => { } ); - expect(mockedClient.bulkGet).toBeCalled(); - expect(mockedClient.checkConflicts).toBeCalledWith( + expect(mockedClient.bulkGet).toHaveBeenCalled(); + expect(mockedClient.checkConflicts).toHaveBeenCalledWith( [ { attributes: {}, id: 'foo', references: [], type: 'dashboard' }, { @@ -511,7 +511,7 @@ describe('WorkspaceConflictSavedObjectsClientWrapper', () => { } ); - expect(mockedClient.bulkCreate).toBeCalledWith([], { + expect(mockedClient.bulkCreate).toHaveBeenCalledWith([], { workspaces: ['foo'], }); expect(result.errors[0].error).toEqual( diff --git a/src/plugins/workspace/server/saved_objects/workspace_id_consumer_wrapper.test.ts b/src/plugins/workspace/server/saved_objects/workspace_id_consumer_wrapper.test.ts index 8f95e15599bc..dad892119350 100644 --- a/src/plugins/workspace/server/saved_objects/workspace_id_consumer_wrapper.test.ts +++ b/src/plugins/workspace/server/saved_objects/workspace_id_consumer_wrapper.test.ts @@ -58,7 +58,7 @@ describe('WorkspaceIdConsumerWrapper', () => { name: 'foo', }); - expect(mockedClient.create).toBeCalledWith( + expect(mockedClient.create).toHaveBeenCalledWith( expect.anything(), expect.anything(), expect.objectContaining({ @@ -116,8 +116,8 @@ describe('WorkspaceIdConsumerWrapper', () => { { workspaces: ['zoo', 'noo'] } ) ).rejects.toMatchInlineSnapshot(`[Error: Exist invalid workspaces]`); - expect(mockedWorkspaceClient.get).toBeCalledTimes(0); - expect(mockedWorkspaceClient.list).toBeCalledTimes(1); + expect(mockedWorkspaceClient.get).toHaveBeenCalledTimes(0); + expect(mockedWorkspaceClient.list).toHaveBeenCalledTimes(1); }); }); @@ -139,7 +139,7 @@ describe('WorkspaceIdConsumerWrapper', () => { }), ]); - expect(mockedClient.bulkCreate).toBeCalledWith( + expect(mockedClient.bulkCreate).toHaveBeenCalledWith( [{ attributes: {}, id: 'foo', references: [], type: 'dashboard' }], { workspaces: ['foo'], @@ -160,8 +160,8 @@ describe('WorkspaceIdConsumerWrapper', () => { }), ]) ).rejects.toMatchInlineSnapshot(`[Error: Exist invalid workspaces]`); - expect(mockedWorkspaceClient.get).toBeCalledTimes(1); - expect(mockedWorkspaceClient.list).toBeCalledTimes(0); + expect(mockedWorkspaceClient.get).toHaveBeenCalledTimes(1); + expect(mockedWorkspaceClient.list).toHaveBeenCalledTimes(0); }); }); @@ -172,7 +172,7 @@ describe('WorkspaceIdConsumerWrapper', () => { it(`Should add workspaces parameters when checkConflict`, async () => { await wrapperClient.checkConflicts(); - expect(mockedClient.checkConflicts).toBeCalledWith([], { + expect(mockedClient.checkConflicts).toHaveBeenCalledWith([], { workspaces: ['foo'], }); }); @@ -210,12 +210,12 @@ describe('WorkspaceIdConsumerWrapper', () => { await wrapperClient.find({ type: 'dashboard', }); - expect(mockedClient.find).toBeCalledWith({ + expect(mockedClient.find).toHaveBeenCalledWith({ type: 'dashboard', workspaces: ['foo'], }); - expect(mockedWorkspaceClient.get).toBeCalledTimes(1); - expect(mockedWorkspaceClient.list).toBeCalledTimes(0); + expect(mockedWorkspaceClient.get).toHaveBeenCalledTimes(1); + expect(mockedWorkspaceClient.list).toHaveBeenCalledTimes(0); }); it(`Should pass a empty workspace array`, async () => { @@ -233,7 +233,7 @@ describe('WorkspaceIdConsumerWrapper', () => { await mockedWrapperClient.find({ type: ['dashboard', 'visualization'], }); - expect(mockedClient.find).toBeCalledWith({ + expect(mockedClient.find).toHaveBeenCalledWith({ type: ['dashboard', 'visualization'], }); }); @@ -256,8 +256,8 @@ describe('WorkspaceIdConsumerWrapper', () => { workspaces: ['foo', 'not-exist'], }) ).rejects.toMatchInlineSnapshot(`[Error: Exist invalid workspaces]`); - expect(mockedWorkspaceClient.get).toBeCalledTimes(0); - expect(mockedWorkspaceClient.list).toBeCalledTimes(1); + expect(mockedWorkspaceClient.get).toHaveBeenCalledTimes(0); + expect(mockedWorkspaceClient.list).toHaveBeenCalledTimes(1); }); it(`Should not throw error when passing in '*'`, async () => { @@ -276,7 +276,7 @@ describe('WorkspaceIdConsumerWrapper', () => { type: ['dashboard', 'visualization'], workspaces: ['*'], }); - expect(mockedClient.find).toBeCalledWith({ + expect(mockedClient.find).toHaveBeenCalledWith({ type: ['dashboard', 'visualization'], }); expect(logger.warn).toHaveBeenCalledWith( @@ -304,7 +304,7 @@ describe('WorkspaceIdConsumerWrapper', () => { const result = await wrapperClient.get(savedObject.type, savedObject.id, { workspaces: savedObject.workspaces, }); - expect(mockedClient.get).toBeCalledWith(savedObject.type, savedObject.id, { + expect(mockedClient.get).toHaveBeenCalledWith(savedObject.type, savedObject.id, { workspaces: savedObject.workspaces, }); expect(result).toEqual(savedObject); @@ -320,7 +320,7 @@ describe('WorkspaceIdConsumerWrapper', () => { }; mockedClient.get.mockResolvedValueOnce(savedObject); const result = await wrapperClient.get(savedObject.type, savedObject.id); - expect(mockedClient.get).toBeCalledWith(savedObject.type, savedObject.id, {}); + expect(mockedClient.get).toHaveBeenCalledWith(savedObject.type, savedObject.id, {}); expect(result).toEqual(savedObject); }); @@ -333,7 +333,7 @@ describe('WorkspaceIdConsumerWrapper', () => { }; mockedClient.get.mockResolvedValueOnce(savedObject); const result = await wrapperClient.get(savedObject.type, savedObject.id); - expect(mockedClient.get).toBeCalledWith(savedObject.type, savedObject.id, {}); + expect(mockedClient.get).toHaveBeenCalledWith(savedObject.type, savedObject.id, {}); expect(result).toEqual(savedObject); }); @@ -346,7 +346,7 @@ describe('WorkspaceIdConsumerWrapper', () => { }; mockedClient.get.mockResolvedValueOnce(savedObject); const result = await wrapperClient.get(savedObject.type, savedObject.id); - expect(mockedClient.get).toBeCalledWith(savedObject.type, savedObject.id, {}); + expect(mockedClient.get).toHaveBeenCalledWith(savedObject.type, savedObject.id, {}); expect(result).toEqual(savedObject); }); @@ -370,7 +370,7 @@ describe('WorkspaceIdConsumerWrapper', () => { }; mockedClient.get.mockResolvedValueOnce(savedObject); const result = await mockedWrapperClient.get(savedObject.type, savedObject.id); - expect(mockedClient.get).toBeCalledWith(savedObject.type, savedObject.id, {}); + expect(mockedClient.get).toHaveBeenCalledWith(savedObject.type, savedObject.id, {}); expect(result).toEqual(savedObject); }); @@ -386,7 +386,7 @@ describe('WorkspaceIdConsumerWrapper', () => { expect(wrapperClient.get(savedObject.type, savedObject.id)).rejects.toMatchInlineSnapshot( `[Error: Saved object does not belong to the workspace]` ); - expect(mockedClient.get).toBeCalledWith(savedObject.type, savedObject.id, {}); + expect(mockedClient.get).toHaveBeenCalledWith(savedObject.type, savedObject.id, {}); }); it(`Should throw error when the object does not exist`, async () => { @@ -407,7 +407,7 @@ describe('WorkspaceIdConsumerWrapper', () => { expect( wrapperClient.get(savedObject.type, savedObject.id, options) ).rejects.toMatchInlineSnapshot(`[Error: Multiple workspace parameters: Bad Request]`); - expect(mockedClient.get).not.toBeCalled(); + expect(mockedClient.get).not.toHaveBeenCalled(); }); it(`Should get data source when user is data source admin`, async () => { @@ -430,7 +430,7 @@ describe('WorkspaceIdConsumerWrapper', () => { }; mockedClient.get.mockResolvedValueOnce(savedObject); const result = await mockedWrapperClient.get(savedObject.type, savedObject.id); - expect(mockedClient.get).toBeCalledWith(savedObject.type, savedObject.id, {}); + expect(mockedClient.get).toHaveBeenCalledWith(savedObject.type, savedObject.id, {}); expect(result).toEqual(savedObject); }); @@ -446,7 +446,7 @@ describe('WorkspaceIdConsumerWrapper', () => { expect(wrapperClient.get(savedObject.type, savedObject.id)).rejects.toMatchInlineSnapshot( `[Error: Saved object does not belong to the workspace]` ); - expect(mockedClient.get).toBeCalledWith(savedObject.type, savedObject.id, {}); + expect(mockedClient.get).toHaveBeenCalledWith(savedObject.type, savedObject.id, {}); }); }); @@ -560,7 +560,7 @@ describe('WorkspaceIdConsumerWrapper', () => { it(`Should bulkGet objects belonging to options.workspaces`, async () => { mockedClient.bulkGet.mockResolvedValueOnce({ saved_objects: savedObjects }); const result = await wrapperClient.bulkGet(payload, options); - expect(mockedClient.bulkGet).toBeCalledWith(payload, options); + expect(mockedClient.bulkGet).toHaveBeenCalledWith(payload, options); expect(result).toMatchInlineSnapshot(` Object { "saved_objects": Array [ @@ -667,7 +667,7 @@ describe('WorkspaceIdConsumerWrapper', () => { it(`Should bulkGet objects belonging to the workspace in request`, async () => { mockedClient.bulkGet.mockResolvedValueOnce({ saved_objects: savedObjects }); const result = await wrapperClient.bulkGet(payload); - expect(mockedClient.bulkGet).toBeCalledWith(payload, {}); + expect(mockedClient.bulkGet).toHaveBeenCalledWith(payload, {}); expect(result).toMatchInlineSnapshot(` Object { "saved_objects": Array [ @@ -785,7 +785,7 @@ describe('WorkspaceIdConsumerWrapper', () => { }); mockedClient.bulkGet.mockResolvedValueOnce({ saved_objects: savedObjects }); const result = await mockedWrapperClient.bulkGet(payload); - expect(mockedClient.bulkGet).toBeCalledWith(payload, {}); + expect(mockedClient.bulkGet).toHaveBeenCalledWith(payload, {}); expect(result).toEqual({ saved_objects: savedObjects }); }); @@ -794,14 +794,14 @@ describe('WorkspaceIdConsumerWrapper', () => { SavedObjectsErrorHelpers.createGenericNotFoundError() ); expect(wrapperClient.bulkGet(payload)).rejects.toMatchInlineSnapshot(`[Error: Not Found]`); - expect(mockedClient.bulkGet).toBeCalledWith(payload, {}); + expect(mockedClient.bulkGet).toHaveBeenCalledWith(payload, {}); }); it(`Should throw error when the options.workspaces has more than one workspace.`, async () => { expect( wrapperClient.bulkGet(payload, { workspaces: ['foo', 'var'] }) ).rejects.toMatchInlineSnapshot(`[Error: Multiple workspace parameters: Bad Request]`); - expect(mockedClient.bulkGet).not.toBeCalled(); + expect(mockedClient.bulkGet).not.toHaveBeenCalled(); }); it(`Should bulkGet data source when user is data source admin`, async () => { @@ -819,7 +819,7 @@ describe('WorkspaceIdConsumerWrapper', () => { mockedClient.bulkGet.mockResolvedValueOnce({ saved_objects: savedObjects }); const result = await mockedWrapperClient.bulkGet(payload); - expect(mockedClient.bulkGet).toBeCalledWith(payload, {}); + expect(mockedClient.bulkGet).toHaveBeenCalledWith(payload, {}); expect(result).toMatchInlineSnapshot(` Object { "saved_objects": Array [ diff --git a/src/plugins/workspace/server/saved_objects/workspace_id_consumer_wrapper.ts b/src/plugins/workspace/server/saved_objects/workspace_id_consumer_wrapper.ts index 9913024c18fe..bce3fd5cb786 100644 --- a/src/plugins/workspace/server/saved_objects/workspace_id_consumer_wrapper.ts +++ b/src/plugins/workspace/server/saved_objects/workspace_id_consumer_wrapper.ts @@ -247,7 +247,10 @@ export class WorkspaceIdConsumerWrapper { }; }; - constructor(private readonly workspaceClient: IWorkspaceClientImpl, logger: Logger) { + constructor( + private readonly workspaceClient: IWorkspaceClientImpl, + logger: Logger + ) { this.logger = logger; } } diff --git a/src/plugins/workspace/server/saved_objects/workspace_saved_objects_client_wrapper.test.ts b/src/plugins/workspace/server/saved_objects/workspace_saved_objects_client_wrapper.test.ts index abb15204f5de..26d8517dfe6a 100644 --- a/src/plugins/workspace/server/saved_objects/workspace_saved_objects_client_wrapper.test.ts +++ b/src/plugins/workspace/server/saved_objects/workspace_saved_objects_client_wrapper.test.ts @@ -237,11 +237,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { describe('wrapperFactory', () => { describe('delete', () => { it('should throw permission error if not permitted', async () => { - const { - wrapper, - permissionControlMock, - requestMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, permissionControlMock, requestMock } = + generateWorkspaceSavedObjectsClientWrapper(); let errorCatched; try { await wrapper.delete('dashboard', 'not-permitted-dashboard'); @@ -280,11 +277,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { describe('update', () => { it('should throw permission error if not permitted', async () => { - const { - wrapper, - permissionControlMock, - requestMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, permissionControlMock, requestMock } = + generateWorkspaceSavedObjectsClientWrapper(); let errorCatched; try { await wrapper.update('dashboard', 'not-permitted-dashboard', { @@ -334,11 +328,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { describe('bulk update', () => { it('should throw permission error if not permitted', async () => { - const { - wrapper, - permissionControlMock, - requestMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, permissionControlMock, requestMock } = + generateWorkspaceSavedObjectsClientWrapper(); let errorCatched; try { await wrapper.bulkUpdate([ @@ -369,11 +360,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { describe('bulk create', () => { it('should throw workspace permission error if passed workspaces but not permitted', async () => { - const { - wrapper, - permissionControlMock, - requestMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, permissionControlMock, requestMock } = + generateWorkspaceSavedObjectsClientWrapper(); permissionControlMock.validate.mockResolvedValueOnce({ success: true, result: false }); let errorCatched; try { @@ -391,11 +379,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { expect(errorCatched?.message).toEqual('Invalid workspace permission'); }); it("should throw permission error if overwrite and not permitted on object's workspace and object", async () => { - const { - wrapper, - permissionControlMock, - requestMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, permissionControlMock, requestMock } = + generateWorkspaceSavedObjectsClientWrapper(); permissionControlMock.validate.mockResolvedValueOnce({ success: true, result: false }); let errorCatched; try { @@ -491,11 +476,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { describe('create', () => { it('should throw workspace permission error if passed workspaces but not permitted', async () => { - const { - wrapper, - permissionControlMock, - requestMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, permissionControlMock, requestMock } = + generateWorkspaceSavedObjectsClientWrapper(); let errorCatched; try { await wrapper.create('dashboard', 'new-dashboard', { @@ -512,11 +494,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { expect(errorCatched?.message).toEqual('Invalid workspace permission'); }); it("should throw permission error if overwrite and not permitted on object's workspace and object", async () => { - const { - wrapper, - permissionControlMock, - requestMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, permissionControlMock, requestMock } = + generateWorkspaceSavedObjectsClientWrapper(); let errorCatched; try { await wrapper.create( @@ -594,11 +573,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { expect(permissionControlMock.validate).not.toHaveBeenCalled(); }); it("should call permission validate with object's workspace and throw permission error", async () => { - const { - wrapper, - permissionControlMock, - requestMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, permissionControlMock, requestMock } = + generateWorkspaceSavedObjectsClientWrapper(); let errorCatched; try { await wrapper.get('dashboard', 'not-permitted-dashboard'); @@ -619,7 +595,7 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { const { wrapper, permissionControlMock } = generateWorkspaceSavedObjectsClientWrapper(); try { await wrapper.get('dashboard', 'not-permitted-dashboard'); - } catch (e) { + } catch { // Add 1 line to pass no-empty lint check } expect(permissionControlMock.validateSavedObjectsACL).toHaveBeenCalledWith( @@ -634,11 +610,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { ); }); it('should call client.get and return result with arguments if permitted', async () => { - const { - wrapper, - clientMock, - permissionControlMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, clientMock, permissionControlMock } = + generateWorkspaceSavedObjectsClientWrapper(); permissionControlMock.validate.mockResolvedValueOnce({ success: true, result: true }); const getArgs = ['workspace', 'foo', {}] as const; const result = await wrapper.get(...getArgs); @@ -655,11 +628,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { }); describe('bulk get', () => { it("should call permission validate with object's workspace and throw permission error", async () => { - const { - wrapper, - permissionControlMock, - requestMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, permissionControlMock, requestMock } = + generateWorkspaceSavedObjectsClientWrapper(); const result = await wrapper.bulkGet([ { type: 'dashboard', id: 'not-permitted-dashboard' }, @@ -694,7 +664,7 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { const { wrapper, permissionControlMock } = generateWorkspaceSavedObjectsClientWrapper(); try { await wrapper.bulkGet([{ type: 'dashboard', id: 'not-permitted-dashboard' }]); - } catch (e) { + } catch { // Add 1 line to pass no-empty lint check } expect(permissionControlMock.validateSavedObjectsACL).toHaveBeenCalledWith( @@ -779,9 +749,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { }); }); it('should call client.find without ACLSearchParams and workspaceOperator', async () => { - const { wrapper, clientMock } = generateWorkspaceSavedObjectsClientWrapper( - DATASOURCE_ADMIN - ); + const { wrapper, clientMock } = + generateWorkspaceSavedObjectsClientWrapper(DATASOURCE_ADMIN); await wrapper.find({ type: DATA_SOURCE_SAVED_OBJECT_TYPE, }); @@ -796,9 +765,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { }); }); it('should call client.find without ACLSearchParams and workspaceOperator when find config and the sortField is buildNum', async () => { - const { wrapper, clientMock } = generateWorkspaceSavedObjectsClientWrapper( - DATASOURCE_ADMIN - ); + const { wrapper, clientMock } = + generateWorkspaceSavedObjectsClientWrapper(DATASOURCE_ADMIN); clientMock.find.mockImplementation(async () => ({ total: 2, per_page: 10, @@ -836,11 +804,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { describe('deleteByWorkspace', () => { it('should call permission validate with workspace and throw workspace permission error if not permitted', async () => { - const { - wrapper, - requestMock, - permissionControlMock, - } = generateWorkspaceSavedObjectsClientWrapper(); + const { wrapper, requestMock, permissionControlMock } = + generateWorkspaceSavedObjectsClientWrapper(); let errorCatched; try { await wrapper.deleteByWorkspace('not-permitted-workspace'); @@ -864,12 +829,8 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { }); describe('Dashboard admin', () => { - const { - wrapper, - clientMock, - permissionControlMock, - requestMock, - } = generateWorkspaceSavedObjectsClientWrapper(DASHBOARD_ADMIN); + const { wrapper, clientMock, permissionControlMock, requestMock } = + generateWorkspaceSavedObjectsClientWrapper(DASHBOARD_ADMIN); expect(getWorkspaceState(requestMock)).toEqual({ isDashboardAdmin: true, requestWorkspaceId: 'mock-request-workspace-id', @@ -1098,7 +1059,7 @@ describe('WorkspaceSavedObjectsClientWrapper', () => { wrapper.get('workspace', 'foo'), wrapper.get('workspace', 'foo'), ]); - expect(checkSpy).toBeCalledTimes(1); + expect(checkSpy).toHaveBeenCalledTimes(1); }); }); }); diff --git a/src/plugins/workspace/server/saved_objects/workspace_saved_objects_client_wrapper.ts b/src/plugins/workspace/server/saved_objects/workspace_saved_objects_client_wrapper.ts index b49262d67f98..c0fcbb5cd3ab 100644 --- a/src/plugins/workspace/server/saved_objects/workspace_saved_objects_client_wrapper.ts +++ b/src/plugins/workspace/server/saved_objects/workspace_saved_objects_client_wrapper.ts @@ -637,7 +637,7 @@ export class WorkspaceSavedObjectsClientWrapper { if (clientCallAuditor?.isAsyncClientCallsBalanced()) { ACLAuditor?.checkout(checkoutInfo); } - } catch (e) { + } catch { if (clientCallAuditor?.isAsyncClientCallsBalanced()) { ACLAuditor?.checkout(); } diff --git a/src/plugins/workspace/server/saved_objects/workspace_ui_settings_client_wrapper.test.ts b/src/plugins/workspace/server/saved_objects/workspace_ui_settings_client_wrapper.test.ts index d306273b188c..62677c4a79d0 100644 --- a/src/plugins/workspace/server/saved_objects/workspace_ui_settings_client_wrapper.test.ts +++ b/src/plugins/workspace/server/saved_objects/workspace_ui_settings_client_wrapper.test.ts @@ -4,19 +4,13 @@ */ import { loggerMock } from '@osd/logging/target/mocks'; -import { - httpServerMock, - savedObjectsClientMock, - coreMock, - uiSettingsServiceMock, -} from '../../../../core/server/mocks'; +import { httpServerMock, savedObjectsClientMock, coreMock } from '../../../../core/server/mocks'; import { WorkspaceUiSettingsClientWrapper } from './workspace_ui_settings_client_wrapper'; import { WORKSPACE_TYPE, CURRENT_WORKSPACE_PLACEHOLDER, SavedObjectsErrorHelpers, PackageInfo, - UiSettingScope, } from '../../../../core/server'; import { DEFAULT_DATA_SOURCE_UI_SETTINGS_ID, @@ -26,10 +20,6 @@ import * as utils from '../../../../core/server/utils'; jest.mock('../../../../core/server/utils'); -const WORKSPACE_SCOPE_SETTING_WITHOUT_VALUE_ID = 'workspace_scope_setting_without_value'; -const GLOBAL_SCOPE_SETTING_ID = 'global_scope_setting'; -const DEFAULT_VALUE = 'default_value'; - describe('WorkspaceUiSettingsClientWrapper', () => { const createWrappedClient = () => { const clientMock = savedObjectsClientMock.create(); @@ -37,29 +27,9 @@ describe('WorkspaceUiSettingsClientWrapper', () => { const requestHandlerContext = coreMock.createRequestHandlerContext(); const requestMock = httpServerMock.createOpenSearchDashboardsRequest(); const logger = loggerMock.create(); - const uiSettingsMock = coreMock.createStart().uiSettings; - const uiSettingsClientMock = uiSettingsServiceMock.createClient(); - uiSettingsMock.asScopedToClient.mockReturnValue(uiSettingsClientMock); const pluginInitializerContext = coreMock.createPluginInitializerContext(); (pluginInitializerContext.env.packageInfo as PackageInfo).version = '3.0.0'; - uiSettingsClientMock.getRegistered.mockReturnValue({ - [DEFAULT_DATA_SOURCE_UI_SETTINGS_ID]: { - scope: [UiSettingScope.GLOBAL, UiSettingScope.WORKSPACE], - }, - [DEFAULT_INDEX_PATTERN_UI_SETTINGS_ID]: { - scope: UiSettingScope.WORKSPACE, - }, - [WORKSPACE_SCOPE_SETTING_WITHOUT_VALUE_ID]: { - scope: UiSettingScope.WORKSPACE, - }, - [GLOBAL_SCOPE_SETTING_ID]: {}, - [DEFAULT_VALUE]: { - scope: UiSettingScope.WORKSPACE, - value: 'default', - }, - }); - clientMock.get.mockImplementation(async (type, id) => { if (type === 'config') { return Promise.resolve({ @@ -101,7 +71,6 @@ describe('WorkspaceUiSettingsClientWrapper', () => { const wrapper = new WorkspaceUiSettingsClientWrapper(logger, pluginInitializerContext.env); wrapper.setScopedClient(getClientMock); - wrapper.setAsScopedUISettingsClient(uiSettingsMock.asScopedToClient); return { wrappedClient: wrapper.wrapperFactory({ @@ -133,7 +102,7 @@ describe('WorkspaceUiSettingsClientWrapper', () => { }); }); - it('should return workspace settings and use default value if key value is undefined to get workspace level settings in a workspace', async () => { + it('should return only the settings actually stored in the workspace, without back-filling defaults', async () => { // Currently in a workspace jest.spyOn(utils, 'getWorkspaceState').mockReturnValue({ requestWorkspaceId: 'workspace-id' }); @@ -142,6 +111,11 @@ describe('WorkspaceUiSettingsClientWrapper', () => { const result = await wrappedClient.get<{ [key: string]: unknown; }>(`config`, `${CURRENT_WORKSPACE_PLACEHOLDER}_3.0.0`); + // Only the keys the workspace object actually stores are returned. Registered + // workspace-scope settings that have no stored value (defaultIndex, + // workspace_scope_setting_without_value, default_value) are NOT back-filled here: + // their defaults come from the global/defaults layer during the merge, and + // omitting them lets a cleared setting inherit from global instead of overriding it. expect(result).toStrictEqual({ id: '3.0.0', references: [], @@ -149,13 +123,48 @@ describe('WorkspaceUiSettingsClientWrapper', () => { attributes: { defaultDashboard: 'default-dashboard-workspace', [DEFAULT_DATA_SOURCE_UI_SETTINGS_ID]: 'default-ds-workspace', - [DEFAULT_INDEX_PATTERN_UI_SETTINGS_ID]: undefined, - [WORKSPACE_SCOPE_SETTING_WITHOUT_VALUE_ID]: undefined, - [DEFAULT_VALUE]: 'default', }, }); }); + it('should drop a cleared (null) workspace setting so it inherits from global', async () => { + // Currently in a workspace + jest.spyOn(utils, 'getWorkspaceState').mockReturnValue({ requestWorkspaceId: 'workspace-id' }); + + const { wrappedClient, clientMock } = createWrappedClient(); + + // Workspace object stores a setting explicitly cleared to null. + clientMock.get.mockImplementation(async (type, id) => { + if (type === WORKSPACE_TYPE) { + return { + id, + references: [], + type: WORKSPACE_TYPE, + attributes: { + uiSettings: { + defaultDashboard: 'default-dashboard-workspace', + [DEFAULT_DATA_SOURCE_UI_SETTINGS_ID]: null, + }, + }, + }; + } + return { + id, + references: [], + type: 'config', + attributes: {}, + }; + }); + + const result = await wrappedClient.get<{ + [key: string]: unknown; + }>(`config`, `${CURRENT_WORKSPACE_PLACEHOLDER}_3.0.0`); + // The null-valued key is dropped; only the real stored value remains. + expect(result.attributes).toStrictEqual({ + defaultDashboard: 'default-dashboard-workspace', + }); + }); + it('should return not found error if trying to get workspace level settings out of a workspace', async () => { let error; jest.spyOn(utils, 'getWorkspaceState').mockReturnValue({}); @@ -204,6 +213,34 @@ describe('WorkspaceUiSettingsClientWrapper', () => { ); }); + it('should persist a cleared workspace ui setting as null (partial update cannot delete keys)', async () => { + // Currently in a workspace + jest.spyOn(utils, 'getWorkspaceState').mockReturnValue({ requestWorkspaceId: 'workspace-id' }); + + const { wrappedClient, clientMock } = createWrappedClient(); + + // Clearing a workspace-level setting is sent as null. + await wrappedClient.update('config', `${CURRENT_WORKSPACE_PLACEHOLDER}_3.0.0`, { + [DEFAULT_DATA_SOURCE_UI_SETTINGS_ID]: null, + }); + + // The null must be PERSISTED (not dropped): the saved objects update is a partial + // deep-merge, so a key omitted from the doc would keep its previous stored value and + // never be cleared. Storing null explicitly overwrites the old value; the read path + // then treats null as "inherit from global". defaultDashboard is preserved. + expect(clientMock.update).toHaveBeenCalledWith( + WORKSPACE_TYPE, + 'workspace-id', + { + uiSettings: { + defaultDashboard: 'default-dashboard-workspace', + [DEFAULT_DATA_SOURCE_UI_SETTINGS_ID]: null, + }, + }, + {} + ); + }); + it('should throw error if try to update workspace level settings out of the workspace', async () => { jest.spyOn(utils, 'getWorkspaceState').mockReturnValue({}); @@ -269,7 +306,7 @@ describe('WorkspaceUiSettingsClientWrapper', () => { }, {} ); - expect(logger.warn).toBeCalledWith( + expect(logger.warn).toHaveBeenCalledWith( 'Deprecation warning: updating workspace settings through global scope will no longer be supported.' ); }); diff --git a/src/plugins/workspace/server/saved_objects/workspace_ui_settings_client_wrapper.ts b/src/plugins/workspace/server/saved_objects/workspace_ui_settings_client_wrapper.ts index dec4452505f0..40d7406a4b89 100644 --- a/src/plugins/workspace/server/saved_objects/workspace_ui_settings_client_wrapper.ts +++ b/src/plugins/workspace/server/saved_objects/workspace_ui_settings_client_wrapper.ts @@ -18,9 +18,6 @@ import { SavedObjectsErrorHelpers, CURRENT_WORKSPACE_PLACEHOLDER, PluginInitializerContext, - UiSettingsServiceStart, - IUiSettingsClient, - UiSettingScope, } from '../../../../core/server'; import { WORKSPACE_UI_SETTINGS_CLIENT_WRAPPER_ID } from '../../common/constants'; import { Logger } from '../../../../core/server'; @@ -35,7 +32,6 @@ export class WorkspaceUiSettingsClientWrapper { private readonly env: PluginInitializerContext['env'] ) {} private getScopedClient?: SavedObjectsServiceStart['getScopedClient']; - private asScopedUISettingsClient?: UiSettingsServiceStart['asScopedToClient']; /** * WORKSPACE_TYPE is a hidden type, regular saved object client won't return hidden types. @@ -49,18 +45,10 @@ export class WorkspaceUiSettingsClientWrapper { }) as SavedObjectsClientContract; } - private getUISettingsClient(savedObjectClient: SavedObjectsClientContract) { - return this.asScopedUISettingsClient?.(savedObjectClient) as IUiSettingsClient; - } - public setScopedClient(getScopedClient: SavedObjectsServiceStart['getScopedClient']) { this.getScopedClient = getScopedClient; } - public setAsScopedUISettingsClient(asScopedToClient: UiSettingsServiceStart['asScopedToClient']) { - this.asScopedUISettingsClient = asScopedToClient; - } - public wrapperFactory: SavedObjectsClientWrapperFactory = (wrapperOptions) => { const getUiSettingsWithWorkspace = async ( type: string, @@ -91,7 +79,7 @@ export class WorkspaceUiSettingsClientWrapper { try { configObject = await wrapperOptions.client.get('config', normalizeDocId, options); - } catch (e) { + } catch { // make global config nullable when getting workspace settings } @@ -105,28 +93,21 @@ export class WorkspaceUiSettingsClientWrapper { WORKSPACE_TYPE, requestWorkspaceId ); - } catch (e) { + } catch { this.logger.error(`Unable to get workspaceObject with id: ${requestWorkspaceId}`); } - const UISettingsClient = this.getUISettingsClient(workspaceTypeEnabledClient); - const registeredConfigs = UISettingsClient.getRegistered(); - - const workspaceScopeConfigDefaults = Object.entries(registeredConfigs) - .filter(([, config]) => - Array() - .concat(config.scope || []) - .includes(UiSettingScope.WORKSPACE) - ) - .reduce((acc, [key, config]) => { - acc[key] = config.value; - return acc; - }, {} as Record); - - const workspaceSettings = workspaceObject?.attributes?.uiSettings || {}; + // Only surface settings actually stored in this workspace; defaults come from + // the global/defaults layer during the merge in UiSettingsClient. + const workspaceSettings: Record = { + ...(workspaceObject?.attributes?.uiSettings || {}), + }; - Object.entries(workspaceScopeConfigDefaults).forEach(([key, value]) => { - workspaceSettings[key] = workspaceSettings[key] || value; + // A cleared setting is stored as null; drop it so it inherits from global. + Object.keys(workspaceSettings).forEach((key) => { + if (workspaceSettings[key] === null) { + delete workspaceSettings[key]; + } }); configObject.attributes = workspaceSettings as T; @@ -159,7 +140,7 @@ export class WorkspaceUiSettingsClientWrapper { try { configObject = await wrapperOptions.client.get('config', configDocId, options); - } catch (e) { + } catch { // make global config nullable when updating workspace settings } diff --git a/src/plugins/workspace/server/types.ts b/src/plugins/workspace/server/types.ts index fd33e556bb26..8a0b258da173 100644 --- a/src/plugins/workspace/server/types.ts +++ b/src/plugins/workspace/server/types.ts @@ -168,8 +168,7 @@ export interface WorkspacePluginSetup { } export type WorkspaceAuthResult = - | { authorized: true } - | { authorized: false; unauthorizedWorkspaces: string[] }; + { authorized: true } | { authorized: false; unauthorizedWorkspaces: string[] }; export interface WorkspacePluginStart { client: IWorkspaceClientImpl; diff --git a/src/plugins/workspace/server/utils.test.ts b/src/plugins/workspace/server/utils.test.ts index 46b8a6897fb5..b2faf9f89c5e 100644 --- a/src/plugins/workspace/server/utils.test.ts +++ b/src/plugins/workspace/server/utils.test.ts @@ -95,6 +95,120 @@ describe('workspace utils', () => { expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(true); }); + it('should handle configUsers as a string instead of array', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = []; + const users: string[] = ['user1']; + const configGroups: string[] = []; + const configUsers = 'user1' as unknown as string[]; + updateDashboardAdminStateForRequest(mockRequest, groups, users, configGroups, configUsers); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(true); + }); + + it('should handle configGroups as a string instead of array', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = ['admin_group']; + const users: string[] = []; + const configGroups = 'admin_group' as unknown as string[]; + const configUsers: string[] = []; + updateDashboardAdminStateForRequest(mockRequest, groups, users, configGroups, configUsers); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(true); + }); + + it('should handle configUsers as wildcard string instead of array', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = []; + const users: string[] = ['user1']; + const configGroups: string[] = []; + const configUsers = OSD_ADMIN_WILDCARD_MATCH_ALL as unknown as string[]; + updateDashboardAdminStateForRequest(mockRequest, groups, users, configGroups, configUsers); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(true); + }); + + it('should not grant admin when configUsers string is a substring match', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = []; + const users: string[] = ['a']; + const configGroups: string[] = []; + const configUsers = 'admin' as unknown as string[]; + updateDashboardAdminStateForRequest(mockRequest, groups, users, configGroups, configUsers); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(false); + }); + + it('should split configUsers string by comma', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = []; + const users: string[] = ['user2']; + const configGroups: string[] = []; + const configUsers = 'user1,user2' as unknown as string[]; + updateDashboardAdminStateForRequest(mockRequest, groups, users, configGroups, configUsers); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(true); + }); + + it('should split configUsers string by space', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = []; + const users: string[] = ['user2']; + const configGroups: string[] = []; + const configUsers = 'user1 user2' as unknown as string[]; + updateDashboardAdminStateForRequest(mockRequest, groups, users, configGroups, configUsers); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(true); + }); + + it('should split configGroups string by comma', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = ['group2']; + const users: string[] = []; + const configGroups = 'group1,group2' as unknown as string[]; + const configUsers: string[] = []; + updateDashboardAdminStateForRequest(mockRequest, groups, users, configGroups, configUsers); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(true); + }); + + it('should split configGroups string by space', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = ['group2']; + const users: string[] = []; + const configGroups = 'group1 group2' as unknown as string[]; + const configUsers: string[] = []; + updateDashboardAdminStateForRequest(mockRequest, groups, users, configGroups, configUsers); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(true); + }); + + it('should split configUsers string by tab', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = []; + const users: string[] = ['user2']; + const configGroups: string[] = []; + const configUsers = 'user1\tuser2' as unknown as string[]; + updateDashboardAdminStateForRequest(mockRequest, groups, users, configGroups, configUsers); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(true); + }); + + it('should split configGroups string by tab', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = ['group2']; + const users: string[] = []; + const configGroups = 'group1\tgroup2' as unknown as string[]; + const configUsers: string[] = []; + updateDashboardAdminStateForRequest(mockRequest, groups, users, configGroups, configUsers); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(true); + }); + + it('should not crash when configUsers or configGroups is null or undefined', () => { + const mockRequest = httpServerMock.createOpenSearchDashboardsRequest(); + const groups: string[] = []; + const users: string[] = ['user1']; + updateDashboardAdminStateForRequest( + mockRequest, + groups, + users, + null as unknown as string[], + undefined as unknown as string[] + ); + expect(getWorkspaceState(mockRequest)?.isDashboardAdmin).toBe(false); + }); + it('should transfer current user placeholder in permissions', () => { expect(transferCurrentUserInPermissions('foo', undefined)).toBeUndefined(); expect( @@ -163,7 +277,7 @@ describe('workspace utils', () => { const dataSources = ['id1', 'id2']; uiSettingsClient.get = jest.fn().mockResolvedValue(dataSources[0]); await checkAndSetDefaultDataSource(uiSettingsClient, dataSources, true); - expect(uiSettingsClient.set).not.toBeCalled(); + expect(uiSettingsClient.set).not.toHaveBeenCalled(); }); it('should check then set first data sources as default if needed when checking', async () => { diff --git a/src/plugins/workspace/server/utils.ts b/src/plugins/workspace/server/utils.ts index 6e155e074325..84814ab2e7ef 100644 --- a/src/plugins/workspace/server/utils.ts +++ b/src/plugins/workspace/server/utils.ts @@ -34,19 +34,35 @@ export const updateDashboardAdminStateForRequest = ( request: OpenSearchDashboardsRequest, groups: string[], users: string[], - configGroups: string[], - configUsers: string[] + configGroups: string | string[], + configUsers: string | string[] ) => { + const normalizedConfigUsers = Array.isArray(configUsers) + ? configUsers + : configUsers + ? configUsers + .trim() + .split(/[\s,]+/) + .filter(Boolean) + : []; + const normalizedConfigGroups = Array.isArray(configGroups) + ? configGroups + : configGroups + ? configGroups + .trim() + .split(/[\s,]+/) + .filter(Boolean) + : []; // If the security plugin is not installed, login defaults to OSD Admin if (!groups.length && !users.length) { return updateWorkspaceState(request, { isDashboardAdmin: true }); } // If user config contains wildcard characters '*', login defaults to OSD Admin - if (configUsers.includes(OSD_ADMIN_WILDCARD_MATCH_ALL)) { + if (normalizedConfigUsers.includes(OSD_ADMIN_WILDCARD_MATCH_ALL)) { return updateWorkspaceState(request, { isDashboardAdmin: true }); } - const groupMatchAny = groups.some((group) => configGroups.includes(group)); - const userMatchAny = users.some((user) => configUsers.includes(user)); + const groupMatchAny = groups.some((group) => normalizedConfigGroups.includes(group)); + const userMatchAny = users.some((user) => normalizedConfigUsers.includes(user)); return updateWorkspaceState(request, { isDashboardAdmin: groupMatchAny || userMatchAny, }); diff --git a/src/plugins/workspace/server/workspace_client.test.ts b/src/plugins/workspace/server/workspace_client.test.ts index 7b3876997f68..c59dafcc4446 100644 --- a/src/plugins/workspace/server/workspace_client.test.ts +++ b/src/plugins/workspace/server/workspace_client.test.ts @@ -49,7 +49,7 @@ describe('#WorkspaceClient', () => { const find = jest.fn(); const addToWorkspaces = jest.fn(); const deleteFromWorkspaces = jest.fn(); - const savedObjectClient = ({ + const savedObjectClient = { find, addToWorkspaces, deleteFromWorkspaces, @@ -59,19 +59,19 @@ describe('#WorkspaceClient', () => { name: mockWorkspaceName, }, }), - } as unknown) as SavedObjectsClientContract; - const savedObjects = ({ + } as unknown as SavedObjectsClientContract; + const savedObjects = { ...coreSetup.savedObjects, getScopedClient: () => savedObjectClient, - } as unknown) as SavedObjectsServiceStart; + } as unknown as SavedObjectsServiceStart; const uiSettings = uiSettingsServiceMock.createStartContract(); - const mockRequestDetail = ({ + const mockRequestDetail = { request: httpServerMock.createOpenSearchDashboardsRequest(), context: coreMock.createRequestHandlerContext(), logger: {}, - } as unknown) as IRequestDetail; + } as unknown as IRequestDetail; it('create# should not call addToWorkspaces if no data sources and no data connections passed', async () => { const client = new WorkspaceClient(coreSetup, logger); diff --git a/src/plugins/workspace/server/workspace_client.ts b/src/plugins/workspace/server/workspace_client.ts index 39f6585c21aa..538d53749924 100644 --- a/src/plugins/workspace/server/workspace_client.ts +++ b/src/plugins/workspace/server/workspace_client.ts @@ -182,7 +182,7 @@ export class WorkspaceClient implements IWorkspaceClientImpl { const uiSettingsClient = this.uiSettings.asScopedToClient(client); try { await checkAndSetDefaultDataSource(uiSettingsClient, dataSources, false); - } catch (e) { + } catch { this.logger.error('Set default data source error'); } finally { // Reset workspace state @@ -210,16 +210,12 @@ export class WorkspaceClient implements IWorkspaceClientImpl { options: WorkspaceFindOptions ): ReturnType { try { - const { - saved_objects: savedObjects, - ...others - } = await this.getSavedObjectClientsFromRequestDetail(requestDetail).find( - { + const { saved_objects: savedObjects, ...others } = + await this.getSavedObjectClientsFromRequestDetail(requestDetail).find({ ...options, type: WORKSPACE_TYPE, ACLSearchParams: { permissionModes: options.permissionModes }, - } - ); + }); return { success: true, result: { @@ -239,9 +235,9 @@ export class WorkspaceClient implements IWorkspaceClientImpl { id: string ): Promise> { try { - const result = await this.getSavedObjectClientsFromRequestDetail(requestDetail).get< - WorkspaceAttribute - >(WORKSPACE_TYPE, id); + const result = await this.getSavedObjectClientsFromRequestDetail( + requestDetail + ).get(WORKSPACE_TYPE, id); return { success: true, result: this.getFlattenedResultWithSavedObject(result), @@ -353,7 +349,7 @@ export class WorkspaceClient implements IWorkspaceClientImpl { await checkAndSetDefaultDataSource(uiSettingsClient, newDataSources, true); // Doc version may changed after default data source updated. workspaceInDB = await client.get(WORKSPACE_TYPE, id); - } catch (error) { + } catch { this.logger.error('Set default data source error during workspace updating'); } } diff --git a/src/setup_node_env/__snapshots__/node_version_validator.test.js.snap b/src/setup_node_env/__snapshots__/node_version_validator.test.js.snap index e4937710779f..b7d5deb34b24 100644 --- a/src/setup_node_env/__snapshots__/node_version_validator.test.js.snap +++ b/src/setup_node_env/__snapshots__/node_version_validator.test.js.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`Node.js version validation fails if package.json has a 0.x.x engines.node 1`] = `"OpenSearch Dashboards did not report its required version of the Node.js runtime in a valid format. Please revert any changes that might have been made to the package.json file and try again."`; diff --git a/src/setup_node_env/exit_on_warning.js b/src/setup_node_env/exit_on_warning.js index 27dd50d3c666..12bad3f097fd 100644 --- a/src/setup_node_env/exit_on_warning.js +++ b/src/setup_node_env/exit_on_warning.js @@ -34,6 +34,10 @@ if (process.noProcessWarnings !== true) { 'NodeDeprecationWarning', 'MODULE_TYPELESS_PACKAGE_JSON', 'fs.Stats constructor is deprecated.', + // Advisory performance hint emitted by ESLint 10 when `concurrency: 'auto'` + // picks multithreading for a small workload (e.g. linting a single plugin + // dir). Not a code problem, so it must not terminate the process. + 'ESLintPoorConcurrencyWarning', ]; process.on('warning', function (warn) { diff --git a/src/setup_node_env/node_version_validator.test.js b/src/setup_node_env/node_version_validator.test.js index fa53b76508d9..6db7dd33ba2e 100644 --- a/src/setup_node_env/node_version_validator.test.js +++ b/src/setup_node_env/node_version_validator.test.js @@ -80,7 +80,8 @@ const allPossibleOperators = [ ]; // Regex pattern to parse test titles which gets used to create new versions -const testTitleMatcher = /(?:(major|minor|patch)\s+(upgrade|downgrade)|(higher|lower)\s+(major|minor|patch))/g; +const testTitleMatcher = + /(?:(major|minor|patch)\s+(upgrade|downgrade)|(higher|lower)\s+(major|minor|patch))/g; const testTitleChanges = { upgrade: 1, downgrade: -1, diff --git a/src/test_utils/public/enzyme_helpers.tsx b/src/test_utils/public/enzyme_helpers.tsx index ad0dc4de5c18..0168c37651a7 100644 --- a/src/test_utils/public/enzyme_helpers.tsx +++ b/src/test_utils/public/enzyme_helpers.tsx @@ -47,11 +47,13 @@ const TypedIntlProvider = IntlProvider as React.ComponentType< >; // Use fake component to extract `intl` property to use in tests. -const { intl } = (mount( - -
-
-).find('IntlProvider') as ReactWrapper<{}, {}, __IntlProvider>) +const { intl } = ( + mount( + +
+
+ ).find('IntlProvider') as ReactWrapper<{}, {}, __IntlProvider> +) .instance() .getChildContext(); @@ -108,7 +110,7 @@ export function shallowWithIntl( ): ReactWrapper { const options = getOptions(context, childContextTypes, props); - return (shallow(nodeWithIntlProp(node), options) as unknown) as ReactWrapper; + return shallow(nodeWithIntlProp(node), options) as unknown as ReactWrapper; } /** @@ -131,7 +133,7 @@ export function mountWithIntl( ): ReactWrapper { const options = getOptions(context, childContextTypes, props); - return (mount(nodeWithIntlProp(node), options) as unknown) as ReactWrapper; + return mount(nodeWithIntlProp(node), options) as unknown as ReactWrapper; } /** diff --git a/src/test_utils/public/helpers/router_helpers.tsx b/src/test_utils/public/helpers/router_helpers.tsx index d325676ba165..2af9187945ba 100644 --- a/src/test_utils/public/helpers/router_helpers.tsx +++ b/src/test_utils/public/helpers/router_helpers.tsx @@ -32,40 +32,41 @@ import { Component, ComponentType } from 'react'; import { MemoryRouter, Route, withRouter } from 'react-router-dom'; import * as H from 'history'; -export const WithMemoryRouter = (initialEntries: string[] = ['/'], initialIndex: number = 0) => ( - WrappedComponent: ComponentType -) => (props: any) => ( - - - -); +export const WithMemoryRouter = + (initialEntries: string[] = ['/'], initialIndex: number = 0) => + (WrappedComponent: ComponentType) => + (props: any) => ( + + + + ); -export const WithRoute = (componentRoutePath = '/', onRouter = (router: any) => {}) => ( - WrappedComponent: ComponentType -) => { - // Create a class component that will catch the router - // and forward it to our "onRouter()" handler. - const CatchRouter = withRouter( - class extends Component { - componentDidMount() { - const { match, location, history } = this.props; - const router = { route: { match, location }, history }; - onRouter(router); - } +export const WithRoute = + (componentRoutePath = '/', onRouter = (router: any) => {}) => + (WrappedComponent: ComponentType) => { + // Create a class component that will catch the router + // and forward it to our "onRouter()" handler. + const CatchRouter = withRouter( + class extends Component { + componentDidMount() { + const { match, location, history } = this.props; + const router = { route: { match, location }, history }; + onRouter(router); + } - render() { - return ; + render() { + return ; + } } - } - ); + ); - return (props: any) => ( - } - /> - ); -}; + return (props: any) => ( + } + /> + ); + }; interface Router { history: Partial; diff --git a/src/test_utils/public/stub_browser_storage.test.ts b/src/test_utils/public/stub_browser_storage.test.ts index 6cf7563092d0..37f20334ffcf 100644 --- a/src/test_utils/public/stub_browser_storage.test.ts +++ b/src/test_utils/public/stub_browser_storage.test.ts @@ -113,7 +113,7 @@ describe('StubBrowserStorage', () => { store.setItem('key', 'val'); expect(() => { store.setStubbedSizeLimit(5); - }).toThrowError(Error); + }).toThrow(Error); }); it('respects removed items', () => { diff --git a/test/api_integration/apis/saved_objects_management/find.ts b/test/api_integration/apis/saved_objects_management/find.ts index a82d4e792cdc..b2515c93360d 100644 --- a/test/api_integration/apis/saved_objects_management/find.ts +++ b/test/api_integration/apis/saved_objects_management/find.ts @@ -308,8 +308,7 @@ export default function ({ getService }: FtrProviderContext) { editUrl: '/management/opensearch-dashboards/indexPatterns/patterns/8963ca30-3224-11e8-a572-ffca06da1357', inAppUrl: { - path: - '/app/management/opensearch-dashboards/indexPatterns/patterns/8963ca30-3224-11e8-a572-ffca06da1357', + path: '/app/management/opensearch-dashboards/indexPatterns/patterns/8963ca30-3224-11e8-a572-ffca06da1357', uiCapabilitiesPath: 'management.opensearchDashboards.indexPatterns', }, namespaceType: 'single', diff --git a/test/api_integration/apis/saved_objects_management/relationships.ts b/test/api_integration/apis/saved_objects_management/relationships.ts index f0af2d8d9e79..c9f3b06c3c10 100644 --- a/test/api_integration/apis/saved_objects_management/relationships.ts +++ b/test/api_integration/apis/saved_objects_management/relationships.ts @@ -97,8 +97,7 @@ export default function ({ getService }: FtrProviderContext) { editUrl: '/management/opensearch-dashboards/indexPatterns/patterns/8963ca30-3224-11e8-a572-ffca06da1357', inAppUrl: { - path: - '/app/management/opensearch-dashboards/indexPatterns/patterns/8963ca30-3224-11e8-a572-ffca06da1357', + path: '/app/management/opensearch-dashboards/indexPatterns/patterns/8963ca30-3224-11e8-a572-ffca06da1357', uiCapabilitiesPath: 'management.opensearchDashboards.indexPatterns', }, namespaceType: 'single', @@ -140,8 +139,7 @@ export default function ({ getService }: FtrProviderContext) { editUrl: '/management/opensearch-dashboards/indexPatterns/patterns/8963ca30-3224-11e8-a572-ffca06da1357', inAppUrl: { - path: - '/app/management/opensearch-dashboards/indexPatterns/patterns/8963ca30-3224-11e8-a572-ffca06da1357', + path: '/app/management/opensearch-dashboards/indexPatterns/patterns/8963ca30-3224-11e8-a572-ffca06da1357', uiCapabilitiesPath: 'management.opensearchDashboards.indexPatterns', }, namespaceType: 'single', diff --git a/test/api_integration/apis/scripts/languages.js b/test/api_integration/apis/scripts/languages.js index cd8d8dc4bccc..8c6ff5742dff 100644 --- a/test/api_integration/apis/scripts/languages.js +++ b/test/api_integration/apis/scripts/languages.js @@ -42,7 +42,6 @@ export default function ({ getService }) { expect(response.body).to.be.an('array'); })); - // eslint-disable-next-line jest/no-disabled-tests it.skip('should only return langs enabled for inline scripting', () => supertest .get('/api/opensearch-dashboards/scripts/languages') diff --git a/test/common/services/security/role.ts b/test/common/services/security/role.ts index 3dc5c38c6983..311d4dd0c56c 100644 --- a/test/common/services/security/role.ts +++ b/test/common/services/security/role.ts @@ -32,7 +32,10 @@ import util from 'util'; import { OsdClient, ToolingLog } from '@osd/dev-utils'; export class Role { - constructor(private log: ToolingLog, private opensearchDashboardsServer: OsdClient) {} + constructor( + private log: ToolingLog, + private opensearchDashboardsServer: OsdClient + ) {} public async create(name: string, role: any) { this.log.debug(`creating role ${name}`); diff --git a/test/common/services/security/role_mappings.ts b/test/common/services/security/role_mappings.ts index 82f001f476c3..a0555e692f2d 100644 --- a/test/common/services/security/role_mappings.ts +++ b/test/common/services/security/role_mappings.ts @@ -32,7 +32,10 @@ import util from 'util'; import { OsdClient, ToolingLog } from '@osd/dev-utils'; export class RoleMappings { - constructor(private log: ToolingLog, private osdClient: OsdClient) {} + constructor( + private log: ToolingLog, + private osdClient: OsdClient + ) {} public async getAll() { this.log.debug(`Getting role mappings`); diff --git a/test/common/services/security/user.ts b/test/common/services/security/user.ts index e821d75ed046..a607ad442f96 100644 --- a/test/common/services/security/user.ts +++ b/test/common/services/security/user.ts @@ -32,7 +32,10 @@ import util from 'util'; import { OsdClient, ToolingLog } from '@osd/dev-utils'; export class User { - constructor(private log: ToolingLog, private osdClient: OsdClient) {} + constructor( + private log: ToolingLog, + private osdClient: OsdClient + ) {} public async create(username: string, user: any) { this.log.debug(`creating user ${username}`); diff --git a/test/functional/apps/dashboard/dashboard_state.js b/test/functional/apps/dashboard/dashboard_state.js index 88ee92ea037e..b5fa820a8cb3 100644 --- a/test/functional/apps/dashboard/dashboard_state.js +++ b/test/functional/apps/dashboard/dashboard_state.js @@ -86,9 +86,8 @@ export default function ({ getService, getPageObjects }) { await PageObjects.dashboard.gotoDashboardLandingPage(); await PageObjects.dashboard.loadSavedDashboard('Overridden colors'); - const colorChoiceRetained = await PageObjects.visChart.doesSelectedLegendColorExist( - '#8d4059' - ); + const colorChoiceRetained = + await PageObjects.visChart.doesSelectedLegendColorExist('#8d4059'); expect(colorChoiceRetained).to.be(true); }); diff --git a/test/functional/apps/management/_scripted_fields_preview.js b/test/functional/apps/management/_scripted_fields_preview.js index 304f757d006a..840891c4aa72 100644 --- a/test/functional/apps/management/_scripted_fields_preview.js +++ b/test/functional/apps/management/_scripted_fields_preview.js @@ -61,9 +61,8 @@ export default function ({ getService, getPageObjects }) { }); it('should display script results when script is valid', async function () { - const scriptResults = await PageObjects.settings.executeScriptedField( - `doc['bytes'].value * 2` - ); + const scriptResults = + await PageObjects.settings.executeScriptedField(`doc['bytes'].value * 2`); expect(scriptResults.replace(/\s/g, '')).to.contain('"myScriptedField":[6196'); }); diff --git a/test/functional/apps/visualize/_area_chart.js b/test/functional/apps/visualize/_area_chart.js index 3ca202501667..ef2645e76a8c 100644 --- a/test/functional/apps/visualize/_area_chart.js +++ b/test/functional/apps/visualize/_area_chart.js @@ -118,30 +118,8 @@ export default function ({ getService, getPageObjects }) { ]; const yAxisLabels = ['0', '200', '400', '600', '800', '1,000', '1,200', '1,400', '1,600']; const expectedAreaChartData = [ - 37, - 202, - 740, - 1437, - 1371, - 751, - 188, - 31, - 42, - 202, - 683, - 1361, - 1415, - 707, - 177, - 27, - 32, - 175, - 707, - 1408, - 1355, - 726, - 201, - 29, + 37, 202, 740, 1437, 1371, 751, 188, 31, 42, 202, 683, 1361, 1415, 707, 177, 27, 32, 175, + 707, 1408, 1355, 726, 201, 29, ]; await retry.try(async function tryingForTime() { diff --git a/test/functional/apps/visualize/_point_series_options.js b/test/functional/apps/visualize/_point_series_options.js index d7ea63ce656e..7ab5e7a3dd9f 100644 --- a/test/functional/apps/visualize/_point_series_options.js +++ b/test/functional/apps/visualize/_point_series_options.js @@ -86,56 +86,14 @@ export default function ({ getService, getPageObjects }) { it('should show correct chart', async function () { const expectedChartValues = [ [ - 37, - 202, - 740, - 1437, - 1371, - 751, - 188, - 31, - 42, - 202, - 683, - 1361, - 1415, - 707, - 177, - 27, - 32, - 175, - 707, - 1408, - 1355, - 726, - 201, - 29, + 37, 202, 740, 1437, 1371, 751, 188, 31, 42, 202, 683, 1361, 1415, 707, 177, 27, 32, 175, + 707, 1408, 1355, 726, 201, 29, ], [ - 14018300000, - 13284800000, - 13198800000, - 13093400000, - 13067800000, - 12976600000, - 13561800000, - 14339600000, - 14011000000, - 12775300000, - 13304500000, - 12988900000, - 13143500000, - 13244400000, - 12154800000, - 15907300000, - 13757300000, - 13022200000, - 12807300000, - 13375700000, - 13190800000, - 12627500000, - 12731500000, - 13153300000, + 14018300000, 13284800000, 13198800000, 13093400000, 13067800000, 12976600000, + 13561800000, 14339600000, 14011000000, 12775300000, 13304500000, 12988900000, + 13143500000, 13244400000, 12154800000, 15907300000, 13757300000, 13022200000, + 12807300000, 13375700000, 13190800000, 12627500000, 12731500000, 13153300000, ], ]; diff --git a/test/functional/apps/visualize/_tsvb_chart.ts b/test/functional/apps/visualize/_tsvb_chart.ts index 0dc796233839..8a08701a7c0e 100644 --- a/test/functional/apps/visualize/_tsvb_chart.ts +++ b/test/functional/apps/visualize/_tsvb_chart.ts @@ -213,9 +213,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { log.debug('Go back in browser history'); await browser.goBack(); - const isTermsSelected = await PageObjects.visualBuilder.checkSelectedMetricsGroupByValue( - 'Terms' - ); + const isTermsSelected = + await PageObjects.visualBuilder.checkSelectedMetricsGroupByValue('Terms'); expect(isTermsSelected).to.be(true); log.debug('Go back in browser history'); diff --git a/test/functional/apps/visualize/_vertical_bar_chart.js b/test/functional/apps/visualize/_vertical_bar_chart.js index 60edd329119b..97e61e51c395 100644 --- a/test/functional/apps/visualize/_vertical_bar_chart.js +++ b/test/functional/apps/visualize/_vertical_bar_chart.js @@ -130,30 +130,8 @@ export default function ({ getService, getPageObjects }) { it('should show correct chart', async function () { const expectedChartValues = [ - 37, - 202, - 740, - 1437, - 1371, - 751, - 188, - 31, - 42, - 202, - 683, - 1361, - 1415, - 707, - 177, - 27, - 32, - 175, - 707, - 1408, - 1355, - 726, - 201, - 29, + 37, 202, 740, 1437, 1371, 751, 188, 31, 42, 202, 683, 1361, 1415, 707, 177, 27, 32, 175, + 707, 1408, 1355, 726, 201, 29, ]; // Most recent failure on Jenkins usually indicates the bar chart is still being drawn? @@ -204,67 +182,9 @@ export default function ({ getService, getPageObjects }) { await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime); let expectedChartValues = [ - 82, - 218, - 341, - 440, - 480, - 517, - 522, - 446, - 403, - 321, - 258, - 172, - 95, - 55, - 38, - 24, - 3, - 4, - 11, - 14, - 17, - 38, - 49, - 115, - 152, - 216, - 315, - 402, - 446, - 513, - 520, - 474, - 421, - 307, - 230, - 170, - 99, - 48, - 30, - 15, - 10, - 2, - 8, - 7, - 17, - 34, - 37, - 104, - 153, - 241, - 313, - 404, - 492, - 512, - 503, - 473, - 379, - 293, - 277, - 156, - 56, + 82, 218, 341, 440, 480, 517, 522, 446, 403, 321, 258, 172, 95, 55, 38, 24, 3, 4, 11, 14, 17, + 38, 49, 115, 152, 216, 315, 402, 446, 513, 520, 474, 421, 307, 230, 170, 99, 48, 30, 15, 10, + 2, 8, 7, 17, 34, 37, 104, 153, 241, 313, 404, 492, 512, 503, 473, 379, 293, 277, 156, 56, ]; // Most recent failure on Jenkins usually indicates the bar chart is still being drawn? @@ -282,65 +202,9 @@ export default function ({ getService, getPageObjects }) { await PageObjects.visEditor.clickGo(); expectedChartValues = [ - 218, - 341, - 440, - 480, - 517, - 522, - 446, - 403, - 321, - 258, - 172, - 95, - 55, - 38, - 24, - 3, - 4, - 11, - 14, - 17, - 38, - 49, - 115, - 152, - 216, - 315, - 402, - 446, - 513, - 520, - 474, - 421, - 307, - 230, - 170, - 99, - 48, - 30, - 15, - 10, - 2, - 8, - 7, - 17, - 34, - 37, - 104, - 153, - 241, - 313, - 404, - 492, - 512, - 503, - 473, - 379, - 293, - 277, - 156, + 218, 341, 440, 480, 517, 522, 446, 403, 321, 258, 172, 95, 55, 38, 24, 3, 4, 11, 14, 17, 38, + 49, 115, 152, 216, 315, 402, 446, 513, 520, 474, 421, 307, 230, 170, 99, 48, 30, 15, 10, 2, + 8, 7, 17, 34, 37, 104, 153, 241, 313, 404, 492, 512, 503, 473, 379, 293, 277, 156, ]; // Most recent failure on Jenkins usually indicates the bar chart is still being drawn? diff --git a/test/functional/apps/visualize/_vertical_bar_chart_nontimeindex.js b/test/functional/apps/visualize/_vertical_bar_chart_nontimeindex.js index d512c4fbb683..5246fc874f7b 100644 --- a/test/functional/apps/visualize/_vertical_bar_chart_nontimeindex.js +++ b/test/functional/apps/visualize/_vertical_bar_chart_nontimeindex.js @@ -74,30 +74,8 @@ export default function ({ getService, getPageObjects }) { it('should show correct chart', async function () { const expectedChartValues = [ - 37, - 202, - 740, - 1437, - 1371, - 751, - 188, - 31, - 42, - 202, - 683, - 1361, - 1415, - 707, - 177, - 27, - 32, - 175, - 707, - 1408, - 1355, - 726, - 201, - 29, + 37, 202, 740, 1437, 1371, 751, 188, 31, 42, 202, 683, 1361, 1415, 707, 177, 27, 32, 175, + 707, 1408, 1355, 726, 201, 29, ]; // Most recent failure on Jenkins usually indicates the bar chart is still being drawn? diff --git a/test/functional/page_objects/common_page.ts b/test/functional/page_objects/common_page.ts index b770ca0de7f0..b2d9bad0146b 100644 --- a/test/functional/page_objects/common_page.ts +++ b/test/functional/page_objects/common_page.ts @@ -98,13 +98,8 @@ export function CommonPageProvider({ getService, getPageObjects }: FtrProviderCo } private async navigate(navigateProps: NavigateProps) { - const { - appConfig, - ensureCurrentUrl, - shouldLoginIfPrompted, - useActualUrl, - insertTimestamp, - } = navigateProps; + const { appConfig, ensureCurrentUrl, shouldLoginIfPrompted, useActualUrl, insertTimestamp } = + navigateProps; const appUrl = getUrl.noAuth(config.get('servers.opensearchDashboards.fullURL'), appConfig); await retry.try(async () => { diff --git a/test/functional/page_objects/context_page.ts b/test/functional/page_objects/context_page.ts index 30f14fba2387..cb57c47b6006 100644 --- a/test/functional/page_objects/context_page.ts +++ b/test/functional/page_objects/context_page.ts @@ -105,14 +105,12 @@ export function ContextPageProvider({ getService, getPageObjects }: FtrProviderC return await retry.try(async () => { const successorLoadMoreButton = await this.getSuccessorLoadMoreButton(); const predecessorLoadMoreButton = await this.getPredecessorLoadMoreButton(); - if ( - !( - (await successorLoadMoreButton.isEnabled()) && - (await successorLoadMoreButton.isDisplayed()) && - (await predecessorLoadMoreButton.isEnabled()) && - (await predecessorLoadMoreButton.isDisplayed()) - ) - ) { + if (!( + (await successorLoadMoreButton.isEnabled()) && + (await successorLoadMoreButton.isDisplayed()) && + (await predecessorLoadMoreButton.isEnabled()) && + (await predecessorLoadMoreButton.isDisplayed()) + )) { throw new Error('loading context rows'); } }); diff --git a/test/functional/page_objects/dashboard_page.ts b/test/functional/page_objects/dashboard_page.ts index fab37863406b..febe02f10374 100644 --- a/test/functional/page_objects/dashboard_page.ts +++ b/test/functional/page_objects/dashboard_page.ts @@ -551,7 +551,7 @@ export function DashboardPageProvider({ getService, getPageObjects }: FtrProvide 'embeddablePanelNotification-ACTION_PANEL_NOTIFICATIONS' ); return Number.parseInt(await count.getVisibleText(), 10); - } catch (e) { + } catch { // if not found then this is 0 (we don't show badge with 0) return 0; } diff --git a/test/functional/page_objects/visual_builder_page.ts b/test/functional/page_objects/visual_builder_page.ts index 73826caee65d..271b84aba7fe 100644 --- a/test/functional/page_objects/visual_builder_page.ts +++ b/test/functional/page_objects/visual_builder_page.ts @@ -40,14 +40,7 @@ export function VisualBuilderPageProvider({ getService, getPageObjects }: FtrPro const PageObjects = getPageObjects(['common', 'header', 'visualize', 'timePicker', 'visChart']); type Duration = - | 'Milliseconds' - | 'Seconds' - | 'Minutes' - | 'Hours' - | 'Days' - | 'Weeks' - | 'Months' - | 'Years'; + 'Milliseconds' | 'Seconds' | 'Minutes' | 'Hours' | 'Days' | 'Weeks' | 'Months' | 'Years'; type FromDuration = Duration | 'Picoseconds' | 'Nanoseconds' | 'Microseconds'; type ToDuration = Duration | 'Human readable'; diff --git a/test/functional/page_objects/visualize_editor_page.ts b/test/functional/page_objects/visualize_editor_page.ts index 7725e6f16838..4d0ab0a4baf6 100644 --- a/test/functional/page_objects/visualize_editor_page.ts +++ b/test/functional/page_objects/visualize_editor_page.ts @@ -423,9 +423,9 @@ export function VisualizeEditorPageProvider({ getService, getPageObjects }: FtrP } public async selectXAxisPosition(position: string) { - const option = await (await testSubjects.find('categoryAxisPosition')).findByCssSelector( - `option[value="${position}"]` - ); + const option = await ( + await testSubjects.find('categoryAxisPosition') + ).findByCssSelector(`option[value="${position}"]`); await option.click(); } diff --git a/test/functional/services/common/browser.ts b/test/functional/services/common/browser.ts index d6ef10c2d3ba..78b99ece410a 100644 --- a/test/functional/services/common/browser.ts +++ b/test/functional/services/common/browser.ts @@ -83,7 +83,7 @@ export async function BrowserProvider({ getService }: FtrProviderContext) { public async getAlert() { try { return await driver.switchTo().alert(); - } catch (e) { + } catch { return null; } } diff --git a/test/functional/services/lib/web_element_wrapper/scroll_into_view_if_necessary.js b/test/functional/services/lib/web_element_wrapper/scroll_into_view_if_necessary.js index 96cfba775e18..8779b2725819 100644 --- a/test/functional/services/lib/web_element_wrapper/scroll_into_view_if_necessary.js +++ b/test/functional/services/lib/web_element_wrapper/scroll_into_view_if_necessary.js @@ -9,8 +9,6 @@ * GitHub history for details. */ -/* eslint-disable @osd/eslint/require-license-header */ - /* @notice * Based on the scroll-into-view-if-necessary module from npm * https://github.com/stipsan/compute-scroll-into-view/blob/master/src/index.ts#L269-L340 diff --git a/test/functional/services/management/management_menu.ts b/test/functional/services/management/management_menu.ts index 0647d3315ac4..e1d072d19437 100644 --- a/test/functional/services/management/management_menu.ts +++ b/test/functional/services/management/management_menu.ts @@ -42,9 +42,9 @@ export function ManagementMenuProvider({ getService }: FtrProviderContext) { const sections = []; for (const el of sectionsElements) { - const sectionId = await (await el.findByClassName('euiSideNavItemButton')).getAttribute( - 'data-test-subj' - ); + const sectionId = await ( + await el.findByClassName('euiSideNavItemButton') + ).getAttribute('data-test-subj'); const sectionLinks = await Promise.all( (await el.findAllByCssSelector('.euiSideNavItem > a.euiSideNavItemButton')).map((item) => item.getAttribute('data-test-subj') diff --git a/test/functional/services/remote/prevent_parallel_calls.ts b/test/functional/services/remote/prevent_parallel_calls.ts index 0ce9791c4648..e7c8d3234d4a 100644 --- a/test/functional/services/remote/prevent_parallel_calls.ts +++ b/test/functional/services/remote/prevent_parallel_calls.ts @@ -39,7 +39,10 @@ export function preventParallelCalls( private resolve!: (result: R) => void; private reject!: (error: Error) => void; - constructor(private readonly context: C, private readonly arg: A) { + constructor( + private readonly context: C, + private readonly arg: A + ) { this.promise = new Promise((resolve, reject) => { this.resolve = resolve; this.reject = reject; diff --git a/test/plugin_functional/plugins/core_plugin_appleave/public/plugin.tsx b/test/plugin_functional/plugins/core_plugin_appleave/public/plugin.tsx index 2525cde1cb02..da144955c5e5 100644 --- a/test/plugin_functional/plugins/core_plugin_appleave/public/plugin.tsx +++ b/test/plugin_functional/plugins/core_plugin_appleave/public/plugin.tsx @@ -30,8 +30,10 @@ import { Plugin, CoreSetup } from 'opensearch-dashboards/public'; -export class CoreAppLeavePlugin - implements Plugin { +export class CoreAppLeavePlugin implements Plugin< + CoreAppLeavePluginSetup, + CoreAppLeavePluginStart +> { public setup(core: CoreSetup, deps: {}) { core.application.register({ id: 'appleave1', diff --git a/test/plugin_functional/plugins/core_plugin_b/public/plugin.tsx b/test/plugin_functional/plugins/core_plugin_b/public/plugin.tsx index 1734d226b27c..0150cbb9de7d 100644 --- a/test/plugin_functional/plugins/core_plugin_b/public/plugin.tsx +++ b/test/plugin_functional/plugins/core_plugin_b/public/plugin.tsx @@ -46,8 +46,11 @@ export interface CorePluginBDeps { core_plugin_a: CorePluginAPluginSetup; } -export class CorePluginBPlugin - implements Plugin { +export class CorePluginBPlugin implements Plugin< + CorePluginBPluginSetup, + CorePluginBPluginStart, + CorePluginBDeps +> { constructor(pluginContext: PluginInitializerContext) { window.env = pluginContext.env; } diff --git a/test/plugin_functional/plugins/core_plugin_chromeless/public/plugin.tsx b/test/plugin_functional/plugins/core_plugin_chromeless/public/plugin.tsx index 36c128760a4d..0e284893dfa2 100644 --- a/test/plugin_functional/plugins/core_plugin_chromeless/public/plugin.tsx +++ b/test/plugin_functional/plugins/core_plugin_chromeless/public/plugin.tsx @@ -30,8 +30,10 @@ import { Plugin, CoreSetup } from 'opensearch-dashboards/public'; -export class CorePluginChromelessPlugin - implements Plugin { +export class CorePluginChromelessPlugin implements Plugin< + CorePluginChromelessPluginSetup, + CorePluginChromelessPluginStart +> { public setup(core: CoreSetup, deps: {}) { core.application.register({ id: 'chromeless', diff --git a/test/plugin_functional/plugins/dashboard_listing_test_plugin/public/plugin.tsx b/test/plugin_functional/plugins/dashboard_listing_test_plugin/public/plugin.tsx index d6414338f571..97561583da2e 100644 --- a/test/plugin_functional/plugins/dashboard_listing_test_plugin/public/plugin.tsx +++ b/test/plugin_functional/plugins/dashboard_listing_test_plugin/public/plugin.tsx @@ -14,8 +14,10 @@ import { createRoot } from 'react-dom/client'; import { Router, Switch, Route, Link } from 'react-router-dom'; import { CoreSetup, Plugin } from 'opensearch-dashboards/public'; -export class DashboardListingTestPlugin - implements Plugin { +export class DashboardListingTestPlugin implements Plugin< + DashboardListingTestPluginSetup, + DashboardListingTestPluginStart +> { public setup(core: CoreSetup, setupDeps: SetupDependencies) { const ID = 'dashboard_listing_test_plugin'; const BASE_URL = core.http.basePath.prepend(`/app/${ID}#`); diff --git a/test/plugin_functional/plugins/data_search/server/plugin.ts b/test/plugin_functional/plugins/data_search/server/plugin.ts index 84ef66964de0..8d9ebcb8a054 100644 --- a/test/plugin_functional/plugins/data_search/server/plugin.ts +++ b/test/plugin_functional/plugins/data_search/server/plugin.ts @@ -36,8 +36,12 @@ export interface DataSearchTestStartDeps { data: DataPluginStart; } -export class DataSearchTestPlugin - implements Plugin { +export class DataSearchTestPlugin implements Plugin< + TestPluginSetup, + TestPluginStart, + {}, + DataSearchTestStartDeps +> { public setup(core: CoreSetup) { const router = core.http.createRouter(); diff --git a/test/plugin_functional/plugins/index_patterns/server/plugin.ts b/test/plugin_functional/plugins/index_patterns/server/plugin.ts index a110f0c1c935..f1b4028896d5 100644 --- a/test/plugin_functional/plugins/index_patterns/server/plugin.ts +++ b/test/plugin_functional/plugins/index_patterns/server/plugin.ts @@ -36,14 +36,12 @@ export interface IndexPatternsTestStartDeps { data: DataPluginStart; } -export class IndexPatternsTestPlugin - implements - Plugin< - IndexPatternsTestPluginSetup, - IndexPatternsTestPluginStart, - {}, - IndexPatternsTestStartDeps - > { +export class IndexPatternsTestPlugin implements Plugin< + IndexPatternsTestPluginSetup, + IndexPatternsTestPluginStart, + {}, + IndexPatternsTestStartDeps +> { public setup(core: CoreSetup) { const router = core.http.createRouter(); diff --git a/test/plugin_functional/plugins/management_test_plugin/public/plugin.tsx b/test/plugin_functional/plugins/management_test_plugin/public/plugin.tsx index 7c7bce0a07e4..443b70f7048d 100644 --- a/test/plugin_functional/plugins/management_test_plugin/public/plugin.tsx +++ b/test/plugin_functional/plugins/management_test_plugin/public/plugin.tsx @@ -34,8 +34,10 @@ import { Router, Switch, Route, Link } from 'react-router-dom'; import { CoreSetup, Plugin } from 'opensearch-dashboards/public'; import { ManagementSetup } from '../../../../../src/plugins/management/public'; -export class ManagementTestPlugin - implements Plugin { +export class ManagementTestPlugin implements Plugin< + ManagementTestPluginSetup, + ManagementTestPluginStart +> { public setup(core: CoreSetup, { management }: { management: ManagementSetup }) { const testSection = management.sections.section.data; diff --git a/test/plugin_functional/plugins/osd_sample_panel_action/public/plugin.ts b/test/plugin_functional/plugins/osd_sample_panel_action/public/plugin.ts index 003312fc2b87..91d292c6d5da 100644 --- a/test/plugin_functional/plugins/osd_sample_panel_action/public/plugin.ts +++ b/test/plugin_functional/plugins/osd_sample_panel_action/public/plugin.ts @@ -34,8 +34,10 @@ import { CONTEXT_MENU_TRIGGER } from '../../../../../src/plugins/embeddable/publ import { createSamplePanelAction } from './sample_panel_action'; import { createSamplePanelLink } from './sample_panel_link'; -export class SampelPanelActionTestPlugin - implements Plugin { +export class SampelPanelActionTestPlugin implements Plugin< + SampelPanelActionTestPluginSetup, + SampelPanelActionTestPluginStart +> { public setup(core: CoreSetup, { uiActions }: { uiActions: UiActionsSetup }) { const samplePanelAction = createSamplePanelAction(core.getStartServices); const samplePanelLink = createSamplePanelLink(); diff --git a/test/plugin_functional/plugins/osd_tp_custom_visualizations/public/plugin.ts b/test/plugin_functional/plugins/osd_tp_custom_visualizations/public/plugin.ts index e3d595da922c..32717b82fe2f 100644 --- a/test/plugin_functional/plugins/osd_tp_custom_visualizations/public/plugin.ts +++ b/test/plugin_functional/plugins/osd_tp_custom_visualizations/public/plugin.ts @@ -37,8 +37,10 @@ export interface SetupDependencies { visualizations: VisualizationsSetup; } -export class CustomVisualizationsPublicPlugin - implements Plugin { +export class CustomVisualizationsPublicPlugin implements Plugin< + CustomVisualizationsSetup, + CustomVisualizationsStart +> { public setup(core: CoreSetup, setupDeps: SetupDependencies) { setupDeps.visualizations.createReactVisualization({ name: 'self_changing_vis', diff --git a/test/plugin_functional/plugins/ui_settings_plugin/server/plugin.ts b/test/plugin_functional/plugins/ui_settings_plugin/server/plugin.ts index 3cfbcc7a6001..418ad71f5807 100644 --- a/test/plugin_functional/plugins/ui_settings_plugin/server/plugin.ts +++ b/test/plugin_functional/plugins/ui_settings_plugin/server/plugin.ts @@ -45,9 +45,8 @@ export class UiSettingsPlugin implements Plugin { const router = core.http.createRouter(); router.get({ path: '/api/ui-settings-plugin', validate: false }, async (context, req, res) => { - const uiSettingsValue = await context.core.uiSettings.client.get( - 'ui_settings_plugin' - ); + const uiSettingsValue = + await context.core.uiSettings.client.get('ui_settings_plugin'); return res.ok({ body: { uiSettingsValue } }); }); } diff --git a/test/plugin_functional/test_suites/core/route.ts b/test/plugin_functional/test_suites/core/route.ts index a675b7c89aa2..00e403f39597 100644 --- a/test/plugin_functional/test_suites/core/route.ts +++ b/test/plugin_functional/test_suites/core/route.ts @@ -45,14 +45,14 @@ export default function ({ getService }: PluginFunctionalProviderContext) { if (i < body.length) { request.write(body[i++]); } else { - clearInterval((intervalId as unknown) as NodeJS.Timeout); + clearInterval(intervalId as unknown as NodeJS.Timeout); request.end((err, res) => { resolve(res); }); } }, interval); request.on('error', (err) => { - clearInterval((intervalId as unknown) as NodeJS.Timeout); + clearInterval(intervalId as unknown as NodeJS.Timeout); reject(err); }); }); diff --git a/test/plugin_functional/test_suites/data_plugin/index_patterns.ts b/test/plugin_functional/test_suites/data_plugin/index_patterns.ts index 65119dd02242..a8958a1f9e11 100644 --- a/test/plugin_functional/test_suites/data_plugin/index_patterns.ts +++ b/test/plugin_functional/test_suites/data_plugin/index_patterns.ts @@ -39,8 +39,9 @@ export default function ({ getService }: PluginFunctionalProviderContext) { let indexPatternId = ''; it('can get all ids', async () => { - const body = await (await supertest.get('/api/index-patterns-plugin/get-all').expect(200)) - .body; + const body = await ( + await supertest.get('/api/index-patterns-plugin/get-all').expect(200) + ).body; indexPatternId = body[0]; expect(body.length > 0).to.equal(true); }); diff --git a/typings/index.d.ts b/typings/index.d.ts index 258984df978b..53b26dddd79e 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -76,8 +76,7 @@ type DeeplyMockedKeys = { [P in keyof T]: T[P] extends (...args: any[]) => any ? jest.MockInstance, Parameters> : DeeplyMockedKeys; -} & - T; +} & T; type Writable = { -readonly [K in keyof T]: T[K]; diff --git a/yarn.lock b/yarn.lock index 9ba6f0226ded..b05fde7396ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@adobe/css-tools@^4.0.1": - version "4.4.2" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.2.tgz#c836b1bd81e6d62cd6cdf3ee4948bcdce8ea79c8" - integrity sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A== +"@adobe/css-tools@^4.4.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.5.0.tgz#b5b71a25a4d16afa2482592ddfa62fccc60bc7d1" + integrity sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q== "@ag-ui/client@^0.0.39": version "0.0.39" @@ -60,6 +60,17 @@ resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== +"@asamuzakjp/css-color@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz#cc42f5b85c593f79f1fa4f25d2b9b321e61d1794" + integrity sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw== + dependencies: + "@csstools/css-calc" "^2.1.3" + "@csstools/css-color-parser" "^3.0.9" + "@csstools/css-parser-algorithms" "^3.0.4" + "@csstools/css-tokenizer" "^3.0.3" + lru-cache "^10.4.3" + "@aws-crypto/branch-keystore-node@^4.2.1": version "4.2.1" resolved "https://registry.yarnpkg.com/@aws-crypto/branch-keystore-node/-/branch-keystore-node-4.2.1.tgz#a95bdad87fe4991b7fc9ab975fcde9926bc68af7" @@ -1076,13 +1087,13 @@ resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.3.tgz#f1137f56209ccc69c15f826242cbf37f828617dd" integrity sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw== -"@babel/cli@^7.22.9": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.23.0.tgz#1d7f37c44d4117c67df46749e0c86e11a58cc64b" - integrity sha512-17E1oSkGk2IwNILM4jtfAvgjt+ohmpfBky8aLerUfYZhiPNg7ca+CRCxZn8QDxwNhV/upsc2VHBCqGFIR+iBfA== +"@babel/cli@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.29.7.tgz#ae6bd1b11ede44b46ea5624892f62724c4a20ccb" + integrity sha512-/75HwRbAYPqXv/Ax1h7Fg3IZfXgdU98jnA8H93/m/QBaPV3Hp5ICoLqzGYye1yHBCgpmXvtqgSUN8oOKX5tojQ== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" - commander "^4.0.1" + "@jridgewell/trace-mapping" "^0.3.28" + commander "^6.2.0" convert-source-map "^2.0.0" fs-readdir-recursive "^1.1.0" glob "^7.2.0" @@ -1090,7 +1101,7 @@ slash "^2.0.0" optionalDependencies: "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" - chokidar "^3.4.0" + chokidar "^3.6.0" "@babel/code-frame@7.26.2": version "7.26.2" @@ -1101,34 +1112,34 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.28.6", "@babel/code-frame@^7.29.0": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c" - integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.27.1", "@babel/code-frame@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.7.tgz#f2fbbfea87c44a21590ec515b778b2c26d8866e7" + integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw== dependencies: - "@babel/helper-validator-identifier" "^7.28.5" + "@babel/helper-validator-identifier" "^7.29.7" js-tokens "^4.0.0" picocolors "^1.1.1" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.2", "@babel/compat-data@^7.28.6": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.0.tgz#00d03e8c0ac24dd9be942c5370990cbe1f17d88d" - integrity sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg== - -"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.22.9", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.0.tgz#5286ad785df7f79d656e88ce86e650d16ca5f322" - integrity sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA== - dependencies: - "@babel/code-frame" "^7.29.0" - "@babel/generator" "^7.29.0" - "@babel/helper-compilation-targets" "^7.28.6" - "@babel/helper-module-transforms" "^7.28.6" - "@babel/helpers" "^7.28.6" - "@babel/parser" "^7.29.0" - "@babel/template" "^7.28.6" - "@babel/traverse" "^7.29.0" - "@babel/types" "^7.29.0" +"@babel/compat-data@^7.28.6", "@babel/compat-data@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.7.tgz#6f0237f0f36d2e51c0570a636faed9d2d0efe629" + integrity sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg== + +"@babel/core@^7.23.9", "@babel/core@^7.24.4", "@babel/core@^7.27.4", "@babel/core@^7.29.7", "@babel/core@^7.7.5": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.7.tgz#80c10b17248082968b57a857b91640971f2070f7" + integrity sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/generator" "^7.29.7" + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helpers" "^7.29.7" + "@babel/parser" "^7.29.7" + "@babel/template" "^7.29.7" + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" "@jridgewell/remapping" "^2.3.5" convert-source-map "^2.0.0" debug "^4.1.0" @@ -1136,263 +1147,230 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/eslint-parser@^7.25.0": - version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.28.6.tgz#6a294a4add732ebe7ded8a8d2792dd03dd81dc3f" - integrity sha512-QGmsKi2PBO/MHSQk+AAgA9R6OHQr+VqnniFE0eMWZcVcfBZoA2dKn2hUsl3Csg/Plt9opRUWdY7//VXsrIlEiA== +"@babel/eslint-parser@^8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-8.0.1.tgz#34a56c88deb4cf1340257296d1309028fadbb953" + integrity sha512-2javO8pAQv/ld6sS6OcxoLAlzZEZy+xm99bnoAfMhzKSumKhdF5wylpbZB7XTorWr3KLPtx5K95eduJPOy1mzA== dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.1" + eslint-scope "^9.1.0" + eslint-visitor-keys "^5.0.0" + semver "^7.7.3" -"@babel/generator@^7.29.0", "@babel/generator@^7.7.2": - version "7.29.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.1.tgz#d09876290111abbb00ef962a7b83a5307fba0d50" - integrity sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw== +"@babel/generator@^7.27.5", "@babel/generator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.7.tgz#cca0b8827e6bcf3ba176788e7f3b180ad6db2fa3" + integrity sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ== dependencies: - "@babel/parser" "^7.29.0" - "@babel/types" "^7.29.0" + "@babel/parser" "^7.29.7" + "@babel/types" "^7.29.7" "@jridgewell/gen-mapping" "^0.3.12" "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.22.5", "@babel/helper-annotate-as-pure@^7.27.1": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" - integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== - dependencies: - "@babel/types" "^7.27.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" - integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== +"@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz#c70fe3c6ecbdc3fd2dd1b0f498428b88b82ce47f" + integrity sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw== dependencies: - "@babel/types" "^7.22.15" + "@babel/types" "^7.29.7" -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.28.6": - version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25" - integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA== +"@babel/helper-compilation-targets@^7.28.6", "@babel/helper-compilation-targets@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz#7a1def704302401c47f64fa85589e974ae217042" + integrity sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g== dependencies: - "@babel/compat-data" "^7.28.6" - "@babel/helper-validator-option" "^7.27.1" + "@babel/compat-data" "^7.29.7" + "@babel/helper-validator-option" "^7.29.7" browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.24.4", "@babel/helper-create-class-features-plugin@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz#5bee4262a6ea5ddc852d0806199eb17ca3de9281" - integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== - 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" +"@babel/helper-create-class-features-plugin@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz#6eddf286f2ec418f740c91d60a83347c55838ddd" + integrity sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-member-expression-to-functions" "^7.29.7" + "@babel/helper-optimise-call-expression" "^7.29.7" + "@babel/helper-replace-supers" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + "@babel/traverse" "^7.29.7" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" - integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz#5d4c3f928f315cf6c4184ea2fc3b5b38745b2430" + integrity sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - regexpu-core "^5.3.1" + "@babel/helper-annotate-as-pure" "^7.29.7" + regexpu-core "^6.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" - integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== +"@babel/helper-define-polyfill-provider@^0.6.5", "@babel/helper-define-polyfill-provider@^0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz#cf1e4462b613f2b54c41e6ff758d5dfcaa2c85d1" + integrity sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA== dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + debug "^4.4.3" lodash.debounce "^4.0.8" - resolve "^1.14.2" + resolve "^1.22.11" + +"@babel/helper-globals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz#f04a96fbd8473241b1079243f5b3f03a3010ab7b" + integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA== + +"@babel/helper-member-expression-to-functions@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz#8dbdb3ce0b5c487e1aec10e13c9a43a500814df8" + integrity sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg== + dependencies: + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396" + integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g== + dependencies: + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/helper-module-transforms@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz#b062747a5997ba138637201328bbff77960574ae" + integrity sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg== + dependencies: + "@babel/helper-module-imports" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/helper-optimise-call-expression@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz#77b0b5b94f1997fa9d6e3125f445227b1faf9d85" + integrity sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong== + dependencies: + "@babel/types" "^7.29.7" -"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.28.6", "@babel/helper-plugin-utils@^7.29.7", "@babel/helper-plugin-utils@^7.8.0": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz#c0a0766f1a13617d8a17407d7ab8f9d486225ea4" + integrity sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw== + +"@babel/helper-remap-async-to-generator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz#34b1f68dd75b86d31df781a29c3ff2df88da82e6" + integrity sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-wrap-function" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/helper-replace-supers@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz#bc3c3964329043c79112e513c1b198f16589ac21" + integrity sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.29.7" + "@babel/helper-optimise-call-expression" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz#50c95c7e4c4f54936cfa0116428edc559862d551" + integrity sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ== + dependencies: + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/helper-string-parser@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f" + integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== + +"@babel/helper-validator-identifier@^7.25.9", "@babel/helper-validator-identifier@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2" + integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== + +"@babel/helper-validator-option@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz#cf315be940213b354eb4abcc0bd01ebe3f73bc2a" + integrity sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw== + +"@babel/helper-wrap-function@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz#eec72163044548a0935e9d182bf2d547ec5ff483" + integrity sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw== + dependencies: + "@babel/template" "^7.29.7" + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/helpers@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.7.tgz#45abfde7548997e34376c3e69feb475cffb4a607" + integrity sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg== + dependencies: + "@babel/template" "^7.29.7" + "@babel/types" "^7.29.7" -"@babel/helper-function-name@^7.22.5": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-globals@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" - integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== - -"@babel/helper-member-expression-to-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz#ea1211276be93e798ce19037da6f06fbb994fa44" - integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5", "@babel/helper-module-imports@^7.28.6": - version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c" - integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw== - dependencies: - "@babel/traverse" "^7.28.6" - "@babel/types" "^7.28.6" - -"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0", "@babel/helper-module-transforms@^7.28.6": - version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e" - integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA== - dependencies: - "@babel/helper-module-imports" "^7.28.6" - "@babel/helper-validator-identifier" "^7.28.5" - "@babel/traverse" "^7.28.6" - -"@babel/helper-optimise-call-expression@^7.22.5", "@babel/helper-optimise-call-expression@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" - integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== - dependencies: - "@babel/types" "^7.27.1" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" - integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== - -"@babel/helper-plugin-utils@^7.28.6": - version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8" - integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug== - -"@babel/helper-remap-async-to-generator@^7.22.20", "@babel/helper-remap-async-to-generator@^7.22.5": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" - integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-wrap-function" "^7.22.20" - -"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9", "@babel/helper-replace-supers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz#b1ed2d634ce3bdb730e4b52de30f8cccfd692bc0" - integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.27.1" - "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5", "@babel/helper-skip-transparent-expression-wrappers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" - integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz#b9a67f06a46b0b339323617c8c6213b9055a78b6" - integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q== - dependencies: - "@babel/types" "^7.24.5" - -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - -"@babel/helper-validator-identifier@^7.25.9", "@babel/helper-validator-identifier@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" - integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== - -"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" - integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== - -"@babel/helper-wrap-function@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" - integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.15" - "@babel/types" "^7.22.19" - -"@babel/helpers@^7.28.6": - version "7.29.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.2.tgz#9cfbccb02b8e229892c0b07038052cc1a8709c49" - integrity sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw== - dependencies: - "@babel/template" "^7.28.6" - "@babel/types" "^7.29.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.9", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6" - integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww== +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.4", "@babel/parser@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334" + integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg== dependencies: - "@babel/types" "^7.29.0" - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" - integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== + "@babel/types" "^7.29.7" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz#2b535896d933a85aa92377eaa3d51a437d54a4e3" + integrity sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" - integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz#b00711a9e52bf4fe55ef7e54b2ef4a881bf804c8" + integrity sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.15" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz#2375328852026a3cf6bc0bcf2de7d236f2d5e701" + integrity sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-proposal-class-properties@^7.18.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== +"@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz#759a857c46c4d2a6199685cf71070d81ae5f743a" + integrity sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz#86de98dd8e03836178231ea96c27dab26016a705" + integrity sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + "@babel/plugin-transform-optional-chaining" "^7.29.7" -"@babel/plugin-proposal-optional-chaining@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz#f5d892681dbf4b08753436a5e55000d5ba728d6d" + integrity sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw== 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" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/traverse" "^7.29.7" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -1413,7 +1391,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -1427,35 +1405,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-import-assertions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== +"@babel/plugin-syntax-import-assertions@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz#c5cd868505269126cc18882e1f01f7b0e0e24b4e" + integrity sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-syntax-import-attributes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" - integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== +"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz#6115264516e95ead0f35a41710906612e447f605" + integrity sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -1469,14 +1433,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== +"@babel/plugin-syntax-jsx@^7.27.1", "@babel/plugin-syntax-jsx@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz#622c16f9ad63782fe6e83dadc7e40330744b7f1e" + integrity sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -1490,7 +1454,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -1525,19 +1489,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.22.5", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== +"@babel/plugin-syntax-typescript@^7.27.1", "@babel/plugin-syntax-typescript@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz#7c29388932313ed58413a0343048d75d92fb5b24" + integrity sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -1547,532 +1511,534 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== +"@babel/plugin-transform-arrow-functions@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz#d651343f562c03f47951bd1802195d0e10605f27" + integrity sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-async-generator-functions@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz#054afe290d64c6f576f371ccc321772c8ea87ebb" - integrity sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ== +"@babel/plugin-transform-async-generator-functions@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz#a5365617921d82a1fee33124a1102bb38a1e677d" + integrity sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.20" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-remap-async-to-generator" "^7.29.7" + "@babel/traverse" "^7.29.7" -"@babel/plugin-transform-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== +"@babel/plugin-transform-async-to-generator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz#3b5e8f1fb58133cf701bcf0baaf6f01bfd1a8889" + integrity sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w== dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/helper-module-imports" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-remap-async-to-generator" "^7.29.7" -"@babel/plugin-transform-block-scoped-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== +"@babel/plugin-transform-block-scoped-functions@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz#96d292634434082d6687bcdb81139affedf77e8c" + integrity sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-block-scoping@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" - integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== +"@babel/plugin-transform-block-scoping@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz#baa376691ae16244cd14335422fca6900f54e17d" + integrity sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-class-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" - integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== +"@babel/plugin-transform-class-properties@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz#034897b8a21beec163332fac2de235b14409abdf" + integrity sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-class-static-block@^7.22.11", "@babel/plugin-transform-class-static-block@^7.24.4": - version "7.24.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz#1a4653c0cf8ac46441ec406dece6e9bc590356a4" - integrity sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg== +"@babel/plugin-transform-class-static-block@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz#fed8efd19f3dd3e1114ee390707c70912778fd7c" + integrity sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.4" - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-transform-classes@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" - integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" - "@babel/helper-split-export-declaration" "^7.22.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" - -"@babel/plugin-transform-destructuring@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" - integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dotall-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" - integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-duplicate-keys@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" - integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dynamic-import@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" - integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" - integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-export-namespace-from@^7.22.11", "@babel/plugin-transform-export-namespace-from@^7.22.9": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" - integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-transform-for-of@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" - integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== - dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-json-strings@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" - integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== +"@babel/plugin-transform-classes@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz#61d3e5aaae0c838acc3204d9db7c8dc05c25815b" + integrity sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-globals" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-replace-supers" "^7.29.7" + "@babel/traverse" "^7.29.7" -"@babel/plugin-transform-logical-assignment-operators@^7.22.11", "@babel/plugin-transform-logical-assignment-operators@^7.22.9": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" - integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== +"@babel/plugin-transform-computed-properties@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz#95028787ca31901b9a20b5c6d9605c32346f55ad" + integrity sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/template" "^7.29.7" -"@babel/plugin-transform-member-expression-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== +"@babel/plugin-transform-destructuring@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz#5781ec6947852e27b64c1165f0db431f408090e4" + integrity sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/traverse" "^7.29.7" -"@babel/plugin-transform-modules-amd@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88" - integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== +"@babel/plugin-transform-dotall-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz#b203de9740e4c7ff6b55ce436ed5313b88d70af8" + integrity sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ== dependencies: - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-modules-commonjs@^7.22.9", "@babel/plugin-transform-modules-commonjs@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" - integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== +"@babel/plugin-transform-duplicate-keys@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz#8f3fe721835cb7a433420841dae90afc962ea7ae" + integrity sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ== dependencies: - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-modules-systemjs@^7.23.0": - version "7.29.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.4.tgz#f621105da99919c15cf4bde6fcc7346ef95e7b20" - integrity sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w== +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz#dc6c405e55c01b7657e1827a25332c4ac17e9cac" + integrity sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA== dependencies: - "@babel/helper-module-transforms" "^7.28.6" - "@babel/helper-plugin-utils" "^7.28.6" - "@babel/helper-validator-identifier" "^7.28.5" - "@babel/traverse" "^7.29.0" + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-modules-umd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" - integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== +"@babel/plugin-transform-dynamic-import@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz#a83a6faec5bab5b619adf9d0eac6c1c270123c2a" + integrity sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg== dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== +"@babel/plugin-transform-explicit-resource-management@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz#65c8b9f76ec915b02a0e1df703125a0fca58abaa" + integrity sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/plugin-transform-destructuring" "^7.29.7" -"@babel/plugin-transform-new-target@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" - integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== +"@babel/plugin-transform-exponentiation-operator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz#00bf002fde8794356171f5d4df200f6bc0d5a303" + integrity sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11", "@babel/plugin-transform-nullish-coalescing-operator@^7.22.9": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" - integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== +"@babel/plugin-transform-export-namespace-from@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz#d6014f45cec61d7691335c6c9804204bee801d51" + integrity sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-numeric-separator@^7.22.11", "@babel/plugin-transform-numeric-separator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" - integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== +"@babel/plugin-transform-for-of@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz#c65a678592117717aacdb10c1b73a9cb85e830be" + integrity sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" -"@babel/plugin-transform-object-rest-spread@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" - integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== +"@babel/plugin-transform-function-name@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz#8b87f8a7504dbcd96135167e3fc4f61126a7bd86" + integrity sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.15" + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/traverse" "^7.29.7" -"@babel/plugin-transform-object-super@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== +"@babel/plugin-transform-json-strings@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz#f57d63dcc05b4481c281acedcd8fc4e3e439a1d4" + integrity sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-optional-catch-binding@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" - integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== +"@babel/plugin-transform-literals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz#b90bd47463326c2a9d779e1bd5e1f88b9f421921" + integrity sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-optional-chaining@^7.22.15", "@babel/plugin-transform-optional-chaining@^7.22.9", "@babel/plugin-transform-optional-chaining@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158" - integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== +"@babel/plugin-transform-logical-assignment-operators@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz#9b29425adf5c794967aabe4b046a046a167bac2f" + integrity sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-parameters@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" - integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== +"@babel/plugin-transform-member-expression-literals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz#1281689fa2fefc17b110d21ebafd0fe9402d5309" + integrity sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.24.7": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" - integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== +"@babel/plugin-transform-modules-amd@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz#f05ca662c8a1dc4be2f337af9c7e80369c942d6c" + integrity sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew== dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-private-property-in-object@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" - integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== +"@babel/plugin-transform-modules-commonjs@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz#70e6835abf2663dafbe94b8ef1f51de7351ef135" + integrity sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.11" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-property-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== +"@babel/plugin-transform-modules-systemjs@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz#e575dd2ab9882906de120ff7dc9dee9914d8b6f3" + integrity sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" + "@babel/traverse" "^7.29.7" -"@babel/plugin-transform-react-display-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" - integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== +"@babel/plugin-transform-modules-umd@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz#391d1c0215aca6307257f2f608598dfe55feb6cf" + integrity sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-react-jsx-development@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" - integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== +"@babel/plugin-transform-named-capturing-groups-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz#21e75d847b31189842fa7a77703722ed4b43d27d" + integrity sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ== dependencies: - "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" - integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== +"@babel/plugin-transform-new-target@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz#714147ce7947e1b49cbd84137ca2e75e92b2a067" + integrity sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.15" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-react-pure-annotations@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" - integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== +"@babel/plugin-transform-nullish-coalescing-operator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz#8a54cdf88c3f50433a6173117a286195b67714cc" + integrity sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-regenerator@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" - integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== +"@babel/plugin-transform-numeric-separator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz#0266d5cd42ab87ec40fee45a4e36483cfdcbc66a" + integrity sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.2" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-reserved-words@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" - integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== +"@babel/plugin-transform-object-rest-spread@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz#e0d5060241803922c545676613cc8acbbda0d266" + integrity sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/plugin-transform-destructuring" "^7.29.7" + "@babel/plugin-transform-parameters" "^7.29.7" + "@babel/traverse" "^7.29.7" -"@babel/plugin-transform-runtime@^7.22.9": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz#c956a3f8d1aa50816ff6c30c6288d66635c12990" - integrity sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA== +"@babel/plugin-transform-object-super@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz#e89283d14fa3c35817d4493ffc6bc649aa10e4eb" + integrity sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA== dependencies: - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" - semver "^6.3.1" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-replace-supers" "^7.29.7" -"@babel/plugin-transform-shorthand-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== +"@babel/plugin-transform-optional-catch-binding@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz#729664f79985be504eba112c51de9f71d009030b" + integrity sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" +"@babel/plugin-transform-optional-chaining@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz#b84a1b574b3c73001023092567e16c492b720e51" + integrity sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" -"@babel/plugin-transform-sticky-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" - integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-parameters@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz#a5ddc3b9bfb534814cb8334cbeba47d9cf9db090" + integrity sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-template-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-private-methods@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz#cea8bd3ab99533892897a02999d5b752584ad145" + integrity sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-typeof-symbol@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" - integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== +"@babel/plugin-transform-private-property-in-object@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz#4a2f6be5aba47be7afbdb4cd7903c46edf3a7661" + integrity sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-property-literals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz#d45817cd72f9e134ab1f7fbb79264cfcb85cf636" + integrity sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-typescript@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127" - integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== +"@babel/plugin-transform-react-display-name@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz#bf161a6d750267b79db7ff6f8fb89c3369b02df3" + integrity sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-unicode-escapes@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" - integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== +"@babel/plugin-transform-react-jsx-development@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz#64e6aacb5cb43b9e80d3d5f19ddefc158a624f09" + integrity sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-react-jsx" "^7.29.7" -"@babel/plugin-transform-unicode-property-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" - integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== +"@babel/plugin-transform-react-jsx@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz#3d16a0e5773f079400a8c82a190709cdf92ee204" + integrity sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-module-imports" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/plugin-syntax-jsx" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/plugin-transform-react-pure-annotations@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz#76445c90112dd0a7371b63264563bfa9a4fcd6e3" + integrity sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-unicode-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" - integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== +"@babel/plugin-transform-regenerator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz#0f42626a7dbb0e7a7f52e036d3e43deebdc3ea4e" + integrity sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-regexp-modifiers@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz#68311c0c10af2198212528863f8542843e424025" + integrity sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/plugin-transform-unicode-sets-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" - integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== +"@babel/plugin-transform-reserved-words@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz#a6feeb179b36a5f1fc6e3154c1eb727bdbe35876" + integrity sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.29.7" -"@babel/preset-env@^7.22.9": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.2.tgz#1f22be0ff0e121113260337dbc3e58fafce8d059" - integrity sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ== +"@babel/plugin-transform-runtime@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz#7c7fb6e2a46dce67e278b6cc84421c1d16da5695" + integrity sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q== dependencies: - "@babel/compat-data" "^7.23.2" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" + "@babel/helper-module-imports" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + babel-plugin-polyfill-corejs2 "^0.4.14" + babel-plugin-polyfill-corejs3 "^0.13.0" + babel-plugin-polyfill-regenerator "^0.6.5" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz#25c0436b98f4bd9ca4b98e1fbd662743bbaab9bf" + integrity sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-spread@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz#a128bcdd6b5e5e47054907b2e50bc19c3f856edd" + integrity sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + +"@babel/plugin-transform-sticky-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz#a42c0fd1fa42f7e98e1e0c7757f72a1bbca3a015" + integrity sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-template-literals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz#ada97d8e0832bca8edb315888aa654b1570f3835" + integrity sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-typeof-symbol@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz#d848a4677c1ee3485ab017f4018f04597798911c" + integrity sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-typescript@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz#f0449c3df7037bbe232043476851c38f5e4a7615" + integrity sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + "@babel/plugin-syntax-typescript" "^7.29.7" + +"@babel/plugin-transform-unicode-escapes@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz#1e99554b0cddfd650d649a9f2b996049893e5720" + integrity sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-unicode-property-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz#44444afc73768c2190fac4d95f7716817b7f204a" + integrity sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-unicode-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz#c3064b293ff7f1794b71f7650eec8db9896d3e59" + integrity sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-unicode-sets-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz#b03ac9f27326f6197e8e574add83bbf33fc34ecd" + integrity sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/preset-env@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.29.7.tgz#5e2ab5e764b493fdefc99c43aeaa70a9533a37fd" + integrity sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA== + dependencies: + "@babel/compat-data" "^7.29.7" + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-validator-option" "^7.29.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.29.7" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.29.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.29.7" + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array" "^7.29.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.29.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.29.7" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.22.5" - "@babel/plugin-syntax-import-attributes" "^7.22.5" - "@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" + "@babel/plugin-syntax-import-assertions" "^7.29.7" + "@babel/plugin-syntax-import-attributes" "^7.29.7" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.23.2" - "@babel/plugin-transform-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.23.0" - "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.11" - "@babel/plugin-transform-classes" "^7.22.15" - "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.23.0" - "@babel/plugin-transform-dotall-regex" "^7.22.5" - "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.11" - "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.11" - "@babel/plugin-transform-for-of" "^7.22.15" - "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.11" - "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" - "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.23.0" - "@babel/plugin-transform-modules-commonjs" "^7.23.0" - "@babel/plugin-transform-modules-systemjs" "^7.23.0" - "@babel/plugin-transform-modules-umd" "^7.22.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" - "@babel/plugin-transform-numeric-separator" "^7.22.11" - "@babel/plugin-transform-object-rest-spread" "^7.22.15" - "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.11" - "@babel/plugin-transform-optional-chaining" "^7.23.0" - "@babel/plugin-transform-parameters" "^7.22.15" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.11" - "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.10" - "@babel/plugin-transform-reserved-words" "^7.22.5" - "@babel/plugin-transform-shorthand-properties" "^7.22.5" - "@babel/plugin-transform-spread" "^7.22.5" - "@babel/plugin-transform-sticky-regex" "^7.22.5" - "@babel/plugin-transform-template-literals" "^7.22.5" - "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.10" - "@babel/plugin-transform-unicode-property-regex" "^7.22.5" - "@babel/plugin-transform-unicode-regex" "^7.22.5" - "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" + "@babel/plugin-transform-arrow-functions" "^7.29.7" + "@babel/plugin-transform-async-generator-functions" "^7.29.7" + "@babel/plugin-transform-async-to-generator" "^7.29.7" + "@babel/plugin-transform-block-scoped-functions" "^7.29.7" + "@babel/plugin-transform-block-scoping" "^7.29.7" + "@babel/plugin-transform-class-properties" "^7.29.7" + "@babel/plugin-transform-class-static-block" "^7.29.7" + "@babel/plugin-transform-classes" "^7.29.7" + "@babel/plugin-transform-computed-properties" "^7.29.7" + "@babel/plugin-transform-destructuring" "^7.29.7" + "@babel/plugin-transform-dotall-regex" "^7.29.7" + "@babel/plugin-transform-duplicate-keys" "^7.29.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.29.7" + "@babel/plugin-transform-dynamic-import" "^7.29.7" + "@babel/plugin-transform-explicit-resource-management" "^7.29.7" + "@babel/plugin-transform-exponentiation-operator" "^7.29.7" + "@babel/plugin-transform-export-namespace-from" "^7.29.7" + "@babel/plugin-transform-for-of" "^7.29.7" + "@babel/plugin-transform-function-name" "^7.29.7" + "@babel/plugin-transform-json-strings" "^7.29.7" + "@babel/plugin-transform-literals" "^7.29.7" + "@babel/plugin-transform-logical-assignment-operators" "^7.29.7" + "@babel/plugin-transform-member-expression-literals" "^7.29.7" + "@babel/plugin-transform-modules-amd" "^7.29.7" + "@babel/plugin-transform-modules-commonjs" "^7.29.7" + "@babel/plugin-transform-modules-systemjs" "^7.29.7" + "@babel/plugin-transform-modules-umd" "^7.29.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.29.7" + "@babel/plugin-transform-new-target" "^7.29.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.29.7" + "@babel/plugin-transform-numeric-separator" "^7.29.7" + "@babel/plugin-transform-object-rest-spread" "^7.29.7" + "@babel/plugin-transform-object-super" "^7.29.7" + "@babel/plugin-transform-optional-catch-binding" "^7.29.7" + "@babel/plugin-transform-optional-chaining" "^7.29.7" + "@babel/plugin-transform-parameters" "^7.29.7" + "@babel/plugin-transform-private-methods" "^7.29.7" + "@babel/plugin-transform-private-property-in-object" "^7.29.7" + "@babel/plugin-transform-property-literals" "^7.29.7" + "@babel/plugin-transform-regenerator" "^7.29.7" + "@babel/plugin-transform-regexp-modifiers" "^7.29.7" + "@babel/plugin-transform-reserved-words" "^7.29.7" + "@babel/plugin-transform-shorthand-properties" "^7.29.7" + "@babel/plugin-transform-spread" "^7.29.7" + "@babel/plugin-transform-sticky-regex" "^7.29.7" + "@babel/plugin-transform-template-literals" "^7.29.7" + "@babel/plugin-transform-typeof-symbol" "^7.29.7" + "@babel/plugin-transform-unicode-escapes" "^7.29.7" + "@babel/plugin-transform-unicode-property-regex" "^7.29.7" + "@babel/plugin-transform-unicode-regex" "^7.29.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.29.7" "@babel/preset-modules" "0.1.6-no-external-plugins" - "@babel/types" "^7.23.0" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" - core-js-compat "^3.31.0" + babel-plugin-polyfill-corejs2 "^0.4.15" + babel-plugin-polyfill-corejs3 "^0.14.0" + babel-plugin-polyfill-regenerator "^0.6.6" + core-js-compat "^3.48.0" semver "^6.3.1" "@babel/preset-modules@0.1.6-no-external-plugins": @@ -2084,86 +2050,74 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.22.9": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.15.tgz#9a776892b648e13cc8ca2edf5ed1264eea6b6afc" - integrity sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-transform-react-display-name" "^7.22.5" - "@babel/plugin-transform-react-jsx" "^7.22.15" - "@babel/plugin-transform-react-jsx-development" "^7.22.5" - "@babel/plugin-transform-react-pure-annotations" "^7.22.5" - -"@babel/preset-typescript@^7.22.9": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz#c8de488130b7081f7e1482936ad3de5b018beef4" - integrity sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.23.0" - "@babel/plugin-transform-typescript" "^7.22.15" - -"@babel/register@^7.22.9": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.15.tgz#c2c294a361d59f5fa7bcc8b97ef7319c32ecaec7" - integrity sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg== +"@babel/preset-react@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.29.7.tgz#2ed18366e38c2081bbf1760dc01e88fa5674eb17" + integrity sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-validator-option" "^7.29.7" + "@babel/plugin-transform-react-display-name" "^7.29.7" + "@babel/plugin-transform-react-jsx" "^7.29.7" + "@babel/plugin-transform-react-jsx-development" "^7.29.7" + "@babel/plugin-transform-react-pure-annotations" "^7.29.7" + +"@babel/preset-typescript@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz#de9be1f47b785c979ec7b3a71f4cd8bae5267b62" + integrity sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-validator-option" "^7.29.7" + "@babel/plugin-syntax-jsx" "^7.29.7" + "@babel/plugin-transform-modules-commonjs" "^7.29.7" + "@babel/plugin-transform-typescript" "^7.29.7" + +"@babel/register@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.29.7.tgz#d5bb4337065512f643b29cb565b6e8ccadcc1ec6" + integrity sha512-AMGJoWuES861riy6pcB0fphE1YXybtQnBYQMuIyPv6mKLiosfa79BKTnAOyx215c/3RJPJpdQwoHZ3earVH7AA== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" make-dir "^2.1.0" - pirates "^4.0.5" + pirates "^4.0.6" source-map-support "^0.5.16" -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/runtime-corejs3@^7.10.2": - version "7.29.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.29.2.tgz#cb86ad06e7a1d39224afb12a874301085e071846" - integrity sha512-Lc94FOD5+0aXhdb0Tdg3RUtqT6yWbI/BbFWvlaSJ3gAb9Ks+99nHRDKADVqC37er4eCB0fHyWT+y+K3QOvJKbw== - dependencies: - core-js-pure "^3.48.0" - -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.26.10", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.29.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.2.tgz#9a6e2d05f4b6692e1801cd4fb176ad823930ed5e" - integrity sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g== - -"@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.28.6", "@babel/template@^7.3.3": - version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57" - integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ== - dependencies: - "@babel/code-frame" "^7.28.6" - "@babel/parser" "^7.28.6" - "@babel/types" "^7.28.6" - -"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.6", "@babel/traverse@^7.29.0", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a" - integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA== - dependencies: - "@babel/code-frame" "^7.29.0" - "@babel/generator" "^7.29.0" - "@babel/helper-globals" "^7.28.0" - "@babel/parser" "^7.29.0" - "@babel/template" "^7.28.6" - "@babel/types" "^7.29.0" +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.26.10", "@babel/runtime@^7.29.7", "@babel/runtime@^7.9.2": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" + integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== + +"@babel/template@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.29.7.tgz#4d9d4004f645cdd304de958c725162784ecac700" + integrity sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/parser" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/traverse@^7.29.7", "@babel/traverse@^7.4.5": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.7.tgz#c47b07a41b95da0907d026b5dd894d98de7d2f2d" + integrity sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/generator" "^7.29.7" + "@babel/helper-globals" "^7.29.7" + "@babel/parser" "^7.29.7" + "@babel/template" "^7.29.7" + "@babel/types" "^7.29.7" debug "^4.3.1" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.22.9", "@babel/types@^7.23.0", "@babel/types@^7.24.5", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.6", "@babel/types@^7.29.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7" - integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.3", "@babel/types@^7.29.7", "@babel/types@^7.3.0", "@babel/types@^7.4.4": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92" + integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA== dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" + "@babel/helper-string-parser" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" @@ -2208,6 +2162,34 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@csstools/color-helpers@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz#106c54c808cabfd1ab4c602d8505ee584c2996ef" + integrity sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA== + +"@csstools/css-calc@^2.1.3", "@csstools/css-calc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.4.tgz#8473f63e2fcd6e459838dd412401d5948f224c65" + integrity sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ== + +"@csstools/css-color-parser@^3.0.9": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz#4e386af3a99dd36c46fef013cfe4c1c341eed6f0" + integrity sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA== + dependencies: + "@csstools/color-helpers" "^5.1.0" + "@csstools/css-calc" "^2.1.4" + +"@csstools/css-parser-algorithms@^3.0.4": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz#5755370a9a29abaec5515b43c8b3f2cf9c2e3076" + integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== + +"@csstools/css-tokenizer@^3.0.3": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz#333fedabc3fd1a8e5d0100013731cf19e6a8c5d3" + integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== + "@cypress/request@^3.0.6": version "3.0.10" resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.10.tgz#e09c695e8460a82acafe6cfaf089cf2ca06dc054" @@ -2232,15 +2214,6 @@ tunnel-agent "^0.6.0" uuid "^8.3.2" -"@cypress/webpack-preprocessor@^6.0.1": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@cypress/webpack-preprocessor/-/webpack-preprocessor-6.0.2.tgz#58a96aa4dbff7433dd37d24ed47e413aa3d3fabb" - integrity sha512-0+1+4iy4W9PE6R5ywBNKAZoFp8Sf//w3UJ+CKTqkcAjA29b+dtsD0iFT70DsYE0BMqUM1PO7HXFGbXllQ+bRAA== - dependencies: - bluebird "3.7.1" - debug "^4.3.4" - lodash "^4.17.20" - "@cypress/xvfb@^1.2.4": version "1.2.4" resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" @@ -2261,11 +2234,6 @@ resolved "https://registry.yarnpkg.com/@dagrejs/graphlib/-/graphlib-2.2.4.tgz#d77bfa9ff49e2307c0c6e6b8b26b5dd3c05816c4" integrity sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw== -"@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0", "@discoveryjs/json-ext@^0.5.7": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== - "@elastic/apm-rum-core@^5.14.1": version "5.14.1" resolved "https://registry.yarnpkg.com/@elastic/apm-rum-core/-/apm-rum-core-5.14.1.tgz#8f65060967c8d68498f2c520e4169ec07eb3b5bb" @@ -2282,31 +2250,31 @@ dependencies: "@elastic/apm-rum-core" "^5.14.1" -"@elastic/charts@31.1.0": - version "31.1.0" - resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-31.1.0.tgz#cebfd45e672ab19d7d6c5a7f7e3115a6eaa41e8f" - integrity sha512-D2zPT7CRweRdbfhO9gd1+YBm0ETdJsEkh+Su0I6tleINqKKuSB+kPOG6t+fm0+HsR72pX4dKvT60ikZJZ3fRhg== +"@elastic/charts@71.8.1": + version "71.8.1" + resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-71.8.1.tgz#b5d75c45c283c934cd88346bab602aad326e4268" + integrity sha512-I/R7CW6wioF9Yy9835A6cpmDlVNzL2OeNqhBSuOYYIbh42eZbZOcawnuCJbudbabaFg7qAWLL00WQlI3528jmA== dependencies: - "@popperjs/core" "^2.4.0" - chroma-js "^2.1.0" + "@popperjs/core" "^2.11.8" + "@reduxjs/toolkit" "1.9.7" + bezier-easing "^2.1.0" + chroma-js "^2.4.2" classnames "^2.2.6" d3-array "^1.2.4" d3-cloud "^1.2.5" d3-collection "^1.0.7" - d3-color "^1.4.0" - d3-interpolate "^1.4.0" - d3-scale "^1.0.7" - d3-shape "^1.3.4" - newtype-ts "^0.2.4" + d3-interpolate "^3.0.1" + d3-scale "^3.3.0" + d3-shape "^2.0.0" + immer "^9.0.21" + luxon "^1.25.0" prop-types "^15.7.2" - re-reselect "^3.4.0" - react-redux "^7.1.0" - redux "^4.0.4" - reselect "^4.0.0" - resize-observer-polyfill "^1.5.1" - ts-debounce "^3.0.0" + re-reselect "^4.0.1" + react-redux "^8.1.3" + redux "^4.2.1" + ts-debounce "^4.0.0" utility-types "^3.10.0" - uuid "^3.3.2" + uuid "^14.0.0" "@elastic/datemath@5.0.3": version "5.0.3" @@ -2335,10 +2303,10 @@ lodash "^4.17.15" semver "7.3.2" -"@elastic/eslint-plugin-eui@0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-0.0.2.tgz#56b9ef03984a05cc213772ae3713ea8ef47b0314" - integrity sha512-IoxURM5zraoQ7C8f+mJb9HYSENiZGgRVcG4tLQxE61yHNNRDXtGDWTZh8N1KIHcsqN1CEPETjuzBXkJYF/fDiQ== +"@elastic/eslint-plugin-eui@^2.14.0": + version "2.14.0" + resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-2.14.0.tgz#d95243369de3b08c1986d2c871a0522546e4363f" + integrity sha512-2MPb4JhCz6wO9meq5bOMqWxvW0uzsmkYvKjFRcIY/R1pPdcxHJsRfxCb4x4Ibg3gs6DjN2+O70zHYllJ6Mjo4w== "@elastic/eui@npm:@opensearch-project/oui@1.22.1": version "1.22.1" @@ -2405,10 +2373,10 @@ resolved "https://registry.yarnpkg.com/@elastic/node-crypto/-/node-crypto-1.1.1.tgz#619b70322c9cce4a7ee5fbf8f678b1baa7f06095" integrity sha512-F6tIk8Txdqjg8Siv60iAvXzO9ZdQI87K3sS/fh5xd2XaWK+T5ZfqeTvsT7srwG6fr6uCBfuQEJV1KBBl+JpLZA== -"@elastic/numeral@npm:@amoo-miki/numeral@2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@amoo-miki/numeral/-/numeral-2.6.0.tgz#3a114ef81cd36ab8207dc771751e47a1323f3a6f" - integrity sha512-P2w5/ufeYdMuvY6Y1BiI3Gzj4MQ+87NAvGTQ0Qvx1wJbTh8q1b+ZWUGJjT5h9xl9BgYQ6sF4X8UZgIwW5T/ljg== +"@elastic/numeral@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@elastic/numeral/-/numeral-2.5.1.tgz#96acf39c3d599950646ef8ccfd24a3f057cf4932" + integrity sha512-Tby6TKjixRFY+atVNeYUdGr9m0iaOq8230KTwn8BbUhkh7LwozfgKq0U98HRX7n63ZL62szl+cDKTYzh5WPCFQ== "@elastic/request-crypto@2.0.2": version "2.0.2" @@ -2419,7 +2387,15 @@ "@types/node-jose" "1.1.10" node-jose "2.2.0" -"@emnapi/core@^1.5.0", "@emnapi/core@^1.7.1", "@emnapi/core@^1.8.1": +"@emnapi/core@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.10.0.tgz#380ccc8f2412ea22d1d972df7f8ee23a3b9c7467" + integrity sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw== + dependencies: + "@emnapi/wasi-threads" "1.2.1" + tslib "^2.4.0" + +"@emnapi/core@^1.7.1", "@emnapi/core@^1.8.1": version "1.8.1" resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.8.1.tgz#fd9efe721a616288345ffee17a1f26ac5dd01349" integrity sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg== @@ -2427,7 +2403,14 @@ "@emnapi/wasi-threads" "1.1.0" tslib "^2.4.0" -"@emnapi/runtime@^1.5.0", "@emnapi/runtime@^1.7.1", "@emnapi/runtime@^1.8.1": +"@emnapi/runtime@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.10.0.tgz#4b260c0d3534204e98c6110b8db1a987d26ec87c" + integrity sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA== + dependencies: + tslib "^2.4.0" + +"@emnapi/runtime@^1.7.1", "@emnapi/runtime@^1.8.1": version "1.8.1" resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.8.1.tgz#550fa7e3c0d49c5fb175a116e8cd70614f9a22a5" integrity sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg== @@ -2441,6 +2424,13 @@ dependencies: tslib "^2.4.0" +"@emnapi/wasi-threads@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz#28fed21a1ba1ce797c44a070abc94d42f3ae8548" + integrity sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w== + dependencies: + tslib "^2.4.0" + "@emotion/is-prop-valid@^1.1.0": version "1.1.2" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz#34ad6e98e871aa6f7a20469b602911b8b11b3a95" @@ -2463,37 +2453,68 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.9.1": +"@eslint-community/eslint-plugin-eslint-comments@^4.7.2": + version "4.7.2" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-4.7.2.tgz#1e6582d517847a589f11c7f2fbba1fde765cd127" + integrity sha512-LF03qURSwEWm2dz5wtdDCzNk+7Opl0X7q6I3undsaIuNsEiNvRV3BCtqu14Q/6Pzg1tBj44LcxpW2EpSLZStZw== + dependencies: + escape-string-regexp "^4.0.0" + ignore "^7.0.5" + +"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.4.1", "@eslint-community/eslint-utils@^4.5.0", "@eslint-community/eslint-utils@^4.8.0", "@eslint-community/eslint-utils@^4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== dependencies: eslint-visitor-keys "^3.4.3" -"@eslint-community/regexpp@^4.12.2", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.11.0", "@eslint-community/regexpp@^4.12.2": version "4.12.2" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== +"@eslint/compat@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@eslint/compat/-/compat-2.1.0.tgz#8c66110f95cf0fdd864b76ae4d534042dea7bb7f" + integrity sha512-LgaSCymEpw7tF53xvDw9SNsraPb1IBHxpdABIOM0hW8UAlP8znrjYtuxfR58FSJ3L9BhwD+FaPRFQpZq84Nh6g== dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" + "@eslint/core" "^1.2.1" + +"@eslint/config-array@^0.23.5": + version "0.23.5" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.23.5.tgz#56e86d243049195d8acc0c06a1b3dfdc3fa3de95" + integrity sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA== + dependencies: + "@eslint/object-schema" "^3.0.5" + debug "^4.3.1" + minimatch "^10.2.4" + +"@eslint/config-helpers@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.6.0.tgz#ef9a36881d39dfd5dbeac22b0da997fabfb08b03" + integrity sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA== + dependencies: + "@eslint/core" "^1.2.1" + +"@eslint/core@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-1.2.1.tgz#c1da7cd1b82fa8787f98b5629fb811848a1b63ce" + integrity sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ== + dependencies: + "@types/json-schema" "^7.0.15" + +"@eslint/object-schema@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-3.0.5.tgz#88e9bf4d11d2b19c082e78ebe7ce88724a5eb091" + integrity sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw== -"@eslint/js@8.57.1": - version "8.57.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" - integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== +"@eslint/plugin-kit@^0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz#4b0962f3f2c7ce8bc98b3ecfe34525c09d2cb729" + integrity sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A== + dependencies: + "@eslint/core" "^1.2.1" + levn "^0.4.1" "@faker-js/faker@^7.6.0": version "7.6.0" @@ -2683,7 +2704,7 @@ "@hapi/hoek" "^11.0.2" "@hapi/validate" "^2.0.1" -"@hapi/hoek@9.x.x", "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": +"@hapi/hoek@9.x.x", "@hapi/hoek@^9.0.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== @@ -2816,7 +2837,7 @@ resolved "https://registry.yarnpkg.com/@hapi/tlds/-/tlds-1.1.7.tgz#005d10761e7a946aedae32a418b8f1dafd3f998e" integrity sha512-MgNjRwy9Ti92yVAixLmDc8dd1bJIKwO9qlWCfFQRwRmUEDPQHYn4G6hwPFvFGUTzAa0FsS+inMjLin7GnyBRhA== -"@hapi/topo@^5.0.0", "@hapi/topo@^5.1.0": +"@hapi/topo@^5.0.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== @@ -2877,24 +2898,48 @@ resolved "https://registry.yarnpkg.com/@hono/node-server/-/node-server-1.19.13.tgz#4838c766a1237253d4dde3281cf7d5c65186fd32" integrity sha512-TsQLe4i2gvoTtrHje625ngThGBySOgSK3Xo2XRYOdqGN1teR8+I7vchQC46uLJi8OF62YTYA3AhSpumtkhsaKQ== -"@humanwhocodes/config-array@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" - integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== +"@humanfs/core@^0.19.2": + version "0.19.2" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.2.tgz#a8272ca03b2acf492670222b2320b6c421bfde60" + integrity sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA== dependencies: - "@humanwhocodes/object-schema" "^2.0.3" - debug "^4.3.1" - minimatch "^3.0.5" + "@humanfs/types" "^0.15.0" + +"@humanfs/node@^0.16.6": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.8.tgz#8f800cccc13f4f8cd3116e2d9c0a94939da3e3ed" + integrity sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ== + dependencies: + "@humanfs/core" "^0.19.2" + "@humanfs/types" "^0.15.0" + "@humanwhocodes/retry" "^0.4.0" + +"@humanfs/types@^0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@humanfs/types/-/types-0.15.0.tgz#f2a09f62012390b2bff3fc6fb248ddec8c09a090" + integrity sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q== "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@humanwhocodes/retry@^0.4.0", "@humanwhocodes/retry@^0.4.2": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba" + integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@isaacs/fs-minipass@^4.0.0": version "4.0.1" @@ -2919,179 +2964,175 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" - integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" +"@istanbuljs/schema@^0.1.3": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.6.tgz#8dc9afa2ac1506cb1a58f89940f1c124446c8df3" + integrity sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw== -"@jest/console@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" - integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== +"@jedmao/location@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@jedmao/location/-/location-3.0.0.tgz#f2b24e937386f95252f3a1fefbf7ca2e0a4b87e9" + integrity sha512-p7mzNlgJbCioUYLUEKds3cQG4CHONVFJNYqMe6ocEtENCL/jYmMo1Q3ApwsMmU+L0ZkaDJEyv4HokaByLoPwlQ== + +"@jest/console@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-30.4.1.tgz#e57725678c3fcc9f7e5597e691e454fee4ce0939" + integrity sha512-v3bhyxUh9Hgmo5p6hAOXe14/R3ZxZDOsvHleh4B07z3m/x4/ngPUXEm9XwK4sF4u+f+P2ORb0Ge+MgpaqRMVDA== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "30.4.1" "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^28.1.3" - jest-util "^28.1.3" + chalk "^4.1.2" + jest-message-util "30.4.1" + jest-util "30.4.1" slash "^3.0.0" -"@jest/core@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" - integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== - dependencies: - "@jest/console" "^28.1.3" - "@jest/reporters" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" +"@jest/core@30.4.2": + version "30.4.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-30.4.2.tgz#3d4081f894b7e2ff57d04a31842416bd07b76c32" + integrity sha512-TZJA6cPJUFxoWhxaLo8t0VX/MZX2wPWr0uIDvLSHIvN4gu9h02vSzqI2kBADG1ExqQlC+cY09xKMSreivvrChQ== + dependencies: + "@jest/console" "30.4.1" + "@jest/pattern" "30.4.0" + "@jest/reporters" "30.4.1" + "@jest/test-result" "30.4.1" + "@jest/transform" "30.4.1" + "@jest/types" "30.4.1" "@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 "^28.1.3" - jest-config "^28.1.3" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-resolve-dependencies "^28.1.3" - jest-runner "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - jest-watcher "^28.1.3" - micromatch "^4.0.4" - pretty-format "^28.1.3" - rimraf "^3.0.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + ci-info "^4.2.0" + exit-x "^0.2.2" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.11" + jest-changed-files "30.4.1" + jest-config "30.4.2" + jest-haste-map "30.4.1" + jest-message-util "30.4.1" + jest-regex-util "30.4.0" + jest-resolve "30.4.1" + jest-resolve-dependencies "30.4.2" + jest-runner "30.4.2" + jest-runtime "30.4.2" + jest-snapshot "30.4.1" + jest-util "30.4.1" + jest-validate "30.4.1" + jest-watcher "30.4.1" + pretty-format "30.4.1" slash "^3.0.0" - strip-ansi "^6.0.0" -"@jest/environment@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" - integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== +"@jest/diff-sequences@30.4.0": + version "30.4.0" + resolved "https://registry.yarnpkg.com/@jest/diff-sequences/-/diff-sequences-30.4.0.tgz#8be2d260e6241d6cddddd102c304fe13b4fc8e3e" + integrity sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g== + +"@jest/environment-jsdom-abstract@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.4.1.tgz#03cf1400aea958733f3a5d20cdc983ffcedfe2b1" + integrity sha512-dSlKrqug3siYNHVnjwIldShY12wAH3spwRltO/+8VOjg0X+xEq7vOs3DbBs4LRKsu7OH+NUb9kuZUNBF9Ho3TA== dependencies: - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/environment" "30.4.1" + "@jest/fake-timers" "30.4.1" + "@jest/types" "30.4.1" + "@types/jsdom" "^21.1.7" "@types/node" "*" - jest-mock "^27.5.1" + jest-mock "30.4.1" + jest-util "30.4.1" -"@jest/environment@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" - integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== +"@jest/environment@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-30.4.1.tgz#1ab5b736e3ce6336d59e00765fa24019649f1a30" + integrity sha512-AK9yNRqgKxiabqMoe4oW+3/TSSeV8vkdC7BGaxZdU0AFXfOpofTLqdru2GXKZghP3sdgwE9XXpnVwfZ8JnFV4w== dependencies: - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/fake-timers" "30.4.1" + "@jest/types" "30.4.1" "@types/node" "*" - jest-mock "^28.1.3" + jest-mock "30.4.1" -"@jest/expect-utils@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" - integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== +"@jest/expect-utils@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.4.1.tgz#e0c7436d52b08610de9027841912dc3734ae80b2" + integrity sha512-ZBn5CglH8fBsQsvs4VWNzD4aWfUYks+IdOOQU3MEK71ol/BcVm+P+rtb1KpiFBpSWSCE27uOahyyf1vfqOVbcQ== dependencies: - jest-get-type "^28.0.2" + "@jest/get-type" "30.1.0" -"@jest/expect@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" - integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== +"@jest/expect@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-30.4.1.tgz#7fefc67f86c2cb2af3c86d9d41fe4a1d74862b8c" + integrity sha512-ginrj6TMgh2GshLUGCjO94Ptx9HhdZA/I6A9iUfyeLKFtdAjnKzHDgzgP9HYQgbxM1lbXScQ2eUBz2lGeVDPWA== dependencies: - expect "^28.1.3" - jest-snapshot "^28.1.3" + expect "30.4.1" + jest-snapshot "30.4.1" -"@jest/fake-timers@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" - integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== +"@jest/fake-timers@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-30.4.1.tgz#ad2d3412d5d005a3e45740bd4c8ee1ccae2f89e1" + integrity sha512-iW5umdmfPeWzehrVhugFQZqCchSCud5S1l2YT0O9ZhjRR0ExclANDZkiSBwzqtnlOn0J1JXvO+HZ6rkuyOVOgQ== dependencies: - "@jest/types" "^27.5.1" - "@sinonjs/fake-timers" "^8.0.1" + "@jest/types" "30.4.1" + "@sinonjs/fake-timers" "^15.4.0" "@types/node" "*" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -"@jest/fake-timers@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" - integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== + jest-message-util "30.4.1" + jest-mock "30.4.1" + jest-util "30.4.1" + +"@jest/get-type@30.1.0": + version "30.1.0" + resolved "https://registry.yarnpkg.com/@jest/get-type/-/get-type-30.1.0.tgz#4fcb4dc2ebcf0811be1c04fd1cb79c2dba431cbc" + integrity sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA== + +"@jest/globals@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-30.4.1.tgz#6376975e137ef87926349b5e75ccf230f491e843" + integrity sha512-ZbuY4cmXC8DkxYjfvT2DbcHWL2T6vmsMhXCDcmTB2T0y0gaezBI77ufq5ZAIdcRkYZ7NEQEDg1xFeKbxUJ5v5Q== + dependencies: + "@jest/environment" "30.4.1" + "@jest/expect" "30.4.1" + "@jest/types" "30.4.1" + jest-mock "30.4.1" + +"@jest/pattern@30.4.0": + version "30.4.0" + resolved "https://registry.yarnpkg.com/@jest/pattern/-/pattern-30.4.0.tgz#fcb519eeacc25caa3768f787595a27afa15302ae" + integrity sha512-RAWn3+f9u8BsHijKJ71uHcFp6vmyEt6VvoWXkl6hKF3qVIuWNmudVjg12DlBPGup/frIl5UcUlH5HfEuvHpEXg== dependencies: - "@jest/types" "^28.1.3" - "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-util "^28.1.3" - -"@jest/globals@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" - integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/types" "^27.5.1" - expect "^27.5.1" - -"@jest/globals@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" - integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/types" "^28.1.3" + jest-regex-util "30.4.0" -"@jest/reporters@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" - integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== +"@jest/reporters@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-30.4.1.tgz#41d42533f199e737ae352a0a0b32ff300826efe2" + integrity sha512-/SnkPCzEQpUaBH81kjdEdDdo2WZl5hxw+BmLDGWjRkm8o7XlhjwsU36cqwe5PGBE5WYpBvDzRSdXx9rbGuJtNA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" + "@jest/console" "30.4.1" + "@jest/test-result" "30.4.1" + "@jest/transform" "30.4.1" + "@jest/types" "30.4.1" + "@jridgewell/trace-mapping" "^0.3.25" "@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" + chalk "^4.1.2" + collect-v8-coverage "^1.0.2" + exit-x "^0.2.2" + glob "^10.5.0" + graceful-fs "^4.2.11" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" + istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" + istanbul-lib-source-maps "^5.0.0" istanbul-reports "^3.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - jest-worker "^28.1.3" + jest-message-util "30.4.1" + jest-util "30.4.1" + jest-worker "30.4.1" slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - terminal-link "^2.0.0" + string-length "^4.0.2" v8-to-istanbul "^9.0.1" -"@jest/schemas@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" - integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== +"@jest/schemas@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.4.1.tgz#c3703fdd71357e2c83aa59bd38469e60a11529c6" + integrity sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q== dependencies: - "@sinclair/typebox" "^0.24.1" + "@sinclair/typebox" "^0.34.0" "@jest/schemas@^29.6.3": version "29.6.3" @@ -3100,118 +3141,77 @@ dependencies: "@sinclair/typebox" "^0.27.8" -"@jest/source-map@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" - integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.9" - source-map "^0.6.0" - -"@jest/source-map@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" - integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== - dependencies: - "@jridgewell/trace-mapping" "^0.3.13" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" - integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== +"@jest/snapshot-utils@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/snapshot-utils/-/snapshot-utils-30.4.1.tgz#0f829488b9d46b118854a16a56d509a3c6d9e064" + integrity sha512-ObY4ljvQ95mt6iwKtVLetR/4yXiAgl3H4nJxhztr0MTjrN97TwDYrnCp/kF60Ec9HdhkWTHSu+Hg05aXfngpOA== dependencies: - "@jest/console" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" + "@jest/types" "30.4.1" + chalk "^4.1.2" + graceful-fs "^4.2.11" + natural-compare "^1.4.0" -"@jest/test-result@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" - integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== +"@jest/source-map@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-30.0.1.tgz#305ebec50468f13e658b3d5c26f85107a5620aaa" + integrity sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg== dependencies: - "@jest/console" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" + "@jridgewell/trace-mapping" "^0.3.25" + callsites "^3.1.0" + graceful-fs "^4.2.11" -"@jest/test-sequencer@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" - integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== +"@jest/test-result@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-30.4.1.tgz#e21146ebbb3e1f7f76c3c49805d9f39ae45f8de1" + integrity sha512-/ZG7pgEiOmmWkN9TplKbOu4id2N5lh7FHwRwlkgBVAzGdRH+OkkQ8wX/kIxg4zmd3ZQvAL1RwL2yWsvNYYECTw== dependencies: - "@jest/test-result" "^27.5.1" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-runtime "^27.5.1" + "@jest/console" "30.4.1" + "@jest/types" "30.4.1" + "@types/istanbul-lib-coverage" "^2.0.6" + collect-v8-coverage "^1.0.2" -"@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" - integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== +"@jest/test-sequencer@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-30.4.1.tgz#caf9a5e0924ed3b04957441edf9e8cef6a804391" + integrity sha512-PeYE+4td5rKjoRPxztObrXU+H8hsjZfxKMXOcmrr34JerSyB/ROOxbbicz8B7A5j9R9VayDnVPvBmedqCsFCdw== dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.5.1" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" - micromatch "^4.0.4" - pirates "^4.0.4" + "@jest/test-result" "30.4.1" + graceful-fs "^4.2.11" + jest-haste-map "30.4.1" slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" -"@jest/transform@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" - integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== +"@jest/transform@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-30.4.1.tgz#1646cddb800d38d9c4e30fecfd4a6eba0fa8acfa" + integrity sha512-Wz0LyktlTvRefoymh+n64hQ84KNXsRGcwdoZ8CSa0Ea+fgYcHZlnk+hDP7v2MS7il2bQ5uTEIxf4/NNfhMN4KQ== dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - micromatch "^4.0.4" - pirates "^4.0.4" + "@babel/core" "^7.27.4" + "@jest/types" "30.4.1" + "@jridgewell/trace-mapping" "^0.3.25" + babel-plugin-istanbul "^7.0.1" + chalk "^4.1.2" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.11" + jest-haste-map "30.4.1" + jest-regex-util "30.4.0" + jest-util "30.4.1" + pirates "^4.0.7" slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" + write-file-atomic "^5.0.1" -"@jest/types@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" - integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== +"@jest/types@30.4.1": + version "30.4.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.4.1.tgz#f79b647a85cb2ff4a90cc55984b31dae820db1f7" + integrity sha512-f1x/vJXIfjOlEmejYpbkbgw1gOqpPECwMvMEtBqe47j7H2Hg8h8w3o3ikhSXq3MI15kg+oQ0exWO0uCtTNJLoQ== dependencies: - "@jest/schemas" "^28.1.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" + "@jest/pattern" "30.4.0" + "@jest/schemas" "30.4.1" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" "@jimp/core@1.6.1": version "1.6.1" @@ -3507,14 +3507,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/source-map@^0.3.3": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" - integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": version "1.5.5" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" @@ -3528,7 +3520,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": version "0.3.31" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== @@ -3536,166 +3528,6 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@jsonjoy.com/base64@17.65.0": - version "17.65.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-17.65.0.tgz#ba3b023c69ab311e5b706289414a44ee46117824" - integrity sha512-Xrh7Fm/M0QAYpekSgmskdZYnFdSGnsxJ/tHaolA4bNwWdG9i65S8m83Meh7FOxyJyQAdo4d4J97NOomBLEfkDQ== - -"@jsonjoy.com/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" - integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== - -"@jsonjoy.com/buffers@17.65.0", "@jsonjoy.com/buffers@^17.65.0": - version "17.65.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/buffers/-/buffers-17.65.0.tgz#d6890737d9cbc49c17e2c5d1a2d796c57205152c" - integrity sha512-eBrIXd0/Ld3p9lpDDlMaMn6IEfWqtHMD+z61u0JrIiPzsV1r7m6xDZFRxJyvIFTEO+SWdYF9EiQbXZGd8BzPfA== - -"@jsonjoy.com/buffers@^1.0.0", "@jsonjoy.com/buffers@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz#8d99c7f67eaf724d3428dfd9826c6455266a5c83" - integrity sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA== - -"@jsonjoy.com/codegen@17.65.0": - version "17.65.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-17.65.0.tgz#531524f37fd3e1d1189de18fef346e998eee8952" - integrity sha512-7MXcRYe7n3BG+fo3jicvjB0+6ypl2Y/bQp79Sp7KeSiiCgLqw4Oled6chVv07/xLVTdo3qa1CD0VCCnPaw+RGA== - -"@jsonjoy.com/codegen@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz#5c23f796c47675f166d23b948cdb889184b93207" - integrity sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g== - -"@jsonjoy.com/fs-core@4.56.10": - version "4.56.10" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-core/-/fs-core-4.56.10.tgz#320728b4b7bef63abb60e7630351623899237411" - integrity sha512-PyAEA/3cnHhsGcdY+AmIU+ZPqTuZkDhCXQ2wkXypdLitSpd6d5Ivxhnq4wa2ETRWFVJGabYynBWxIijOswSmOw== - dependencies: - "@jsonjoy.com/fs-node-builtins" "4.56.10" - "@jsonjoy.com/fs-node-utils" "4.56.10" - thingies "^2.5.0" - -"@jsonjoy.com/fs-fsa@4.56.10": - version "4.56.10" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-fsa/-/fs-fsa-4.56.10.tgz#02bac88c4968ddf2effbd7452861aaed60ba3557" - integrity sha512-/FVK63ysNzTPOnCCcPoPHt77TOmachdMS422txM4KhxddLdbW1fIbFMYH0AM0ow/YchCyS5gqEjKLNyv71j/5Q== - dependencies: - "@jsonjoy.com/fs-core" "4.56.10" - "@jsonjoy.com/fs-node-builtins" "4.56.10" - "@jsonjoy.com/fs-node-utils" "4.56.10" - thingies "^2.5.0" - -"@jsonjoy.com/fs-node-builtins@4.56.10": - version "4.56.10" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.56.10.tgz#a32a5bcb093f8b34a99aa8957e993a52ec316662" - integrity sha512-uUnKz8R0YJyKq5jXpZtkGV9U0pJDt8hmYcLRrPjROheIfjMXsz82kXMgAA/qNg0wrZ1Kv+hrg7azqEZx6XZCVw== - -"@jsonjoy.com/fs-node-to-fsa@4.56.10": - version "4.56.10" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.56.10.tgz#33fc503e50d283ac5fc510e3accced7fccecf2f4" - integrity sha512-oH+O6Y4lhn9NyG6aEoFwIBNKZeYy66toP5LJcDOMBgL99BKQMUf/zWJspdRhMdn/3hbzQsZ8EHHsuekbFLGUWw== - dependencies: - "@jsonjoy.com/fs-fsa" "4.56.10" - "@jsonjoy.com/fs-node-builtins" "4.56.10" - "@jsonjoy.com/fs-node-utils" "4.56.10" - -"@jsonjoy.com/fs-node-utils@4.56.10": - version "4.56.10" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.56.10.tgz#788e95052aa99744f6e8e55b5098afc203df2b9e" - integrity sha512-8EuPBgVI2aDPwFdaNQeNpHsyqPi3rr+85tMNG/lHvQLiVjzoZsvxA//Xd8aB567LUhy4QS03ptT+unkD/DIsNg== - dependencies: - "@jsonjoy.com/fs-node-builtins" "4.56.10" - -"@jsonjoy.com/fs-node@4.56.10": - version "4.56.10" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node/-/fs-node-4.56.10.tgz#70b18bfaf14544a9820d2016e913dde12c6de991" - integrity sha512-7R4Gv3tkUdW3dXfXiOkqxkElxKNVdd8BDOWC0/dbERd0pXpPY+s2s1Mino+aTvkGrFPiY+mmVxA7zhskm4Ue4Q== - dependencies: - "@jsonjoy.com/fs-core" "4.56.10" - "@jsonjoy.com/fs-node-builtins" "4.56.10" - "@jsonjoy.com/fs-node-utils" "4.56.10" - "@jsonjoy.com/fs-print" "4.56.10" - "@jsonjoy.com/fs-snapshot" "4.56.10" - glob-to-regex.js "^1.0.0" - thingies "^2.5.0" - -"@jsonjoy.com/fs-print@4.56.10": - version "4.56.10" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-print/-/fs-print-4.56.10.tgz#7c181b9aefcc1b268be0e6233bff26310c355335" - integrity sha512-JW4fp5mAYepzFsSGrQ48ep8FXxpg4niFWHdF78wDrFGof7F3tKDJln72QFDEn/27M1yHd4v7sKHHVPh78aWcEw== - dependencies: - "@jsonjoy.com/fs-node-utils" "4.56.10" - tree-dump "^1.1.0" - -"@jsonjoy.com/fs-snapshot@4.56.10": - version "4.56.10" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.56.10.tgz#05aadd2c0eaa855b13d6cb17d29b7c8cee239c8c" - integrity sha512-DkR6l5fj7+qj0+fVKm/OOXMGfDFCGXLfyHkORH3DF8hxkpDgIHbhf/DwncBMs2igu/ST7OEkexn1gIqoU6Y+9g== - dependencies: - "@jsonjoy.com/buffers" "^17.65.0" - "@jsonjoy.com/fs-node-utils" "4.56.10" - "@jsonjoy.com/json-pack" "^17.65.0" - "@jsonjoy.com/util" "^17.65.0" - -"@jsonjoy.com/json-pack@^1.11.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz#93f8dd57fe3a3a92132b33d1eb182dcd9e7629fa" - integrity sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg== - dependencies: - "@jsonjoy.com/base64" "^1.1.2" - "@jsonjoy.com/buffers" "^1.2.0" - "@jsonjoy.com/codegen" "^1.0.0" - "@jsonjoy.com/json-pointer" "^1.0.2" - "@jsonjoy.com/util" "^1.9.0" - hyperdyperid "^1.2.0" - thingies "^2.5.0" - tree-dump "^1.1.0" - -"@jsonjoy.com/json-pack@^17.65.0": - version "17.65.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-17.65.0.tgz#4ea06dd0aee1c29954bd978c4f107401dbf713fb" - integrity sha512-e0SG/6qUCnVhHa0rjDJHgnXnbsacooHVqQHxspjvlYQSkHm+66wkHw6Gql+3u/WxI/b1VsOdUi0M+fOtkgKGdQ== - dependencies: - "@jsonjoy.com/base64" "17.65.0" - "@jsonjoy.com/buffers" "17.65.0" - "@jsonjoy.com/codegen" "17.65.0" - "@jsonjoy.com/json-pointer" "17.65.0" - "@jsonjoy.com/util" "17.65.0" - hyperdyperid "^1.2.0" - thingies "^2.5.0" - tree-dump "^1.1.0" - -"@jsonjoy.com/json-pointer@17.65.0": - version "17.65.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pointer/-/json-pointer-17.65.0.tgz#4bad42d86c9ee0ad1758c082b065bd5e16f8dc36" - integrity sha512-uhTe+XhlIZpWOxgPcnO+iSCDgKKBpwkDVTyYiXX9VayGV8HSFVJM67M6pUE71zdnXF1W0Da21AvnhlmdwYPpow== - dependencies: - "@jsonjoy.com/util" "17.65.0" - -"@jsonjoy.com/json-pointer@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz#049cb530ac24e84cba08590c5e36b431c4843408" - integrity sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg== - dependencies: - "@jsonjoy.com/codegen" "^1.0.0" - "@jsonjoy.com/util" "^1.9.0" - -"@jsonjoy.com/util@17.65.0", "@jsonjoy.com/util@^17.65.0": - version "17.65.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-17.65.0.tgz#b27832bdf7aeaf4a36f9cb8721cb4ffb086f06a1" - integrity sha512-cWiEHZccQORf96q2y6zU3wDeIVPeidmGqd9cNKJRYoVHTV0S1eHPy5JTbHpMnGfDvtvujQwQozOqgO9ABu6h0w== - dependencies: - "@jsonjoy.com/buffers" "17.65.0" - "@jsonjoy.com/codegen" "17.65.0" - -"@jsonjoy.com/util@^1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.9.0.tgz#7ee95586aed0a766b746cd8d8363e336c3c47c46" - integrity sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ== - dependencies: - "@jsonjoy.com/buffers" "^1.0.0" - "@jsonjoy.com/codegen" "^1.0.0" - "@kwsites/file-exists@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@kwsites/file-exists/-/file-exists-1.1.1.tgz#ad1efcac13e1987d8dbaf235ef3be5b0d96faa99" @@ -3763,11 +3595,6 @@ uuid "^10.0.0" zod "^3.25.32" -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" - integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== - "@lmdb/lmdb-darwin-arm64@2.8.5": version "2.8.5" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz#895d8cb16a9d709ce5fedd8b60022903b875e08e" @@ -3885,49 +3712,6 @@ zod "^3.25 || ^4.0" zod-to-json-schema "^3.25.1" -"@module-federation/error-codes@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@module-federation/error-codes/-/error-codes-0.22.0.tgz#31ccc990dc240d73912ba7bd001f7e35ac751992" - integrity sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug== - -"@module-federation/runtime-core@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@module-federation/runtime-core/-/runtime-core-0.22.0.tgz#7321ec792bb7d1d22bee6162ec43564b769d2a3c" - integrity sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA== - dependencies: - "@module-federation/error-codes" "0.22.0" - "@module-federation/sdk" "0.22.0" - -"@module-federation/runtime-tools@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@module-federation/runtime-tools/-/runtime-tools-0.22.0.tgz#36f2a7cb267af208a9d1a237fe9a71b4bf31431e" - integrity sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA== - dependencies: - "@module-federation/runtime" "0.22.0" - "@module-federation/webpack-bundler-runtime" "0.22.0" - -"@module-federation/runtime@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@module-federation/runtime/-/runtime-0.22.0.tgz#f789c9ef40d846d110711c8221ecc0ad938d43d8" - integrity sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA== - dependencies: - "@module-federation/error-codes" "0.22.0" - "@module-federation/runtime-core" "0.22.0" - "@module-federation/sdk" "0.22.0" - -"@module-federation/sdk@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@module-federation/sdk/-/sdk-0.22.0.tgz#6ad4c1de85a900c3c80ff26cb87cce253e3a2770" - integrity sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g== - -"@module-federation/webpack-bundler-runtime@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.22.0.tgz#dcbe8f972d722fe278e6a7c21988d4bee53d401d" - integrity sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA== - dependencies: - "@module-federation/runtime" "0.22.0" - "@module-federation/sdk" "0.22.0" - "@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2": version "3.0.2" resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz#44d752c1a2dc113f15f781b7cc4f53a307e3fa38" @@ -3958,13 +3742,11 @@ resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz#0f164b726869f71da3c594171df5ebc1c4b0a407" integrity sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ== -"@napi-rs/wasm-runtime@1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz#dcfea99a75f06209a235f3d941e3460a51e9b14c" - integrity sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw== +"@napi-rs/wasm-runtime@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz#a46bbfedc29751b7170c5d23bc1d8ee8c7e3c1e1" + integrity sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow== dependencies: - "@emnapi/core" "^1.5.0" - "@emnapi/runtime" "^1.5.0" "@tybys/wasm-util" "^0.10.1" "@napi-rs/wasm-runtime@^1.1.1": @@ -3976,18 +3758,18 @@ "@emnapi/runtime" "^1.7.1" "@tybys/wasm-util" "^0.10.1" +"@napi-rs/wasm-runtime@^1.1.4": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz#ed33806d0f9be98dc76d0c3d4fd872fda701b5d5" + integrity sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg== + dependencies: + "@tybys/wasm-util" "^0.10.3" + "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" - integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== - dependencies: - eslint-scope "5.1.1" - "@noble/hashes@^1.1.5": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" @@ -4095,7 +3877,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -4124,33 +3906,33 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== -"@opentelemetry/core@1.30.1", "@opentelemetry/core@^1.11.0": - version "1.30.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.30.1.tgz#a0b468bb396358df801881709ea38299fc30ab27" - integrity sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ== +"@opentelemetry/core@2.9.0", "@opentelemetry/core@^2.8.0": + version "2.9.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-2.9.0.tgz#49de86106f86255b471b2ff035ef1003a851b252" + integrity sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw== dependencies: - "@opentelemetry/semantic-conventions" "1.28.0" + "@opentelemetry/semantic-conventions" "^1.29.0" -"@opentelemetry/resources@1.30.1": - version "1.30.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.30.1.tgz#a4eae17ebd96947fdc7a64f931ca4b71e18ce964" - integrity sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA== +"@opentelemetry/resources@2.9.0": + version "2.9.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-2.9.0.tgz#81e1ce946eec661857a9d6c4fa507b3750ae500f" + integrity sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg== dependencies: - "@opentelemetry/core" "1.30.1" - "@opentelemetry/semantic-conventions" "1.28.0" + "@opentelemetry/core" "2.9.0" + "@opentelemetry/semantic-conventions" "^1.29.0" -"@opentelemetry/sdk-metrics@^1.12.0": - version "1.30.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz#70e2bcd275b9df6e7e925e3fe53cfe71329b5fc8" - integrity sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog== +"@opentelemetry/sdk-metrics@^2.8.0": + version "2.9.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-2.9.0.tgz#4339ac637b9dc99c597bafdefb0ba66ef7391a7c" + integrity sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q== dependencies: - "@opentelemetry/core" "1.30.1" - "@opentelemetry/resources" "1.30.1" + "@opentelemetry/core" "2.9.0" + "@opentelemetry/resources" "2.9.0" -"@opentelemetry/semantic-conventions@1.28.0": - version "1.28.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz#337fb2bca0453d0726696e745f50064411f646d6" - integrity sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA== +"@opentelemetry/semantic-conventions@^1.29.0": + version "1.43.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz#f3f467e36c27332f0e735ec86cdcd78dd6f27865" + integrity sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg== "@paralleldrive/cuid2@^2.2.2": version "2.3.1" @@ -4248,34 +4030,49 @@ "@parcel/watcher-win32-ia32" "2.5.1" "@parcel/watcher-win32-x64" "2.5.1" -"@polka/url@^1.0.0-next.24": - version "1.0.0-next.29" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.29.tgz#5a40109a1ab5f84d6fd8fc928b19f367cbe7e7b1" - integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@popperjs/core@^2.4.0": - version "2.11.4" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.4.tgz#d8c7b8db9226d2d7664553a0741ad7d0397ee503" - integrity sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg== +"@pkgr/core@^0.3.6": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.3.6.tgz#3569708bd4be4d8870ba32bf1c456dac81600d97" + integrity sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA== + +"@popperjs/core@^2.11.8": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@protobuf-ts/protoc@^2.11.1": version "2.11.1" resolved "https://registry.yarnpkg.com/@protobuf-ts/protoc/-/protoc-2.11.1.tgz#5ae86a777cacdc58ddc7e38ee107a74342a86e30" integrity sha512-mUZJaV0daGO6HUX90o/atzQ6A7bbN2RSuHtdwo8SSF2Qoe3zHwa4IHyCN1evftTeHfLmdz+45qo47sL+5P8nyg== -"@puppeteer/browsers@2.10.6": - version "2.10.6" - resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.10.6.tgz#0b1b5046ec4918a4fd4e4c9383153a80af288bd2" - integrity sha512-pHUn6ZRt39bP3698HFQlu2ZHCkS/lPcpv7fVQcGBSzNNygw171UXAKrCUhy+TEMw4lEttOKDgNpb04hwUAJeiQ== +"@puppeteer/browsers@2.13.2": + version "2.13.2" + resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.13.2.tgz#dcc8e7a4545d9680a8a72c53f132e80afc582284" + integrity sha512-5EUZSUIc37H6aIXyWO0Z4y8NlF8NnjgmqeQgOGiswAU7pY0HOo16ho4+alIWmSfdZnjqBRawMsP3I5YqLSn6kw== dependencies: - debug "^4.4.1" + debug "^4.4.3" extract-zip "^2.0.1" progress "^2.0.3" proxy-agent "^6.5.0" - semver "^7.7.2" - tar-fs "^3.1.0" + semver "^7.7.4" + tar-fs "^3.1.1" yargs "^17.7.2" +"@reduxjs/toolkit@1.9.7": + version "1.9.7" + resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.7.tgz#7fc07c0b0ebec52043f8cb43510cf346405f78a6" + integrity sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ== + dependencies: + immer "^9.0.21" + redux "^4.2.1" + redux-thunk "^2.4.2" + reselect "^4.1.8" + "@reduxjs/toolkit@^1.6.1": version "1.8.3" resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.8.3.tgz#9c6a9c497bde43a67618d37a4175a00ae12efeb2" @@ -4286,208 +4083,256 @@ redux-thunk "^2.4.1" reselect "^4.1.5" -"@rsbuild/plugin-check-syntax@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@rsbuild/plugin-check-syntax/-/plugin-check-syntax-1.5.0.tgz#2f4ed3aa810318091e0f8bca533891ab01d9f27f" - integrity sha512-/JutNle3wI67q/WOYcneyjUSAjZDJIycfpoJ04PWFh+qQ68Pwg4/Be1kU7GiVVklMwmEScoCd9S+gXWk+27YSg== +"@rsbuild/plugin-check-syntax@^1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@rsbuild/plugin-check-syntax/-/plugin-check-syntax-1.6.1.tgz#fd1655204b52e8c7cb18dc5779092247cca9ae67" + integrity sha512-26xtEYN0QjZYoyt0lWnvIztBWjEZJvcfw7MN4f5B4SpNggmnF7F7aNPrgkY3EccXVFx1VGQBhnCkBV//OoS07Q== dependencies: acorn "^8.15.0" - browserslist-to-es-version "^1.1.1" + browserslist-to-es-version "^1.2.0" htmlparser2 "10.0.0" picocolors "^1.1.1" source-map "^0.7.6" -"@rsdoctor/client@1.3.11": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/client/-/client-1.3.11.tgz#c6ed46d4aca793c1a95b348a03a5eab97f909c07" - integrity sha512-OLu71555PSvD/U+z51gChFmIGcSo97U0UiI6XqzFboc1BjJLy5wpphs/Ez0wNXCvJIZ41aExq9UycZ4PNrmEhA== - -"@rsdoctor/core@1.3.11": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/core/-/core-1.3.11.tgz#99c68bf3dc361c4237c008ab7249692d2c586289" - integrity sha512-sFXowN0oGbW2X372Wu1/JbA7eINjUTzp8qX4eY1DTjupgsGlDpQuorRTaHoAhKYRRb5xJsfnBH6ElFAqgqUUMg== - dependencies: - "@rsbuild/plugin-check-syntax" "1.5.0" - "@rsdoctor/graph" "1.3.11" - "@rsdoctor/sdk" "1.3.11" - "@rsdoctor/types" "1.3.11" - "@rsdoctor/utils" "1.3.11" - browserslist-load-config "^1.0.1" - enhanced-resolve "5.12.0" - es-toolkit "^1.41.0" - filesize "^10.1.6" +"@rsdoctor/client@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@rsdoctor/client/-/client-1.5.13.tgz#5ac34c06c0edc7405a8e95e80a22a3a893127c58" + integrity sha512-pGc+Y6irGROjPBOAt7fMAiZwwtzS7dS5txcrioP8Q5MvJPGtcHxQ56IiUPl5i5faHBo0RSCwBESnslQPwjRGcg== + +"@rsdoctor/core@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@rsdoctor/core/-/core-1.5.13.tgz#d6e808cc9f67d54d57fd41c8a83d7ebe3933eaeb" + integrity sha512-ZeJMUidUYAxA+Y48A+aAEyo0Pe1aIezv452y/z+eweI0V/MF4/uMcNTxaHuWYItKzP0XNr0/QStJTsfLSORzxQ== + dependencies: + "@rsbuild/plugin-check-syntax" "^1.6.1" + "@rsdoctor/graph" "1.5.13" + "@rsdoctor/sdk" "1.5.13" + "@rsdoctor/types" "1.5.13" + "@rsdoctor/utils" "1.5.13" + "@rspack/resolver" "^0.2.8" + browserslist-load-config "^1.0.2" + es-toolkit "^1.47.0" + filesize "^11.0.17" fs-extra "^11.1.1" - semver "^7.7.3" + semver "^7.7.4" source-map "^0.7.6" -"@rsdoctor/graph@1.3.11": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/graph/-/graph-1.3.11.tgz#a034e4548d0199283d916b4251b1a731510a71e2" - integrity sha512-GlvF0JTTRImitVQC78q0/rIdFdgHb8jIr0Ff6nGIYq8iro+LsHuR40BrN+Y7ezB+YN7+anFqx2ksjcH9EY0W2w== +"@rsdoctor/graph@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@rsdoctor/graph/-/graph-1.5.13.tgz#fe9e34725b449d81d3c4a9a4925d08db02f657a4" + integrity sha512-sImaFcLTg27m7PO5WOaH3ati3Vw64fvszBANae3ONXqb6F9EqpyLzyXTw7djqyvfVZsNObw+9LLmKJNevEmuyg== dependencies: - "@rsdoctor/types" "1.3.11" - "@rsdoctor/utils" "1.3.11" - es-toolkit "^1.41.0" + "@rsdoctor/types" "1.5.13" + "@rsdoctor/utils" "1.5.13" + es-toolkit "^1.47.0" path-browserify "1.0.1" source-map "^0.7.6" -"@rsdoctor/rspack-plugin@^1.3.11": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/rspack-plugin/-/rspack-plugin-1.3.11.tgz#495f3d7b715abaed86e31c90e2c92a533129402d" - integrity sha512-1hQNdFQR03DibAp3wf8xcFLejEGKYLEm0ceaPJrnBP41mmkG1zRK3K/mND3eHpG+w28Gs8EouR5HqFjG5lu5Pw== - dependencies: - "@rsdoctor/core" "1.3.11" - "@rsdoctor/graph" "1.3.11" - "@rsdoctor/sdk" "1.3.11" - "@rsdoctor/types" "1.3.11" - "@rsdoctor/utils" "1.3.11" - -"@rsdoctor/sdk@1.3.11": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/sdk/-/sdk-1.3.11.tgz#bc50f94a8589ee27f2c73a0f9ff2b7c0293a3ae0" - integrity sha512-4S+KXAzRdFff56bq1KZ/x7oyepBcEfz7sGjs94V3NoKbvZKvc/5MxyVSWGf58Uubjj0fzDWR5FYagwGEEEviug== - dependencies: - "@rsdoctor/client" "1.3.11" - "@rsdoctor/graph" "1.3.11" - "@rsdoctor/types" "1.3.11" - "@rsdoctor/utils" "1.3.11" +"@rsdoctor/rspack-plugin@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@rsdoctor/rspack-plugin/-/rspack-plugin-1.5.13.tgz#642c5611493fdffd4608722b2ad5f8b4c5edc07d" + integrity sha512-eYSrfW+8+A5BXynHryWizbwvTKXpItpANi3Mf8+XhCaxdi6zVDaND9RWt9vj4IBBaTMNH9M7j2TCsiP9TfcLCg== + dependencies: + "@rsdoctor/core" "1.5.13" + "@rsdoctor/graph" "1.5.13" + "@rsdoctor/sdk" "1.5.13" + "@rsdoctor/types" "1.5.13" + "@rsdoctor/utils" "1.5.13" + +"@rsdoctor/sdk@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@rsdoctor/sdk/-/sdk-1.5.13.tgz#152ec6e4b233343fb677b812840afc3879bf57ad" + integrity sha512-KCcKSR9B6cKUj3J0+EqzYf4up34WldD2MP2iUfUzGR+9OI/OSGzuirFMlGzV9cSFHWj0iJ5ydGSrXFvWDwmLkg== + dependencies: + "@rsdoctor/client" "1.5.13" + "@rsdoctor/graph" "1.5.13" + "@rsdoctor/types" "1.5.13" + "@rsdoctor/utils" "1.5.13" + launch-editor "^2.13.2" safer-buffer "2.1.2" socket.io "4.8.1" - tapable "2.2.3" + tapable "2.3.3" -"@rsdoctor/types@1.3.11": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/types/-/types-1.3.11.tgz#cd593291bf6faae3254302ac62ca67e181b75499" - integrity sha512-qQG92tmrDp/qd08Qu1zXjV0zZQabVH0qYYVR0AAPMfAoPhg2Q5pp9dtuK2197jKpzjBV8dLDAisXTqRbt6+tCg== +"@rsdoctor/types@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@rsdoctor/types/-/types-1.5.13.tgz#031870ba3dc3d2460232d8d0365ef1b016c1ccc6" + integrity sha512-XBrxFQ45eB3QsF1B2P3AMowUis2cbDmFLOu8brtDovGTYypEiUlMAmVsdIhXKJrljkv47+j7GgTmUSUBarLM1g== dependencies: "@types/connect" "3.4.38" "@types/estree" "1.0.5" - "@types/tapable" "2.2.7" + "@types/tapable" "2.3.0" source-map "^0.7.6" -"@rsdoctor/utils@1.3.11": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/utils/-/utils-1.3.11.tgz#20ca0f24f5af275673c1f3674bb243b521b518c3" - integrity sha512-PnU59Qphmtz+VDoDkoaJ8d9IkMcHPe7kClPCfVKHap0Uyv+X6pWVBOgZlSiAksSAGFWxP6zeu5SGHXoROFmOog== +"@rsdoctor/utils@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@rsdoctor/utils/-/utils-1.5.13.tgz#796bf115d14393b0aa63b4fdfc25bce1ec537e75" + integrity sha512-Z3O+92uRl6XrYJBDt2s0YAgkDszgjut85+kmM5wx+Z10Ha2o3ZmGp3FVLYBPz7TbKsay5RYxb2OLuJ39lrUQKg== dependencies: "@babel/code-frame" "7.26.2" - "@rsdoctor/types" "1.3.11" + "@rsdoctor/types" "1.5.13" "@types/estree" "1.0.5" acorn "^8.10.0" acorn-import-attributes "^1.9.5" - acorn-walk "8.3.4" + acorn-walk "8.3.5" deep-eql "4.1.4" - envinfo "7.19.0" + envinfo "7.21.0" fs-extra "^11.1.1" get-port "5.1.1" json-stream-stringify "3.0.1" lines-and-columns "2.0.4" picocolors "^1.1.1" - rslog "^1.2.11" + rslog "^2.1.2" strip-ansi "^6.0.1" -"@rspack/binding-darwin-arm64@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.7.11.tgz#ea43ac25a9ff99a9faf6c820f5d174a32974e95c" - integrity sha512-oduECiZVqbO5zlVw+q7Vy65sJFth99fWPTyucwvLJJtJkPL5n17Uiql2cYP6Ijn0pkqtf1SXgK8WjiKLG5bIig== - -"@rspack/binding-darwin-x64@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.11.tgz#5c724d91559d642d4a5e6aa4ed380c30bd0f64c0" - integrity sha512-a1+TtTE9ap6RalgFi7FGIgkJP6O4Vy6ctv+9WGJy53E4kuqHR0RygzaiVxCI/GMc/vBT9vY23hyrpWb3d1vtXA== - -"@rspack/binding-linux-arm64-gnu@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.11.tgz#429119939bbe9d51a72caf99cffb8febe0f870fe" - integrity sha512-P0QrGRPbTWu6RKWfN0bDtbnEps3rXH0MWIMreZABoUrVmNQKtXR6e73J3ub6a+di5s2+K0M2LJ9Bh2/H4UsDUA== - -"@rspack/binding-linux-arm64-musl@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.11.tgz#d939b8c2c5bf35380d3c860402f7063031ef469a" - integrity sha512-6ky7R43VMjWwmx3Yx7Jl7faLBBMAgMDt+/bN35RgwjiPgsIByz65EwytUVuW9rikB43BGHvA/eqlnjLrUzNBqw== - -"@rspack/binding-linux-x64-gnu@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.11.tgz#03567317a7e8cfc62d994dcf9683f932fd22054a" - integrity sha512-cuOJMfCOvb2Wgsry5enXJ3iT1FGUjdPqtGUBVupQlEG4ntSYsQ2PtF4wIDVasR3wdxC5nQbipOrDiN/u6fYsdQ== - -"@rspack/binding-linux-x64-musl@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.11.tgz#d93c93ea796eae1572b2353a50d58cc6218c53b6" - integrity sha512-CoK37hva4AmHGh3VCsQXmGr40L36m1/AdnN5LEjUX6kx5rEH7/1nEBN6Ii72pejqDVvk9anEROmPDiPw10tpFg== - -"@rspack/binding-wasm32-wasi@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.11.tgz#c90235032fb14de50baf535592069923c1308f4e" - integrity sha512-OtrmnPUVJMxjNa3eDMfHyPdtlLRmmp/aIm0fQHlAOATbZvlGm12q7rhPW5BXTu1yh+1rQ1/uqvz+SzKEZXuJaQ== - dependencies: - "@napi-rs/wasm-runtime" "1.0.7" - -"@rspack/binding-win32-arm64-msvc@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.11.tgz#0afcfde6a77cdf6fa6a85de4f8a39b94a593aab2" - integrity sha512-lObFW6e5lCWNgTBNwT//yiEDbsxm9QG4BYUojqeXxothuzJ/L6ibXz6+gLMvbOvLGV3nKgkXmx8GvT9WDKR0mA== - -"@rspack/binding-win32-ia32-msvc@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.11.tgz#46606834538e84cd0f95f19089695ab122d69586" - integrity sha512-0pYGnZd8PPqNR68zQ8skamqNAXEA1sUfXuAdYcknIIRq2wsbiwFzIc0Pov1cIfHYab37G7sSIPBiOUdOWF5Ivw== - -"@rspack/binding-win32-x64-msvc@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.11.tgz#e486a33fc1227ec9cbd70439ef1b32ead1faec68" - integrity sha512-EeQXayoQk/uBkI3pdoXfQBXNIUrADq56L3s/DFyM2pJeUDrWmhfIw2UFIGkYPTMSCo8F2JcdcGM32FGJrSnU0Q== - -"@rspack/binding@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/binding/-/binding-1.7.11.tgz#30f3e87242d9dcb3744edc22752cf24a9ceb4d61" - integrity sha512-2MGdy2s2HimsDT444Bp5XnALzNRxuBNc7y0JzyuqKbHBywd4x2NeXyhWXXoxufaCFu5PBc9Qq9jyfjW2Aeh06Q== +"@rspack/binding-darwin-arm64@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-2.0.8.tgz#77747530525e733070ec82737a2d85a49e6a2ab9" + integrity sha512-vCgbgH7B7qom+uID+RCZsTCOYFb9wC4/4+1U6rMfytrXGVJ72eNQs2tbdjOl0lb18CT3N/n+VkWynUiLk84GwA== + +"@rspack/binding-darwin-x64@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-x64/-/binding-darwin-x64-2.0.8.tgz#7068f50960cf868f1b7f580547fb35e17a6386b7" + integrity sha512-satPm2PD4B7jDTVlVAdvMVdUszwLvWUEnUDzLb77mvVkezKNDZmuhb+e8s+FfKs8hJpNbZ9VAejuA2rr8o985w== + +"@rspack/binding-linux-arm64-gnu@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-2.0.8.tgz#7bc02ad5c32ef4d8e48cc9bd4c23c34e8adeb0ae" + integrity sha512-pSI+npPQE/uDtiboqvcOIRJbEV2+B+H1xffmko/gw50la92oTUW60kVULFwsb6L0+GVCzIcwX3yq60GtYIn+Ug== + +"@rspack/binding-linux-arm64-musl@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-2.0.8.tgz#932b8a8b3eb0143ac2c5dcc11d66c5d021c79953" + integrity sha512-igjJ43yxWQ72GZqjDDZSSHax9/Vg+6rLMmOvFglTJUkQpB4Tyvu/YjW+WRjYj2xRw6blOjLxUSJWASvuSqqlvg== + +"@rspack/binding-linux-x64-gnu@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-2.0.8.tgz#77bd719b181c8069f6e42f2b8fb03c13e2330cb5" + integrity sha512-zrkoEOnqj1hOEBO5T2I/2Ts2HSJsYFh1qXwMpK4dMJFGGNWDfNeUa6/LF5uq3VINF3JUl7RL47AgrucoSZJXPA== + +"@rspack/binding-linux-x64-musl@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-2.0.8.tgz#fd7a279590e3f820cd4c5d0b90c01b8db3b828c4" + integrity sha512-6CtDaGZjNDvJd9TBp7a9zABbrPORO21W96+3ZcGBn0YNUPUk4ARxIxrTTpeJ/1F41QDM8AYIkGDdqEYMqTYBsA== + +"@rspack/binding-wasm32-wasi@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-2.0.8.tgz#5834ee787d43047f6e0d4d0c5666373ddc176d1f" + integrity sha512-Yf4SiqTUroT5Ju+te0YAY2xxKOb35tECsO21v7hYyGa705wrgoAK/MmF7enOvs9GR1iZIqgiLD/wxsIxl8GjJw== + dependencies: + "@emnapi/core" "1.10.0" + "@emnapi/runtime" "1.10.0" + "@napi-rs/wasm-runtime" "1.1.4" + +"@rspack/binding-win32-arm64-msvc@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-2.0.8.tgz#b2c10787f94090b990fd95d03a10d5fcd516d337" + integrity sha512-8NCuiQsAhXrwRBy57QZoypqrws/zLBkaQVGiB8hksr6v++8hNigNjqpQARLbd0iyMuHsQQ++8+auGk6xlDXmzw== + +"@rspack/binding-win32-ia32-msvc@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-2.0.8.tgz#b0ccd22aa1e9041a2ce686e5df509f7d9a7b7abf" + integrity sha512-bxiekytbX7V9KFAra+HkwtNWC6pYfHEBBZFpiT0xUs3mCFOmAAFVBsBSQsoCP9AdCEXoMAvNdnrHNw3iov4OZw== + +"@rspack/binding-win32-x64-msvc@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-2.0.8.tgz#1a04f556d652b2947d4189077b61b59e27872fbb" + integrity sha512-7zPs8YCe/ZVJTwd+5lpB0CP0tkn2pONf/T1ycmVY76u21Nrwt8mXQGc/2yH2eWP4B7fikYBr3hGr7mpR2fajqQ== + +"@rspack/binding@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/binding/-/binding-2.0.8.tgz#8f186cae84b46e859029f387309f9e92acf1291c" + integrity sha512-3uZ+y8aQxq33ty2srMxg2Nu0XuBI6vVrG50rkDaXqwWqOohfgGUSfFuQK7EnSUNy4aFUQlCG6NHialQHJov0wg== optionalDependencies: - "@rspack/binding-darwin-arm64" "1.7.11" - "@rspack/binding-darwin-x64" "1.7.11" - "@rspack/binding-linux-arm64-gnu" "1.7.11" - "@rspack/binding-linux-arm64-musl" "1.7.11" - "@rspack/binding-linux-x64-gnu" "1.7.11" - "@rspack/binding-linux-x64-musl" "1.7.11" - "@rspack/binding-wasm32-wasi" "1.7.11" - "@rspack/binding-win32-arm64-msvc" "1.7.11" - "@rspack/binding-win32-ia32-msvc" "1.7.11" - "@rspack/binding-win32-x64-msvc" "1.7.11" - -"@rspack/cli@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/cli/-/cli-1.7.11.tgz#efa9ab2bab2cb99454bb6b2c150c2bfd29315c04" - integrity sha512-vUnflkq4F654wTEpCd+L4RYVbet8L2lNqLMmAGIZvoZddlXm4Duvg+eqcFE9iF8plAjFflRcU7DhB7WZa76pwg== - dependencies: - "@discoveryjs/json-ext" "^0.5.7" - "@rspack/dev-server" "~1.1.5" - exit-hook "^4.0.0" - webpack-bundle-analyzer "4.10.2" - -"@rspack/core@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@rspack/core/-/core-1.7.11.tgz#8d7d77db3b71332afd22a9c90904fe18a6832e2c" - integrity sha512-rsD9b+Khmot5DwCMiB3cqTQo53ioPG3M/A7BySu8+0+RS7GCxKm+Z+mtsjtG/vsu4Tn2tcqCdZtA3pgLoJB+ew== - dependencies: - "@module-federation/runtime-tools" "0.22.0" - "@rspack/binding" "1.7.11" - "@rspack/lite-tapable" "1.1.0" - -"@rspack/dev-server@~1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@rspack/dev-server/-/dev-server-1.1.5.tgz#3d0f8d5256fe0b77ba6617b0e3c8fb5bcab3f081" - integrity sha512-cwz0qc6iqqoJhyWqxP7ZqE2wyYNHkBMQUXxoQ0tNoZ4YNRkDyQ4HVJ/3oPSmMKbvJk/iJ16u7xZmwG6sK47q/A== + "@rspack/binding-darwin-arm64" "2.0.8" + "@rspack/binding-darwin-x64" "2.0.8" + "@rspack/binding-linux-arm64-gnu" "2.0.8" + "@rspack/binding-linux-arm64-musl" "2.0.8" + "@rspack/binding-linux-x64-gnu" "2.0.8" + "@rspack/binding-linux-x64-musl" "2.0.8" + "@rspack/binding-wasm32-wasi" "2.0.8" + "@rspack/binding-win32-arm64-msvc" "2.0.8" + "@rspack/binding-win32-ia32-msvc" "2.0.8" + "@rspack/binding-win32-x64-msvc" "2.0.8" + +"@rspack/cli@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/cli/-/cli-2.0.8.tgz#40b73e886547ce2c720c9fd4e2bdcd8cd9dbf348" + integrity sha512-b7MrVE9kvCs8L7hhPdHR6AvQ5wyD3KeBYD+DZMynt+545rvJYnT11LVNjqQJqAYHrgBTmf+9CNPYmeJvEZesWw== + +"@rspack/core@2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@rspack/core/-/core-2.0.8.tgz#4e252c81fd501fccb2303085212fe5cba511d61d" + integrity sha512-+NLGJf8gZxihDmMFzjlly3toc2SMjeDmuvz0/Cai9AMdV4F+Pqcnt2BA9V4e3SY2jmhJQtPwgyyLtR1RiJO77g== + dependencies: + "@rspack/binding" "2.0.8" + +"@rspack/resolver-binding-darwin-arm64@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-0.2.8.tgz#531d85e372430fc78a517c118313efebfe259ea1" + integrity sha512-nTnK17kmxXEvR+WpOIZPSIzUFYeWCHoffgU9tvOLOwuTBH41kWnSQXXWu+AiMVwvJ6wdRO6Vo30hPhlXEG7Pyw== + +"@rspack/resolver-binding-darwin-x64@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-0.2.8.tgz#e9b6b696e55a6f4e379c0afac61995a36ba6b489" + integrity sha512-Aqr4TK2rA6XVYUOmM5YCtYyCMZhOIR53P4cOGgGARg99A7OuMBMzUL4r1n0M0Fx35v6/sSx1OBe+odHmPxksEg== + +"@rspack/resolver-binding-linux-arm64-gnu@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-0.2.8.tgz#23b45cd669ddcb4188428540f78b1877d9ab87da" + integrity sha512-wGvkxm2G4mNTztslaOzLzx5JuySQSy5DcOWEZxHcjJJzp5L3ODbYLK18HtUc6cvmaVOmjaGrrYPrqJJ0hHTVFg== + +"@rspack/resolver-binding-linux-arm64-musl@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-0.2.8.tgz#83d14814ba9813ca36379e3f55299fa045a11aed" + integrity sha512-EqRJ9zLQsLAvyDKJKVZ45BSqRIMS12f5HtJdy3KkAHU14ZmsGv8e5IKkwUZN5CNBRad8xVlOMMx3dOfF4whJzg== + +"@rspack/resolver-binding-linux-x64-gnu@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-0.2.8.tgz#c6df85dc8362cf665108d5411aad767a0a10831f" + integrity sha512-eXbeotNCTntL4/+mxJRVCxK63YeWzTfp0F3POeHJFSs6Nt0f2J/mZNFlasJmd6xm7zvE80h/HWOwbwjRBLcElA== + +"@rspack/resolver-binding-linux-x64-musl@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-0.2.8.tgz#9e4f0c45f6323a9a47d5bf354d6577bb2f6e5296" + integrity sha512-KWFHlOWGkT+eMngoUgPGXrDi+rU04VCh9jyk0U6Ot2RTWvhGxwKykjmLS+CWZI/EBrzr9A6g2U3jzKTMNz9oCw== + +"@rspack/resolver-binding-wasm32-wasi@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-0.2.8.tgz#2d4f1c8a38e61011b40d819b5cba439b38bd4e9e" + integrity sha512-I6GIhgICFViE88jejIV74oiiWHnpLpQ5ogaZM1ozM9KDnfqcHoX0IVEyrIh5KqA8iLDyhuoFSW+Hf0qN7VTBBQ== dependencies: - chokidar "^3.6.0" - http-proxy-middleware "^2.0.9" - p-retry "^6.2.0" - webpack-dev-server "5.2.2" - ws "^8.18.0" + "@napi-rs/wasm-runtime" "^1.1.1" -"@rspack/lite-tapable@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@rspack/lite-tapable/-/lite-tapable-1.1.0.tgz#3cfdafeed01078e116bd4f191b684c8b484de425" - integrity sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw== +"@rspack/resolver-binding-win32-arm64-msvc@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-0.2.8.tgz#93bee12af3cbed73f5e39648956b8b7be032f38e" + integrity sha512-ZXCt3qUfDAEbtc2sHpvxM7lNFZM+DxfblgXUIl3Jy6BuEZbHe1i6z+t9c34ayHoGTVbVSNCtaYuG/MaWdSnPHw== + +"@rspack/resolver-binding-win32-ia32-msvc@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-0.2.8.tgz#c438c01022a5760f4668fd1c5440087c09383cb1" + integrity sha512-2LRymjDK8MpUERD8CL0PPae5y2crU5TAg4T4EzpeL5jLARVq6izsEruiWzB6Y+D15vUYlvmgs2370GXVSB861w== + +"@rspack/resolver-binding-win32-x64-msvc@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-0.2.8.tgz#d6e3d0ba2a62b22acd60f360df5afcbcb63dbeb3" + integrity sha512-hzRpfbtvv4M4EVrKKIAaHDs5wT8lVcbSUjtwPs5u4IeLEix45nQPQ6ZQjmE4lIH0GP/3L3XQhZroYmTcH/xdsQ== + +"@rspack/resolver@^0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@rspack/resolver/-/resolver-0.2.8.tgz#ec63fb84cca40d4e1df47413bc0895ed4f7bb49c" + integrity sha512-FBWqdHhzS8mcf/WN4Ktzr7EaeaN+hsxbN98EweegX3924beZuY6H70CSFWCv1fIHAieCUv/9XCjKggHvhCsLwA== + optionalDependencies: + "@rspack/resolver-binding-darwin-arm64" "0.2.8" + "@rspack/resolver-binding-darwin-x64" "0.2.8" + "@rspack/resolver-binding-linux-arm64-gnu" "0.2.8" + "@rspack/resolver-binding-linux-arm64-musl" "0.2.8" + "@rspack/resolver-binding-linux-x64-gnu" "0.2.8" + "@rspack/resolver-binding-linux-x64-musl" "0.2.8" + "@rspack/resolver-binding-wasm32-wasi" "0.2.8" + "@rspack/resolver-binding-win32-arm64-msvc" "0.2.8" + "@rspack/resolver-binding-win32-ia32-msvc" "0.2.8" + "@rspack/resolver-binding-win32-x64-msvc" "0.2.8" "@rushstack/node-core-library@5.21.0": version "5.21.0" @@ -4542,23 +4387,6 @@ dependencies: any-observable "^0.3.0" -"@sideway/address@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" - integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" - integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - "@simple-git/args-pathspec@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@simple-git/args-pathspec/-/args-pathspec-1.0.3.tgz#9ef4a2ad5f49ab4056362d03f93f775b93118ca5" @@ -4571,16 +4399,16 @@ dependencies: "@simple-git/args-pathspec" "^1.0.3" -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== - "@sinclair/typebox@^0.27.8": version "0.27.10" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.10.tgz#beefe675f1853f73676aecc915b2bd2ac98c4fc6" integrity sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA== +"@sinclair/typebox@^0.34.0": + version "0.34.52" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.52.tgz#62f8a686e4ab28a8944902e2ad2d648312ef11cb" + integrity sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw== + "@sindresorhus/is@^4.0.0": version "4.6.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" @@ -4593,19 +4421,19 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== +"@sinonjs/commons@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: - "@sinonjs/commons" "^1.7.0" + type-detect "4.0.8" -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== +"@sinonjs/fake-timers@^15.4.0": + version "15.4.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-15.4.0.tgz#5d40c151a9e66075fe4520bec40bccfe54931962" + integrity sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA== dependencies: - "@sinonjs/commons" "^1.7.0" + "@sinonjs/commons" "^3.0.1" "@sinonjs/formatio@^3.2.1": version "3.2.2" @@ -5238,43 +5066,24 @@ lz-string "^1.4.4" pretty-format "^27.0.2" -"@testing-library/dom@^9.0.0": - version "9.3.4" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.4.tgz#50696ec28376926fec0a1bf87d9dbac5e27f60ce" - integrity sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^5.0.1" - aria-query "5.1.3" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.5.0" - pretty-format "^27.0.2" - -"@testing-library/jest-dom@^5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz#5e97c8f9a15ccf4656da00fecab505728de81e0c" - integrity sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg== +"@testing-library/jest-dom@^6.9.1": + version "6.9.1" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz#7613a04e146dd2976d24ddf019730d57a89d56c2" + integrity sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA== dependencies: - "@adobe/css-tools" "^4.0.1" - "@babel/runtime" "^7.9.2" - "@types/testing-library__jest-dom" "^5.9.1" + "@adobe/css-tools" "^4.4.0" aria-query "^5.0.0" - chalk "^3.0.0" css.escape "^1.5.1" - dom-accessibility-api "^0.5.6" - lodash "^4.17.15" + dom-accessibility-api "^0.6.3" + picocolors "^1.1.1" redent "^3.0.0" -"@testing-library/react@^14.0.0": - version "14.3.1" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.3.1.tgz#29513fc3770d6fb75245c4e1245c470e4ffdd830" - integrity sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ== +"@testing-library/react@^16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-16.3.2.tgz#672883b7acb8e775fc0492d9e9d25e06e89786d0" + integrity sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g== dependencies: "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^9.0.0" - "@types/react-dom" "^18.0.0" "@testing-library/user-event@^14.4.3": version "14.6.1" @@ -5294,11 +5103,6 @@ resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== -"@tootallnate/once@1", "@tootallnate/once@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-3.0.1.tgz#d580decb59cb41a15856387a86800838102daf44" - integrity sha512-VyMVKRrpHTT8PnotUeV8L/mDaMwD5DaAKCFLP73zAqAtvF0FCqky+Ki7BYbFCYQmqFyTe9316Ed5zS70QUR9eg== - "@tootallnate/quickjs-emscripten@^0.23.0": version "0.23.0" resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c" @@ -5336,6 +5140,13 @@ dependencies: tslib "^2.4.0" +"@tybys/wasm-util@^0.10.3": + version "0.10.3" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.3.tgz#015cba9e9dd47ce14d03d2a8c5d547bfb169665d" + integrity sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg== + dependencies: + tslib "^2.4.0" + "@types/archiver@^5.3.1": version "5.3.1" resolved "https://registry.yarnpkg.com/@types/archiver/-/archiver-5.3.1.tgz#02991e940a03dd1a32678fead4b4ca03d0e387ca" @@ -5353,12 +5164,7 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== -"@types/aria-query@^5.0.1": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" - integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.17": +"@types/babel__core@^7.1.17", "@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== @@ -5384,20 +5190,13 @@ "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": +"@types/babel__traverse@*": version "7.18.3" resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== dependencies: "@babel/types" "^7.3.0" -"@types/babel__traverse@^7.0.4": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74" - integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== - dependencies: - "@babel/types" "^7.28.2" - "@types/better-sqlite3@^7.6.13": version "7.6.13" resolved "https://registry.yarnpkg.com/@types/better-sqlite3/-/better-sqlite3-7.6.13.tgz#a72387f00d2f53cab699e63f2e2c05453cf953f0" @@ -5418,17 +5217,10 @@ "@types/connect" "*" "@types/node" "*" -"@types/bonjour@^3.5.13": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" - integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== - dependencies: - "@types/node" "*" - -"@types/browserslist@^4.15.0": - version "4.15.0" - resolved "https://registry.yarnpkg.com/@types/browserslist/-/browserslist-4.15.0.tgz#ba0265b33003a2581df1fc5f483321a30205f2d2" - integrity sha512-h9LyKErRGZqMsHh9bd+FE8yCIal4S0DxKTOeui56VgVXqa66TKiuaIUxCAI7c1O0LjaUzOTcsMyOpO9GetozRA== +"@types/browserslist@^4.15.4": + version "4.15.4" + resolved "https://registry.yarnpkg.com/@types/browserslist/-/browserslist-4.15.4.tgz#af14ad8a45caea875a5f922da6c9f71506d04b7b" + integrity sha512-gmSSW1GuQN9ZTDs0nmCT1ybj76N/+mSJAgVaNoEsxCCKs7yblsZsKY3Vt/L2VKtHL5dysWhwPDaawCr0y1gt0Q== dependencies: browserslist "*" @@ -5483,14 +5275,6 @@ dependencies: "@types/color-convert" "*" -"@types/connect-history-api-fallback@^1.5.4": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" - integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - "@types/connect@*", "@types/connect@3.4.38": version "3.4.38" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" @@ -5569,12 +5353,12 @@ resolved "https://registry.yarnpkg.com/@types/delete-empty/-/delete-empty-2.0.0.tgz#1647ae9e68f708a6ba778531af667ec55bc61964" integrity sha512-sq+kwx8zA9BSugT9N+Jr8/uWjbHMZ+N/meJEzRyT3gmLq/WMtx/iSIpvdpmBUi/cvXl6Kzpvve8G2ESkabFwmg== -"@types/dompurify@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-3.0.5.tgz#02069a2fcb89a163bacf1a788f73cb415dd75cb7" - integrity sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg== +"@types/dompurify@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-3.2.0.tgz#56610bf3e4250df57744d61fbd95422e07dfb840" + integrity sha512-Fgg31wv9QbLDA0SpTOXO3MaxySc4DKGLi8sna4/Utjo4r3ZRPdCt4UQee8BWr+Q5z21yifghREPJGYaEOEIACg== dependencies: - "@types/trusted-types" "*" + dompurify "*" "@types/duplexify@^3.6.0": version "3.6.1" @@ -5601,22 +5385,6 @@ "@types/cheerio" "*" "@types/react" "*" -"@types/eslint-scope@^3.7.7": - version "3.7.7" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" - integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - "@types/eslint@^7.2.13": version "7.29.0" resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" @@ -5625,14 +5393,19 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/eslint@^8.56.0": - version "8.56.12" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.12.tgz#1657c814ffeba4d2f84c0d4ba0f44ca7ea1ca53a" - integrity sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g== +"@types/eslint@^9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== dependencies: "@types/estree" "*" "@types/json-schema" "*" +"@types/esrecurse@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@types/esrecurse/-/esrecurse-4.3.1.tgz#6f636af962fbe6191b830bd676ba5986926bccec" + integrity sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw== + "@types/estree@*", "@types/estree@^1.0.8": version "1.0.8" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" @@ -5643,54 +5416,34 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/estree@^1.0.6": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" + integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== + "@types/expect@^1.20.4": version "1.20.4" resolved "https://registry.yarnpkg.com/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.0.tgz#74f47555b3d804b54cb7030e6f9aa0c7485cfc5b" - integrity sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express-serve-static-core@^4.17.21", "@types/express-serve-static-core@^4.17.33": - version "4.19.7" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz#f1d306dcc03b1aafbfb6b4fe684cce8a31cffc10" - integrity sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg== +"@types/express-serve-static-core@^5.0.0": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.2.tgz#19afe821c79f18d05946892bbd5b924b96c8a4f6" + integrity sha512-d3KvEXBSo/lOAMc2u6fkyDHBvetBHeqD7wm/AcXfLpSOQwlmG9D/aQ0SFswVjv05p7ullQS7Mjohj6/VdbZuTg== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/send" "*" -"@types/express@*", "@types/express@^5.0.3": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.5.tgz#3ba069177caa34ab96585ca23b3984d752300cdc" - integrity sha512-LuIQOcb6UmnF7C1PCFmEU1u2hmiHL43fgFQX67sN3H4Z+0Yk0Neo++mFsBjhOAuLzvlQeqAAkeDOZrJs9rzumQ== +"@types/express@^5.0.6": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" + integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^5.0.0" - "@types/serve-static" "^1" - -"@types/express@^4.17.21": - version "4.17.25" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.25.tgz#070c8c73a6fee6936d65c195dbbfb7da5026649b" - integrity sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "^1" - -"@types/extract-zip@^1.6.2": - version "1.6.2" - resolved "https://registry.yarnpkg.com/@types/extract-zip/-/extract-zip-1.6.2.tgz#5c7eb441c41136167a42b88b64051e6260c29e86" - integrity sha1-XH60QcQRNhZ6QriLZAUeYmDCnoY= + "@types/serve-static" "^2" "@types/fetch-mock@^7.3.1": version "7.3.5" @@ -5742,13 +5495,6 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": - version "4.1.9" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" - "@types/gulp-zip@^4.0.1": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/gulp-zip/-/gulp-zip-4.0.2.tgz#c686c9a16bff4bb2baa18436853e0eb49873ce1f" @@ -5829,13 +5575,6 @@ resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472" integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg== -"@types/http-proxy@^1.17.8": - version "1.17.17" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.17.tgz#d9e2c4571fe3507343cb210cd41790375e59a533" - integrity sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw== - dependencies: - "@types/node" "*" - "@types/inquirer@^7.3.1": version "7.3.3" resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-7.3.3.tgz#92e6676efb67fa6925c69a2ee638f67a822952ac" @@ -5849,11 +5588,16 @@ resolved "https://registry.yarnpkg.com/@types/intl-relativeformat/-/intl-relativeformat-2.1.1.tgz#76cc9ab1e0c289377373f06386f4e7bc29c5d71e" integrity sha512-JFNHwkk8gYc1RsLbDqluO3icRREuXIGL+7edNTNiWBTlw2/RUHN30nz7JHpQhfFomp6d6nWirXQsAtdi5qbW8g== -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== +"@types/istanbul-lib-coverage@^2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + "@types/istanbul-lib-report@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" @@ -5861,20 +5605,20 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== +"@types/istanbul-reports@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@*", "@types/jest@^28.1.8": - version "28.1.8" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" - integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw== +"@types/jest@*", "@types/jest@^30.0.0": + version "30.0.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-30.0.0.tgz#5e85ae568006712e4ad66f25433e9bdac8801f1d" + integrity sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA== dependencies: - expect "^28.0.0" - pretty-format "^28.0.0" + expect "^30.0.0" + pretty-format "^30.0.0" "@types/jquery@*", "@types/jquery@^3.3.31": version "3.5.14" @@ -5888,10 +5632,19 @@ resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-3.0.6.tgz#a04ca19e877687bd449f5ad37d33b104b71fdf95" integrity sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ== -"@types/js-yaml@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" - integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== +"@types/js-yaml@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2" + integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== + +"@types/jsdom@^21.1.7": + version "21.1.7" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-21.1.7.tgz#9edcb09e0b07ce876e7833922d3274149c898cfa" + integrity sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA== + dependencies: + "@types/node" "*" + "@types/tough-cookie" "*" + parse5 "^7.0.0" "@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" @@ -5903,11 +5656,6 @@ resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz#c0fb25e4d957e0ee2e497c1f553d7f8bb668fd75" integrity sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw== -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - "@types/json5@^0.0.30": version "0.0.30" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.30.tgz#44cb52f32a809734ca562e685c6473b5754a7818" @@ -5938,18 +5686,10 @@ "@types/node" "*" rxjs "^6.5.1" -"@types/loader-utils@^1.1.3": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@types/loader-utils/-/loader-utils-1.1.6.tgz#41a6e6750ad1938e0498394d23459f9a62c5c73a" - integrity sha512-0U4S5kLpm3Cu9YkO46JrmujS2abL2tWsxA1SR8km6X0a1E96tfPu34zRdQSZsJ6dfRYwQpmuKmy9Mx2Od7AXag== - dependencies: - "@types/node" "*" - "@types/webpack" "^4" - -"@types/lodash@4.14.165": - version "4.14.165" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.165.tgz#74d55d947452e2de0742bad65270433b63a8c30f" - integrity sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg== +"@types/lodash@4.17.24": + version "4.17.24" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.24.tgz#4ae334fc62c0e915ca8ed8e35dcc6d4eeb29215f" + integrity sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ== "@types/log-symbols@^2.0.0": version "2.0.0" @@ -6011,10 +5751,10 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/mocha@^7.0.2": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-7.0.2.tgz#b17f16cf933597e10d6d78eae3251e692ce8b0ce" - integrity sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w== +"@types/mocha@^10.0.10": + version "10.0.10" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" + integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== "@types/mock-fs@^4.10.0": version "4.13.1" @@ -6058,7 +5798,7 @@ "@types/node" "*" form-data "^4.0.4" -"@types/node-forge@^1.0.1", "@types/node-forge@^1.3.0": +"@types/node-forge@^1.0.1": version "1.3.14" resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.14.tgz#006c2616ccd65550560c2757d8472eb6d3ecea0b" integrity sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw== @@ -6108,28 +5848,23 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/parse-link-header@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/parse-link-header/-/parse-link-header-1.0.1.tgz#6eade790736a050b9242c7c6b2fceda9b3dc394a" - integrity sha512-E2+Go9rQgPbmpkeA2iFXTWSTxX38KXlXwcdiIbt71Oorqr+G5QtH4AhpuDdxwRVyiTzdUrHnaaIumW/LhiZwVg== +"@types/parse-link-header@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/parse-link-header/-/parse-link-header-2.0.3.tgz#37ad650d12aecb055b64c2d43ddb1534e356ad33" + integrity sha512-ffLAxD6Xqcf2gSbtEJehj8yJ5R/2OZqD4liodQvQQ+hhO4kg1mk9ToEZQPMtNTm/zIQj2GNleQbsjPp9+UQm4Q== "@types/pegjs@^0.10.1": version "0.10.3" resolved "https://registry.yarnpkg.com/@types/pegjs/-/pegjs-0.10.3.tgz#9e254036c6bf2254cd98caec447a1d79b6607bff" integrity sha512-C/ZkUNe7HONOaDHXfNTZOUzrOvOgrWdrJj1JZ3QTEPi5gOIygcjCpXyxpdJTKVvWFzbobajRbMbQY8d0WrZ6fg== -"@types/pngjs@^3.4.0": - version "3.4.2" - resolved "https://registry.yarnpkg.com/@types/pngjs/-/pngjs-3.4.2.tgz#8dc49b45fbcf18a5873179e3664f049388e39ecf" - integrity sha512-LJVPDraJ5YFEnMHnzxTN4psdWz1M61MtaAAWPn3qnDk5fvs7BAmmQ9pd3KPlrdrvozMyne4ktanD4pg0L7x1Pw== +"@types/pngjs@^6.0.5": + version "6.0.5" + resolved "https://registry.yarnpkg.com/@types/pngjs/-/pngjs-6.0.5.tgz#6dec2f7eb8284543ca4e423f3c09b119fa939ea3" + integrity sha512-0k5eKfrA83JOZPppLtS2C7OUtyNAl2wKNxfyYl9Q5g9lPkgBl/9hNyAu6HuEH2J4XmIv2znEpkDd0SaZVxW6iQ== dependencies: "@types/node" "*" -"@types/prettier@^2.0.2", "@types/prettier@^2.1.5": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" - integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA== - "@types/prop-types@*", "@types/prop-types@^15.7.3": version "15.7.4" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" @@ -6166,7 +5901,7 @@ dependencies: "@types/react" "*" -"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.0": +"@types/react-dom@^18.2.0": version "18.3.7" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.7.tgz#b89ddf2cd83b4feafcc4e2ea41afdfb95a0d194f" integrity sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ== @@ -6273,11 +6008,6 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== -"@types/retry@0.12.2": - version "0.12.2" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" - integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== - "@types/selenium-webdriver@^4.0.9": version "4.0.9" resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-4.0.9.tgz#12621e55b2ef8f6c98bd17fe23fa720c6cba16bd" @@ -6288,7 +6018,7 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== -"@types/send@*", "@types/send@<1": +"@types/send@*": version "0.17.6" resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25" integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og== @@ -6296,21 +6026,13 @@ "@types/mime" "^1" "@types/node" "*" -"@types/serve-index@^1.9.4": - version "1.9.4" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" - integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== - dependencies: - "@types/express" "*" - -"@types/serve-static@^1", "@types/serve-static@^1.15.5": - version "1.15.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" - integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== +"@types/serve-static@^2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a" + integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ== dependencies: "@types/http-errors" "*" "@types/node" "*" - "@types/send" "<1" "@types/sinon@^7.0.13": version "7.5.2" @@ -6327,18 +6049,6 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.5.tgz#d93dd29cdcd5801d90be968073b09a6b370780e4" integrity sha512-tAe4Q+OLFOA/AMD+0lq8ovp8t3ysxAOeaScnfNdZpUxaGl51ZMDEITxkvFl1STudQ58mz6gzVGl9VhMKhwRnZQ== -"@types/sockjs@^0.3.36": - version "0.3.36" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" - integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== - dependencies: - "@types/node" "*" - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - "@types/source-map-support@^0.5.3": version "0.5.4" resolved "https://registry.yarnpkg.com/@types/source-map-support/-/source-map-support-0.5.4.tgz#574ff6a8636bc0ebae78a8014136f749b3177d58" @@ -6346,17 +6056,10 @@ dependencies: source-map "^0.6.0" -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/strip-ansi@^5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@types/strip-ansi/-/strip-ansi-5.2.1.tgz#acd97f1f091e332bb7ce697c4609eb2370fa2a92" - integrity sha512-1l5iM0LBkVU8JXxnIoBqNvg+yyOXxPeN6DNoD+7A9AN1B8FhYPSeIXgyNqwIqg1uzipTgVC2hmuDzB0u9qw/PA== - dependencies: - strip-ansi "*" +"@types/stack-utils@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/strong-log-transformer@^1.0.0": version "1.0.0" @@ -6389,14 +6092,14 @@ dependencies: "@types/superagent" "*" -"@types/tapable@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-2.2.7.tgz#4b55aa23daca730d83f192dd0933409d5a0338e4" - integrity sha512-D6QzACV9vNX3r8HQQNTOnpG+Bv1rko+yEA82wKs3O9CQ5+XW7HI7TED17/UE7+5dIxyxZIWTxKbsBeF6uKFCwA== +"@types/tapable@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-2.3.0.tgz#69cf7d4be30ca662f4fc46b3a45d8a3df6f98c2d" + integrity sha512-oMnbAXeVo+KUnje3hzdORXUbfnzTfqD0H92mLl19NE5hFqH9Q4ktq+xehNSxcNeeLm1COopYwa0zeP6Iz+oIXg== dependencies: - tapable "^2.2.0" + tapable "^2.3.0" -"@types/tapable@^1", "@types/tapable@^1.0.6": +"@types/tapable@^1.0.6": version "1.0.8" resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== @@ -6406,7 +6109,7 @@ resolved "https://registry.yarnpkg.com/@types/tempy/-/tempy-0.2.0.tgz#8b7a93f6912aef25cc0b8d8a80ff974151478685" integrity sha512-YaX74QljqR45Xu7dd22wMvzTS+ItUiSyDl9XJl6WTgYNE09r2TF+mV2FDjWRM5Sdzf9C9dXRTUdz9J5SoEYxXg== -"@types/testing-library__jest-dom@^5.14.2", "@types/testing-library__jest-dom@^5.9.1": +"@types/testing-library__jest-dom@^5.14.2": version "5.14.3" resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz#ee6c7ffe9f8595882ee7bda8af33ae7b8789ef17" integrity sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw== @@ -6425,12 +6128,17 @@ resolved "https://registry.yarnpkg.com/@types/tinycolor2/-/tinycolor2-1.4.3.tgz#ed4a0901f954b126e6a914b4839c77462d56e706" integrity sha512-Kf1w9NE5HEgGxCRyIcRXR/ZYtDv0V8FVPtYHwLxl0O+maGX0erE77pQlD0gpP+/KByMZ87mOA79SjifhSB3PjQ== +"@types/tough-cookie@*": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== + "@types/tough-cookie@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.1.tgz#8f80dd965ad81f3e1bc26d6f5c727e132721ff40" integrity sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg== -"@types/trusted-types@*", "@types/trusted-types@^2.0.7": +"@types/trusted-types@^2.0.7": version "2.0.7" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== @@ -6440,13 +6148,6 @@ resolved "https://registry.yarnpkg.com/@types/type-detect/-/type-detect-4.0.1.tgz#3b0f5ac82ea630090cbf57c57a1bf5a63a29b9b6" integrity sha512-0+S1S9Iq0oJ9w9IaBC5W/z1WsPNDUIAJG+THGmqR4vUAxUPCzIY+dApTvyGsaBUWjafTDL0Dg8Z9+iRuk3/BQA== -"@types/uglify-js@*": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" - integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== - dependencies: - source-map "^0.6.1" - "@types/unist@*", "@types/unist@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" @@ -6472,11 +6173,6 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d" integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ== -"@types/uuid@^3.4.4": - version "3.4.10" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.10.tgz#637d3c8431f112edf6728ac9bdfadfe029540f48" - integrity sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A== - "@types/vinyl-fs@^2.4.11": version "2.4.12" resolved "https://registry.yarnpkg.com/@types/vinyl-fs/-/vinyl-fs-2.4.12.tgz#7b4673d9b4d5a874c8652d10f0f0265479014c8e" @@ -6494,38 +6190,12 @@ "@types/expect" "^1.20.4" "@types/node" "*" -"@types/webpack-env@^1.16.3": - version "1.16.3" - resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.3.tgz#b776327a73e561b71e7881d0cd6d34a1424db86a" - integrity sha512-9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw== - -"@types/webpack-sources@*": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" - integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.7.3" - -"@types/webpack@^4", "@types/webpack@^4.4.31": - version "4.41.32" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" - integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== - dependencies: - "@types/node" "*" - "@types/tapable" "^1" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - anymatch "^3.0.0" - source-map "^0.6.0" - "@types/write-pkg@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@types/write-pkg/-/write-pkg-3.1.0.tgz#f58767f4fb9a6a3ad8e95d3e9cd1f2d026ceab26" integrity sha512-JRGsPEPCrYqTXU0Cr+Yu7esPBE2yvH7ucOHr+JuBy0F59kglPvO5gkmtyEvf3P6dASSkScvy/XQ6SC1QEBFDuA== -"@types/ws@^8.5.10", "@types/ws@^8.5.12": +"@types/ws@^8.5.12": version "8.18.1" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== @@ -6544,17 +6214,10 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== -"@types/yargs@^16.0.0": - version "16.0.11" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.11.tgz#de958fb62e77fc383fa6cd8066eabdd13da88f04" - integrity sha512-sbtvk8wDN+JvEdabmZExoW/HNr1cB7D/j4LT08rMiuikfA7m/JNJg7ATQcgzs34zHnoScDkY0ZRSl29Fkmk36g== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.33" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" - integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== +"@types/yargs@^17.0.33": + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24" + integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== dependencies: "@types/yargs-parser" "*" @@ -6565,152 +6228,227 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^8.58.0": - version "8.58.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.0.tgz#ad40e492f1931f46da1bd888e52b9e56df9063aa" - integrity sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg== +"@types/yauzl@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-3.4.0.tgz#93de17db1589472d30b4e106c5e7711bcf32a5e9" + integrity sha512-NRPn5w6h8dhcnmx3YIRQcqMywY/+nND/uOkJessedcrowO3C0AssHp3tMJpxKAwOhFOo0OV1y9VtsC5hbKKBAw== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@^8.63.0": + version "8.63.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.63.0.tgz#0d85d0ec1a28b0e35f484cc8220a8bf084019e71" + integrity sha512-rvwSgqT+DHpWdzfSzPatRLm02a0GlESt++9iy3hLCDY4BgkaLcl8LBi9Yh7XGFBpwcBE/K3024QuXWTpbz4FfQ== dependencies: "@eslint-community/regexpp" "^4.12.2" - "@typescript-eslint/scope-manager" "8.58.0" - "@typescript-eslint/type-utils" "8.58.0" - "@typescript-eslint/utils" "8.58.0" - "@typescript-eslint/visitor-keys" "8.58.0" + "@typescript-eslint/scope-manager" "8.63.0" + "@typescript-eslint/type-utils" "8.63.0" + "@typescript-eslint/utils" "8.63.0" + "@typescript-eslint/visitor-keys" "8.63.0" ignore "^7.0.5" natural-compare "^1.4.0" ts-api-utils "^2.5.0" -"@typescript-eslint/parser@^8.58.0": - version "8.58.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.58.0.tgz#da04ece1967b6c2fe8f10c3473dabf3825795ef7" - integrity sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA== +"@typescript-eslint/parser@^8.63.0": + version "8.63.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.63.0.tgz#2993338c379903e6afc72c3532ae6e15b97334d4" + integrity sha512-gwh4gvvlaVDKKxyfxMG+Gnu1u9X0OQBwyGLkbwB65dIzBKnxeRiJlNFqlI3zwVhNXJIs6qV7mlFCn/BIajlVig== dependencies: - "@typescript-eslint/scope-manager" "8.58.0" - "@typescript-eslint/types" "8.58.0" - "@typescript-eslint/typescript-estree" "8.58.0" - "@typescript-eslint/visitor-keys" "8.58.0" + "@typescript-eslint/scope-manager" "8.63.0" + "@typescript-eslint/types" "8.63.0" + "@typescript-eslint/typescript-estree" "8.63.0" + "@typescript-eslint/visitor-keys" "8.63.0" debug "^4.4.3" -"@typescript-eslint/project-service@8.58.0": - version "8.58.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.58.0.tgz#66ceda0aabf7427aec3e2713fa43eb278dead2aa" - integrity sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg== +"@typescript-eslint/project-service@8.63.0": + version "8.63.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.63.0.tgz#01a3d0550a860127444a9939749ab434591cd71a" + integrity sha512-e5dh0/UI0ok53AlZ5wRkXCB32z/f2jUZqPR/ygAw5WYaSw8j9EoJWlS7wQjr/dmOaqWjnPIn2m+HhVPCMWGZVQ== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.58.0" - "@typescript-eslint/types" "^8.58.0" + "@typescript-eslint/tsconfig-utils" "^8.63.0" + "@typescript-eslint/types" "^8.63.0" debug "^4.4.3" -"@typescript-eslint/scope-manager@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" - integrity sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w== - dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" - -"@typescript-eslint/scope-manager@8.58.0": - version "8.58.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.58.0.tgz#e304142775e49a1b7ac3c8bf2536714447c72cab" - integrity sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ== +"@typescript-eslint/scope-manager@8.63.0": + version "8.63.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.63.0.tgz#c9cf7ecd234f7ec346f62e5c7d28dfaf4d507b4d" + integrity sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A== dependencies: - "@typescript-eslint/types" "8.58.0" - "@typescript-eslint/visitor-keys" "8.58.0" + "@typescript-eslint/types" "8.63.0" + "@typescript-eslint/visitor-keys" "8.63.0" -"@typescript-eslint/tsconfig-utils@8.58.0", "@typescript-eslint/tsconfig-utils@^8.58.0": - version "8.58.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.0.tgz#c5a8edb21f31e0fdee565724e1b984171c559482" - integrity sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A== +"@typescript-eslint/tsconfig-utils@8.63.0", "@typescript-eslint/tsconfig-utils@^8.63.0": + version "8.63.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.63.0.tgz#f7e1cf9a029bb71f4027ffa4194ba82afb564cd3" + integrity sha512-sUAbkulqBAsncKnbRP3+7CtQFRKicexnj7ZwNC6ddCR7EmrXvjvdCYMJbUIqMd6lwoEriZjwLo08aS5tSjVMHg== -"@typescript-eslint/type-utils@8.58.0": - version "8.58.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.58.0.tgz#ce0e72cd967ffbbe8de322db6089bd4374be352f" - integrity sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg== +"@typescript-eslint/type-utils@8.63.0": + version "8.63.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.63.0.tgz#9c00f362140186c588da86b3e10c212800b64b85" + integrity sha512-Nzzh/OGxVCOjObjaj1CQF2RUasyYy2Jfuh+zZ3PjLzG2fYRriAiZLib9UKtO+CpQAS3YHiAS+ckZDclwqI1TPA== dependencies: - "@typescript-eslint/types" "8.58.0" - "@typescript-eslint/typescript-estree" "8.58.0" - "@typescript-eslint/utils" "8.58.0" + "@typescript-eslint/types" "8.63.0" + "@typescript-eslint/typescript-estree" "8.63.0" + "@typescript-eslint/utils" "8.63.0" debug "^4.4.3" ts-api-utils "^2.5.0" -"@typescript-eslint/types@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" - integrity sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw== - -"@typescript-eslint/types@8.58.0", "@typescript-eslint/types@^8.58.0": - version "8.58.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.58.0.tgz#e94ae7abdc1c6530e71183c1007b61fa93112a5a" - integrity sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww== +"@typescript-eslint/types@8.63.0", "@typescript-eslint/types@^8.56.0", "@typescript-eslint/types@^8.63.0": + version "8.63.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.63.0.tgz#6b32b0a5913520554d81a986acfffba2d32b6963" + integrity sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q== -"@typescript-eslint/typescript-estree@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" - integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== +"@typescript-eslint/typescript-estree@8.63.0": + version "8.63.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.63.0.tgz#a6f9c9cd290e98203ad29850b0d72529dc83be73" + integrity sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@8.58.0": - version "8.58.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.0.tgz#ed233faa8e2f2a2e1357c3e7d553d6465a0ee59a" - integrity sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA== - dependencies: - "@typescript-eslint/project-service" "8.58.0" - "@typescript-eslint/tsconfig-utils" "8.58.0" - "@typescript-eslint/types" "8.58.0" - "@typescript-eslint/visitor-keys" "8.58.0" + "@typescript-eslint/project-service" "8.63.0" + "@typescript-eslint/tsconfig-utils" "8.63.0" + "@typescript-eslint/types" "8.63.0" + "@typescript-eslint/visitor-keys" "8.63.0" debug "^4.4.3" minimatch "^10.2.2" semver "^7.7.3" tinyglobby "^0.2.15" ts-api-utils "^2.5.0" -"@typescript-eslint/utils@8.58.0": - version "8.58.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.58.0.tgz#21a74a7963b0d288b719a4121c7dd555adaab3c3" - integrity sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA== +"@typescript-eslint/utils@8.63.0", "@typescript-eslint/utils@^8.0.0": + version "8.63.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.63.0.tgz#b6a6c8aff1cebd1de4410b3a42b7ec9ba6703f23" + integrity sha512-fUKaeAvrTuQg/Tgt3nliAUSZHJM6DlCcfyEmxCvlX8kieWSStBX+5O5Fnidtc3i2JrH+9c/GL4RY2iasd/GPTA== dependencies: "@eslint-community/eslint-utils" "^4.9.1" - "@typescript-eslint/scope-manager" "8.58.0" - "@typescript-eslint/types" "8.58.0" - "@typescript-eslint/typescript-estree" "8.58.0" + "@typescript-eslint/scope-manager" "8.63.0" + "@typescript-eslint/types" "8.63.0" + "@typescript-eslint/typescript-estree" "8.63.0" -"@typescript-eslint/utils@^5.10.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.17.0.tgz#549a9e1d491c6ccd3624bc3c1b098f5cfb45f306" - integrity sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA== +"@typescript-eslint/visitor-keys@8.63.0": + version "8.63.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.63.0.tgz#2853a8e33b52f23570338f96cc89cb223daabd44" + integrity sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw== dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/typescript-estree" "5.17.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" - integrity sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA== - dependencies: - "@typescript-eslint/types" "5.17.0" - eslint-visitor-keys "^3.0.0" - -"@typescript-eslint/visitor-keys@8.58.0": - version "8.58.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.0.tgz#2abd55a4be70fd55967aceaba4330b9ba9f45189" - integrity sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ== - dependencies: - "@typescript-eslint/types" "8.58.0" + "@typescript-eslint/types" "8.63.0" eslint-visitor-keys "^5.0.0" -"@ungap/structured-clone@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" - integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== +"@ungap/structured-clone@^1.3.0": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.3.tgz#094041e1a4cb1987f038335421281ac8be390bcc" + integrity sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg== + +"@unrs/resolver-binding-android-arm-eabi@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz#98a9fee62c01f209747a4ab5855f1ced38a6d03a" + integrity sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w== + +"@unrs/resolver-binding-android-arm64@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz#46b7e8a1393f907462324f1576e8883529acf066" + integrity sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ== + +"@unrs/resolver-binding-darwin-arm64@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz#0ea07b00e2583ab004b853d4c02ec5f0745d490c" + integrity sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w== + +"@unrs/resolver-binding-darwin-x64@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz#a2a6901ed58449b91b4438e582f6890cba956049" + integrity sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA== + +"@unrs/resolver-binding-freebsd-x64@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz#ebe6fe7f6706b7378ea4a48a024602e9c2f48f89" + integrity sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg== + +"@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz#e6040fedaa240124419d35b25b69c5fa15ddb499" + integrity sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A== + +"@unrs/resolver-binding-linux-arm-musleabihf@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz#d217a8fb59f659c131539326c140e7b62e3e3c6a" + integrity sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g== + +"@unrs/resolver-binding-linux-arm64-gnu@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz#edab13c46a45783a7e01351e113825c04f352e24" + integrity sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg== + +"@unrs/resolver-binding-linux-arm64-musl@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz#e5e195db1130f7d3b6aa2fd67b3c9fe1ea4859a0" + integrity sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA== + +"@unrs/resolver-binding-linux-loong64-gnu@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz#f01d22e091bae13016f4636698d9dcbbda775c3e" + integrity sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q== + +"@unrs/resolver-binding-linux-loong64-musl@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz#7d23efcb98adf076bfbcecc27b4212c36aa6697d" + integrity sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew== + +"@unrs/resolver-binding-linux-ppc64-gnu@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz#1f35f1eaa322f33cf2d96dac27f0626a93ffe2f6" + integrity sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg== + +"@unrs/resolver-binding-linux-riscv64-gnu@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz#674faa696f5ce96f214873946a1e2d6ca96723dd" + integrity sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A== + +"@unrs/resolver-binding-linux-riscv64-musl@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz#37835fdd0b472ecdcffccd4288f19018454b138c" + integrity sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w== + +"@unrs/resolver-binding-linux-s390x-gnu@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz#b6edf13db4bb0accdcd1ad482a4eea0301de9224" + integrity sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw== + +"@unrs/resolver-binding-linux-x64-gnu@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz#daddad00bf65a405202284da1eb1db8eb83b218f" + integrity sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ== + +"@unrs/resolver-binding-linux-x64-musl@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz#dfdff1e0c2bad25420b41c76a746011c3983b9bb" + integrity sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A== + +"@unrs/resolver-binding-openharmony-arm64@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz#ce07c4f5e7b42f7bfce45e7629b8659063aefefe" + integrity sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ== + +"@unrs/resolver-binding-wasm32-wasi@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz#82514f0506cfaf65f17fe16095f92d450e487183" + integrity sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A== + dependencies: + "@emnapi/core" "1.10.0" + "@emnapi/runtime" "1.10.0" + "@napi-rs/wasm-runtime" "^1.1.4" + +"@unrs/resolver-binding-win32-arm64-msvc@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz#521427dd59a8f4740ddd1dc7c3bc6af1aa1d260d" + integrity sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g== + +"@unrs/resolver-binding-win32-ia32-msvc@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz#05b63286ff2da37e0ce3083b8390884385efff62" + integrity sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g== + +"@unrs/resolver-binding-win32-x64-msvc@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz#72da0da48d72b1e87831b9c0308931d3f4669027" + integrity sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA== "@wdio/logger@^9.18.0": version "9.18.0" @@ -6723,159 +6461,11 @@ safe-regex2 "^5.0.0" strip-ansi "^7.1.0" -"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" - integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== - dependencies: - "@webassemblyjs/helper-numbers" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - -"@webassemblyjs/floating-point-hex-parser@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" - integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== - -"@webassemblyjs/helper-api-error@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" - integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== - -"@webassemblyjs/helper-buffer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" - integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== - -"@webassemblyjs/helper-numbers@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" - integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.13.2" - "@webassemblyjs/helper-api-error" "1.13.2" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" - integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== - -"@webassemblyjs/helper-wasm-section@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" - integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/wasm-gen" "1.14.1" - -"@webassemblyjs/ieee754@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" - integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" - integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" - integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== - -"@webassemblyjs/wasm-edit@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" - integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/helper-wasm-section" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-opt" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - "@webassemblyjs/wast-printer" "1.14.1" - -"@webassemblyjs/wasm-gen@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" - integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wasm-opt@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" - integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - -"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" - integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-api-error" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wast-printer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" - integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@xtuc/long" "4.2.2" - -"@webpack-cli/configtest@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.1.tgz#9f53b1b7946a6efc2a749095a4f450e2932e8356" - integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg== - -"@webpack-cli/info@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.1.tgz#2360ea1710cbbb97ff156a3f0f24556e0fc1ebea" - integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA== - dependencies: - envinfo "^7.7.3" - -"@webpack-cli/serve@^1.6.1": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.1.tgz#0de2875ac31b46b6c5bb1ae0a7d7f0ba5678dffe" - integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw== - "@xobotyi/scrollbar-width@^1.9.5": version "1.9.5" resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d" integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - "@xyflow/react@^12.8.2": version "12.8.2" resolved "https://registry.yarnpkg.com/@xyflow/react/-/react-12.8.2.tgz#3e0818699c8d29407bd6f77d88570d38ef513b46" @@ -6910,11 +6500,6 @@ resolved "https://registry.yarnpkg.com/@zip.js/zip.js/-/zip.js-2.8.16.tgz#2b84088c9637bc4df0dfceeda6d20c32477753c0" integrity sha512-kCjaXh50GCf9afcof6ekjXPKR//rBVIxNHJLSUaM3VAET2F0+hymgrK1GpInRIIFUpt+wsnUfgx2+bbrmc+7Tw== -abab@^2.0.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -6935,7 +6520,7 @@ accepts@^2.0.0: mime-types "^3.0.0" negotiator "^1.0.0" -accepts@~1.3.4, accepts@~1.3.8: +accepts@~1.3.4: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -6943,24 +6528,11 @@ accepts@~1.3.4, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - acorn-import-attributes@^1.9.5: version "1.9.5" resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== -acorn-import-phases@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" - integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== - acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -6975,27 +6547,39 @@ acorn-node@^1.6.1: acorn-walk "^7.0.0" xtend "^4.0.2" -acorn-walk@8.3.4, acorn-walk@^8.0.0, acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== +acorn-walk@8.3.5: + version "8.3.5" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496" + integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw== dependencies: acorn "^8.11.0" -acorn-walk@^7.0.0, acorn-walk@^7.1.1: +acorn-walk@^7.0.0: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^7.0.0, acorn@^7.1.1: +acorn-walk@^8.1.1: + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + dependencies: + acorn "^8.11.0" + +acorn@^7.0.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.10.0, acorn@^8.11.0, acorn@^8.15.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a" - integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== +acorn@^8.10.0, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.15.0, acorn@^8.16.0, acorn@^8.4.1: + version "8.17.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" + integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== + +adm-zip@^0.5.17: + version "0.5.18" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.5.18.tgz#283a05f2bf1e3fd315f0f31cde29b7a6e3c1619d" + integrity sha512-ufJnssQGbxzLNS1Ho9bCtX4rQKCCvoVuDLHoJyc3F9dOGDB4BkWs2Ci0kv53lqocAEQ/Cbi+I2XCsNYGqVYqng== after-all-results@^2.0.0: version "2.0.0" @@ -7016,6 +6600,11 @@ agent-base@6: dependencies: debug "4" +agent-base@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-9.0.0.tgz#ec9efb08314e1e75b0852d74aabf9a387f99834e" + integrity sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA== + agent-base@^7.1.0, agent-base@^7.1.2: version "7.1.3" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1" @@ -7067,7 +6656,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.4, ajv@^6.12.5, ajv@^6.14.0: +ajv@^6.12.4, ajv@^6.12.5: version "6.14.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.14.0.tgz#fd067713e228210636ebb08c60bd3765d6dbe73a" integrity sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw== @@ -7077,6 +6666,16 @@ ajv@^6.12.4, ajv@^6.12.5, ajv@^6.14.0: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.14.0: + version "6.15.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.15.0.tgz#07e982c74626167aa7a2495c53817892d7139492" + integrity sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ajv@^8.0.0, ajv@^8.0.1, ajv@^8.17.1, ajv@^8.9.0, ajv@~8.18.0: version "8.18.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.18.0.tgz#8864186b6738d003eb3a933172bb3833e10cefbc" @@ -7094,7 +6693,7 @@ ansi-colors@^1.0.1: dependencies: ansi-wrap "^0.1.0" -ansi-colors@^4.1.1, ansi-colors@^4.1.3: +ansi-colors@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== @@ -7104,7 +6703,7 @@ ansi-escapes@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -7118,12 +6717,7 @@ ansi-green@^0.1.1: dependencies: ansi-wrap "0.1.0" -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -ansi-regex@^2.0.0, ansi-regex@^3.0.0, ansi-regex@^5.0.1, ansi-regex@^6.0.1: +ansi-regex@^2.0.0, ansi-regex@^3.0.0, ansi-regex@^5.0.1, ansi-regex@^6.0.1, ansi-regex@^6.2.2: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== @@ -7147,12 +6741,12 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: +ansi-styles@^5.0.0, ansi-styles@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.2.1: +ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.3" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== @@ -7189,9 +6783,17 @@ any-observable@^0.3.0: resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== -anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" +anymatch@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" @@ -7211,11 +6813,6 @@ append-transform@^2.0.0: dependencies: default-require-extensions "^3.0.0" -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - arch@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" @@ -7279,20 +6876,17 @@ aria-hidden@^1.1.3: dependencies: tslib "^1.0.0" -aria-query@5.1.3, aria-query@^5.0.0: +aria-query@^5.0.0: version "5.1.3" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== dependencies: deep-equal "^2.0.5" -aria-query@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" - integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== - dependencies: - "@babel/runtime" "^7.10.2" - "@babel/runtime-corejs3" "^7.10.2" +aria-query@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" + integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== arr-diff@^4.0.0: version "4.0.0" @@ -7312,6 +6906,14 @@ array-buffer-byte-length@^1.0.0: call-bind "^1.0.2" is-array-buffer "^3.0.1" +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== + dependencies: + call-bound "^1.0.3" + is-array-buffer "^3.0.5" + array-differ@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" @@ -7322,17 +6924,12 @@ array-find-index@^1.0.2: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - array-from@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= -array-includes@^3.1.3, array-includes@^3.1.4: +array-includes@^3.1.3: version "3.1.4" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== @@ -7343,23 +6940,25 @@ array-includes@^3.1.3, array-includes@^3.1.4: get-intrinsic "^1.1.1" is-string "^1.0.7" -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= +array-includes@^3.1.6, array-includes@^3.1.8: + version "3.1.9" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.9.tgz#1f0ccaa08e90cdbc3eb433210f903ad0f17c3f3a" + integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== dependencies: - array-uniq "^1.0.1" + 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" array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - array.prototype.every@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.3.tgz#31f01b48e1160bc4b49ecab246bf7f765c6686f9" @@ -7391,7 +6990,19 @@ array.prototype.find@^2.2.2: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flat@^1.2.3, array.prototype.flat@^1.2.5: +array.prototype.findlast@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.2.3: version "1.2.5" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== @@ -7400,14 +7011,36 @@ array.prototype.flat@^1.2.3, array.prototype.flat@^1.2.5: define-properties "^1.1.3" es-abstract "^1.19.0" -array.prototype.flatmap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446" - integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA== +array.prototype.flat@^1.3.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" + integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.19.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" + +array.prototype.flatmap@^1.3.2, array.prototype.flatmap@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" + integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" + +array.prototype.tosorted@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== + dependencies: + 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" arraybuffer.prototype.slice@^1.0.2: version "1.0.2" @@ -7422,6 +7055,19 @@ arraybuffer.prototype.slice@^1.0.2: is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" +arraybuffer.prototype.slice@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" + integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== + 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" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -7489,10 +7135,10 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== ast-types@^0.13.4: version "0.13.4" @@ -7506,6 +7152,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" + integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== + async-value-promise@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/async-value-promise/-/async-value-promise-1.1.1.tgz#68957819e3eace804f3b4b69477e2bd276c15378" @@ -7577,12 +7228,17 @@ aws4@^1.11.0, aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axe-core@^4.0.2, axe-core@^4.3.5: +axe-core@^4.0.2: version "4.10.3" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.3.tgz#04145965ac7894faddbac30861e5d8f11bfd14fc" integrity sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg== -axios@^1.17.0, axios@^1.6.5: +axe-core@^4.10.0: + version "4.12.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.12.1.tgz#69fe2bf6dfc0b24973af91b1d8e945f79e1b7c44" + integrity sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA== + +axios@^1.16.0, axios@^1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/axios/-/axios-1.17.0.tgz#ae5a1164a4f719942cd73c67e6a3f62d3ccb8f2b" integrity sha512-J8SwNxprqqpbfenehxWYXE7CW+wM1BB4w3+N+g+/Wx40xM4rsLrfPmHHxSWIxJLYDgSY/HqlFPIYb2/S3rxafw== @@ -7592,90 +7248,56 @@ axios@^1.17.0, axios@^1.6.5: https-proxy-agent "^5.0.1" proxy-from-env "^2.1.0" -axobject-query@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" - integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== +axobject-query@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" + integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== b4a@^1.6.4: version "1.6.7" resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.7.tgz#a99587d4ebbfbd5a6e3b21bdb5d5fa385767abe4" integrity sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg== -babel-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" - integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== - dependencies: - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" - integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== +babel-jest@30.4.1, babel-jest@^30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-30.4.1.tgz#63cba904438bbe64c4cf0acdea87b0a45cb809fc" + integrity sha512-fATAbM8piYxkiXQp3RBXmZHxZVNJZAVXXfyeyCN2Tida3+qJ8ea9UxhiJ2y4fLO90ZImKt6k9FlcH2+rLkJGhw== dependencies: - "@jest/transform" "^28.1.3" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" + "@jest/transform" "30.4.1" + "@types/babel__core" "^7.20.5" + babel-plugin-istanbul "^7.0.1" + babel-preset-jest "30.4.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" slash "^3.0.0" -babel-loader@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-10.0.0.tgz#b9743714c0e1e084b3e4adef3cd5faee33089977" - integrity sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA== - dependencies: - find-up "^5.0.0" - babel-plugin-add-module-exports@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.4.tgz#6caa4ddbe1f578c6a5264d4d3e6c8a2720a7ca2b" integrity sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg== -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== +babel-plugin-istanbul@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz#d8b518c8ea199364cf84ccc82de89740236daf92" + integrity sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA== 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" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-instrument "^6.0.2" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" - integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-jest-hoist@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" - integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== +babel-plugin-jest-hoist@30.4.0: + version "30.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.4.0.tgz#f7d6a6d8f435808b56b45a81dc4b61a39e36794a" + integrity sha512-9EdtWM/sSfXLOGLwSn+GS6pIXyBnL07/8gyJlwFXjWy4DxMOyItqyUT29d4lQiS380EZwYlX7/At4PgBS+m2aA== dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" + "@types/babel__core" "^7.20.5" -babel-plugin-module-resolver@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.2.tgz#cdeac5d4aaa3b08dd1ac23ddbf516660ed2d293e" - integrity sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg== +babel-plugin-module-resolver@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.3.tgz#13f03cf29048ad7e0239e6a1c4dcc669d199f394" + integrity sha512-h8h6H71ZvdLJZxZrYkaeR30BojTaV7O9GfqacY14SNj5CNB8ocL9tydNzTC0JrnNN7vY3eJhwCmkDj7tuEUaqQ== dependencies: find-babel-config "^2.1.1" glob "^9.3.3" @@ -7683,29 +7305,37 @@ babel-plugin-module-resolver@^5.0.1: reselect "^4.1.7" resolve "^1.22.8" -babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" - integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== +babel-plugin-polyfill-corejs2@^0.4.14, babel-plugin-polyfill-corejs2@^0.4.15: + version "0.4.17" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz#198f970f1c99a856b466d1187e88ce30bd199d91" + integrity sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w== dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/compat-data" "^7.28.6" + "@babel/helper-define-polyfill-provider" "^0.6.8" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" - integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== +babel-plugin-polyfill-corejs3@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz#bb7f6aeef7addff17f7602a08a6d19a128c30164" + integrity sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" - core-js-compat "^3.33.1" + "@babel/helper-define-polyfill-provider" "^0.6.5" + core-js-compat "^3.43.0" -babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" - integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== +babel-plugin-polyfill-corejs3@^0.14.0: + version "0.14.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz#6ac08d2f312affb70c4c69c0fbba4cb417ee5587" + integrity sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.8" + core-js-compat "^3.48.0" + +babel-plugin-polyfill-regenerator@^0.6.5, babel-plugin-polyfill-regenerator@^0.6.6: + version "0.6.8" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz#8a6bfd5dd54239362b3d06ce47ac52b2d95d7721" + integrity sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.6.8" "babel-plugin-styled-components@>= 1.12.0", babel-plugin-styled-components@^2.0.2: version "2.0.6" @@ -7737,39 +7367,34 @@ babel-polyfill@^6.26.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== +babel-preset-current-node-syntax@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz#20730d6cdc7dda5d89401cab10ac6a32067acde6" + integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-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.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.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-top-level-await" "^7.8.3" - -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" - integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== - dependencies: - babel-plugin-jest-hoist "^27.5.1" - babel-preset-current-node-syntax "^1.0.0" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" -babel-preset-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" - integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== +babel-preset-jest@30.4.0: + version "30.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-30.4.0.tgz#295486c2ec1127b3dc7d0d2adaa72a1dcaaafccd" + integrity sha512-lBY4jxsNmCnSiu7kquw8ZC9F4+XLMOKypT3RnNHPvU2Kpd4W0xaPuLr5ZkRyOsvLYAY4yaW1ZwTW4xB7NIiZzg== dependencies: - babel-plugin-jest-hoist "^28.1.3" - babel-preset-current-node-syntax "^1.0.0" + babel-plugin-jest-hoist "30.4.0" + babel-preset-current-node-syntax "^1.2.0" babel-runtime@^6.26.0: version "6.26.0" @@ -7852,10 +7477,10 @@ base64url@^3.0.1: resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== -baseline-browser-mapping@^2.9.0: - version "2.9.19" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz#3e508c43c46d961eb4d7d2e5b8d1dd0f9ee4f488" - integrity sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg== +baseline-browser-mapping@^2.10.42: + version "2.10.42" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz#195dcc76baa269a497f0b07decace169fee9ac58" + integrity sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q== basic-auth@^2.0.1: version "2.0.1" @@ -7864,7 +7489,7 @@ basic-auth@^2.0.1: dependencies: safe-buffer "5.1.2" -basic-ftp@^5.0.2: +basic-ftp@^5.0.2, basic-ftp@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.3.1.tgz#3148ee9af43c0522514a4f973fecb1d3cbb6d71e" integrity sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw== @@ -7874,11 +7499,6 @@ batch-processor@1.0.0: resolved "https://registry.yarnpkg.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" integrity sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg= -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -7894,6 +7514,11 @@ better-sqlite3@^12.9.0: bindings "^1.5.0" prebuild-install "^7.1.1" +bezier-easing@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bezier-easing/-/bezier-easing-2.1.0.tgz#c04dfe8b926d6ecaca1813d69ff179b7c2025d86" + integrity sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig== + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -7940,11 +7565,6 @@ bluebird@3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== -bluebird@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" - integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== - bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -7965,28 +7585,20 @@ bn.js@^5.1.1, bn.js@^5.2.1, bn.js@^5.2.2: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== -body-parser@^2.2.1, body-parser@~1.20.3: - version "2.2.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.2.tgz#1a32cdb966beaf68de50a9dfbe5b58f83cb8890c" - integrity sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA== +body-parser@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.3.0.tgz#6d8662f4d8c336028b8ac9aa24251b0ca64ba437" + integrity sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw== dependencies: bytes "^3.1.2" - content-type "^1.0.5" + content-type "^2.0.0" debug "^4.4.3" - http-errors "^2.0.0" - iconv-lite "^0.7.0" + http-errors "^2.0.1" + iconv-lite "^0.7.2" on-finished "^2.4.1" - qs "^6.14.1" - raw-body "^3.0.1" - type-is "^2.0.1" - -bonjour-service@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" - integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== - dependencies: - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" + qs "^6.15.2" + raw-body "^3.0.2" + type-is "^2.1.0" boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" @@ -8013,10 +7625,17 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" +brace-expansion@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.2.tgz#0bba2271feb7d458b0d31ad13625aaa4754431e2" + integrity sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA== + dependencies: + balanced-match "^1.0.0" + brace-expansion@^5.0.2, brace-expansion@^5.0.5: - version "5.0.6" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.6.tgz#ec68fe0a641a29d8711579caf641d05bae1f2285" - integrity sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g== + version "5.0.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.7.tgz#1b0e46965b479dad65af737b4a02790a05498337" + integrity sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA== dependencies: balanced-match "^4.0.2" @@ -8044,11 +7663,6 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - browser-resolve@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" @@ -8123,28 +7737,28 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist-load-config@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserslist-load-config/-/browserslist-load-config-1.0.1.tgz#4e68dedc1678e1c280d703c6baefb3fea0abd2ff" - integrity sha512-orLR5HAoQugQNVUXUwNd+GAAwl3H64KLIwoMFBNW0AbMSqX2Lxs4ZV2/5UoNrVQlQqF9ygychiu7Svr/99bLtg== +browserslist-load-config@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/browserslist-load-config/-/browserslist-load-config-1.0.3.tgz#cb82d3ba1300f1ef7bef787e7bd428d14e4f3925" + integrity sha512-boNaPS4KlW6AITZQ60G+1oDJLuxauljDd7QNQFOYpRtldzcTDknMZ8awbwI0BT/8h1/Y/CG4k/tDOLip9lAGcg== -browserslist-to-es-version@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserslist-to-es-version/-/browserslist-to-es-version-1.2.0.tgz#b73c00c8a042714e7d738c73dbd01a76f9c8bab6" - integrity sha512-wZpJM7QUP33yPzWDzMLgTFZzb3WC6f7G13gnJ5p8PlFz3Xm9MUwArRh9jgE0y4/Sqo6CKtsNxyGpVf5zLWgAhg== +browserslist-to-es-version@^1.2.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/browserslist-to-es-version/-/browserslist-to-es-version-1.4.2.tgz#0ccf422e531d6525cc8b875859c6cc4a766caeb2" + integrity sha512-3NV13pCv0wmPxxZZcekHAG6vt8rQ94w2c4/UBe3ZU3NDUm5TP+QFK3rjS6XeKWSHWpnPYNfQzlhnljka0BrEOA== dependencies: - browserslist "^4.26.2" + browserslist "^4.28.2" -browserslist@*, browserslist@^4.21.10, browserslist@^4.21.5, browserslist@^4.22.1, browserslist@^4.24.0, browserslist@^4.26.2, browserslist@^4.28.1: - version "4.28.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" - integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== +browserslist@*, browserslist@^4.21.5, browserslist@^4.24.0, browserslist@^4.28.1, browserslist@^4.28.2, browserslist@^4.28.5: + version "4.28.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.5.tgz#438b7d38c0d4b47740bbb36778d5bdca01b37838" + integrity sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ== dependencies: - baseline-browser-mapping "^2.9.0" - caniuse-lite "^1.0.30001759" - electron-to-chromium "^1.5.263" - node-releases "^2.0.27" - update-browserslist-db "^1.2.0" + baseline-browser-mapping "^2.10.42" + caniuse-lite "^1.0.30001800" + electron-to-chromium "^1.5.387" + node-releases "^2.0.50" + update-browserslist-db "^1.2.3" bser@2.1.1: version "2.1.1" @@ -8199,42 +7813,11 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= -bundle-name@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" - integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== - dependencies: - run-applescript "^7.0.0" - -bytes@3.1.2, bytes@^3.1.2, bytes@~3.1.2: +bytes@^3.1.2, bytes@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== - dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" - fs-minipass "^2.0.0" - glob "^7.1.4" - graceful-fs "^4.2.2" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" - promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" - unique-filename "^1.1.1" - cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" @@ -8286,6 +7869,16 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.8: get-intrinsic "^1.2.4" set-function-length "^1.2.2" +call-bind@^1.0.7, call-bind@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.9.tgz#39a644700c80bc7d0ca9102fc6d1d43b2fd7eee7" + integrity sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + get-intrinsic "^1.3.0" + set-function-length "^1.2.2" + call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" @@ -8294,7 +7887,7 @@ call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: call-bind-apply-helpers "^1.0.2" get-intrinsic "^1.3.0" -callsites@^3.0.0: +callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== @@ -8308,7 +7901,7 @@ camelcase-keys@^6.2.2: map-obj "^4.0.0" quick-lru "^4.0.1" -camelcase@6, camelcase@^6.0.0, camelcase@^6.2.0: +camelcase@6, camelcase@^6.0.0, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -8323,10 +7916,10 @@ camelize@^1.0.0: resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= -caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001759: - version "1.0.30001766" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz#b6f6b55cb25a2d888d9393104d14751c6a7d6f7a" - integrity sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA== +caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001800: + version "1.0.30001803" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001803.tgz#b2a5d696e042bc8304dcd4942c39fe330fbbcb24" + integrity sha512-g/uHREV2ZpK9qMalCsWaxmA6ol+DX8GYhuf3T40RKoP+oL7vhRJh8LNt73PCjpnR6l14FzfPrB5Yux4PKm2meg== caseless@~0.12.0: version "0.12.0" @@ -8338,13 +7931,6 @@ ccount@^1.0.0: resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== -centra@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/centra/-/centra-2.7.0.tgz#4c8312a58436e8a718302011561db7e6a2b0ec18" - integrity sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg== - dependencies: - follow-redirects "^1.15.6" - chai@3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" @@ -8382,7 +7968,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -8471,7 +8057,7 @@ cheerio@^1.0.0-rc.3: parse5-htmlparser2-tree-adapter "^6.0.1" tslib "^2.2.0" -chokidar@^3.4.0, chokidar@^3.4.2, chokidar@^3.5.3, chokidar@^3.6.0: +chokidar@^3.4.2, chokidar@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -8486,14 +8072,14 @@ chokidar@^3.4.0, chokidar@^3.4.2, chokidar@^3.5.3, chokidar@^3.6.0: optionalDependencies: fsevents "~2.3.2" -chokidar@^4.0.0: +chokidar@^4.0.0, chokidar@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== dependencies: readdirp "^4.0.1" -chownr@^1.1.1, chownr@^1.1.2: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -8503,47 +8089,42 @@ chownr@^3.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4" integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== -chroma-js@^2.1.0, chroma-js@^2.4.2: +chroma-js@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-2.4.2.tgz#dffc214ed0c11fa8eefca2c36651d8e57cbfb2b0" integrity sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A== -chrome-trace-event@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" - integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== - -chromedriver@^121.0.1: - version "121.0.2" - resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-121.0.2.tgz#208909a61e9d510913107ea6faf34bcdd72cdced" - integrity sha512-58MUSCEE3oB3G3Y/Jo3URJ2Oa1VLHcVBufyYt7vNfGrABSJm7ienQLF9IQ8LPDlPVgLUXt2OBfggK3p2/SlEBg== +chromedriver@^149: + version "149.0.4" + resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-149.0.4.tgz#45b14bb54b84269d87e36791e84de8ad8dd8cc2b" + integrity sha512-njPxWyJBNbFdsOhCWXWpdbrJEibb3DVnVB02ZI+3ZSVHDmPdw8xKdjZGoOQ5LfGj8ljNwlDwKp/DEvG7orHlfg== dependencies: "@testim/chrome-version" "^1.1.4" - axios "^1.6.5" + adm-zip "^0.5.17" + axios "^1.16.0" compare-versions "^6.1.0" - extract-zip "^2.0.1" - https-proxy-agent "^5.0.1" - proxy-from-env "^1.1.0" + proxy-agent "^8.0.1" + proxy-from-env "^2.0.0" tcp-port-used "^1.0.2" -chromium-bidi@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-7.1.1.tgz#22da11f1022f549e66cf86d213ebde427328576f" - integrity sha512-L2BKQ0rSLADgbPMIdDh3wnYHs3EiUiMay2Sq0CTolheaADmWIf6Pe+T9LJRcnh5rcMz0U7MVk0cQVvKsGRMa1g== +chromium-bidi@14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-14.0.0.tgz#15a12ab083ae519a49a724e94994ca0a9ced9c8e" + integrity sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw== dependencies: mitt "^3.0.1" zod "^3.24.1" -ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== - ci-info@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.2.0.tgz#cbd21386152ebfe1d56f280a3b5feccbd96764c7" integrity sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg== +ci-info@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.4.0.tgz#7d54eff9f54b45b62401c26032696eb59c8bd18c" + integrity sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.7" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.7.tgz#bd094bfef42634ccfd9e13b9fc73274997111e39" @@ -8553,11 +8134,16 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: safe-buffer "^5.2.1" to-buffer "^1.2.2" -cjs-module-lexer@^1.0.0, cjs-module-lexer@^1.2.2: +cjs-module-lexer@^1.2.2: version "1.4.3" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d" integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== +cjs-module-lexer@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz#b3ca5101843389259ade7d88c77bd06ce55849ca" + integrity sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ== + classcat@^5.0.3: version "5.0.5" resolved "https://registry.yarnpkg.com/classcat/-/classcat-5.0.5.tgz#8c209f359a93ac302404a10161b501eba9c09c77" @@ -8573,14 +8159,6 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -clean-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz#a99d8ec34c1c628a4541567aa7b457446460c62b" - integrity sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A== - dependencies: - "@types/webpack" "^4.4.31" - del "^4.1.1" - cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -8639,15 +8217,6 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -8746,10 +8315,10 @@ collapse-white-space@^1.0.2: resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== +collect-v8-coverage@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz#cc1f01eb8d02298cbc9a437c74c70ab4e5210b80" + integrity sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw== color-convert@^1.8.2, color-convert@^1.9.0: version "1.9.3" @@ -8796,7 +8365,7 @@ colord@^2.9.2: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== -colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16: +colorette@^2.0.16: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== @@ -8818,12 +8387,12 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@2, commander@^2.19.0, commander@^2.20.0: +commander@2, commander@^2.19.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@7, commander@^7.0.0, commander@^7.2.0: +commander@7: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== @@ -8833,21 +8402,21 @@ commander@^3.0.2: resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - commander@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -commander@^6.2.1: +commander@^6.2.0, commander@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +comment-parser@^1.4.1: + version "1.4.7" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.7.tgz#f0e05275a94253814fddd4c22fcf2cc4a117116e" + integrity sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ== + comment-stripper@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/comment-stripper/-/comment-stripper-0.0.4.tgz#e8d61366d362779ea225c764f05cca6c950f8a2c" @@ -8895,13 +8464,6 @@ compress-commons@^4.1.0: normalize-path "^3.0.0" readable-stream "^3.6.0" -compressible@~2.0.18: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - compression-webpack-plugin@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-11.1.0.tgz#ee340d2029cf99ccecdea9ad1410b377d15b48b3" @@ -8910,29 +8472,11 @@ compression-webpack-plugin@^11.1.0: schema-utils "^4.2.0" serialize-javascript "^6.0.2" -compression@^1.7.4: - version "1.8.0" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.0.tgz#09420efc96e11a0f44f3a558de59e321364180f7" - integrity sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA== - dependencies: - bytes "3.1.2" - compressible "~2.0.18" - debug "2.6.9" - negotiator "~0.6.4" - on-headers "~1.0.2" - safe-buffer "5.2.1" - vary "~1.1.2" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -8955,19 +8499,17 @@ content-disposition@^1.0.0: dependencies: safe-buffer "5.2.1" -content-disposition@~0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@^1.0.5, content-type@~1.0.4: +content-type@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0: +content-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-2.0.0.tgz#2fb3ede69dffa0af78ca7c4ce7589680638b56df" + integrity sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ== + +convert-source-map@^1.5.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== @@ -8984,12 +8526,7 @@ cookie-signature@^1.2.1: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.2.tgz#57c7fc3cc293acab9fec54d73e15690ebe4a1793" integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg== -cookie-signature@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454" - integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== - -cookie@^0.7.1, cookie@~0.7.1, cookie@~0.7.2: +cookie@^0.7.1, cookie@~0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== @@ -9006,18 +8543,6 @@ copy-anything@^2.0.1: dependencies: is-what "^3.14.1" -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - 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" - copy-to-clipboard@^3.3.1: version "3.3.3" resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" @@ -9025,17 +8550,12 @@ copy-to-clipboard@^3.3.1: dependencies: toggle-selection "^1.0.6" -core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.33.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.2.tgz#3ea4563bfd015ad4e4b52442865b02c62aba5085" - integrity sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw== +core-js-compat@^3.43.0, core-js-compat@^3.48.0: + version "3.49.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.49.0.tgz#06145447d92f4aaf258a0c44f24b47afaeaffef6" + integrity sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA== dependencies: - browserslist "^4.22.1" - -core-js-pure@^3.48.0: - version "3.48.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.48.0.tgz#7d5a3fe1ec3631b9aa76a81c843ac2ce918e5023" - integrity sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw== + browserslist "^4.28.1" core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.9: version "2.6.12" @@ -9160,7 +8680,7 @@ create-require@^1.1.0, create-require@^1.1.1: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3, cross-spawn@^7.0.5: +cross-spawn@^7.0.0, cross-spawn@^7.0.3, cross-spawn@^7.0.5: version "7.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82" integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug== @@ -9169,6 +8689,15 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3, cross-spawn@^7.0.5: shebang-command "^2.0.0" which "^2.0.1" +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@^3.12.1: version "3.12.1" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.1.tgz#bb8921bec9acc81633379aa8f52d69b0b69e0dac" @@ -9302,22 +8831,13 @@ cssfontparser@^1.2.1: resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" integrity sha1-9AIvyPlwDGgCnVQghK+69CWj8+M= -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== +cssstyle@^4.2.1: + version "4.6.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.6.0.tgz#ea18007024e3167f4f105315f3ec2d982bf48ed9" + integrity sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg== dependencies: - cssom "~0.3.6" + "@asamuzakjp/css-color" "^3.2.0" + rrweb-cssom "^0.8.0" csstype@^3.0.2, csstype@^3.1.2, csstype@^3.2.2: version "3.2.3" @@ -9380,7 +8900,14 @@ cypress@^13.6.0: dependencies: internmap "1 - 2" -d3-array@^1.2.0, d3-array@^1.2.4: +d3-array@2, d3-array@^2.3.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +d3-array@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== @@ -9392,12 +8919,12 @@ d3-cloud@1.2.5, d3-cloud@^1.2.5: dependencies: d3-dispatch "^1.0.3" -d3-collection@1, d3-collection@^1.0.7: +d3-collection@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== -d3-color@1, "d3-color@1 - 3", d3-color@^1.4.0, d3-color@^3.1.0: +"d3-color@1 - 2", "d3-color@1 - 3", d3-color@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== @@ -9450,10 +8977,10 @@ d3-force@^3.0.0: d3-quadtree "1 - 3" d3-timer "1 - 3" -d3-format@1: - version "1.4.5" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" - integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== +"d3-format@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" + integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== "d3-format@1 - 3", d3-format@^3.1.0: version "3.1.0" @@ -9481,13 +9008,6 @@ d3-hierarchy@^3.1.2: resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== -d3-interpolate@1, d3-interpolate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== - dependencies: - d3-color "1" - "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" @@ -9495,10 +9015,17 @@ d3-interpolate@1, d3-interpolate@^1.4.0: dependencies: d3-color "1 - 3" -d3-path@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== +"d3-interpolate@1.2.0 - 2": + version "2.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" + integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== + dependencies: + d3-color "1 - 2" + +"d3-path@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-2.0.0.tgz#55d86ac131a0548adae241eebfb56b4582dd09d8" + integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA== d3-path@^3.1.0: version "3.1.0" @@ -9518,18 +9045,16 @@ d3-scale-chromatic@^3.1.0: d3-color "1 - 3" d3-interpolate "1 - 3" -d3-scale@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.7.tgz#fa90324b3ea8a776422bd0472afab0b252a0945d" - integrity sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw== +d3-scale@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3" + integrity sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ== dependencies: - d3-array "^1.2.0" - d3-collection "1" - d3-color "1" - d3-format "1" - d3-interpolate "1" - d3-time "1" - d3-time-format "2" + d3-array "^2.3.0" + d3-format "1 - 2" + d3-interpolate "1.2.0 - 2" + d3-time "^2.1.1" + d3-time-format "2 - 3" d3-scale@^4.0.2: version "4.0.2" @@ -9547,12 +9072,12 @@ d3-scale@^4.0.2: resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== -d3-shape@^1.3.4: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== +d3-shape@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-2.1.0.tgz#3b6a82ccafbc45de55b57fcf956c584ded3b666f" + integrity sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA== dependencies: - d3-path "1" + d3-path "1 - 2" d3-shape@^3.2.0: version "3.2.0" @@ -9561,12 +9086,12 @@ d3-shape@^3.2.0: dependencies: d3-path "^3.1.0" -d3-time-format@2: - version "2.3.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850" - integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ== +"d3-time-format@2 - 3": + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6" + integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag== dependencies: - d3-time "1" + d3-time "1 - 2" "d3-time-format@2 - 4", d3-time-format@^4.1.0: version "4.1.0" @@ -9575,10 +9100,12 @@ d3-time-format@2: dependencies: d3-time "1 - 3" -d3-time@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" - integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== +"d3-time@1 - 2", d3-time@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.1.1.tgz#e9d8a8a88691f4548e68ca085e5ff956724a6682" + integrity sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ== + dependencies: + d3-array "2" "d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@^3.1.0: version "3.1.0" @@ -9619,15 +9146,7 @@ d3@3.5.17: resolved "https://registry.yarnpkg.com/d3/-/d3-3.5.17.tgz#bc46748004378b21a360c9fc7cf5231790762fb8" integrity sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g= -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -damerau-levenshtein@^1.0.7: +damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== @@ -9639,19 +9158,50 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-8.0.0.tgz#c642ffbc96d8fae76cccecbad43cbddd7818c785" + integrity sha512-6UHfyCux51b8PTGDgveqtz1tvphBku5DrMKKJbFAZAJOI2zsjDpDoYE1+QGj7FOMS4BdTFNJsJiR3zEB0xH0yQ== + data-uri-to-buffer@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b" integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw== -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== +data-urls@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde" + integrity sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg== + dependencies: + whatwg-mimetype "^4.0.0" + whatwg-url "^14.0.0" + +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" + call-bound "^1.0.2" + es-errors "^1.3.0" + is-data-view "^1.0.1" date-fns@^1.27.2: version "1.30.1" @@ -9668,18 +9218,6 @@ dayjs@^1.10.4: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== -debounce@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" - integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== - -debug@2.6.9, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" @@ -9701,6 +9239,13 @@ debug@4.3.1: dependencies: ms "2.1.2" +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + debug@^3.1.0, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -9750,15 +9295,15 @@ decamelize@^6.0.1: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-6.0.1.tgz#e858c37870153e1f733e92347ac3a3f009081ca7" integrity sha512-G7Cqgaelq68XHJNGlZ7lrNQyhZGsFqpwtGFexqUv4IQdjKoSYF7ipZ9UuTJZUSQXFj/XaoBLuEVIVqr8EJngEQ== -decimal.js@^10.2.1, decimal.js@^10.4.3: +decimal.js@^10.4.3, decimal.js@^10.5.0: version "10.6.0" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a" integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg== -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== +decode-uri-component@^0.4.1, decode-uri-component@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.5.0.tgz#4592fa1e1d640ec5e2760e2e168ad2ab5f2c9da1" + integrity sha512-1BiQVoK8C9gUbQU6NzAtO/tkz2qOFpEObMWpcFvhx4fYnj4Oc5yzaJN/LD36ihkVUdXyh5ZekzX+yM+ty/SrPg== decompress-response@^6.0.0: version "6.0.0" @@ -9772,6 +9317,11 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= +dedent@^1.6.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.2.tgz#34e2264ab538301e27cf7b07bf2369c19baa8dd9" + integrity sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA== + deep-eql@4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" @@ -9822,23 +9372,10 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -default-browser-id@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.1.tgz#f7a7ccb8f5104bf8e0f71ba3b1ccfa5eafdb21e8" - integrity sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q== - -default-browser@^5.2.1: - version "5.4.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.4.0.tgz#b55cf335bb0b465dd7c961a02cd24246aa434287" - integrity sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg== - dependencies: - bundle-name "^4.1.0" - default-browser-id "^5.0.0" +deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== default-require-extensions@^3.0.0: version "3.0.0" @@ -9868,12 +9405,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -9887,6 +9419,15 @@ defined@^1.0.0: resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= +degenerator@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-7.0.1.tgz#9b057747a2e5d058b0ef8fd753faccc109957467" + integrity sha512-ABErK0IefDSyHjlPH7WUEenIAX2rPPnrDcDM+TS3z3+zu9TfyKKi07BQM+8rmxpdE2y1v5fjjdoAS/x4D2U60w== + dependencies: + ast-types "^0.13.4" + escodegen "^2.1.0" + esprima "^4.0.1" + degenerator@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5" @@ -9904,19 +9445,6 @@ del-cli@^3.0.1: del "^5.1.0" meow "^6.1.1" -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - 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" - del@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" @@ -9966,16 +9494,11 @@ delete-empty@^2.0.0: relative "^3.0.2" rimraf "^2.6.2" -depd@2.0.0, depd@^2.0.0, depd@~2.0.0: +depd@^2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - dependency-check@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/dependency-check/-/dependency-check-4.1.0.tgz#d45405cabb50298f8674fe28ab594c8a5530edff" @@ -9999,11 +9522,6 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -10019,7 +9537,7 @@ detect-libc@^2.0.0, detect-libc@^2.0.1, detect-libc@^2.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== -detect-newline@^3.0.0: +detect-newline@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== @@ -10029,11 +9547,6 @@ detect-node-es@^1.1.0: resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - detective@^5.0.2: version "5.2.0" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" @@ -10043,10 +9556,10 @@ detective@^5.0.2: defined "^1.0.0" minimist "^1.1.1" -devtools-protocol@0.0.1464554: - version "0.0.1464554" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1464554.tgz#54d88398c99ad93fc81c35569fba9473b6e223d0" - integrity sha512-CAoP3lYfwAGQTaAXYvA6JZR0fjGUb7qec1qf4mToyoH2TZgUFeIqYcjh6f9jNuhHfuZiEdH+PONHYrLhRQX6aw== +devtools-protocol@0.0.1608973: + version "0.0.1608973" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1608973.tgz#56e0a2a999b06d416ee928ca06aeba95a5880515" + integrity sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ== dezalgo@^1.0.0, dezalgo@^1.0.4: version "1.0.4" @@ -10061,16 +9574,6 @@ diff-match-patch@^1.0.4: resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - -diff-sequences@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" - integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== - diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -10086,12 +9589,7 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.4.tgz#7a6dbfda325f25f07517e9b518f897c08332e07d" integrity sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ== -diff@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.2.tgz#0a4742797281d09cfa699b79ea32d27723623bad" - integrity sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A== - -diff@~8.0.2: +diff@^7.0.0, diff@^8.0.4, diff@~8.0.2: version "8.0.4" resolved "https://registry.yarnpkg.com/diff/-/diff-8.0.4.tgz#4f5baf3188b9b2431117b962eb20ba330fadf696" integrity sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw== @@ -10117,13 +9615,6 @@ discontinuous-range@1.0.0: resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= -dns-packet@^5.2.2: - version "5.6.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" - integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -10131,18 +9622,16 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: +dom-accessibility-api@^0.5.9: version "0.5.13" resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz#102ee5f25eacce09bdf1cfa5a298f86da473be4b" integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw== +dom-accessibility-api@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" + integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== + dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -10192,13 +9681,6 @@ domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" @@ -10220,10 +9702,10 @@ domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" -dompurify@^3.4.7: - version "3.4.7" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.7.tgz#e2702ea4fd5d83467f1baef62309466ce7d44a82" - integrity sha512-2jBxDJY4RR06tQNy4w5FlFH7kfxsQZlufd0sbv+chfHCxeJwrFw2baUDsSwvBISD4K4RDbd0PTfy3uNXsR6siA== +dompurify@*, dompurify@^3.4.11: + version "3.4.11" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.11.tgz#29c8ba496475f279ef4015784068452fb14a0680" + integrity sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw== optionalDependencies: "@types/trusted-types" "^2.0.7" @@ -10273,7 +9755,7 @@ dotignore@^0.1.2: dependencies: minimatch "^3.0.4" -dunder-proto@^1.0.1: +dunder-proto@^1.0.0, dunder-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== @@ -10282,7 +9764,7 @@ dunder-proto@^1.0.1: es-errors "^1.3.0" gopd "^1.2.0" -duplexer@^0.1.1, duplexer@^0.1.2: +duplexer@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== @@ -10307,6 +9789,11 @@ duplexify@^4.1.1, duplexify@^4.1.3: readable-stream "^3.1.1" stream-shift "^1.0.2" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -10335,15 +9822,15 @@ ejs@^3.1.10: dependencies: jake "^10.8.5" -elastic-apm-node@^4.10.0: - version "4.11.0" - resolved "https://registry.yarnpkg.com/elastic-apm-node/-/elastic-apm-node-4.11.0.tgz#55ba8a08a653b17ce8120f6a4e690d191d0450aa" - integrity sha512-QXYjOysgjjASJewDK40iUq8W4fdn/QsJtvl4wsxbSncRfcJCSYPaqfWbxN6YAMpOU0vLp5kBj6tdWPBMTaYrMg== +elastic-apm-node@^4.18.0: + version "4.18.0" + resolved "https://registry.yarnpkg.com/elastic-apm-node/-/elastic-apm-node-4.18.0.tgz#239cbffb67a0e09331a0d39425e377428280d7f7" + integrity sha512-qOjG+Z1pu7mwQESw9XsCBUPKqsrc6uOr8CYl7LE8iQlscviEs7P/3NtKuA/Jn5mktEM7NAZcdG3n+TCZRGJxmA== dependencies: "@elastic/ecs-pino-format" "^1.5.0" "@opentelemetry/api" "^1.4.1" - "@opentelemetry/core" "^1.11.0" - "@opentelemetry/sdk-metrics" "^1.12.0" + "@opentelemetry/core" "^2.8.0" + "@opentelemetry/sdk-metrics" "^2.8.0" after-all-results "^2.0.0" agentkeepalive "^4.2.1" async-value-promise "^1.1.1" @@ -10358,7 +9845,7 @@ elastic-apm-node@^4.10.0: fast-safe-stringify "^2.0.7" fast-stream-to-buffer "^1.0.0" http-headers "^3.0.2" - import-in-the-middle "1.12.0" + import-in-the-middle "1.15.0" json-bigint "^1.0.0" lru-cache "10.2.0" measured-reporting "^1.51.1" @@ -10370,7 +9857,7 @@ elastic-apm-node@^4.10.0: pino "^8.15.0" readable-stream "^3.6.2" relative-microtime "^2.0.0" - require-in-the-middle "^7.1.1" + require-in-the-middle "^8.0.0" semver "^7.5.4" shallow-clone-shim "^2.0.0" source-map "^0.8.0-beta.0" @@ -10387,10 +9874,10 @@ elasticsearch@^16.4.0, elasticsearch@^16.7.0: chalk "^1.0.0" lodash "^4.17.10" -electron-to-chromium@^1.5.263: - version "1.5.279" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.279.tgz#67dfdeb22fd81412d0d18d1d9b2c749e9b8945cb" - integrity sha512-0bblUU5UNdOt5G7XqGiJtpZMONma6WAfq9vsFmtn9x1+joAObr6x1chfqyxFSDCAFwFhCQDrqeAr6MYdpwJ9Hg== +electron-to-chromium@^1.5.387: + version "1.5.389" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.389.tgz#538be9ebec78026d4daba6be321ab854dfac2a8f" + integrity sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg== elegant-spinner@^1.0.1: version "1.0.1" @@ -10417,15 +9904,10 @@ elliptic@^6.5.3, elliptic@^6.6.1: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== emoji-regex@^10.3.0: version "10.6.0" @@ -10452,7 +9934,7 @@ emoticon@^3.2.0: resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-3.2.0.tgz#c008ca7d7620fac742fe1bf4af8ff8fed154ae7f" integrity sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg== -encodeurl@^2.0.0, encodeurl@~2.0.0: +encodeurl@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== @@ -10470,9 +9952,9 @@ engine.io-parser@~5.2.1: integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== engine.io@~6.6.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.6.7.tgz#60efa5b5b67167cdf93d64430c40a68bae9e4f21" - integrity sha512-DgOngfDKM2EviOH3Mr9m7ks1q8roetLy/IMmYthAYzbpInMbYc/GS+fWFA3rl1gvwKVsQrVV61fo5emD1y3OJQ== + version "6.6.9" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.6.9.tgz#fd17e9f4e3a256423592574b60ac262e91af4b82" + integrity sha512-clKkw4C7nJ22mGgoVcCg6V/W/TxdNyIOTr89k2ONZu81qqkddPFDF0LXcbAwhzPD8DjkiRCjzuiO6Y+fkpD4vg== dependencies: "@types/cors" "^2.8.12" "@types/node" ">=10.0.0" @@ -10483,15 +9965,7 @@ engine.io@~6.6.0: cors "~2.8.5" debug "~4.4.1" engine.io-parser "~5.2.1" - ws "~8.18.3" - -enhanced-resolve@5.12.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" + ws "~8.21.0" enhanced-resolve@^0.9.1: version "0.9.1" @@ -10502,7 +9976,15 @@ enhanced-resolve@^0.9.1: memory-fs "^0.2.0" tapable "^0.1.8" -enhanced-resolve@^5.17.4, enhanced-resolve@^5.19.0: +enhanced-resolve@^5.17.1: + version "5.24.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.24.1.tgz#b2439adf5d31d7e4764de1f9ecf942d6cd3fc874" + integrity sha512-7DdUaTjmNwMcH2gLr1qycesKII3BK4RLy/mdAb7x10Lq7bR4aNKHt1BR1ZALSv0rPM/hF5wYF0PhGop/rJm8vw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.3.3" + +enhanced-resolve@^5.19.0: version "5.19.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz#6687446a15e969eaa63c2fa2694510e17ae6d97c" integrity sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg== @@ -10543,10 +10025,10 @@ env-paths@^2.2.1: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -envinfo@7.19.0, envinfo@^7.7.3: - version "7.19.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.19.0.tgz#b4b4507a27e9900b0175f556167fd3a95f8623f1" - integrity sha512-DoSM9VyG6O3vqBf+p3Gjgr/Q52HYBBtO3v+4koAxt1MnWr+zEnxE+nke/yXS4lt2P4SYCHQ4V3f1i88LQVOpAw== +envinfo@7.21.0: + version "7.21.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.21.0.tgz#04a251be79f92548541f37d13c8b6f22940c3bae" + integrity sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow== enzyme-shallow-equal@^1.0.0, enzyme-shallow-equal@^1.0.1: version "1.0.7" @@ -10626,6 +10108,76 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.1.1" +es-abstract-get@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-abstract-get/-/es-abstract-get-1.0.0.tgz#1eae87101f42bedeb6a740e8c5051271aef89088" + integrity sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg== + dependencies: + es-errors "^1.3.0" + es-object-atoms "^1.1.2" + is-callable "^1.2.7" + object-inspect "^1.13.4" + +es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9, es-abstract@^1.24.0, es-abstract@^1.24.2: + version "1.24.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.2.tgz#2dbd38c180735ee983f77585140a2706a963ed9a" + integrity sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg== + 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" + es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.22.1: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" @@ -10700,10 +10252,27 @@ es-get-iterator@^1.1.1: is-string "^1.0.5" isarray "^2.0.5" -es-module-lexer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.0.0.tgz#f657cd7a9448dcdda9c070a3cb75e5dc1e85f5b1" - integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== +es-iterator-helpers@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.3.3.tgz#0a229dc38ada0450b8cfaa85809fd73dbb34113c" + integrity sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g== + dependencies: + call-bind "^1.0.9" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-abstract "^1.24.2" + es-errors "^1.3.0" + es-set-tostringtag "^2.1.0" + function-bind "^1.1.2" + get-intrinsic "^1.3.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" + internal-slot "^1.1.0" + iterator.prototype "^1.1.5" + math-intrinsics "^1.1.0" es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" @@ -10712,6 +10281,13 @@ es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: dependencies: es-errors "^1.3.0" +es-object-atoms@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz#a2d0b373205724dfa525d23b0c3e1b1ca582c99b" + integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== + dependencies: + es-errors "^1.3.0" + es-set-tostringtag@^2.0.1, es-set-tostringtag@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" @@ -10729,6 +10305,13 @@ es-shim-unscopables@^1.0.0: dependencies: hasown "^2.0.0" +es-shim-unscopables@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5" + integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== + dependencies: + hasown "^2.0.2" + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -10738,35 +10321,28 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es-toolkit@^1.41.0: - version "1.42.0" - resolved "https://registry.yarnpkg.com/es-toolkit/-/es-toolkit-1.42.0.tgz#c9e87c7e2d4759ca26887814e6bc780cf4747fc5" - integrity sha512-SLHIyY7VfDJBM8clz4+T2oquwTQxEzu263AyhVK4jREOAwJ+8eebaa4wM3nlvnAqhDrMm2EsA6hWHaQsMPQ1nA== - -es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@^0.10.63, es5-ext@~0.10.14: - version "0.10.64" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" - integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== +es-to-primitive@^1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.4.tgz#0c854291cf0d7b439d6b9e5771ea837ffaf1f991" + integrity sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw== dependencies: - es6-iterator "^2.0.3" - es6-symbol "^3.1.3" - esniff "^2.0.1" - next-tick "^1.1.0" + es-abstract-get "^1.0.0" + es-define-property "^1.0.1" + es-errors "^1.3.0" + is-callable "^1.2.7" + is-date-object "^1.1.0" + is-symbol "^1.1.1" + +es-toolkit@^1.47.0: + version "1.49.0" + resolved "https://registry.yarnpkg.com/es-toolkit/-/es-toolkit-1.49.0.tgz#93c5b031865792fc03cbf5bd20c132a4f976a52a" + integrity sha512-G5iZ6Pc/FNRY/soKZHC+TxGDD83rHUDXxzaWhGCX44vAv/tMs56WMusnm/KMNK+luUPsgA9U28cGr4RDlSzL2g== es6-error@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -es6-iterator@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - es6-promise@^4.0.3, es6-promise@^4.2.8: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -10779,20 +10355,12 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" -es6-symbol@^3.1.1, es6-symbol@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== -escape-html@^1.0.3, escape-html@~1.0.3: +escape-html@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== @@ -10817,7 +10385,7 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^2.0.0, escodegen@^2.1.0: +escodegen@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== @@ -10828,12 +10396,17 @@ escodegen@^2.0.0, escodegen@^2.1.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^6.11.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" - integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== +eslint-compat-utils@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz#7fc92b776d185a70c4070d03fd26fde3d59652e4" + integrity sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q== dependencies: - get-stdin "^6.0.0" + semver "^7.5.4" + +eslint-config-prettier@^10.1.8: + version "10.1.8" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz#15734ce4af8c2778cc32f0b01b37b0b5cd1ecb97" + integrity sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w== eslint-formatter-pretty@^4.1.0: version "4.1.0" @@ -10849,6 +10422,14 @@ eslint-formatter-pretty@^4.1.0: string-width "^4.2.0" supports-hyperlinks "^2.0.0" +eslint-import-context@^0.1.9: + version "0.1.9" + resolved "https://registry.yarnpkg.com/eslint-import-context/-/eslint-import-context-0.1.9.tgz#967b0b2f0a90ef4b689125e088f790f0b7756dbe" + integrity sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg== + dependencies: + get-tsconfig "^4.10.1" + stable-hash-x "^0.2.0" + eslint-import-resolver-node@0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" @@ -10857,14 +10438,6 @@ eslint-import-resolver-node@0.3.2: debug "^2.6.9" resolve "^1.5.0" -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - dependencies: - debug "^3.2.7" - resolve "^1.20.0" - eslint-import-resolver-webpack@0.13.8: version "0.13.8" resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.8.tgz#5f64d1d653eefa19cdfd0f0165c996b6be7012f9" @@ -10882,299 +10455,223 @@ eslint-import-resolver-webpack@0.13.8: resolve "^2.0.0-next.5" semver "^5.7.2" -eslint-module-utils@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz#cdf0b40d623032274ccd2abd7e64c4e524d6e19c" - integrity sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw== - dependencies: - debug "^2.6.9" - pkg-dir "^2.0.0" - -eslint-module-utils@^2.7.2: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== +eslint-module-utils@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.14.0.tgz#611f8e1c6ceb29a93eb949e1cc670b8287764819" + integrity sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig== dependencies: debug "^3.2.7" - find-up "^2.1.0" - -eslint-plugin-babel@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.1.tgz#75a2413ffbf17e7be57458301c60291f2cfbf560" - integrity sha512-VsQEr6NH3dj664+EyxJwO4FCYm/00JhYb3Sk3ft8o+fpKuIfQ9TaW6uVUfvwMXHcf/lsnRIoyFPsLMyiWCSL/g== - dependencies: - eslint-rule-composer "^0.3.0" - -eslint-plugin-ban@^1.4.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-ban/-/eslint-plugin-ban-1.6.0.tgz#f4e8e9b754b0f2c405f9747ea9fcb4be63c37d05" - integrity sha512-gZptoV+SFHOHO57/5lmPvizMvSXrjFatP9qlVQf3meL/WHo9TxSoERygrMlESl19CPh95U86asTxohT8OprwDw== - dependencies: - requireindex "~1.2.0" - -eslint-plugin-cypress@^2.8.1: - version "2.12.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.12.1.tgz#9aeee700708ca8c058e00cdafe215199918c2632" - integrity sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA== - dependencies: - globals "^11.12.0" -eslint-plugin-es@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" - integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== +eslint-plugin-cypress@^6.4.2: + version "6.4.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-6.4.2.tgz#fdc641737d243fde5dfca5e600a4074ecc2c5fd7" + integrity sha512-OIGJP5y6/cyMxBtMASP/iBM7Pv4ZHccE9uI8MhtAZDrdNDYDwHgKa/3Khrr+FGRr9hSIfNYstGRhSmbcLURWYA== dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" + globals "^17.7.0" -eslint-plugin-eslint-comments@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa" - integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ== +eslint-plugin-es-x@^7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz#a207aa08da37a7923f2a9599e6d3eb73f3f92b74" + integrity sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ== dependencies: - escape-string-regexp "^1.0.5" - ignore "^5.0.5" + "@eslint-community/eslint-utils" "^4.1.2" + "@eslint-community/regexpp" "^4.11.0" + eslint-compat-utils "^0.5.1" -eslint-plugin-import@^2.25.4: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== +eslint-plugin-import-x@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import-x/-/eslint-plugin-import-x-4.17.1.tgz#6e9211acd8e98d2da11f96c12c9c00aa49e3e035" + integrity sha512-4cdstYkKCyjumM2Q9NSI03K8D2a9F4Ssz33K2lv2hQa4KmR9jPLwk3uWGtNvclfqBrPGfGuMBwsGMbe6dMRbfg== dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" - has "^1.0.3" - is-core-module "^2.8.0" + "@typescript-eslint/types" "^8.56.0" + comment-parser "^1.4.1" + debug "^4.4.1" + eslint-import-context "^0.1.9" is-glob "^4.0.3" - minimatch "^3.0.4" - object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" - -eslint-plugin-jest@^26.1.1: - version "26.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.1.3.tgz#e722e5efeea18aa9dec7c7349987b641db19feb7" - integrity sha512-Pju+T7MFpo5VFhFlwrkK/9jRUu18r2iugvgyrWOnnGRaVTFFmFXp+xFJpHyqmjjLmGJPKLeEFLVTAxezkApcpQ== - dependencies: - "@typescript-eslint/utils" "^5.10.0" - -eslint-plugin-jsx-a11y@^6.2.3: - version "6.5.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" - integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== - dependencies: - "@babel/runtime" "^7.16.3" - aria-query "^4.2.2" - array-includes "^3.1.4" - ast-types-flow "^0.0.7" - axe-core "^4.3.5" - axobject-query "^2.2.0" - damerau-levenshtein "^1.0.7" + minimatch "^9.0.3 || ^10.1.2" + semver "^7.7.2" + stable-hash-x "^0.2.0" + unrs-resolver "^1.9.2" + +eslint-plugin-jest@^29.15.4: + version "29.15.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-29.15.4.tgz#0c5371fc87499c6c5c25d60095340d05e396f58b" + integrity sha512-6ln5i9Nkrb27X4w91ZPt/xHDsVQnvxTS2ntgq6r32u+8gymdUrp88TdcBXSveZW0Dl+M5v2H6K75kJhMvUGhjg== + dependencies: + "@typescript-eslint/utils" "^8.0.0" + +eslint-plugin-jsx-a11y@^6.10.2: + version "6.10.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz#d2812bb23bf1ab4665f1718ea442e8372e638483" + integrity sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q== + dependencies: + aria-query "^5.3.2" + array-includes "^3.1.8" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "^4.10.0" + axobject-query "^4.1.0" + damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.2.1" - language-tags "^1.0.5" - minimatch "^3.0.4" + hasown "^2.0.2" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + safe-regex-test "^1.0.3" + string.prototype.includes "^2.0.1" -eslint-plugin-mocha@^6.2.2: - version "6.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-6.3.0.tgz#72bfd06a5c4323e17e30ef41cd726030e8cdb8fd" - integrity sha512-Cd2roo8caAyG21oKaaNTj7cqeYRWW1I2B5SfpKRp0Ip1gkfwoR1Ow0IGlPWnNjzywdF4n+kHL8/9vM6zCJUxdg== +eslint-plugin-mocha@^11.3.0: + version "11.3.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-11.3.0.tgz#9c8139a9318c54dfa4bfa13afe8c231431abbf12" + integrity sha512-anENwrIwmdvunmmssjMn5a4nTd+mYMkqBlwjksxOECcIThLNhefWJIiTWY7pY/arMQFjNwHQjVOZb6pQ9PrLjg== dependencies: - eslint-utils "^2.0.0" - ramda "^0.27.0" + "@eslint-community/eslint-utils" "^4.4.1" + globals "^15.14.0" -eslint-plugin-no-unsanitized@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.2.0.tgz#a74239ae51363a5edbe6920eb34fe09aab925a9c" - integrity sha512-92opuXbjWmXcod94EyCKhp36V1QHLM/ArAST2ssgKOojALne0eZvSPfrg4oyr0EwTXvy0RJNe/Tkm33VkDUrKQ== +eslint-plugin-n@^18.2.1: + version "18.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-18.2.1.tgz#6f0227d408ee82c06350902c7cb850e2c96d9f4e" + integrity sha512-aO3C9//yq8JIvYOi/T+jPvcZ9hZzpwzbR8esrYpFtgE9vpbyM8kn42AQOtIqYspVmpaSWr8X+nrlQuAJYxXAaw== + dependencies: + "@eslint-community/eslint-utils" "^4.5.0" + enhanced-resolve "^5.17.1" + eslint-plugin-es-x "^7.8.0" + get-tsconfig "^4.8.1" + globals "^15.11.0" + globrex "^0.1.2" + ignore "^5.3.2" + semver "^7.6.3" + +eslint-plugin-no-unsanitized@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.1.5.tgz#036c7c7ac4561ff0ee34c3d126b3b6e86037641c" + integrity sha512-MSB4hXPVFQrI8weqzs6gzl7reP2k/qSjtCoL2vUMSDejIIq9YL1ZKvq5/ORBXab/PvfBBrWO2jWviYpL+4Ghfg== -eslint-plugin-node@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" - integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== +eslint-plugin-prettier@^5.5.6: + version "5.5.6" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.6.tgz#363ebe4d769bce157ccdd8129ce3efd91dc62564" + integrity sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ== dependencies: - eslint-plugin-es "^3.0.0" - eslint-utils "^2.0.0" - ignore "^5.1.1" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.1.0" - -eslint-plugin-prefer-object-spread@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-object-spread/-/eslint-plugin-prefer-object-spread-1.2.1.tgz#27fb91853690cceb3ae6101d9c8aecc6a67a402c" - integrity sha1-J/uRhTaQzOs65hAdnIrsxqZ6QCw= + prettier-linter-helpers "^1.0.1" + synckit "^0.11.13" -eslint-plugin-prettier@^3.1.4: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== +eslint-plugin-react-hooks@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz#e6742cad75d970c0a3f30d7d3fa80a4784f55927" + integrity sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g== dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-react-hooks@^4.0.4: - version "4.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz#71c39e528764c848d8253e1aa2c7024ed505f6c4" - integrity sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ== - -eslint-plugin-react-perf@^3.2.3: - version "3.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-perf/-/eslint-plugin-react-perf-3.3.1.tgz#e52d64c1d6e9c4cb1240108cdbbe406837f1b887" - integrity sha512-iOx2UtEOH50TmQhezTS4jbBAj/2gbrUdX+ZM28c2K9mwTvtRX6gdnd2P4WPQrejITDsAMNTCz95zu5HcjCD0xg== + "@babel/core" "^7.24.4" + "@babel/parser" "^7.24.4" + hermes-parser "^0.25.1" + zod "^3.25.0 || ^4.0.0" + zod-validation-error "^3.5.0 || ^4.0.0" -eslint-plugin-react@^7.20.3: - version "7.29.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz#4717de5227f55f3801a5fd51a16a4fa22b5914d2" - integrity sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ== - dependencies: - array-includes "^3.1.4" - array.prototype.flatmap "^1.2.5" +eslint-plugin-react-perf@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-perf/-/eslint-plugin-react-perf-3.3.3.tgz#29f97ab494fff18dc5e6ec34b056d9a21a86ee71" + integrity sha512-EzPdxsRJg5IllCAH9ny/3nK7sv9251tvKmi/d3Ouv5KzI8TB3zNhzScxL9wnh9Hvv8GYC5LEtzTauynfOEYiAw== + +eslint-plugin-react@^7.37.5: + version "7.37.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz#2975511472bdda1b272b34d779335c9b0e877065" + integrity sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA== + dependencies: + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.3" + array.prototype.tosorted "^1.1.4" doctrine "^2.1.0" + es-iterator-helpers "^1.2.1" estraverse "^5.3.0" + hasown "^2.0.2" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.0" - object.values "^1.1.5" + object.entries "^1.1.9" + object.fromentries "^2.0.8" + object.values "^1.2.1" prop-types "^15.8.1" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.6" - -eslint-rule-composer@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" - integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.12" + string.prototype.repeat "^1.0.0" eslint-rule-docs@^1.1.5: version "1.1.231" resolved "https://registry.yarnpkg.com/eslint-rule-docs/-/eslint-rule-docs-1.1.231.tgz#648b978bc5a1bb740be5f28d07470f0926b9cdf1" integrity sha512-egHz9A1WG7b8CS0x1P6P/Rj5FqZOjray/VjpJa14tMZalfRKvpE2ONJ3plCM7+PcinmU4tcmbPLv0VtwzSdLVA== -eslint-scope@5.1.1, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^9.1.0, eslint-scope@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-9.1.2.tgz#b9de6ace2fab1cff24d2e58d85b74c8fcea39802" + integrity sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ== dependencies: + "@types/esrecurse" "^4.3.1" + "@types/estree" "^1.0.8" esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint-visitor-keys@^5.0.0: +eslint-visitor-keys@^5.0.0, eslint-visitor-keys@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be" integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== -eslint@^8.57.1: - version "8.57.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" - integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== +eslint@^10.6.0: + version "10.6.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.6.0.tgz#e1b4059c582be950c7088c9b55f984738b243c27" + integrity sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg== dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.1" - "@humanwhocodes/config-array" "^0.13.0" + "@eslint-community/eslint-utils" "^4.8.0" + "@eslint-community/regexpp" "^4.12.2" + "@eslint/config-array" "^0.23.5" + "@eslint/config-helpers" "^0.6.0" + "@eslint/core" "^1.2.1" + "@eslint/plugin-kit" "^0.7.2" + "@humanfs/node" "^0.16.6" "@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" + "@humanwhocodes/retry" "^0.4.2" + "@types/estree" "^1.0.6" + ajv "^6.14.0" + cross-spawn "^7.0.6" 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" + eslint-scope "^9.1.2" + eslint-visitor-keys "^5.0.1" + espree "^11.2.0" + esquery "^1.7.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.0.0" 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" + minimatch "^10.2.4" natural-compare "^1.4.0" optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -esniff@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" - integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== - dependencies: - d "^1.0.1" - es5-ext "^0.10.62" - event-emitter "^0.3.5" - type "^2.7.2" -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== +espree@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-11.2.0.tgz#01d5e47dc332aaba3059008362454a8cc34ccaa5" + integrity sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw== dependencies: - acorn "^8.9.0" + acorn "^8.16.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^5.0.1" esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2: +esquery@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.7.0.tgz#08d048f261f0ddedb5bae95f46809463d9c9496d" integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g== @@ -11188,11 +10685,6 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -11203,19 +10695,11 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@^1.8.1, etag@~1.8.1: +etag@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -event-emitter@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -11226,12 +10710,12 @@ eventemitter2@6.4.7: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== -eventemitter3@^4.0.0, eventemitter3@^4.0.4: +eventemitter3@^4.0.4: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0, events@^3.2.0, events@^3.3.0: +events@^3.0.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -11271,7 +10755,7 @@ execa@4.1.0, execa@^4.0.2: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^5.0.0: +execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -11310,41 +10794,27 @@ exit-hook@^2.2.0: resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-2.2.1.tgz#007b2d92c6428eda2b76e7016a34351586934593" integrity sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw== -exit-hook@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-4.0.0.tgz#c1e16ebd03d3166f837b1502dac755bb5c460d58" - integrity sha512-Fqs7ChZm72y40wKjOFXBKg7nJZvQJmewP5/7LtePDdnah/+FH9Hp5sgMujSCMPXlxOAW2//1jrW9pnsY7o20vQ== - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= +exit-x@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/exit-x/-/exit-x-0.2.2.tgz#1f9052de3b8d99a696b10dad5bced9bdd5c3aa64" + integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expect@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" - integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== - dependencies: - "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - -expect@^28.0.0, expect@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" - integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== +expect@30.4.1, expect@^30.0.0: + version "30.4.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-30.4.1.tgz#897e0390a0b6c333dbcf3a24dee3ad49553577e0" + integrity sha512-PMARsyh/JtqC20HoGqlFcIlQAyqUtW4PlI1rup1uhYJtKuwAjbvWi3GQMAn+STdHum/dk8xrKfUM1+5SAwpolA== dependencies: - "@jest/expect-utils" "^28.1.3" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" + "@jest/expect-utils" "30.4.1" + "@jest/get-type" "30.1.0" + jest-matcher-utils "30.4.1" + jest-message-util "30.4.1" + jest-mock "30.4.1" + jest-util "30.4.1" expiry-js@0.1.7: version "0.1.7" @@ -11358,44 +10828,7 @@ express-rate-limit@^8.2.1: dependencies: ip-address "^10.2.0" -express@^4.21.2: - version "4.22.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.22.1.tgz#1de23a09745a4fffdb39247b344bb5eaff382069" - integrity sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g== - 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.14.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" - -express@^5.1.0, express@^5.2.1: +express@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/express/-/express-5.2.1.tgz#8f21d15b6d327f92b4794ecf8cb08a72f956ac04" integrity sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw== @@ -11429,13 +10862,6 @@ express@^5.1.0, express@^5.2.1: type-is "^2.0.1" vary "^1.1.2" -ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== - dependencies: - type "^2.5.0" - extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" @@ -11523,7 +10949,7 @@ fast-json-patch@^3.1.1: resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947" integrity sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ== -fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -11556,9 +10982,9 @@ fast-stream-to-buffer@^1.0.0: end-of-stream "^1.4.1" fast-uri@^3.0.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.2.tgz#8af3d4fc9d3e71b11572cc2673b514a7d1a8c8ec" - integrity sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ== + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.3.tgz#f695a40f006aba505631573a0021ddb21194ad11" + integrity sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg== fast-xml-builder@^1.1.5: version "1.2.0" @@ -11595,17 +11021,10 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== +fb-watchman@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" @@ -11633,11 +11052,6 @@ fetch-mock@^7.3.9: path-to-regexp "^2.2.1" whatwg-url "^6.5.0" -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -11667,6 +11081,13 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== + dependencies: + flat-cache "^4.0.0" + file-loader@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" @@ -11709,10 +11130,10 @@ filelist@^1.0.1: dependencies: minimatch "^3.0.4" -filesize@^10.1.6: - version "10.1.6" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.1.6.tgz#31194da825ac58689c0bce3948f33ce83aabd361" - integrity sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w== +filesize@^11.0.17: + version "11.0.17" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-11.0.17.tgz#fea569a71f0f716129fd7f5110427b7868499823" + integrity sha512-oHLTvMLw6imZUl1se/RBQrFlyy50nXce4sU7yGR6Qc0JgCwqnfiFsAnEwotdGmfKLD7SArGUk2/5STU0k8LOBQ== fill-range@^7.1.1: version "7.1.1" @@ -11721,10 +11142,10 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= +filter-obj@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-5.1.0.tgz#5bd89676000a713d7db2e197f660274428e524ed" + integrity sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng== finalhandler@^2.1.0: version "2.1.0" @@ -11738,19 +11159,6 @@ finalhandler@^2.1.0: parseurl "^1.3.3" statuses "^2.0.1" -finalhandler@~1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88" - integrity sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg== - 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.2" - unpipe "~1.0.0" - find-babel-config@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-2.1.2.tgz#2841b1bfbbbcdb971e1e39df8cbc43dafa901716" @@ -11767,7 +11175,7 @@ find-cache-dir@^2.0.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.2.0, find-cache-dir@^3.3.1: +find-cache-dir@^3.2.0: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== @@ -11781,13 +11189,6 @@ find-root@^1.1.0: resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -11819,12 +11220,20 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.1.0: +flatted@^3.1.0, flatted@^3.2.9: version "3.4.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.4.2.tgz#f5c23c107f0f37de8dbdf24f13722b3b98d52726" integrity sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA== @@ -11844,7 +11253,7 @@ focus-lock@^0.10.2: dependencies: tslib "^2.0.3" -follow-redirects@^1.0.0, follow-redirects@^1.15.6, follow-redirects@^1.16.0: +follow-redirects@^1.16.0: version "1.16.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.16.0.tgz#28474a159d3b9d11ef62050a14ed60e4df6d61bc" integrity sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw== @@ -11869,21 +11278,29 @@ foreground-child@^2.0.0: cross-spawn "^7.0.0" signal-exit "^3.0.2" +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -form-data@^3.0.0, form-data@^4.0.0, form-data@^4.0.4, form-data@^4.0.5, form-data@~4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" - integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== +form-data@^4.0.0, form-data@^4.0.4, form-data@^4.0.5, form-data@^4.0.6, form-data@~4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.6.tgz#28e864e1b786dbebb68db1f452f9635278665827" + integrity sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ== 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" + hasown "^2.0.4" + mime-types "^2.1.35" formidable@^2.1.2: version "2.1.5" @@ -11905,11 +11322,6 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fp-ts@^1.0.0: - version "1.19.5" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" - integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== - fp-ts@^2.3.1: version "2.11.9" resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.11.9.tgz#bbc204e0932954b59c98a282635754a4b624a05e" @@ -11930,11 +11342,6 @@ fresh@^2.0.0: resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4" integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A== -fresh@~0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - fromentries@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" @@ -11964,13 +11371,6 @@ fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - fs-mkdirp-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" @@ -11984,22 +11384,17 @@ fs-readdir-recursive@^1.1.0: resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -12019,6 +11414,21 @@ function.prototype.name@^1.1.2, function.prototype.name@^1.1.6: es-abstract "^1.22.1" functions-have-names "^1.2.3" +function.prototype.name@^1.1.8: + version "1.2.0" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.2.0.tgz#758f3e84fa542672454bd5e14cb081a5ce07f70c" + integrity sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew== + dependencies: + call-bind "^1.0.9" + call-bound "^1.0.4" + es-define-property "^1.0.1" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + hasown "^2.0.4" + is-callable "^1.2.7" + is-document.all "^1.0.0" + functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -12056,7 +11466,7 @@ get-east-asian-width@^1.0.0: resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz#9bc4caa131702b4b61729cb7e42735bc550c9ee6" integrity sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q== -get-intrinsic@^1.0.1, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: +get-intrinsic@^1.0.1, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== @@ -12087,7 +11497,7 @@ get-port@5.1.1: resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== -get-proto@^1.0.1: +get-proto@^1.0.0, get-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== @@ -12095,11 +11505,6 @@ get-proto@^1.0.1: dunder-proto "^1.0.1" es-object-atoms "^1.0.0" -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - get-stdin@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" @@ -12125,6 +11530,31 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +get-symbol-description@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + +get-tsconfig@^4.10.1, get-tsconfig@^4.8.1: + version "4.14.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.14.0.tgz#985d85c52a9903864280ccc2448d413fbf1efed8" + integrity sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA== + dependencies: + resolve-pkg-maps "^1.0.0" + +get-uri@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-8.0.1.tgz#772b1418bf034c2c43ddd6a41af24a4262e135ee" + integrity sha512-/5N/P4Lrh0p/mDwlDRi7Y1+P2o/OyzZI3l6Iz1Ov6XXwwm1y3RlZLuo3gVgML99djrEDtV980bBxSuOeHLk8ww== + dependencies: + basic-ftp "^5.3.1" + data-uri-to-buffer "8.0.0" + debug "^4.3.4" + get-uri@^6.0.1: version "6.0.4" resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.4.tgz#6daaee9e12f9759e19e55ba313956883ef50e0a7" @@ -12134,13 +11564,6 @@ get-uri@^6.0.1: data-uri-to-buffer "^6.0.2" debug "^4.3.4" -get-value@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8" - integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA== - dependencies: - isobject "^3.0.1" - getopts@*, getopts@^2.2.5: version "2.3.0" resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.3.0.tgz#71e5593284807e03e2427449d4f6712a268666f4" @@ -12209,16 +11632,23 @@ glob-stream@^6.1.0: to-absolute-glob "^2.0.0" unique-stream "^2.0.2" -glob-to-regex.js@^1.0.0, glob-to-regex.js@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz#2b323728271d133830850e32311f40766c5f6413" - integrity sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ== - -glob-to-regexp@^0.4.0, glob-to-regexp@^0.4.1: +glob-to-regexp@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@^10.4.5, glob@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + glob@^13.0.0: version "13.0.0" resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.0.tgz#9d9233a4a274fc28ef7adce5508b7ef6237a1be3" @@ -12228,7 +11658,7 @@ glob@^13.0.0: minipass "^7.1.2" path-scurry "^2.0.0" -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -12240,17 +11670,6 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - glob@^9.3.3: version "9.3.5" resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" @@ -12284,17 +11703,15 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -globals@^11.1.0, globals@^11.12.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^15.11.0, globals@^15.14.0, globals@^15.15.0: + version "15.15.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.15.0.tgz#7c4761299d41c32b075715a4ce1ede7897ff72a8" + integrity sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg== -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" +globals@^17.7.0: + version "17.7.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-17.7.0.tgz#553d55090b4dde8209ec2da42580d6e7e7d8b10d" + integrity sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg== globalthis@^1.0.3: version "1.0.3" @@ -12303,6 +11720,14 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" +globalthis@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + globby@^10.0.1, globby@^9.2.0: version "10.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" @@ -12317,7 +11742,7 @@ globby@^10.0.1, globby@^9.2.0: merge2 "^1.2.3" slash "^3.0.0" -globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: +globby@^11.0.1, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -12329,22 +11754,16 @@ globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - globjoin@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= +globrex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== + gopd@^1.0.1, gopd@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" @@ -12367,16 +11786,11 @@ got@^11.8.2: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - gulp-babel@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/gulp-babel/-/gulp-babel-8.0.0.tgz#e0da96f4f2ec4a88dd3a3030f476e38ab2126d87" @@ -12398,18 +11812,6 @@ gulp-zip@^5.0.2: vinyl "^2.1.0" yazl "^2.5.1" -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - handlebars@^4.7.9: version "4.7.9" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.9.tgz#6f139082ab58dc4e5a0e51efe7db5ae890d56a0f" @@ -12483,6 +11885,13 @@ has-proto@^1.0.1: resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== +has-proto@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" + integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== + dependencies: + dunder-proto "^1.0.0" + has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3, has-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" @@ -12495,21 +11904,6 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" -has-value@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-2.0.2.tgz#d0f12e8780ba8e90e66ad1a21c707fdb67c25658" - integrity sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA== - dependencies: - get-value "^3.0.0" - has-values "^2.0.1" - -has-values@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d" - integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w== - dependencies: - kind-of "^6.0.2" - has@^1.0.3, has@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" @@ -12549,10 +11943,10 @@ hasha@^5.0.0: is-stream "^2.0.0" type-fest "^0.8.0" -hasown@^2.0.0, hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== +hasown@^2.0.0, hasown@^2.0.2, hasown@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003" + integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== dependencies: function-bind "^1.1.2" @@ -12631,6 +12025,18 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +hermes-estree@0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.25.1.tgz#6aeec17d1983b4eabf69721f3aa3eb705b17f480" + integrity sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw== + +hermes-parser@^0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.25.1.tgz#5be0e487b2090886c62bd8a11724cd766d5f54d1" + integrity sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA== + dependencies: + hermes-estree "0.25.1" + history@^4.9.0: version "4.10.1" resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" @@ -12665,9 +12071,9 @@ hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react- react-is "^16.7.0" hono@^4.11.4: - version "4.12.23" - resolved "https://registry.yarnpkg.com/hono/-/hono-4.12.23.tgz#998b91651686149f0e6edbb8564d604da04f3cf8" - integrity sha512-eIaZ9qDgu7XV0pxOCrg7/WhnQ6Ivm22UcxhXx/A3dcbqbbYgBEkc6e/J/s7j2tS96zoB0S9VBdLwQNCWwUo4LA== + version "4.12.28" + resolved "https://registry.yarnpkg.com/hono/-/hono-4.12.28.tgz#c2e12c32027f0e9fb8b0cef2ecfb73050c2ca62e" + integrity sha512-YwUvVpSF7m1yOblFPrU3Hbo8XhPheBoiyfGuII6z19LnOr6JpDnyyp7LFNrfV56wS8tpvtBFGRISHN02pDdLOA== hosted-git-info@^2.1.4: version "2.8.9" @@ -12681,16 +12087,6 @@ hosted-git-info@^4.0.1: dependencies: lru-cache "^6.0.0" -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - hpagent@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-1.2.0.tgz#0ae417895430eb3770c03443456b8d90ca464903" @@ -12704,14 +12100,14 @@ html-element-map@^1.2.0: array.prototype.filter "^1.0.0" call-bind "^1.0.2" -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== +html-encoding-sniffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" + integrity sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ== dependencies: - whatwg-encoding "^1.0.5" + whatwg-encoding "^3.1.1" -html-escaper@^2.0.0, html-escaper@^2.0.2: +html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== @@ -12771,12 +12167,7 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -http-errors@^2.0.0, http-errors@~2.0.0, http-errors@~2.0.1: +http-errors@^2.0.0, http-errors@^2.0.1, http-errors@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== @@ -12787,16 +12178,6 @@ http-errors@^2.0.0, http-errors@~2.0.0, http-errors@~2.0.1: statuses "~2.0.2" toidentifier "~1.0.1" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-headers@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/http-headers/-/http-headers-3.0.2.tgz#5147771292f0b39d6778d930a3a59a76fc7ef44d" @@ -12804,10 +12185,14 @@ http-headers@^3.0.2: dependencies: next-line "^1.1.0" -http-parser-js@>=0.5.1: - version "0.5.10" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075" - integrity sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA== +http-proxy-agent@9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-9.1.0.tgz#fd8b39dcb58ac8046139e5f4ea80de78e8beaf7b" + integrity sha512-2NxoveTT58mjYT4n3RPTEfCZGLMbidoO8XEieXfpSYxu+PQJ1qpx4ypwH6N+uF9twBPIvRRgvkvW5HUTYWENig== + dependencies: + agent-base "9.0.0" + debug "^4.3.4" + proxy-agent-negotiate "1.1.0" http-proxy-agent@^2.1.0: version "2.1.0" @@ -12817,15 +12202,6 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1, http-proxy-agent@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" @@ -12834,26 +12210,6 @@ http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1, http-proxy-agent@^7.0.2: agent-base "^7.1.0" debug "^4.3.4" -http-proxy-middleware@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" - integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - http-signature@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.4.0.tgz#dee5a9ba2bf49416abc544abd6d967f6a94c8c3f" @@ -12876,6 +12232,15 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +https-proxy-agent@9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-9.1.0.tgz#a9f60f79bc1578c37b166dd7f58b6bcb5c57e44b" + integrity sha512-ag87y7cJJ9/3+GxFr8Oy4O5faDsGRGnBGsJj/YjOSsSx/5eadKLYTMPlzuR6obgoCDDm0abAAZitXXQkMOPSpA== + dependencies: + agent-base "9.0.0" + debug "^4.3.4" + proxy-agent-negotiate "1.1.0" + https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -12909,34 +12274,29 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -hyperdyperid@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" - integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== - hyphenate-style-name@^1.0.3: version "1.1.0" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436" integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw== -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@0.6, iconv-lite@^0.6.3: +iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -iconv-lite@^0.7.0, iconv-lite@~0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.2.tgz#d0bdeac3f12b4835b7359c2ad89c422a4d1cc72e" - integrity sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw== +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.7.2, iconv-lite@~0.7.0: + version "0.7.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.3.tgz#84ee12f963e7de50bc01a13e160a078b3b0f415f" + integrity sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -12955,16 +12315,16 @@ if-async@^3.7.4: resolved "https://registry.yarnpkg.com/if-async/-/if-async-3.7.4.tgz#55868deb0093d3c67bf7166e745353fb9bcb21a2" integrity sha1-VYaN6wCT08Z79xZudFNT+5vLIaI= -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore@^5.0.5, ignore@^5.1.1, ignore@^5.2.0: +ignore@^5.1.1, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== +ignore@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + ignore@^7.0.5: version "7.0.5" resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" @@ -12987,15 +12347,20 @@ immediate@~3.0.5: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= +immer@^9.0.21: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + immer@^9.0.6, immer@^9.0.7: version "9.0.15" resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.15.tgz#0b9169e5b1d22137aba7d43f8a81a495dd1b62dc" integrity sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ== immutable@^5.0.2: - version "5.1.5" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.5.tgz#93ee4db5c2a9ab42a4a783069f3c5d8847d40165" - integrity sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A== + version "5.1.9" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.9.tgz#ac23c3a01992ab665e14ac9ffff298f28cd74a0c" + integrity sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.1" @@ -13005,12 +12370,12 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-in-the-middle@1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.12.0.tgz#80d6536a01d0708a6f119f30d22447d4eb9e5c63" - integrity sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w== +import-in-the-middle@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.15.0.tgz#9e20827a322bbadaeb5e3bac49ea8f6d4685fdd8" + integrity sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA== dependencies: - acorn "^8.8.2" + acorn "^8.14.0" acorn-import-attributes "^1.9.5" cjs-module-lexer "^1.2.2" module-details-from-path "^1.0.3" @@ -13020,10 +12385,10 @@ import-lazy@^4.0.0, import-lazy@~4.0.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== +import-local@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -13043,11 +12408,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -13061,11 +12421,6 @@ inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -13107,7 +12462,7 @@ inquirer@^7.0.0, inquirer@^7.3.3: strip-ansi "^6.0.0" through "^2.3.6" -internal-slot@^1.0.3, internal-slot@^1.0.5: +internal-slot@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== @@ -13116,21 +12471,30 @@ internal-slot@^1.0.3, internal-slot@^1.0.5: hasown "^2.0.0" side-channel "^1.0.4" +internal-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" + integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.2" + side-channel "^1.1.0" + "internmap@1 - 2": version "2.0.3" resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + interpret@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -interpret@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== - intl-format-cache@^2.0.5, intl-format-cache@^2.1.0: version "2.2.9" resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-2.2.9.tgz#fb560de20c549cda20b569cf1ffb6dc62b5b93b4" @@ -13182,11 +12546,6 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== - irregular-plurals@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-3.3.0.tgz#67d0715d4361a60d9fd9ee80af3881c631a31ee2" @@ -13230,6 +12589,15 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: get-intrinsic "^1.2.0" is-typed-array "^1.1.10" +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -13240,6 +12608,17 @@ is-arrayish@^0.3.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== +is-async-function@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" + integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== + 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" + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -13247,6 +12626,13 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== + dependencies: + has-bigints "^1.0.2" + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -13262,6 +12648,14 @@ is-boolean-object@^1.0.1, is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-boolean-object@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e" + integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -13277,13 +12671,22 @@ is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.16.1, is-core-module@^2.5.0, is-core-module@^2.8.0: +is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.16.1, is-core-module@^2.5.0: version "2.16.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" +is-data-view@^1.0.1, is-data-view@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" + integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== + dependencies: + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + is-typed-array "^1.1.13" + is-date-object@^1.0.1, is-date-object@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -13291,15 +12694,25 @@ is-date-object@^1.0.1, is-date-object@^1.0.2: dependencies: has-tostringtag "^1.0.0" +is-date-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" + is-decimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== +is-document.all@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-document.all/-/is-document.all-1.0.0.tgz#163a4bfb362c6ed7b118ce46cdecc4e37dee3195" + integrity sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g== + dependencies: + call-bound "^1.0.4" is-extendable@^1.0.1: version "1.0.1" @@ -13313,6 +12726,13 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-finalizationregistry@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== + dependencies: + call-bound "^1.0.3" + is-finite@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" @@ -13335,12 +12755,12 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: +is-generator-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-generator-function@^1.0.7: +is-generator-function@^1.0.10, is-generator-function@^1.0.7: version "1.1.2" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.2.tgz#ae3b61e3d5ea4e4839b90bad22b02335051a17d5" integrity sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA== @@ -13370,13 +12790,6 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-installed-globally@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" @@ -13402,6 +12815,11 @@ is-map@^2.0.1, is-map@^2.0.2: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== +is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + is-nan@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -13420,10 +12838,10 @@ is-negative-zero@^2.0.2: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== -is-network-error@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.3.0.tgz#2ce62cbca444abd506f8a900f39d20b898d37512" - integrity sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-number-object@^1.0.4: version "1.0.6" @@ -13432,6 +12850,14 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" +is-number-object@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" + integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -13444,25 +12870,11 @@ is-observable@^1.1.0: dependencies: symbol-observable "^1.1.0" -is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: +is-path-cwd@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - is-path-inside@^3.0.1, is-path-inside@^3.0.2, is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -13478,11 +12890,6 @@ is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -13542,6 +12949,11 @@ is-set@^2.0.1, is-set@^2.0.2: resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -13549,6 +12961,13 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-shared-array-buffer@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== + dependencies: + call-bound "^1.0.3" + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -13566,6 +12985,14 @@ is-string@^1.0.5, is-string@^1.0.7: dependencies: has-tostringtag "^1.0.0" +is-string@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" + integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + is-subset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" @@ -13578,7 +13005,16 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.14, is-typed-array@^1.1.3, is-typed-array@^1.1.9: +is-symbol@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== + dependencies: + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" + +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15, is-typed-array@^1.1.3, is-typed-array@^1.1.9: version "1.1.15" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== @@ -13622,6 +13058,11 @@ is-weakmap@^2.0.1: resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -13629,6 +13070,13 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-weakref@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" + integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== + dependencies: + call-bound "^1.0.3" + is-weakset@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" @@ -13637,6 +13085,14 @@ is-weakset@^2.0.1: call-bind "^1.0.2" get-intrinsic "^1.1.1" +is-weakset@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== + dependencies: + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + is-what@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" @@ -13657,13 +13113,6 @@ is-word-character@^1.0.0: resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== -is-wsl@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" - integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== - dependencies: - is-inside-container "^1.0.0" - is2@^2.0.6: version "2.0.7" resolved "https://registry.yarnpkg.com/is2/-/is2-2.0.7.tgz#d084e10cab3bd45d6c9dfde7a48599fcbb93fcac" @@ -13705,11 +13154,6 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isobject@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" - integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== - isomorphic-timers-promises@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz#e4137c24dbc54892de8abae3a4b5c1ffff381598" @@ -13720,7 +13164,7 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1, istanbul-lib-coverage@^3.2.0: +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== @@ -13742,29 +13186,28 @@ istanbul-lib-instrument@^4.0.0: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== +istanbul-lib-instrument@^6.0.0, istanbul-lib-instrument@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" + semver "^7.5.4" istanbul-lib-processinfo@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz#e1426514662244b2f25df728e8fd1ba35fe53b9c" - integrity sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz#366d454cd0dcb7eb6e0e419378e60072c8626169" + integrity sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg== dependencies: archy "^1.0.0" - cross-spawn "^7.0.0" - istanbul-lib-coverage "^3.0.0-alpha.1" - make-dir "^3.0.0" + cross-spawn "^7.0.3" + istanbul-lib-coverage "^3.2.0" p-map "^3.0.0" rimraf "^3.0.0" - uuid "^3.3.3" + uuid "^8.3.2" istanbul-lib-report@^3.0.0: version "3.0.0" @@ -13784,6 +13227,15 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" +istanbul-lib-source-maps@^5.0.0: + version "5.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz#acaef948df7747c8eb5fbf1265cb980f6353a441" + integrity sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A== + dependencies: + "@jridgewell/trace-mapping" "^0.3.23" + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: version "3.1.4" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" @@ -13792,6 +13244,27 @@ istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +iterator.prototype@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz#12c959a29de32de0aa3bbbb801f4d777066dae39" + integrity sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g== + 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" + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jake@^10.8.5: version "10.8.5" resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" @@ -13807,677 +13280,400 @@ javascript-natural-sort@^0.7.1: resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw== -jest-canvas-mock@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.1.tgz#81509af658ef485e9a1bf39c64e06761517bdbcb" - integrity sha512-IVnRiz+v4EYn3ydM/pBo8GW/J+nU/Hg5gHBQQOUQhdRyNfvHnabB8ReqARLO0p+kvQghqr4V0tA92CF3JcUSRg== +jest-canvas-mock@2.5.8: + version "2.5.8" + resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.8.tgz#f9b44e2957dd6be1e2af11f3ce5cccf97bc13993" + integrity sha512-RUZRaFHCnLjg0/UAodCai5PTsa7kQI1rUXE5wsQu9f2315dh2YSN7/i3fObTycs7PO09DLSiGXiJTALYIw2yuw== dependencies: cssfontparser "^1.2.1" moo-color "^1.0.2" -jest-changed-files@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" - integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== +jest-changed-files@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-30.4.1.tgz#396fcf914165287f05960372a5d091f6f2275ec5" + integrity sha512-IuctmYrxi21iOSOaIXpJWalHyPAsVv0GeBHKDn8C1CA4W5htHn7INL+wdnL4Bo0+olEndvAFkmb++tIQJG+vvg== dependencies: - execa "^5.0.0" + execa "^5.1.1" + jest-util "30.4.1" p-limit "^3.1.0" -jest-circus@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" - integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== +jest-circus@30.4.2: + version "30.4.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-30.4.2.tgz#9a5b9b9c57bf51871f112ccf7a673d486c28f8e7" + integrity sha512-rvHH7VlY6LgbJXJTQ87GW62g1FntOtbhh0zT+v04kC+pgL6aBKyYINXxWukCpj3dcIBMw5/XUbtDS9dU9JTXeQ== dependencies: - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/environment" "30.4.1" + "@jest/expect" "30.4.1" + "@jest/test-result" "30.4.1" + "@jest/types" "30.4.1" "@types/node" "*" - chalk "^4.0.0" + chalk "^4.1.2" co "^4.6.0" - dedent "^0.7.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" + dedent "^1.6.0" + is-generator-fn "^2.1.0" + jest-each "30.4.1" + jest-matcher-utils "30.4.1" + jest-message-util "30.4.1" + jest-runtime "30.4.2" + jest-snapshot "30.4.1" + jest-util "30.4.1" + p-limit "^3.1.0" + pretty-format "30.4.1" + pure-rand "^7.0.0" slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" + stack-utils "^2.0.6" + +jest-cli@30.4.2: + version "30.4.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-30.4.2.tgz#e353ef54035c5ac97f200807c97b3d857f52bddc" + integrity sha512-jfA2ocvVHMXS2QijrJ0d31ektP+d/W0T5RpcTX2Pq+3sVqHlsXVCM2+FmwpL+bdY8OfHpIg9xMxLF17Zg0U49Q== + dependencies: + "@jest/core" "30.4.2" + "@jest/test-result" "30.4.1" + "@jest/types" "30.4.1" + chalk "^4.1.2" + exit-x "^0.2.2" + import-local "^3.2.0" + jest-config "30.4.2" + jest-util "30.4.1" + jest-validate "30.4.1" + yargs "^17.7.2" -jest-cli@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" - integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== - dependencies: - "@jest/core" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - prompts "^2.0.1" - yargs "^17.3.1" - -jest-config@^28.1.3, "jest-config@npm:@amoo-miki/jest-config@27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@amoo-miki/jest-config/-/jest-config-27.5.1.tgz#3afdb485fdccad8fd8b19be505747cafbf8e6707" - integrity sha512-6pSD/Lo5axflM2NO0eIHuJ40nxfXn2NQGqzOCrZO1EE7yS3k90p10RalInf8RXl2g9/f1Ax4U4aU2e3BWSaSaQ== - dependencies: - "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.5.1" - "@jest/types" "^27.5.1" - babel-jest "^27.5.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.9" - jest-circus "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-get-type "^27.5.1" - jest-jasmine2 "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runner "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - micromatch "^4.0.4" +jest-config@30.4.2: + version "30.4.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-30.4.2.tgz#78f589b5410d2805518b8bdce517217fb96b5e61" + integrity sha512-rNHAShJQqQwFNoL0hbf3BphSBOWnpOUAKvidLS/AjNVLPfoj5mSf4jQMfW3cYOs6hXeZC7nF7mDHaBnbxELOzg== + dependencies: + "@babel/core" "^7.27.4" + "@jest/get-type" "30.1.0" + "@jest/pattern" "30.4.0" + "@jest/test-sequencer" "30.4.1" + "@jest/types" "30.4.1" + babel-jest "30.4.1" + chalk "^4.1.2" + ci-info "^4.2.0" + deepmerge "^4.3.1" + glob "^10.5.0" + graceful-fs "^4.2.11" + jest-circus "30.4.2" + jest-docblock "30.4.0" + jest-environment-node "30.4.1" + jest-regex-util "30.4.0" + jest-resolve "30.4.1" + jest-runner "30.4.2" + jest-util "30.4.1" + jest-validate "30.4.1" parse-json "^5.2.0" - pretty-format "^27.5.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-diff@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" - integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== - dependencies: - chalk "^4.0.0" - diff-sequences "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - -jest-diff@^29.0.3: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-docblock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" - integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== - dependencies: - detect-newline "^3.0.0" - -jest-docblock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" - integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" - integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - jest-get-type "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - -jest-environment-jsdom@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" - integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - jsdom "^16.6.0" - -jest-environment-node@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" - integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -jest-environment-node@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" - integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - jest-mock "^28.1.3" - jest-util "^28.1.3" - -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== - -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== - -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" - integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== - dependencies: - "@jest/types" "^27.5.1" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-haste-map@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" - integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== - dependencies: - "@jest/types" "^28.1.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 "^28.0.2" - jest-util "^28.1.3" - jest-worker "^28.1.3" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.5.1, "jest-jasmine2@npm:@amoo-miki/jest-jasmine2@27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@amoo-miki/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#0c99502f9879e1504b124da8355880924de1f310" - integrity sha512-oOihnJGLdFZO780Ts6XR+Sbs8d4J0+sqcNvBNcJch/LSKpQt7rARi0V+TgF80LRAvJI4gyq97az/2fdXXgxDNg== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - throat "^6.0.1" - -jest-leak-detector@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" - integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== - dependencies: - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-leak-detector@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" - integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== - dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - -jest-matcher-utils@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" - integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== - dependencies: - chalk "^4.0.0" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" - integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.5.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^27.5.1" + pretty-format "30.4.1" slash "^3.0.0" - stack-utils "^2.0.3" + strip-json-comments "^3.1.1" -jest-message-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" - integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== +jest-diff@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.4.1.tgz#26691c73975768409af4a66b2754cea3182aa2dc" + integrity sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA== dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^28.1.3" - slash "^3.0.0" - stack-utils "^2.0.3" + "@jest/diff-sequences" "30.4.0" + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + pretty-format "30.4.1" -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== +jest-diff@^29.0.3: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== dependencies: - "@jest/types" "^27.5.1" + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@30.4.0: + version "30.4.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-30.4.0.tgz#3ab779a027d1495ae21550accd4266bbe99af7a3" + integrity sha512-ZPMabUZCx5MpbZ2eBYSvZ0J8fvo3dR9oM+eeUpb3aKNQFuS2tu3Duw1TNlMoP8k3WQgKGJuhcMFvwcVuq6T7oA== + dependencies: + detect-newline "^3.1.0" + +jest-each@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-30.4.1.tgz#b69e66da8e2b578c6140d357f6574044c2a40537" + integrity sha512-/8MJbH6fuj48TstjrMf+u/pd06Qezz5xOXvZA6442heNOWr8bdeoGZX2d9fCn028CoMgYmroH9//zky5GfyYmA== + dependencies: + "@jest/get-type" "30.1.0" + "@jest/types" "30.4.1" + chalk "^4.1.2" + jest-util "30.4.1" + pretty-format "30.4.1" + +jest-environment-jsdom@^30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-30.4.1.tgz#928c81b3ea630b409fc6483cd16553b90b220bfc" + integrity sha512-o3nfaN4zej7qgk2X0j8Jhq/S9nAVKs2xK3QeQxeHVvpkEPxaA1yxDGydR+iVI7zPy7Cp62Aq2h3Ja46QvfWHGA== + dependencies: + "@jest/environment" "30.4.1" + "@jest/environment-jsdom-abstract" "30.4.1" + jsdom "^26.1.0" + +jest-environment-node@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-30.4.1.tgz#43bbbee903e17d874eb1817195c50ff8b90e2fe0" + integrity sha512-4FZYVOk85hz2AyT6BbarKy9u37g6DbrDyCdFhsnDdXqyrueYQvB+0zO4f/kqLCRD0BsPRXPMNJeQwihKZV8naw== + dependencies: + "@jest/environment" "30.4.1" + "@jest/fake-timers" "30.4.1" + "@jest/types" "30.4.1" "@types/node" "*" + jest-mock "30.4.1" + jest-util "30.4.1" + jest-validate "30.4.1" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== -jest-mock@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" - integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== +jest-haste-map@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-30.4.1.tgz#6d80d09d668c20bf3944977e50acac94fcd672fe" + integrity sha512-rFrcONd8jeFsyw+Z9CrScJgglRf2+NFmNam8dKu7n+SoHqNYT47mn0DdEcVUZJpvh7Iz6/si7f7yUH7GJHVgnw== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "30.4.1" "@types/node" "*" + anymatch "^3.1.3" + fb-watchman "^2.0.2" + graceful-fs "^4.2.11" + jest-regex-util "30.4.0" + jest-util "30.4.1" + jest-worker "30.4.1" + picomatch "^4.0.3" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.3" -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== +jest-leak-detector@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-30.4.1.tgz#96077059a68e5871fc8f53aa90647a6a33f916cd" + integrity sha512-IpmyiioeHxiWDhesHnUFmOxcTzwCwKpgACgWajtAP+nYQXiY7DakTxB6Bx9JFiRMljr0AX1PvnQdaU1KFoz6NQ== + dependencies: + "@jest/get-type" "30.1.0" + pretty-format "30.4.1" -jest-raw-loader@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/jest-raw-loader/-/jest-raw-loader-1.0.1.tgz#ce9f56d54650f157c4a7d16d224ba5d613bcd626" - integrity sha1-zp9W1UZQ8VfEp9FtIkul1hO81iY= +jest-location-mock@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jest-location-mock/-/jest-location-mock-4.0.1.tgz#f35080c75202e5da5ae3409721d302e0cd531ce7" + integrity sha512-8nYPNUw4laD4S1t77JFUtNit5lyjpCzG1sZzPS4wsz7mw/8JxX4XBtKR35SY8hdVIeJuSUBrDMKPvtmSuErcLw== + dependencies: + "@jedmao/location" "^3.0.0" + +jest-matcher-utils@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.4.1.tgz#3fee8c89dbd8fc6e60eb590def9897e18f110ec4" + integrity sha512-zvYfX5CaeEkFrrLS9suWe9rvJrm9J1Iv3ua8kIBv9GEPzcnsfBf0bob37la7s67fs0nlBC3EuvkOLnXQKxtx4A== + dependencies: + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + jest-diff "30.4.1" + pretty-format "30.4.1" + +jest-message-util@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.4.1.tgz#40f6bfa5f564363edcba7ce0ca64277fd2ad6af7" + integrity sha512-kwCKIvq0MCW1HzLoGola9Te6JUdzgV0loyKJ3Qghrkz9i5/RRIHsL95BMQc2HBBhlBKC4j22K9p11TGHH8RBpQ== + dependencies: + "@babel/code-frame" "^7.27.1" + "@jest/types" "30.4.1" + "@types/stack-utils" "^2.0.3" + chalk "^4.1.2" + graceful-fs "^4.2.11" + jest-util "30.4.1" + picomatch "^4.0.3" + pretty-format "30.4.1" + slash "^3.0.0" + stack-utils "^2.0.6" -jest-regex-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== +jest-mock@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.4.1.tgz#5e11a05d7719a1e3c7bba6348b70ff4e1bc5ea68" + integrity sha512-/i8SVb8/NSB7RfNi8gfqu8gxLV23KaL5EpAttyb9iz8qWRIqXRLflycz/32wXsYkOnaUlx8NAKnJYtpsmXUmfw== + dependencies: + "@jest/types" "30.4.1" + "@types/node" "*" + jest-util "30.4.1" -jest-regex-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== +jest-pnp-resolver@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-resolve-dependencies@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" - integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== - dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.3" +jest-regex-util@30.4.0: + version "30.4.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.4.0.tgz#f75ccc43857633df2563a03588b5cb45c7c2941b" + integrity sha512-mWlvLviKIgIQ8VCuM1xRdD0TWp3zlzionlmDBjuXVBs+VkmXq6FgW9T4Emr7oGz/Rk6feDCGyiugolcQEyp3mg== -jest-resolve@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" - integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== +jest-resolve-dependencies@30.4.2: + version "30.4.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-30.4.2.tgz#152f8a4cb2dd351cedeb5ada53c89f9683a3ad92" + integrity sha512-gDiVh1I+GxYzz9oXlyw+1wv6VOYX1WYxMOfjsA3iGKePV2oxmbHhwxfkALxNxYy1ciw6APWwkW2zZONwP97aEQ== dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-pnp-resolver "^1.2.2" - jest-util "^27.5.1" - jest-validate "^27.5.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" + jest-regex-util "30.4.0" + jest-snapshot "30.4.1" -jest-resolve@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" - integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== +jest-resolve@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-30.4.1.tgz#b9e432892dc0e2a470eb4826ef5f120a50b3205e" + integrity sha512-Zry8Yq/yJcNAZ7dJ5F2heic8AheXvbFZ7XI5V+h28nrYZ7Qoyy4dItq8OodjnYD270mvX+ZudmrNV9cysqhW5Q== dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-pnp-resolver "^1.2.2" - jest-util "^28.1.3" - jest-validate "^28.1.3" - resolve "^1.20.0" - resolve.exports "^1.1.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" + jest-haste-map "30.4.1" + jest-pnp-resolver "^1.2.3" + jest-util "30.4.1" + jest-validate "30.4.1" slash "^3.0.0" - -jest-runner@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" - integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - graceful-fs "^4.2.9" - jest-docblock "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-haste-map "^27.5.1" - jest-leak-detector "^27.5.1" - jest-message-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runtime "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runner@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" - integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== - dependencies: - "@jest/console" "^28.1.3" - "@jest/environment" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + unrs-resolver "^1.7.11" + +jest-runner@30.4.2: + version "30.4.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-30.4.2.tgz#15debf3cb6d817538aa97427d5a79277cdff65fe" + integrity sha512-2dw0PslVYXxffXGpLo+Ejad+KcI1Qkjn7f4X4619gf21oCUmL+SPfjqIa/losUem3yEOvfNZe/F1HWUcNpODcg== + dependencies: + "@jest/console" "30.4.1" + "@jest/environment" "30.4.1" + "@jest/test-result" "30.4.1" + "@jest/transform" "30.4.1" + "@jest/types" "30.4.1" "@types/node" "*" - chalk "^4.0.0" - emittery "^0.10.2" - graceful-fs "^4.2.9" - jest-docblock "^28.1.1" - jest-environment-node "^28.1.3" - jest-haste-map "^28.1.3" - jest-leak-detector "^28.1.3" - jest-message-util "^28.1.3" - jest-resolve "^28.1.3" - jest-runtime "^28.1.3" - jest-util "^28.1.3" - jest-watcher "^28.1.3" - jest-worker "^28.1.3" + chalk "^4.1.2" + emittery "^0.13.1" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-docblock "30.4.0" + jest-environment-node "30.4.1" + jest-haste-map "30.4.1" + jest-leak-detector "30.4.1" + jest-message-util "30.4.1" + jest-resolve "30.4.1" + jest-runtime "30.4.2" + jest-util "30.4.1" + jest-watcher "30.4.1" + jest-worker "30.4.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" - integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/globals" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-runtime@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" - integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/globals" "^28.1.3" - "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" +jest-runtime@30.4.2: + version "30.4.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-30.4.2.tgz#03b5955003440975b12e76518ec85d091c25b84a" + integrity sha512-3/5e8iPz2k/VLqlr8DgTftYyLUv8Su3FkCAO2/Od81UsUTpSxOrS6O5x5KkoQwyUjmpYyDJKeyAvg2T2nvpNkQ== + dependencies: + "@jest/environment" "30.4.1" + "@jest/fake-timers" "30.4.1" + "@jest/globals" "30.4.1" + "@jest/source-map" "30.0.1" + "@jest/test-result" "30.4.1" + "@jest/transform" "30.4.1" + "@jest/types" "30.4.1" + "@types/node" "*" + chalk "^4.1.2" + cjs-module-lexer "^2.1.0" + collect-v8-coverage "^1.0.2" + glob "^10.5.0" + graceful-fs "^4.2.11" + jest-haste-map "30.4.1" + jest-message-util "30.4.1" + jest-mock "30.4.1" + jest-regex-util "30.4.0" + jest-resolve "30.4.1" + jest-snapshot "30.4.1" + jest-util "30.4.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.9" - -jest-snapshot@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" - integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.5.1" - graceful-fs "^4.2.9" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - jest-haste-map "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - natural-compare "^1.4.0" - pretty-format "^27.5.1" - semver "^7.3.2" - -jest-snapshot@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" - integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^28.1.3" - graceful-fs "^4.2.9" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - natural-compare "^1.4.0" - pretty-format "^28.1.3" - semver "^7.3.5" - -jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== +jest-snapshot@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-30.4.1.tgz#0380cbbaa9d53d32cf7e61af98459ac10a339842" + integrity sha512-tEOkkfOMppUyeiHwjZswOQ3lcnoTnws/q5FnGIaeIh/jmoU0ZlgMYRR8sTlTj+nNGCoJ0RDq6SfxGxCsyMTPmw== dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" + "@babel/core" "^7.27.4" + "@babel/generator" "^7.27.5" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.27.1" + "@babel/types" "^7.27.3" + "@jest/expect-utils" "30.4.1" + "@jest/get-type" "30.1.0" + "@jest/snapshot-utils" "30.4.1" + "@jest/transform" "30.4.1" + "@jest/types" "30.4.1" + babel-preset-current-node-syntax "^1.2.0" + chalk "^4.1.2" + expect "30.4.1" + graceful-fs "^4.2.11" + jest-diff "30.4.1" + jest-matcher-utils "30.4.1" + jest-message-util "30.4.1" + jest-util "30.4.1" + pretty-format "30.4.1" + semver "^7.7.2" + synckit "^0.11.8" -jest-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" - integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== +jest-util@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.4.1.tgz#979c9d014fdd12bb95d3dcde0192e1a9e0bc93d6" + integrity sha512-vjQb1sACEiv13DKJMDToJpzVW0joCsIQrmbg0fi7CyOOt+g9jTuQl2A216pWRBYhOVt53XbL/2LbMKg1BECWOw== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "30.4.1" "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" - integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== - dependencies: - "@jest/types" "^27.5.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.5.1" - leven "^3.1.0" - pretty-format "^27.5.1" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.3" -jest-validate@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" - integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== +jest-validate@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-30.4.1.tgz#dcc4784547bf644dca0226d3266fb1bde392c5a4" + integrity sha512-PDWi4SOwLnwqNDfHZjOcsEFyZ4fc/2W2gVL3DEoyqnB6jCQMLRtfBong8s6omIw3lI0HWOus12xfnFmQtjW3fw== dependencies: - "@jest/types" "^28.1.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^28.0.2" + "@jest/get-type" "30.1.0" + "@jest/types" "30.4.1" + camelcase "^6.3.0" + chalk "^4.1.2" leven "^3.1.0" - pretty-format "^28.1.3" - -jest-watcher@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" - integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== - dependencies: - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.1.3" - string-length "^4.0.1" - -jest-worker@^25.4.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" - integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== - dependencies: - merge-stream "^2.0.0" - supports-color "^7.0.0" + pretty-format "30.4.1" -jest-worker@^27.4.5, jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== +jest-watcher@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-30.4.1.tgz#d2a78fd27553db9206947eeda6068d76bacfd276" + integrity sha512-/l9UonmvCwjHH7d2h3iAwIloLc1H0S8mJZ/LNK3i86hqwPAz8otUJjP9MfYtz9Tt77Su5FD2xGjZn8d31IZHlw== dependencies: + "@jest/test-result" "30.4.1" + "@jest/types" "30.4.1" "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + emittery "^0.13.1" + jest-util "30.4.1" + string-length "^4.0.2" -jest-worker@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" - integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== +jest-worker@30.4.1: + version "30.4.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.4.1.tgz#ac010eb6c512425748a39e2d6bf05b2c4866ca4f" + integrity sha512-SHynN/q/QD++iNyvMdy+WMmbCGk8jIsNcRxycXbWubSOhvo6T+j2afcfUSl+3hYsiBebOTo0cT7c2H7CXugu1g== dependencies: "@types/node" "*" + "@ungap/structured-clone" "^1.3.0" + jest-util "30.4.1" merge-stream "^2.0.0" - supports-color "^8.0.0" + supports-color "^8.1.1" -jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" - integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== +jest@^30.4.2: + version "30.4.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-30.4.2.tgz#e9bdb00f4bf1126d781b0d98e23130db096bbd9a" + integrity sha512-Yi1jqNC/Oq0N4hBgNH/YvBpP1P57QqundgytzYqy3yqAa7NZPNjSoi4SGbRAXDMdBzNE6xBCi5U7RgfrvMEUVQ== dependencies: - "@jest/core" "^28.1.3" - "@jest/types" "^28.1.3" - import-local "^3.0.2" - jest-cli "^28.1.3" + "@jest/core" "30.4.2" + "@jest/types" "30.4.1" + import-local "^3.2.0" + jest-cli "30.4.2" jimp@^1.6.1: version "1.6.1" @@ -14522,18 +13718,7 @@ jju@~1.4.0: resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= -joi@^17.7.0: - version "17.13.3" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" - integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== - dependencies: - "@hapi/hoek" "^9.3.0" - "@hapi/topo" "^5.1.0" - "@sideway/address" "^4.1.5" - "@sideway/formula" "^3.0.1" - "@sideway/pinpoint" "^2.0.0" - -joi@^18.2.1: +joi@^17.7.0, joi@^18.2.1: version "18.2.1" resolved "https://registry.yarnpkg.com/joi/-/joi-18.2.1.tgz#a022e39496e25b010a6d4649975c160a4315bd79" integrity sha512-2/OKlogiESf2Nh3TFCrRjrr9z1DRHeW0I+KReF67+4J0Ns+8hBtHRmoWAZ2OFU6I5+TWLEe6sVlSdXPjHm5UbQ== @@ -14578,10 +13763,10 @@ js-tiktoken@^1.0.12: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1, js-yaml@^4.1.0, js-yaml@^4.1.1, js-yaml@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== +js-yaml@^3.13.1, js-yaml@^4.1.0, js-yaml@^4.3.0, js-yaml@~4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.0.tgz#d1900572a7f7cf0b5f540c83673e60bad3436592" + integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q== dependencies: argparse "^2.0.1" @@ -14590,49 +13775,37 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" +jsdom@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-26.1.0.tgz#ab5f1c1cafc04bd878725490974ea5e8bf0c72b3" + integrity sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg== + dependencies: + cssstyle "^4.2.1" + data-urls "^5.0.0" + decimal.js "^10.5.0" + html-encoding-sniffer "^4.0.0" + http-proxy-agent "^7.0.2" + https-proxy-agent "^7.0.6" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" + nwsapi "^2.2.16" + parse5 "^7.2.1" + rrweb-cssom "^0.8.0" + saxes "^6.0.0" symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^3.0.2: + tough-cookie "^5.1.1" + w3c-xmlserializer "^5.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^3.1.1" + whatwg-mimetype "^4.0.0" + whatwg-url "^14.1.1" + ws "^8.18.0" + xml-name-validator "^5.0.0" + +jsesc@^3.0.2, jsesc@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -14645,7 +13818,7 @@ json-buffer@3.0.1: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: +json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -14707,7 +13880,7 @@ json11@^2.0.0, json11@^2.0.2: resolved "https://registry.yarnpkg.com/json11/-/json11-2.0.2.tgz#77a6070437e36e269a0d3432593ce008553cdc72" integrity sha512-HIrd50UPYmP6sqLuLbFVm75g16o0oZrVfxrsY0EEys22klz8mRoWlX9KAEDOSOR9Q34rcxsyC8oDveGrCz5uLQ== -json5@^1.0.1, json5@^2.1.2, json5@^2.2.3: +json5@^2.1.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -14736,7 +13909,7 @@ jsprim@^2.0.2: json-schema "0.4.0" verror "1.10.0" -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: +"jsx-ast-utils@^2.4.1 || ^3.0.0": version "3.2.1" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA== @@ -14744,6 +13917,16 @@ jsprim@^2.0.2: array-includes "^3.1.3" object.assign "^4.1.2" +jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + jszip@^3.2.2: version "3.8.0" resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.8.0.tgz#a2ac3c33fe96a76489765168213655850254d51b" @@ -14779,16 +13962,18 @@ keyv@^4.0.0: dependencies: json-buffer "3.0.1" +keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - known-css-properties@^0.24.0: version "0.24.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.24.0.tgz#19aefd85003ae5698a5560d2b55135bf5432155c" @@ -14806,14 +13991,14 @@ language-subtag-registry@^0.3.20: resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz#23529e04d9e3b74679d70142df3fd2eb6ec572e7" integrity sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ== -language-tags@^1.0.5: +language-tags@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== dependencies: language-subtag-registry "^0.3.20" -launch-editor@^2.6.1: +launch-editor@^2.13.2: version "2.14.1" resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.14.1.tgz#f7e0da3f58aaea03fea01074d840b5f739ed7ddc" integrity sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA== @@ -15004,10 +14189,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -linkify-it@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" - integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== +linkify-it@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.2.tgz#d3be0a693af3da9df3883f1e346a0e97461a8c19" + integrity sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q== dependencies: uc.micro "^2.0.0" @@ -15097,11 +14282,6 @@ load-json-file@^6.2.0: strip-bom "^4.0.0" type-fest "^0.6.0" -loader-runner@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" - integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== - loader-utils@^1.2.3, loader-utils@^2.0.0, loader-utils@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" @@ -15111,14 +14291,6 @@ loader-utils@^1.2.3, loader-utils@^2.0.0, loader-utils@^2.0.4: emojis-list "^3.0.0" json5 "^2.1.2" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -15141,11 +14313,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash-es@^4.18.0: - version "4.18.1" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.18.1.tgz#b962eeb80d9d983a900bf342961fb7418ca10b1d" - integrity sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A== - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -15221,11 +14388,6 @@ lodash.isundefined@^3.0.1: resolved "https://registry.yarnpkg.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz#23ef3d9535565203a66cefd5b830f848911afb48" integrity sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA== -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" @@ -15251,7 +14413,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.0.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.18.0, lodash@^4.7.0, lodash@~4.18.1: +lodash@^4.0.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.18.0, lodash@~4.18.1: version "4.18.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c" integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== @@ -15361,6 +14523,11 @@ lru-cache@^10.2.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== +lru-cache@^10.4.3: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^11.0.0: version "11.2.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.5.tgz#6811ae01652ae5d749948cdd80bcc22218c6744f" @@ -15398,12 +14565,17 @@ lucene@^2.1.1: resolved "https://registry.yarnpkg.com/lucene/-/lucene-2.1.1.tgz#e710cc123b214eaf72a4c5f1da06943c0af44d86" integrity sha512-l0qCX+pgXEZh/7sYQNG+vzhOIFRPjlJJkQ/irk9n7Ak3d+1MrU6F7IV31KILwFkUn153oLK8a2AIt48DzLdVPg== +luxon@^1.25.0: + version "1.28.1" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.1.tgz#528cdf3624a54506d710290a2341aa8e6e6c61b0" + integrity sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw== + luxon@^3.2.1: version "3.5.0" resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.5.0.tgz#6b6f65c5cd1d61d1fd19dbf07ee87a50bf4b8e20" integrity sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ== -lz-string@^1.4.4, lz-string@^1.5.0: +lz-string@^1.4.4: version "1.5.0" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== @@ -15462,14 +14634,14 @@ markdown-escapes@^1.0.0: resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== -markdown-it@^14.1.1: - version "14.1.1" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.1.tgz#856f90b66fc39ae70affd25c1b18b581d7deee1f" - integrity sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA== +markdown-it@^14.2.0: + version "14.2.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.2.0.tgz#06d48d9035e77d5b1c85adb315482fc8240289ef" + integrity sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ== dependencies: argparse "^2.0.1" entities "^4.4.0" - linkify-it "^5.0.0" + linkify-it "^5.0.1" mdurl "^2.0.0" punycode.js "^2.3.1" uc.micro "^2.1.0" @@ -15578,36 +14750,11 @@ measured-reporting@^1.51.1: measured-core "^1.51.1" optional-js "^2.0.0" -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - media-typer@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== -memfs@^4.43.1: - version "4.56.10" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.56.10.tgz#eaf2f6556db10f91f1e9ad9f1274fd988c646202" - integrity sha512-eLvzyrwqLHnLYalJP7YZ3wBe79MXktMdfQbvMrVD80K+NhrIukCVBvgP30zTJYEEDh9hZ/ep9z0KOdD7FSHo7w== - dependencies: - "@jsonjoy.com/fs-core" "4.56.10" - "@jsonjoy.com/fs-fsa" "4.56.10" - "@jsonjoy.com/fs-node" "4.56.10" - "@jsonjoy.com/fs-node-builtins" "4.56.10" - "@jsonjoy.com/fs-node-to-fsa" "4.56.10" - "@jsonjoy.com/fs-node-utils" "4.56.10" - "@jsonjoy.com/fs-print" "4.56.10" - "@jsonjoy.com/fs-snapshot" "4.56.10" - "@jsonjoy.com/json-pack" "^1.11.0" - "@jsonjoy.com/util" "^1.9.0" - glob-to-regex.js "^1.0.1" - thingies "^2.5.0" - tree-dump "^1.0.3" - tslib "^2.0.0" - "memoize-one@>=3.1.1 <6", memoize-one@^5.1.1: version "5.2.1" resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" @@ -15653,11 +14800,6 @@ meow@^9.0.0: type-fest "^0.18.0" yargs-parser "^20.2.3" -merge-descriptors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" - integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== - merge-descriptors@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz#ea922f660635a2249ee565e0449f951e6b603808" @@ -15673,7 +14815,7 @@ merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@^1.1.2, methods@~1.1.2: +methods@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== @@ -15702,12 +14844,12 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.52.0, mime-db@^1.54.0: +mime-db@1.52.0, mime-db@^1.52.0, mime-db@^1.54.0: version "1.54.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.35, mime-types@~2.1.19, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -15721,7 +14863,7 @@ mime-types@^3.0.0, mime-types@^3.0.1: dependencies: mime-db "^1.54.0" -mime@1.6.0, mime@2.6.0, mime@3, mime@^1.4.1, mime@^2.4.4, mime@^3.0.0: +mime@2.6.0, mime@3, mime@^1.4.1, mime@^2.4.4, mime@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== @@ -15784,27 +14926,20 @@ minimatch@10.2.3: dependencies: brace-expansion "^5.0.2" -minimatch@^10.1.1, minimatch@^10.2.2: +minimatch@^10.1.1, minimatch@^10.2.2, minimatch@^10.2.4, "minimatch@^9.0.3 || ^10.1.2": version "10.2.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== dependencies: brace-expansion "^5.0.5" -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2, minimatch@^3.1.5: +minimatch@^3.0.4, minimatch@^3.1.2, minimatch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@^5.1.6: - version "5.1.9" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.9.tgz#1293ef15db0098b394540e8f9f744f9fda8dee4b" - integrity sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw== - dependencies: - brace-expansion "^2.0.1" - minimatch@^8.0.2: version "8.0.7" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.7.tgz#954766e22da88a3e0a17ad93b58c15c9d8a579de" @@ -15812,6 +14947,13 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.4, minimatch@^9.0.5: + version "9.0.9" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" + integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== + dependencies: + brace-expansion "^2.0.2" + minimist-options@4.1.0, minimist-options@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -15826,34 +14968,6 @@ minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1. resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== - dependencies: - yallist "^4.0.0" - minipass@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" @@ -15895,30 +15009,31 @@ mnemonist@0.38.3: dependencies: obliterator "^1.6.1" -mocha@^10.1.0: - version "10.7.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.3.tgz#ae32003cabbd52b59aece17846056a68eb4b0752" - integrity sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A== +mocha@^11.7.6: + version "11.7.6" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.6.tgz#ebbe22989d04cbb9424a36307320476624c41a33" + integrity sha512-nS9xOGbw2I3cjCpxwZAEJ9xK9lmJ08vEkQvLtz4du9ZrF9UrjRpeJGiIgl2Z+Qs++pmB4ecDe48Fwsh+j+j7xA== dependencies: - ansi-colors "^4.1.3" browser-stdout "^1.3.1" - chokidar "^3.5.3" + chokidar "^4.0.1" debug "^4.3.5" - diff "^5.2.0" + diff "^7.0.0" escape-string-regexp "^4.0.0" find-up "^5.0.0" - glob "^8.1.0" + glob "^10.4.5" he "^1.2.0" + is-path-inside "^3.0.3" js-yaml "^4.1.0" log-symbols "^4.1.0" - minimatch "^5.1.6" + minimatch "^9.0.5" ms "^2.1.3" + picocolors "^1.1.1" serialize-javascript "^6.0.2" strip-json-comments "^3.1.1" supports-color "^8.1.1" - workerpool "^6.5.1" - yargs "^16.2.0" - yargs-parser "^20.2.9" + workerpool "^9.2.0" + yargs "^17.7.2" + yargs-parser "^21.1.1" yargs-unparser "^2.0.0" mock-fs@^4.12.0: @@ -15958,11 +15073,6 @@ monitor-event-loop-delay@^1.0.0: resolved "https://registry.yarnpkg.com/monitor-event-loop-delay/-/monitor-event-loop-delay-1.0.0.tgz#b5ab78165a3bb93f2b275c50d01430c7f155d1f7" integrity sha512-YRIr1exCIfBDLZle8WHOfSo7Xg3M+phcZfq9Fx1L6Abo+atGp7cge5pM7PjyBn4s1oZI/BRD4EMrzQBbPpVb5Q== -monocle-ts@^1.0.0: - version "1.7.2" - resolved "https://registry.yarnpkg.com/monocle-ts/-/monocle-ts-1.7.2.tgz#d9825ae18846ab63f915cb6f2194a78a40025610" - integrity sha512-F08hPUzQ14vOtac2vOagnvXPr0R0MRKWXF6Bwd3gQ4XnV2qfU0MzPL+L18kX4dXBkat74pxbL88V1BjAj3YOWg== - moo-color@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.2.tgz#837c40758d2d58763825d1359a84e330531eca64" @@ -15975,23 +15085,6 @@ moo@^0.5.0: resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - 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" - -mrmime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" - integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== - ms-chromium-edge-driver@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/ms-chromium-edge-driver/-/ms-chromium-edge-driver-0.4.3.tgz#808723efaf24da086ebc2a2feb0975162164d2ff" @@ -16012,7 +15105,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: +ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -16038,14 +15131,6 @@ msgpackr@^1.9.5: optionalDependencies: msgpackr-extract "^3.0.2" -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - multimatch@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" @@ -16096,6 +15181,11 @@ napi-build-utils@^2.0.0: resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-2.0.0.tgz#13c22c0187fcfccce1461844136372a47ddc027e" integrity sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA== +napi-postinstall@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/napi-postinstall/-/napi-postinstall-0.3.4.tgz#7af256d6588b5f8e952b9190965d6b019653bbb9" + integrity sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -16145,11 +15235,6 @@ negotiator@^1.0.0: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a" integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== -negotiator@~0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" - integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== - neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" @@ -16165,24 +15250,11 @@ netmask@^2.0.2: resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -newtype-ts@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/newtype-ts/-/newtype-ts-0.2.4.tgz#a02a8f160a3d179f871848d687a93de73a964a41" - integrity sha512-HrzPdG0+0FK1qHbc3ld/HXu252OYgmN993bFxUtZ6NFCLUk1eq+yKwdvP07BblXQibGqMWNXBUrNoLUq23Ma2Q== - dependencies: - fp-ts "^1.0.0" - monocle-ts "^1.0.0" - next-line@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/next-line/-/next-line-1.1.0.tgz#fcae57853052b6a9bae8208e40dd7d3c2d304603" integrity sha1-/K5XhTBStqm66CCOQN19PC0wRgM= -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - nise@^1.5.2: version "1.5.3" resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" @@ -16235,7 +15307,7 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-forge@^1, node-forge@^1.2.1: +node-forge@^1.2.1: version "1.4.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.4.0.tgz#1c7b7d8bdc2d078739f58287d589d903a11b2fc2" integrity sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ== @@ -16287,10 +15359,10 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-releases@^2.0.27: - version "2.0.27" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" - integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== +node-releases@^2.0.50: + version "2.0.51" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.51.tgz#cdc08433577f5b32ad01694481726e22eeb54aef" + integrity sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ== node-stdlib-browser@^1.3.0: version "1.3.1" @@ -16421,10 +15493,10 @@ numeral@^2.0.6: resolved "https://registry.yarnpkg.com/numeral/-/numeral-2.0.6.tgz#4ad080936d443c2561aed9f2197efffe25f4e506" integrity sha1-StCAk21EPCVhrtnyGX7//iX05QY= -nwsapi@^2.2.0: - version "2.2.23" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.23.tgz#59712c3a88e6de2bb0b6ccc1070397267019cf6c" - integrity sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ== +nwsapi@^2.2.16: + version "2.2.24" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.24.tgz#f8927043d4c9b516abdebe804a32c8d1f9484d1f" + integrity sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A== nyc@^15.1.0: version "15.1.0" @@ -16459,7 +15531,7 @@ nyc@^15.1.0: test-exclude "^6.0.0" yargs "^15.0.2" -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -16476,7 +15548,7 @@ object-identity-map@^1.0.2: dependencies: object.entries "^1.1.0" -object-inspect@^1.12.0, object-inspect@^1.13.1, object-inspect@^1.13.3, object-inspect@^1.7.0: +object-inspect@^1.12.0, object-inspect@^1.13.1, object-inspect@^1.13.3, object-inspect@^1.13.4, object-inspect@^1.7.0: version "1.13.4" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== @@ -16504,7 +15576,19 @@ object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.2, object.assign@ has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.0.4, object.entries@^1.1.0, object.entries@^1.1.1, object.entries@^1.1.5: +object.assign@^4.1.7: + version "4.1.7" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== + 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" + +object.entries@^1.0.4, object.entries@^1.1.0, object.entries@^1.1.1: version "1.1.5" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== @@ -16513,24 +15597,27 @@ object.entries@^1.0.4, object.entries@^1.1.0, object.entries@^1.1.1, object.entr define-properties "^1.1.3" es-abstract "^1.19.1" -object.fromentries@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== +object.entries@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.9.tgz#e4770a6a1444afb61bd39f984018b5bede25f8b3" + integrity sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-object-atoms "^1.1.1" -object.hasown@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5" - integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg== +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: - define-properties "^1.1.3" - es-abstract "^1.19.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" -object.values@^1.1.1, object.values@^1.1.5: +object.values@^1.1.1: version "1.1.5" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== @@ -16539,16 +15626,21 @@ object.values@^1.1.1, object.values@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" +object.values@^1.1.6, object.values@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + obliterator@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-1.6.1.tgz#dea03e8ab821f6c4d96a299e17aef6a3af994ef3" integrity sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig== -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - omggif@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" @@ -16559,18 +15651,13 @@ on-exit-leak-free@^2.1.0: resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8" integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA== -on-finished@^2.4.1, on-finished@~2.4.1: +on-finished@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -16592,21 +15679,6 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^10.0.3: - version "10.2.0" - resolved "https://registry.yarnpkg.com/open/-/open-10.2.0.tgz#b9d855be007620e80b6fb05fac98141fe62db73c" - integrity sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA== - dependencies: - default-browser "^5.2.1" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - wsl-utils "^0.1.0" - -opener@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - opentracing@^0.14.3: version "0.14.7" resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.7.tgz#25d472bd0296dc0b64d7b94cbc995219031428f5" @@ -16690,6 +15762,15 @@ ospath@^1.2.2: resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== +own-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" + integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + dependencies: + get-intrinsic "^1.2.6" + object-keys "^1.1.1" + safe-push-apply "^1.0.0" + p-all@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-all/-/p-all-2.1.0.tgz#91419be56b7dee8fe4c5db875d55e0da084244a0" @@ -16721,14 +15802,7 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.3.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -16742,13 +15816,6 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -16805,15 +15872,6 @@ p-retry@4: "@types/retry" "0.12.0" retry "^0.13.1" -p-retry@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" - integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== - dependencies: - "@types/retry" "0.12.2" - is-network-error "^1.0.0" - retry "^0.13.1" - p-timeout@^3.1.0, p-timeout@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -16821,16 +15879,25 @@ p-timeout@^3.1.0, p-timeout@^3.2.0: dependencies: p-finally "^1.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pac-proxy-agent@9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-9.1.0.tgz#cafd7bb54905de0b6804283cd273eb22028c6abd" + integrity sha512-1aU+1mpj3DrQPfo3gh+3Gap3G5x+axnMx1P/y0ZF2ch7kb2meyOCAH8K2k9d27ROsTE7TnAerzxqF9aon2jqnA== + dependencies: + agent-base "9.0.0" + debug "^4.3.4" + get-uri "8.0.1" + http-proxy-agent "9.1.0" + https-proxy-agent "9.1.0" + pac-resolver "9.0.1" + quickjs-wasi "^2.2.0" + socks-proxy-agent "10.1.0" + pac-proxy-agent@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz#9cfaf33ff25da36f6147a20844230ec92c06e5df" @@ -16845,6 +15912,14 @@ pac-proxy-agent@^7.1.0: pac-resolver "^7.0.1" socks-proxy-agent "^8.0.5" +pac-resolver@9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-9.0.1.tgz#a90b1518e4e832b3fcb197ada974d6f6ceaa7f8a" + integrity sha512-lJbS008tmkj08VhoM8Hzuv/VE5tK9MS0OIQ/7+s0lIF+BYhiQWFYzkSpML7lXs9iBu2jfmzBTLzhe9n6BX+dYw== + dependencies: + degenerator "7.0.1" + netmask "^2.0.2" + pac-resolver@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.1.tgz#54675558ea368b64d210fd9c92a640b5f3b8abb6" @@ -16863,7 +15938,7 @@ package-hash@^4.0.0: lodash.flattendeep "^4.4.0" release-zalgo "^1.0.0" -package-json-from-dist@^1.0.1: +package-json-from-dist@^1.0.0, package-json-from-dist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== @@ -16960,11 +16035,6 @@ parse5-htmlparser2-tree-adapter@^6.0.1: dependencies: parse5 "^6.0.1" -parse5@6.0.1, parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -16972,7 +16042,19 @@ parse5@^3.0.1: dependencies: "@types/node" "*" -parseurl@^1.3.3, parseurl@~1.3.2, parseurl@~1.3.3: +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parse5@^7.0.0, parse5@^7.2.1: + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== + dependencies: + entities "^6.0.0" + +parseurl@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -17002,11 +16084,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -17017,7 +16094,7 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.6.1: +path-scurry@^1.11.1, path-scurry@^1.6.1: version "1.11.1" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== @@ -17050,11 +16127,6 @@ path-to-regexp@^8.0.0: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.4.0.tgz#8e98fcd94826aff01a90c544ef74ffbaca3a78ed" integrity sha512-PuseHIvAnz3bjrM2rGJtSgo1zjgxapTLZ7x2pjhzWwlp4SJQgK3f3iZIQwkpEnBaKz6seKBADpM4B4ySkuYypg== -path-to-regexp@~0.1.12: - version "0.1.13" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.13.tgz#9b22ec16bc3ab88d05a0c7e369869421401ab17d" - integrity sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA== - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -17087,19 +16159,12 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -phin@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/phin/-/phin-3.7.1.tgz#bf841da75ee91286691b10e41522a662aa628fd6" - integrity sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ== - dependencies: - centra "^2.7.0" - picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.0, picomatch@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601" integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA== @@ -17109,27 +16174,15 @@ picomatch@^4.0.3: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589" integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== -pify@^2.0.0, pify@^2.2.0: +pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pino-abstract-transport@^1.2.0: version "1.2.0" @@ -17161,17 +16214,15 @@ pino@^8.15.0: sonic-boom "^3.7.0" thread-stream "^2.6.0" -pirates@^4.0.1, pirates@^4.0.4, pirates@^4.0.5: +pirates@^4.0.1: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== -pixelmatch@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-5.2.1.tgz#9e4e4f4aa59648208a31310306a5bed5522b0d65" - integrity sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ== - dependencies: - pngjs "^4.0.1" +pirates@^4.0.6, pirates@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== pixelmatch@^5.3.0: version "5.3.0" @@ -17185,13 +16236,6 @@ pkce-challenge@^5.0.0: resolved "https://registry.yarnpkg.com/pkce-challenge/-/pkce-challenge-5.0.0.tgz#c3a405cb49e272094a38e890a2b51da0228c4d97" integrity sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ== -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -17237,16 +16281,6 @@ plur@^4.0.0: dependencies: irregular-plurals "^3.2.0" -pngjs@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pngjs@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-4.0.1.tgz#f803869bb2fc1bfe1bf99aa4ec21c108117cfdbe" - integrity sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg== - pngjs@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-6.0.0.tgz#ca9e5d2aa48db0228a52c419c3308e87720da821" @@ -17257,7 +16291,7 @@ pngjs@^7.0.0: resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-7.0.0.tgz#a8b7446020ebbc6ac739db6c5415a65d17090e26" integrity sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow== -possible-typed-array-names@^1.0.0: +possible-typed-array-names@^1.0.0, possible-typed-array-names@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== @@ -17320,9 +16354,9 @@ postcss-scss@^4.0.2: integrity sha512-j4KxzWovfdHsyxwl1BxkUal/O4uirvHgdzMKS1aWJBAV0qh2qj5qAZqpeBfVUYGWv+4iK9Az7SPyZ4fyNju1uA== postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + version "6.1.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz#fdec4ca80f5781bd216ca9bf89a2a0fccfffa5f0" + integrity sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -17373,24 +16407,34 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== +prettier-linter-helpers@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz#6a31f88a4bad6c7adda253de12ba4edaea80ebcd" + integrity sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg== dependencies: fast-diff "^1.1.2" -prettier@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" - integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== +prettier@^3.5.3: + version "3.9.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.4.tgz#a9c477cf1614376bd1f6bbc593d8c0d414bcec87" + integrity sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg== pretty-bytes@^5.6.0: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-format@^27.0.2, pretty-format@^27.5.1: +pretty-format@30.4.1, pretty-format@^30.0.0: + version "30.4.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.4.1.tgz#0911652e92e1e91f475e3e6a16e628e50649ea69" + integrity sha512-K6KiKMHTL4jjX4u3Kir2EW07nRfcqVTXIImx50wbjHQTcZPgg+gjVeNTIT3l3L1Rd4UefxfogquC9J37SoFyyw== + dependencies: + "@jest/schemas" "30.4.1" + ansi-styles "^5.2.0" + react-is-18 "npm:react-is@^18.3.1" + react-is-19 "npm:react-is@^19.2.5" + +pretty-format@^27.0.2: version "27.5.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== @@ -17399,16 +16443,6 @@ pretty-format@^27.0.2, pretty-format@^27.5.1: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^28.0.0, pretty-format@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" - integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== - dependencies: - "@jest/schemas" "^28.1.3" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^18.0.0" - pretty-format@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" @@ -17455,24 +16489,11 @@ progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - promise-polyfill@^8.1.3: version "8.2.3" resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.2.3.tgz#2edc7e4b81aff781c88a0d577e5fe9da822107c6" integrity sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg== -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - prop-types@15.x, prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" @@ -17494,7 +16515,7 @@ property-information@^5.0.0, property-information@^5.3.0: dependencies: xtend "^4.0.0" -proxy-addr@^2.0.7, proxy-addr@~2.0.7: +proxy-addr@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== @@ -17502,6 +16523,11 @@ proxy-addr@^2.0.7, proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-agent-negotiate@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-agent-negotiate/-/proxy-agent-negotiate-1.1.0.tgz#de7d37aede9d71e74346125d6f484fac8092b615" + integrity sha512-N8IBcM3UgCVzz2L2Lqv8DVntDnnC8/hiV4nEDUPkqq72TPUgYWjQc+bdZlBPZK9LzPAvOY//gAt0S0DApoOXWQ== + proxy-agent@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.5.0.tgz#9e49acba8e4ee234aacb539f89ed9c23d02f232d" @@ -17516,6 +16542,20 @@ proxy-agent@^6.5.0: proxy-from-env "^1.1.0" socks-proxy-agent "^8.0.5" +proxy-agent@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-8.0.2.tgz#70737a3b9cdc8bd7a282c9e6ff54a64f5252413c" + integrity sha512-idLLRewuemWd7GH/BDJzGiB0dWGfT2SQs3jy6NtZtGWU9uPTTSdeC1/cdbqLwgzhfv027daGFuXX426e2Eg20A== + dependencies: + agent-base "9.0.0" + debug "^4.3.4" + http-proxy-agent "9.1.0" + https-proxy-agent "9.1.0" + lru-cache "^7.14.1" + pac-proxy-agent "9.1.0" + proxy-from-env "^2.0.0" + socks-proxy-agent "10.1.0" + proxy-from-env@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" @@ -17526,7 +16566,7 @@ proxy-from-env@^1.1.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -proxy-from-env@^2.1.0: +proxy-from-env@^2.0.0, proxy-from-env@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz#a7487568adad577cfaaa7e88c49cab3ab3081aba" integrity sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA== @@ -17598,46 +16638,56 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer-core@24.14.0: - version "24.14.0" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-24.14.0.tgz#c2e3e80649b6a0c2855c3dae09c794c981c686d6" - integrity sha512-NO9XpCl+i8oB0zJp81iPhzMo2QK8/JTj4ramSvTpGCo9CPCNo4AZ8qVOGpSgXzlcOfOT3VHOkzTfPo08GOE5jA== - dependencies: - "@puppeteer/browsers" "2.10.6" - chromium-bidi "7.1.1" - debug "^4.4.1" - devtools-protocol "0.0.1464554" - typed-query-selector "^2.12.0" - ws "^8.18.3" +punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -puppeteer@^24.14.0: - version "24.14.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-24.14.0.tgz#3f4d3123c2364e8b5c69f6cc48854620462025b5" - integrity sha512-GB7suRDkp9pUnxpNGAORICQCtw11KFbg6U2iJXVTflzJLK5D1qzq8xOOmLgN/QnDBpDMdpn96ri52XkuN83Giw== +puppeteer-core@24.43.1: + version "24.43.1" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-24.43.1.tgz#c10a5d398b69911c324e04c85ee2b236b9ec940e" + integrity sha512-T5ScUMAsmhdNbgDR41AGESYeS6V9MSgetkSnVhhW+gXvzC42VesKCn5ld87gAZDJ6vLHL9GkRvY9WtQWSnwFbw== dependencies: - "@puppeteer/browsers" "2.10.6" - chromium-bidi "7.1.1" + "@puppeteer/browsers" "2.13.2" + chromium-bidi "14.0.0" + debug "^4.4.3" + devtools-protocol "0.0.1608973" + typed-query-selector "^2.12.2" + webdriver-bidi-protocol "0.4.1" + ws "^8.20.0" + +puppeteer@^24.43.1: + version "24.43.1" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-24.43.1.tgz#86cad9170ce2dec2db3b8d1d34c0c91424bbe3e3" + integrity sha512-/FSOViCrqRdb1HDocpsM9Z1giA71gTQPUt3SpHGVRALKAy/rJr1fLFYZW9F23qPxqVxTHQnbh/5B5opJST3kAw== + dependencies: + "@puppeteer/browsers" "2.13.2" + chromium-bidi "14.0.0" cosmiconfig "^9.0.0" - devtools-protocol "0.0.1464554" - puppeteer-core "24.14.0" - typed-query-selector "^2.12.0" + devtools-protocol "0.0.1608973" + puppeteer-core "24.43.1" + typed-query-selector "^2.12.2" -qs@^6.11.0, qs@^6.12.3, qs@^6.14.0, qs@^6.14.1, qs@^6.15.2, qs@~6.14.0, qs@~6.14.1: +pure-rand@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-7.0.1.tgz#6f53a5a9e3e4a47445822af96821ca509ed37566" + integrity sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ== + +qs@^6.11.0, qs@^6.12.3, qs@^6.14.0, qs@^6.15.2, qs@~6.14.1: version "6.15.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.2.tgz#fd55426d710403ddccc45e0f9eab16db7727ece9" integrity sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw== dependencies: side-channel "^1.1.0" -query-string@^6.13.2: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== +query-string@^9.4.1: + version "9.4.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-9.4.1.tgz#fc5b1cc5c1944eaa1c8e6d4912b5bb90dc66fa2d" + integrity sha512-lSyJeN3RuaG7DZGWThtYRhk96+kEyZ/+doZpERuWbjeFL+Ok3vEat/swU498rAI0NcVt5/RJp8UDuLz7FckxrA== dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" + decode-uri-component "^0.4.1" + filter-obj "^5.1.0" + split-on-first "^3.0.0" querystring-es3@^0.2.1: version "0.2.1" @@ -17669,6 +16719,11 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== +quickjs-wasi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/quickjs-wasi/-/quickjs-wasi-2.2.0.tgz#85d8984aa1b048546e5634c764165034c6e22d48" + integrity sha512-zQxXmQMrEoD3S+jQdYsloq4qAuaxKFHZj6hHqOYGwB2iQZH+q9e/lf5zQPXCKOk0WJuAjzRFbO4KwHIp2D05Iw== + raf-schd@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a" @@ -17686,11 +16741,6 @@ railroad-diagrams@^1.0.0: resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= -ramda@^0.27.0: - version "0.27.2" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.2.tgz#84463226f7f36dc33592f6f4ed6374c48306c3f1" - integrity sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA== - ramda@^0.30.1: version "0.30.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.30.1.tgz#7108ac95673062b060025052cd5143ae8fc605bf" @@ -17719,12 +16769,12 @@ randomfill@^1.0.4: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.2.1, range-parser@~1.2.1: +range-parser@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@^3.0.0, raw-body@^3.0.1: +raw-body@^3.0.0, raw-body@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.2.tgz#3e3ada5ae5568f9095d84376fd3a49b8fb000a51" integrity sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA== @@ -17752,10 +16802,10 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -re-reselect@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/re-reselect/-/re-reselect-3.4.0.tgz#0f2303f3c84394f57f0cd31fea08a1ca4840a7cd" - integrity sha512-JsecfN+JlckncVXTWFWjn0Vk6uInl8GSf4eEd9tTk5qXHlgqkPdILpnYpgZcISXNYAzvfvsCZviaDk8AxyS5sg== +re-reselect@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/re-reselect/-/re-reselect-4.0.1.tgz#21a2306d11bbf377ac78687aa46e1a8848974194" + integrity sha512-xVTNGQy/dAxOolunBLmVMGZ49VUUR1s8jZUiJQb+g1sI63GAv9+a5Jas9yHvdxeUgiZkU9r3gDExDorxHzOgRA== react-ace@^7.0.5: version "7.0.5" @@ -17868,16 +16918,21 @@ react-intl@^2.9.0: intl-relativeformat "^2.1.0" invariant "^2.1.1" +"react-is-18@npm:react-is@^18.3.1", "react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.0.0, react-is@^18.2.0, react-is@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +"react-is-19@npm:react-is@^19.2.5": + version "19.2.7" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.2.7.tgz#57668ee86a78574a542b0a539455212b2c086df2" + integrity sha512-kZFnouyVv7eP/Phmrlo9FK+zcAdriZJvzxXHF1Sl1P377WSGe2G/JxVolhTrB/jeV47lKImhNUsijjHAAbcl/A== + react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.0.0, react-is@^18.2.0, react-is@^18.3.1: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - react-is@^17.0.0, react-is@^17.0.1, react-is@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" @@ -17912,7 +16967,7 @@ react-monaco-editor@^0.58.0: resolved "https://registry.yarnpkg.com/react-monaco-editor/-/react-monaco-editor-0.58.0.tgz#da2285d27d29be1080b7558c25e0fc5050e3fdfb" integrity sha512-e8JH0TQEzO96Wd/EXgzc9M9tQK1pxBECD+8GNob9slMURcCM36TiVrgc4topWCDGYxRuMj8IEkaX+s3eQcUUqw== -react-redux@^7.1.0, react-redux@^7.2.0: +react-redux@^7.2.0: version "7.2.9" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.9.tgz#09488fbb9416a4efe3735b7235055442b042481d" integrity sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ== @@ -17924,7 +16979,7 @@ react-redux@^7.1.0, react-redux@^7.2.0: prop-types "^15.7.2" react-is "^17.0.2" -react-redux@^8.1.0: +react-redux@^8.1.0, react-redux@^8.1.3: version "8.1.3" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.3.tgz#4fdc0462d0acb59af29a13c27ffef6f49ab4df46" integrity sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw== @@ -18130,19 +17185,6 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@^2.3.8, readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - "readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0, readable-stream@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" @@ -18162,6 +17204,19 @@ read-pkg@^5.2.0: isarray "0.0.1" string_decoder "~0.10.x" +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@^2.3.8, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readable-stream@^4.0.0: version "4.7.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.7.0.tgz#cedbd8a1146c13dfff8dab14068028d58c15ac91" @@ -18207,13 +17262,6 @@ real-require@^0.2.0: resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== -rechoir@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" - integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== - dependencies: - resolve "^1.9.0" - redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -18234,6 +17282,11 @@ redux-thunk@^2.3.0, redux-thunk@^2.4.1: resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.1.tgz#0dd8042cf47868f4b29699941de03c9301a75714" integrity sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q== +redux-thunk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.2.tgz#b9d05d11994b99f7a91ea223e8b04cf0afa5ef3b" + integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== + redux@^4.0.0, redux@^4.0.4, redux@^4.0.5, redux@^4.1.2: version "4.2.0" resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13" @@ -18241,6 +17294,27 @@ redux@^4.0.0, redux@^4.0.4, redux@^4.0.5, redux@^4.1.2: dependencies: "@babel/runtime" "^7.9.2" +redux@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== + dependencies: + "@babel/runtime" "^7.9.2" + +reflect.getprototypeof@^1.0.10, reflect.getprototypeof@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" + integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== + 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" + refractor@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.6.0.tgz#ac318f5a0715ead790fcfb0c71f4dd83d977935a" @@ -18260,10 +17334,10 @@ regedit@^3.0.3: stream-slicer "0.0.6" through2 "^0.6.3" -regenerate-unicode-properties@^10.1.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" - integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== +regenerate-unicode-properties@^10.2.2: + version "10.2.2" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" + integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== dependencies: regenerate "^1.4.2" @@ -18287,14 +17361,7 @@ regenerator-runtime@^0.13.3: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== - dependencies: - "@babel/runtime" "^7.8.4" - -regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.5.1: +regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== @@ -18303,29 +17370,41 @@ regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.1, regexp.prototype.f define-properties "^1.2.0" set-function-name "^2.0.0" -regexpp@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +regexp.prototype.flags@^1.5.3, regexp.prototype.flags@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== + 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" -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== +regexpu-core@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" + integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== dependencies: - "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" + regenerate-unicode-properties "^10.2.2" + regjsgen "^0.8.0" + regjsparser "^0.13.0" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" + unicode-match-property-value-ecmascript "^2.2.1" -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.13.0: + version "0.13.2" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.2.tgz#f654734b5c588b22ba3e21693b30523417180808" + integrity sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ== dependencies: - jsesc "~0.5.0" + jsesc "~3.1.0" rehype-react@^6.0.0: version "6.2.1" @@ -18475,25 +17554,19 @@ require-in-the-middle@^5.0.2: module-details-from-path "^1.0.3" resolve "^1.12.0" -require-in-the-middle@^7.1.1: - version "7.5.2" - resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz#dc25b148affad42e570cf0e41ba30dc00f1703ec" - integrity sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ== +require-in-the-middle@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-8.0.1.tgz#dbde2587f669398626d56b20c868ab87bf01cce4" + integrity sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ== dependencies: debug "^4.3.5" module-details-from-path "^1.0.3" - resolve "^1.22.8" require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -requireindex@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" - integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -18504,7 +17577,7 @@ requires-regex@^0.3.3: resolved "https://registry.yarnpkg.com/requires-regex/-/requires-regex-0.3.3.tgz#60309eaabbfd5ca8259e090b8b5a94b2144eb0dd" integrity sha1-YDCeqrv9XKglngkLi1qUshROsN0= -reselect@^4.0.0, reselect@^4.1.5, reselect@^4.1.7: +reselect@^4.0.0, reselect@^4.1.5, reselect@^4.1.7, reselect@^4.1.8: version "4.1.8" resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== @@ -18548,12 +17621,12 @@ resolve-pathname@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.22.8, resolve@^1.5.0, resolve@^1.7.1, resolve@^1.9.0, resolve@~1.22.1, resolve@~1.22.2: +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.17.0, resolve@^1.22.8, resolve@^1.5.0, resolve@^1.7.1, resolve@~1.22.1, resolve@~1.22.2: version "1.22.11" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== @@ -18562,6 +17635,16 @@ resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.14 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.22.11: + version "1.22.12" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.12.tgz#f5b2a680897c69c238a13cd16b15671f8b73549f" + integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA== + dependencies: + es-errors "^1.3.0" + is-core-module "^2.16.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^2.0.0-next.3, resolve@^2.0.0-next.5: version "2.0.0-next.5" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" @@ -18626,7 +17709,7 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@^2.6.2, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -18677,10 +17760,15 @@ router@^2.2.0: parseurl "^1.3.3" path-to-regexp "^8.0.0" -rslog@^1.2.11: - version "1.3.1" - resolved "https://registry.yarnpkg.com/rslog/-/rslog-1.3.1.tgz#bd8d02898147e476e907a65b65be64a6176e85a1" - integrity sha512-cO4V+79h7+gSLKx1qk1jUhHzuCPN7LiH8PoEbmbGhQITMMk39JtyjxTkbSfL9P4CoR/RpOiJrDyVM/Iprhvq7w== +rrweb-cssom@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz#3021d1b4352fbf3b614aaeed0bc0d5739abe0bc2" + integrity sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw== + +rslog@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/rslog/-/rslog-2.1.3.tgz#e0bb9d0753340e77b4ce05ad68abbe0c2fde6ccb" + integrity sha512-DCUkRKUBR1lSpHKRcxNvHaYwGrUVf9MsoE1u6gd0CF37I8vwwtWc4b+FA9OwYZ4QA/shslzAYorD3MMfd+Rs/Q== rst-selector-parser@^2.2.3: version "2.2.3" @@ -18697,11 +17785,6 @@ rtl-css-js@^1.16.1: dependencies: "@babel/runtime" "^7.1.2" -run-applescript@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.1.0.tgz#2e9e54c4664ec3106c5b5630e249d3d6595c4911" - integrity sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q== - run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -18714,13 +17797,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - rw@1: version "1.3.3" resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" @@ -18750,17 +17826,36 @@ safe-array-concat@^1.0.1: has-symbols "^1.0.3" isarray "^2.0.5" +safe-array-concat@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.4.tgz#a54cc9b61a57f33b42abad3cbdda3a2b38cc5719" + integrity sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg== + dependencies: + call-bind "^1.0.9" + call-bound "^1.0.4" + get-intrinsic "^1.3.0" + has-symbols "^1.1.0" + isarray "^2.0.5" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.0, safe-regex-test@^1.1.0: +safe-push-apply@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5" + integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== + dependencies: + es-errors "^1.3.0" + isarray "^2.0.5" + +safe-regex-test@^1.0.0, safe-regex-test@^1.0.3, safe-regex-test@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== @@ -18936,10 +18031,10 @@ sax@>=0.6.0, sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== dependencies: xmlchars "^2.2.0" @@ -18950,7 +18045,7 @@ scheduler@^0.23.2: dependencies: loose-envify "^1.1.0" -schema-utils@^2.5.0, schema-utils@^2.6.6, schema-utils@^2.7.0: +schema-utils@^2.5.0, schema-utils@^2.7.0: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -18968,7 +18063,7 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0, schema-utils@^4.3.3: +schema-utils@^4.0.0, schema-utils@^4.2.0: version "4.3.3" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== @@ -18993,11 +18088,6 @@ seedrandom@^3.0.5: resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - selenium-webdriver@^4.0.0-alpha.7: version "4.0.0-alpha.7" resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-alpha.7.tgz#e3879d8457fd7ad8e4424094b7dc0540d99e6797" @@ -19007,15 +18097,7 @@ selenium-webdriver@^4.0.0-alpha.7: rimraf "^2.7.1" tmp "0.0.30" -selfsigned@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== - dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" - -"semver@2 || 3 || 4 || 5", semver@7.3.2, semver@^5.5.0, semver@^5.6.0, semver@^5.7.2, semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.2, semver@^7.7.2, semver@^7.7.3, semver@~7.5.4: +"semver@2 || 3 || 4 || 5", semver@7.3.2, semver@^5.5.0, semver@^5.6.0, semver@^5.7.2, semver@^6.0.0, semver@^6.3.0, semver@^6.3.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.2, semver@^7.6.3, semver@^7.7.2, semver@^7.7.3, semver@^7.7.4, semver@~7.5.4: version "7.5.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== @@ -19039,43 +18121,11 @@ send@^1.1.0, send@^1.2.0: range-parser "^1.2.1" statuses "^2.0.1" -send@~0.19.0, send@~0.19.1: - version "0.19.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.2.tgz#59bc0da1b4ea7ad42736fd642b1c4294e114ff29" - integrity sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "~0.5.2" - http-errors "~2.0.1" - mime "1.6.0" - ms "2.1.3" - on-finished "~2.4.1" - range-parser "~1.2.1" - statuses "~2.0.2" - -serialize-javascript@^4.0.0, serialize-javascript@^6.0.2, serialize-javascript@^7.0.3: +serialize-javascript@^6.0.2, serialize-javascript@^7.0.3: version "7.0.5" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-7.0.5.tgz#c798cc0552ffbb08981914a42a8756e339d0d5b1" integrity sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw== -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - 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" - serve-static@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.0.tgz#9c02564ee259bdd2251b82d659a2e7e1938d66f9" @@ -19086,16 +18136,6 @@ serve-static@^2.2.0: parseurl "^1.3.3" send "^1.2.0" -serve-static@~1.16.2: - version "1.16.3" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.3.tgz#a97b74d955778583f3862a4f0b841eb4d5d78cf9" - integrity sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA== - dependencies: - encodeurl "~2.0.0" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "~0.19.1" - set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -19122,6 +18162,16 @@ set-function-name@^2.0.0: functions-have-names "^1.2.3" has-property-descriptors "^1.0.0" +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + set-harmonic-interval@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" @@ -19132,6 +18182,15 @@ set-immediate-shim@~1.0.1: resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= +set-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e" + integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== + dependencies: + dunder-proto "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + set-value@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/set-value/-/set-value-4.1.0.tgz#aa433662d87081b75ad88a4743bd450f044e7d09" @@ -19145,12 +18204,7 @@ setimmediate@^1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0, setprototypeof@~1.2.0: +setprototypeof@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== @@ -19194,9 +18248,9 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.8.4: - version "1.8.4" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.4.tgz#2edd9a4dcefc96649e2e2cb12f637b1f1d92a190" - integrity sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ== + version "1.9.0" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.9.0.tgz#e108b1a136586d5964edb3300016d4bedba0fe57" + integrity sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA== side-channel-list@^1.0.0: version "1.0.0" @@ -19243,6 +18297,11 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" @@ -19293,20 +18352,6 @@ sinon@^7.4.2: nise "^1.5.2" supports-color "^5.5.0" -sirv@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" - integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== - dependencies: - "@polka/url" "^1.0.0-next.24" - mrmime "^2.0.0" - totalist "^3.0.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -19351,12 +18396,12 @@ smart-buffer@^4.2.0: integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== socket.io-adapter@~2.5.2: - version "2.5.6" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.6.tgz#c697f609d36a676a46749782274607d8df52c1d8" - integrity sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ== + version "2.5.8" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.8.tgz#c9fcabf602dbd5b09258ca98e5ec6a7ae4360698" + integrity sha512-6Oy52pbg+kvdCVvjcN+FnY7BvxZ7cIHNScbvztT/It5d0vbwoJoVZmF2gjJmnV0/4WlXRfG15zc45ySk9Ah8bw== dependencies: debug "~4.4.1" - ws "~8.18.3" + ws "~8.21.0" socket.io-parser@~4.2.4: version "4.2.6" @@ -19379,14 +18424,14 @@ socket.io@4.8.1: socket.io-adapter "~2.5.2" socket.io-parser "~4.2.4" -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== +socks-proxy-agent@10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-10.1.0.tgz#8eaf7d64ad8752ca43ab04a1a9567be9b7fc40b1" + integrity sha512-WlMj/67cEJ6MDI1OcsnjuYKDNDoyPCCYZ249kuuXPiMDw9F8PXkVaQ7YWu3siTydfQ/4BEZcvGzu+aYvz7dDCQ== dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" + agent-base "9.0.0" + debug "^4.3.4" + socks "^2.8.3" socks-proxy-agent@^8.0.5: version "8.0.5" @@ -19419,11 +18464,6 @@ sort-keys@^2.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" @@ -19437,7 +18477,7 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: +source-map-support@^0.5.16, source-map-support@^0.5.19: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -19460,7 +18500,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@^0.7.6: +source-map@^0.7.6: version "0.7.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02" integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== @@ -19538,38 +18578,15 @@ spdx-satisfies@^4.0.0: spdx-expression-parse "^3.0.0" spdx-ranges "^2.0.0" -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - 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" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - 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" - specificity@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== +split-on-first@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-3.0.0.tgz#f04959c9ea8101b9b0bbf35a61b9ebea784a23e7" + integrity sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA== split2@^3.0.0: version "3.2.2" @@ -19608,13 +18625,10 @@ sshpk@^1.18.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.1.tgz#33e44f896a967158e3c63468e47ec46613b95b5f" - integrity sha512-w+daCzXN89PseTL99MkA+fxJEcU3wfaE/ah0i0lnOlpG1CYLJ2ZjzEry68YBKfLs4JfoTShrTEsJkAZuNZ/stw== - dependencies: - figgy-pudding "^3.5.1" - minipass "^3.1.1" +stable-hash-x@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/stable-hash-x/-/stable-hash-x-0.2.0.tgz#dfd76bfa5d839a7470125c6a6b3c8b22061793e9" + integrity sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ== stack-generator@^2.0.5: version "2.0.5" @@ -19623,10 +18637,10 @@ stack-generator@^2.0.5: dependencies: stackframe "^1.1.1" -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== +stack-utils@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== dependencies: escape-string-regexp "^2.0.0" @@ -19662,16 +18676,19 @@ state-toggle@^1.0.0: resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -statuses@^2.0.1, statuses@~2.0.1, statuses@~2.0.2: +statuses@^2.0.1, statuses@~2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== +stop-iteration-iterator@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad" + integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== + dependencies: + es-errors "^1.3.0" + internal-slot "^1.1.0" + stream-browserify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" @@ -19717,17 +18734,12 @@ streamx@^2.15.0, streamx@^2.21.0: optionalDependencies: bare-events "^2.2.0" -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= - string-argv@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -string-length@^4.0.1: +string-length@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== @@ -19735,6 +18747,15 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -19752,14 +18773,14 @@ string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" string-width@^7.0.0, string-width@^7.2.0: version "7.2.0" @@ -19770,19 +18791,41 @@ string-width@^7.0.0, string-width@^7.2.0: get-east-asian-width "^1.0.0" strip-ansi "^7.1.0" -string.prototype.matchall@^4.0.6: - version "4.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" - integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== +string.prototype.includes@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz#eceef21283640761a81dbe16d6c7171a4edf7d92" + integrity sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + +string.prototype.matchall@^4.0.12: + version "4.0.12" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz#6c88740e49ad4956b1332a911e949583a275d4c0" + integrity sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA== + 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" + +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.1" - side-channel "^1.0.4" + es-abstract "^1.17.5" string.prototype.trim@^1.2.1, string.prototype.trim@^1.2.5, string.prototype.trim@^1.2.8: version "1.2.8" @@ -19793,6 +18836,20 @@ string.prototype.trim@^1.2.1, string.prototype.trim@^1.2.5, string.prototype.tri define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trim@^1.2.10: + version "1.2.11" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz#e6bd19cda3985d05a42dda31f3ddf4d35d3430e3" + integrity sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w== + dependencies: + call-bind "^1.0.9" + call-bound "^1.0.4" + define-data-property "^1.1.4" + define-properties "^1.2.1" + es-abstract "^1.24.2" + es-object-atoms "^1.1.2" + has-property-descriptors "^1.0.2" + safe-regex-test "^1.1.0" + string.prototype.trimend@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" @@ -19802,6 +18859,16 @@ string.prototype.trimend@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trimend@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz#be6bcf4f3fe0460bdeccdb2cf4f971b310f8346e" + integrity sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw== + dependencies: + call-bind "^1.0.9" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-object-atoms "^1.1.2" + string.prototype.trimstart@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" @@ -19811,6 +18878,15 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -19839,12 +18915,12 @@ stringify-entities@^3.0.1: character-entities-legacy "^1.0.0" xtend "^4.0.0" -strip-ansi@*, strip-ansi@^7.1.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - ansi-regex "^6.0.1" + ansi-regex "^5.0.1" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" @@ -19860,17 +18936,19 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== +strip-ansi@^7.0.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" + integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== dependencies: - ansi-regex "^5.0.1" + ansi-regex "^6.2.2" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= +strip-ansi@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + dependencies: + ansi-regex "^6.0.1" strip-bom@^4.0.0: version "4.0.0" @@ -20096,7 +19174,7 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0, supports-color@^8.1.1, supports-color@~8.1.1: +supports-color@^8.1.1, supports-color@~8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -20143,6 +19221,13 @@ sync-message-port@^1.0.0: resolved "https://registry.yarnpkg.com/sync-message-port/-/sync-message-port-1.1.3.tgz#6055c565ee8c81d2f9ee5aae7db757e6d9088c0c" integrity sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg== +synckit@^0.11.13, synckit@^0.11.8: + version "0.11.13" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.13.tgz#062a5ea57d81befc35892f8254de5c567e97c80a" + integrity sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg== + dependencies: + "@pkgr/core" "^0.3.6" + tabbable@^6.1.2: version "6.2.0" resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" @@ -20164,17 +19249,17 @@ tailwindcss@4.2.4: resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-4.2.4.tgz#f7e3090edb22d56394db4d68e6464d2628dc2aa9" integrity sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA== -tapable@2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.3.tgz#4b67b635b2d97578a06a2713d2f04800c237e99b" - integrity sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg== +tapable@2.3.3, tapable@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.3.tgz#5da7c9992c46038221267985ab28421a8879f160" + integrity sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A== tapable@^0.1.8: version "0.1.10" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" integrity sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q= -tapable@^2.2.0, tapable@^2.2.1, tapable@^2.3.0: +tapable@^2.2.1, tapable@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== @@ -20216,10 +19301,10 @@ tar-fs@^2.0.0, tar-fs@^2.1.4: pump "^3.0.0" tar-stream "^2.1.4" -tar-fs@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.1.1.tgz#4f164e59fb60f103d472360731e8c6bb4a7fe9ef" - integrity sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg== +tar-fs@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.1.3.tgz#05668cc68a30741c3813f9c16593b8dec7dcbcd1" + integrity sha512-/hU4AXnIdZu+Gvl1pk0oI5f5HxWsCJRtY2aFaJdk9VvyL48DWU6iU5WAIPG+wIi1YvWA6eTJvIviP/tMAZZNwQ== dependencies: pump "^3.0.0" tar-stream "^3.1.5" @@ -20247,10 +19332,10 @@ tar-stream@^3.1.5: fast-fifo "^1.2.0" streamx "^2.15.0" -tar@^7.5.10: - version "7.5.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.11.tgz#1250fae45d98806b36d703b30973fa8e0a6d8868" - integrity sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ== +tar@^7.5.19: + version "7.5.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.19.tgz#d8915e6b717f8036a79d839ca9448198b002b0a7" + integrity sha512-4LeEWl96twnS2Q7Bz4MGqgazLqO+hJN63GZxXoIqh1T3VweYD997gbU1ItNsQafqqXTXd5WFyFdReLtwvRBNiw== dependencies: "@isaacs/fs-minipass" "^4.0.0" chownr "^3.0.0" @@ -20280,59 +19365,6 @@ tempy@^0.3.0: type-fest "^0.3.1" unique-string "^1.0.0" -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser-webpack-plugin@^2.1.2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz#894764a19b0743f2f704e7c2a848c5283a696724" - integrity sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w== - dependencies: - cacache "^13.0.1" - find-cache-dir "^3.3.1" - jest-worker "^25.4.0" - p-limit "^2.3.0" - schema-utils "^2.6.6" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.6.12" - webpack-sources "^1.4.3" - -terser-webpack-plugin@^5.3.16: - version "5.3.16" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz#741e448cc3f93d8026ebe4f7ef9e4afacfd56330" - integrity sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q== - dependencies: - "@jridgewell/trace-mapping" "^0.3.25" - jest-worker "^27.4.5" - schema-utils "^4.3.0" - serialize-javascript "^6.0.2" - terser "^5.31.1" - -terser@^4.6.12: - version "4.8.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" - integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.31.1: - version "5.46.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.46.0.tgz#1b81e560d584bbdd74a8ede87b4d9477b0ff9695" - integrity sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.15.0" - commander "^2.20.0" - source-map-support "~0.5.20" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -20361,16 +19393,6 @@ text-segmentation@^1.0.3: dependencies: utrie "^1.0.2" -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -thingies@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.5.0.tgz#5f7b882c933b85989f8466b528a6247a6881e04f" - integrity sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw== - thread-stream@^2.6.0: version "2.7.0" resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.7.0.tgz#d8a8e1b3fd538a6cca8ce69dbe5d3d097b601e11" @@ -20378,11 +19400,6 @@ thread-stream@^2.6.0: dependencies: real-require "^0.2.0" -throat@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" - integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== - throttle-debounce@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.3.0.tgz#fd31865e66502071e411817e241465b3e9c372e2" @@ -20442,11 +19459,6 @@ through@^2.3.4, through@^2.3.6, through@^2.3.8, through@~2.3.4: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - timers-browserify@^2.0.4: version "2.0.12" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" @@ -20576,12 +19588,7 @@ topojson-client@^3.1.0: dependencies: commander "2" -totalist@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" - integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== - -tough-cookie@^4.0.0, tough-cookie@^4.1.3: +tough-cookie@^4.1.3: version "4.1.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== @@ -20591,7 +19598,7 @@ tough-cookie@^4.0.0, tough-cookie@^4.1.3: universalify "^0.2.0" url-parse "^1.5.3" -tough-cookie@^5.0.0: +tough-cookie@^5.0.0, tough-cookie@^5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7" integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== @@ -20605,23 +19612,18 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== +tr46@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.1.1.tgz#96ae867cddb8fdb64a49cc3059a8d428bcf238ca" + integrity sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw== dependencies: - punycode "^2.1.1" + punycode "^2.3.1" tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -tree-dump@^1.0.3, tree-dump@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.1.0.tgz#ab29129169dc46004414f5a9d4a3c6e89f13e8a4" - integrity sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA== - tree-kill@1.2.2, tree-kill@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" @@ -20657,10 +19659,10 @@ ts-api-utils@^2.5.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.5.0.tgz#4acd4a155e22734990a5ed1fe9e97f113bcb37c1" integrity sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA== -ts-debounce@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ts-debounce/-/ts-debounce-3.0.0.tgz#9beedf59c04de3b5bef8ff28bd6885624df357be" - integrity sha512-7jiRWgN4/8IdvCxbIwnwg2W0bbYFBH6BxFqBjMKk442t7+liF2Z1H6AUCcl8e/pD93GjPru+axeiJwFmRww1WQ== +ts-debounce@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ts-debounce/-/ts-debounce-4.0.0.tgz#33440ef64fab53793c3d546a8ca6ae539ec15841" + integrity sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg== ts-easing@^0.2.0: version "0.2.0" @@ -20691,16 +19693,6 @@ ts-toolbelt@^9.6.0: resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz#50a25426cfed500d4a09bd1b3afb6f28879edfd5" integrity sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w== -tsconfig-paths@^3.12.0: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - tsd@^0.33.0: version "0.33.0" resolved "https://registry.yarnpkg.com/tsd/-/tsd-0.33.0.tgz#6e2abb4a43735dcb2fe9036f2b37b9680e463099" @@ -20719,7 +19711,7 @@ tslib@2.3.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== -tslib@^1.0.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.0.0, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -20734,13 +19726,6 @@ tslib@^2.0.1, tslib@^2.6.2, tslib@^2.8.0, tslib@^2.8.1, tslib@~2.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - tty-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" @@ -20795,11 +19780,6 @@ type-fest@^0.18.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -20830,33 +19810,15 @@ type-fest@^4.27.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== -type-is@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.1.tgz#64f6cf03f92fce4015c2b224793f6bdd4b068c97" - integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw== +type-is@^2.0.1, type-is@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.1.0.tgz#71d1a7053293582e16ac9f3ebaf1ab9aa49e5570" + integrity sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA== dependencies: - content-type "^1.0.5" + content-type "^2.0.0" media-typer "^1.1.0" mime-types "^3.0.0" -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.5.0, type@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" - integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== - typed-array-buffer@^1.0.0, typed-array-buffer@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" @@ -20876,6 +19838,17 @@ typed-array-byte-length@^1.0.0: has-proto "^1.0.1" is-typed-array "^1.1.10" +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== + 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" + typed-array-byte-offset@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" @@ -20887,6 +19860,19 @@ typed-array-byte-offset@^1.0.0: has-proto "^1.0.1" is-typed-array "^1.1.10" +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== + dependencies: + 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" + typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" @@ -20896,15 +19882,27 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" +typed-array-length@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.8.tgz#0b70e982c9e9dafe2def6d6458ff4b3f2d2b6d70" + integrity sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g== + dependencies: + call-bind "^1.0.9" + for-each "^0.3.5" + gopd "^1.2.0" + is-typed-array "^1.1.15" + possible-typed-array-names "^1.1.0" + reflect.getprototypeof "^1.0.10" + typed-function@^4.2.1: version "4.2.2" resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-4.2.2.tgz#49939f58d133a40cb03bdc05d969f59e4bdc3190" integrity sha512-VwaXim9Gp1bngi/q3do8hgttYn2uC3MoT/gfuMWylnj1IeZBUAyPddHZlo1K05BDoj8DYPpMdiHqH1dDYdJf2A== -typed-query-selector@^2.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/typed-query-selector/-/typed-query-selector-2.12.0.tgz#92b65dbc0a42655fccf4aeb1a08b1dddce8af5f2" - integrity sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg== +typed-query-selector@^2.12.2: + version "2.12.2" + resolved "https://registry.yarnpkg.com/typed-query-selector/-/typed-query-selector-2.12.2.tgz#65e2462ac6b0aecfae1bfac1a4f3027070dbabaa" + integrity sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ== typedarray-to-buffer@^3.1.5: version "3.1.5" @@ -20950,6 +19948,16 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== + dependencies: + call-bound "^1.0.3" + has-bigints "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" + unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" @@ -20989,10 +19997,10 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== +unicode-match-property-value-ecmascript@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" + integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== unicode-property-aliases-ecmascript@^2.0.0: version "2.0.0" @@ -21016,20 +20024,6 @@ unified@^9.0.0, unified@^9.2.0: trough "^1.0.0" vfile "^4.0.0" -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - unique-stream@^2.0.2: version "2.3.1" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" @@ -21137,13 +20131,35 @@ unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -unset-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-2.0.1.tgz#57bed0c22d26f28d69acde5df9a11b77c74d2df3" - integrity sha512-2hvrBfjUE00PkqN+q0XP6yRAOGrR06uSiUoIQGZkc7GxvQ9H7v8quUPNtZjMg4uux69i8HWpIjLPUKwCuRGyNg== +unrs-resolver@^1.7.11, unrs-resolver@^1.9.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/unrs-resolver/-/unrs-resolver-1.12.2.tgz#a6c6888396abba5adaac4cab6587df866f1d7afd" + integrity sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ== dependencies: - has-value "^2.0.2" - isobject "^4.0.0" + napi-postinstall "^0.3.4" + optionalDependencies: + "@unrs/resolver-binding-android-arm-eabi" "1.12.2" + "@unrs/resolver-binding-android-arm64" "1.12.2" + "@unrs/resolver-binding-darwin-arm64" "1.12.2" + "@unrs/resolver-binding-darwin-x64" "1.12.2" + "@unrs/resolver-binding-freebsd-x64" "1.12.2" + "@unrs/resolver-binding-linux-arm-gnueabihf" "1.12.2" + "@unrs/resolver-binding-linux-arm-musleabihf" "1.12.2" + "@unrs/resolver-binding-linux-arm64-gnu" "1.12.2" + "@unrs/resolver-binding-linux-arm64-musl" "1.12.2" + "@unrs/resolver-binding-linux-loong64-gnu" "1.12.2" + "@unrs/resolver-binding-linux-loong64-musl" "1.12.2" + "@unrs/resolver-binding-linux-ppc64-gnu" "1.12.2" + "@unrs/resolver-binding-linux-riscv64-gnu" "1.12.2" + "@unrs/resolver-binding-linux-riscv64-musl" "1.12.2" + "@unrs/resolver-binding-linux-s390x-gnu" "1.12.2" + "@unrs/resolver-binding-linux-x64-gnu" "1.12.2" + "@unrs/resolver-binding-linux-x64-musl" "1.12.2" + "@unrs/resolver-binding-openharmony-arm64" "1.12.2" + "@unrs/resolver-binding-wasm32-wasi" "1.12.2" + "@unrs/resolver-binding-win32-arm64-msvc" "1.12.2" + "@unrs/resolver-binding-win32-ia32-msvc" "1.12.2" + "@unrs/resolver-binding-win32-x64-msvc" "1.12.2" untildify@^4.0.0: version "4.0.0" @@ -21155,7 +20171,7 @@ untruncate-json@^0.0.1: resolved "https://registry.yarnpkg.com/untruncate-json/-/untruncate-json-0.0.1.tgz#a225e87d5d669c9ec6e04fc8de349e65b6cc2e9e" integrity sha512-4W9enDK4X1y1s2S/Rz7ysw6kDuMS3VmRjMFg7GZrNO+98OSe+x5Lh7PKYoVjy3lW/1wmhs6HW0lusnQRHgMarA== -update-browserslist-db@^1.2.0: +update-browserslist-db@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== @@ -21251,11 +20267,6 @@ utility-types@^3.10.0: resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - utrie@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/utrie/-/utrie-1.0.2.tgz#d42fe44de9bc0119c25de7f564a6ed1b2c87a645" @@ -21263,35 +20274,15 @@ utrie@^1.0.2: dependencies: base64-arraybuffer "^1.0.2" -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -uuid@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294" - integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ== - -uuid@^11.1.0: +uuid@^10.0.0, uuid@^11.1.0, uuid@^11.1.1, uuid@^8.3.2, uuid@^9.0.0: version "11.1.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.1.tgz#f6d81d2e1c65d00762e5e29b16c5d2d995e208ad" integrity sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ== -uuid@^3.3.2, uuid@^3.3.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== +uuid@^14.0.0: + version "14.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-14.0.1.tgz#8a5975b3e038902bfd169a10b5202f5ec0cf3faf" + integrity sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew== v8-compile-cache-lib@^3.0.1: version "3.0.1" @@ -21343,7 +20334,7 @@ varint@^6.0.0: resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== -vary@^1, vary@^1.1.2, vary@~1.1.2: +vary@^1, vary@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== @@ -21797,42 +20788,20 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== +w3c-xmlserializer@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz#f925ba26855158594d907313cedd1476c5967f6c" + integrity sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA== dependencies: - xml-name-validator "^3.0.0" + xml-name-validator "^5.0.0" -walker@^1.0.7, walker@^1.0.8: +walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: makeerror "1.0.12" -watchpack@^2.4.4: - version "2.5.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.5.1.tgz#dd38b601f669e0cbf567cb802e75cead82cde102" - integrity sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -21850,6 +20819,11 @@ web-namespaces@^1.0.0: resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== +webdriver-bidi-protocol@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz#d411e7b8e158408d83bb166b0b4f1054fa3f077e" + integrity sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -21860,181 +20834,35 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -webpack-bundle-analyzer@4.10.2: - version "4.10.2" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" - integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== - dependencies: - "@discoveryjs/json-ext" "0.5.7" - acorn "^8.0.4" - acorn-walk "^8.0.0" - commander "^7.2.0" - debounce "^1.2.1" - escape-string-regexp "^4.0.0" - gzip-size "^6.0.0" - html-escaper "^2.0.2" - opener "^1.5.2" - picocolors "^1.0.0" - sirv "^2.0.3" - ws "^7.3.1" - -webpack-cli@^4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d" - integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.1.1" - "@webpack-cli/info" "^1.4.1" - "@webpack-cli/serve" "^1.6.1" - colorette "^2.0.14" - commander "^7.0.0" - execa "^5.0.0" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^2.2.0" - rechoir "^0.7.0" - webpack-merge "^5.7.3" - -webpack-dev-middleware@^7.4.2: - version "7.4.5" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz#d4e8720aa29cb03bc158084a94edb4594e3b7ac0" - integrity sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA== - dependencies: - colorette "^2.0.10" - memfs "^4.43.1" - mime-types "^3.0.1" - on-finished "^2.4.1" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz#96a143d50c58fef0c79107e61df911728d7ceb39" - integrity sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg== - dependencies: - "@types/bonjour" "^3.5.13" - "@types/connect-history-api-fallback" "^1.5.4" - "@types/express" "^4.17.21" - "@types/express-serve-static-core" "^4.17.21" - "@types/serve-index" "^1.9.4" - "@types/serve-static" "^1.15.5" - "@types/sockjs" "^0.3.36" - "@types/ws" "^8.5.10" - ansi-html-community "^0.0.8" - bonjour-service "^1.2.1" - chokidar "^3.6.0" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - express "^4.21.2" - graceful-fs "^4.2.6" - http-proxy-middleware "^2.0.9" - ipaddr.js "^2.1.0" - launch-editor "^2.6.1" - open "^10.0.3" - p-retry "^6.2.0" - schema-utils "^4.2.0" - selfsigned "^2.4.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^7.4.2" - ws "^8.18.0" - -webpack-merge@^5.10.0, webpack-merge@^5.7.3: - version "5.10.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" - integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== - dependencies: - clone-deep "^4.0.1" - flat "^5.0.2" - wildcard "^2.0.0" - -webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" - integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== - -webpack@^5.104.1: - version "5.104.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.104.1.tgz#94bd41eb5dbf06e93be165ba8be41b8260d4fb1a" - integrity sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA== - dependencies: - "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.8" - "@types/json-schema" "^7.0.15" - "@webassemblyjs/ast" "^1.14.1" - "@webassemblyjs/wasm-edit" "^1.14.1" - "@webassemblyjs/wasm-parser" "^1.14.1" - acorn "^8.15.0" - acorn-import-phases "^1.0.3" - browserslist "^4.28.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.4" - es-module-lexer "^2.0.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.11" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.3.1" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^4.3.3" - tapable "^2.3.0" - terser-webpack-plugin "^5.3.16" - watchpack "^2.4.4" - webpack-sources "^3.3.3" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== +whatwg-encoding@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" + integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== dependencies: - iconv-lite "0.4.24" + iconv-lite "0.6.3" whatwg-fetch@^3.0.0: version "3.6.20" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-mimetype@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" + integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== + +whatwg-url@^14.0.0, whatwg-url@^14.1.1: + version "14.2.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.2.0.tgz#4ee02d5d725155dae004f6ae95c73e7ef5d95663" + integrity sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw== + dependencies: + tr46 "^5.1.0" + webidl-conversions "^7.0.0" whatwg-url@^5.0.0: version "5.0.0" @@ -22062,15 +20890,6 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -22082,6 +20901,36 @@ which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== + dependencies: + is-bigint "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" + +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== + 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" + which-collection@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" @@ -22092,6 +20941,16 @@ which-collection@^1.0.1: is-weakmap "^2.0.1" is-weakset "^2.0.1" +which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -22110,6 +20969,19 @@ which-typed-array@^1.1.13, which-typed-array@^1.1.16, which-typed-array@^1.1.2: gopd "^1.2.0" has-tostringtag "^1.0.2" +which-typed-array@^1.1.19: + version "1.1.22" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.22.tgz#8f3cc78aefb40b437346dd40a1dbfa5d1da43fe9" + integrity sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.9" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -22124,11 +20996,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wildcard@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" - integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== - word-wrap@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" @@ -22139,10 +21006,19 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -workerpool@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" - integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== +workerpool@^9.2.0: + version "9.3.4" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" + integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" wrap-ansi@^3.0.1: version "3.0.1" @@ -22161,14 +21037,14 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" wrap-ansi@^9.0.0: version "9.0.2" @@ -22211,6 +21087,14 @@ write-file-atomic@^4.0.1: imurmurhash "^0.1.4" signal-exit "^3.0.7" +write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + write-json-file@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" @@ -22232,27 +21116,15 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@^7.3.1, ws@^7.4.6: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.18.0, ws@^8.18.3, ws@^8.20.1, ws@~8.18.3: - version "8.20.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.20.1.tgz#91a9ae2b312ccf98e0a85ec499b48cef45ab0ddb" - integrity sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w== +ws@^8.18.0, ws@^8.20.0, ws@^8.21.0, ws@~8.21.0: + version "8.21.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.1.tgz#045650cd4b1207809e7547146223c3814a9af586" + integrity sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw== -wsl-utils@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/wsl-utils/-/wsl-utils-0.1.0.tgz#8783d4df671d4d50365be2ee4c71917a0557baab" - integrity sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw== - dependencies: - is-wsl "^3.1.0" - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xml-name-validator@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz#82be9b957f7afdacf961e5980f1bf227c0bf7673" + integrity sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg== xml-naming@^0.1.0: version "0.1.0" @@ -22335,7 +21207,7 @@ yargs-parser@^18.1.2, yargs-parser@^18.1.3: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: +yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== @@ -22377,20 +21249,7 @@ yargs@^15.0.2, yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^17.3.1, yargs@^17.7.2: +yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -22423,6 +21282,13 @@ yauzl@^2.10.0: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" +yauzl@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-3.4.0.tgz#88b2a21455f37ca7dccf2eeb33bacb4392322719" + integrity sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw== + dependencies: + pend "~1.2.0" + yazl@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" @@ -22459,6 +21325,11 @@ zod-to-json-schema@^3.22.3, zod-to-json-schema@^3.25.1: resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz#7f24962101a439ddade2bf1aeab3c3bfec7d84ba" integrity sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA== +"zod-validation-error@^3.5.0 || ^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-4.0.2.tgz#bc605eba49ce0fcd598c127fee1c236be3f22918" + integrity sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ== + zod@^3.22.0, zod@^3.22.4, zod@^3.23.8, zod@^3.24.1, zod@^3.25.32: version "3.25.76" resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.76.tgz#26841c3f6fd22a6a2760e7ccb719179768471e34" @@ -22469,6 +21340,11 @@ zod@^3.22.0, zod@^3.22.4, zod@^3.23.8, zod@^3.24.1, zod@^3.25.32: resolved "https://registry.yarnpkg.com/zod/-/zod-4.2.1.tgz#07f0388c7edbfd5f5a2466181cb4adf5b5dbd57b" integrity sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw== +"zod@^3.25.0 || ^4.0.0": + version "4.4.3" + resolved "https://registry.yarnpkg.com/zod/-/zod-4.4.3.tgz#b680f172885d18bbebf21a834ea25e55a1bbf356" + integrity sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ== + zrender@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/zrender/-/zrender-6.1.0.tgz#c3ef06e6426d5c28865b7183035680d685e00136"