From 4bb812bc7ad82f27440f9c2096f5a2812e689e9e Mon Sep 17 00:00:00 2001 From: git-action Date: Thu, 7 May 2026 11:14:58 +0000 Subject: [PATCH 1/2] =?UTF-8?q?chore:=20sync=20sdk/=20from=20gdc-ui=20?= =?UTF-8?q?=E2=86=92=20gooddata-ui-sdk/=20(ea8c0eb)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit risk: low --- .../SHA_master_2026-05-07-09-18.json | 10 + .../jacek-meta_2026-05-07-09-30.json | 11 + .../rush/browser-approved-packages.json | 2652 ++++++++--------- common/config/rush/pnpm-lock.yaml | 469 ++- common/config/rush/version-policies.json | 4 +- .../examples-template/package.json | 2 +- .../example-attributefilter/package.json | 2 +- .../examples/example-chartconfig/package.json | 2 +- .../examples/example-columnchart/package.json | 2 +- .../examples/example-combochart/package.json | 2 +- .../examples/example-dashboard/package.json | 2 +- .../examples/example-datefilter/package.json | 2 +- .../example-dependentfilters/package.json | 2 +- .../examples/example-execute/package.json | 2 +- .../examples/example-granularity/package.json | 2 +- .../examples/example-headline/package.json | 2 +- .../examples/example-pivottable/package.json | 2 +- .../example-relativedatefilter/package.json | 2 +- .../examples/example-repeater/package.json | 2 +- .../sdk-interactive-examples/package.json | 2 +- .../api/api-client-tiger.api.md | 18 + libs/api-client-tiger/package.json | 2 +- .../src/endpoints/genAI/index.ts | 4 + .../src/generated/ai-json-api/api.ts | 118 + .../generated/ai-json-api/openapi-spec.json | 47 + .../api/sdk-backend-base.api.md | 2 + libs/sdk-backend-base/package.json | 2 +- .../src/dummyBackend/DummyGenAIChatThread.ts | 3 + libs/sdk-backend-mockingbird/package.json | 2 +- .../api/sdk-backend-spi.api.md | 1 + libs/sdk-backend-spi/package.json | 2 +- .../src/workspace/genAI/index.ts | 5 + libs/sdk-backend-tiger/package.json | 2 +- .../workspace/genAI/ChatConversations.ts | 11 + libs/sdk-code-convertors/package.json | 2 +- .../sdk-code-convertors/python/pyproject.toml | 2 +- .../src/gooddata_code_convertors/_types.py | 2 +- .../datasetAggAwareRoundTrip.test.ts | 92 +- .../src/from/declarativeDatasetToYaml.ts | 8 +- .../src/to/yamlDatasetToDeclarative.ts | 52 +- .../api/sdk-code-schemas.api.md | 4 - libs/sdk-code-schemas/package.json | 2 +- .../schemas/v1/src/common.json | 6 +- .../schemas/v1/src/dashboard.json | 4 +- libs/sdk-code-schemas/src/v1/metadata.json | 7 +- libs/sdk-e2e-utils/package.json | 2 +- libs/sdk-embedding/package.json | 2 +- libs/sdk-model/package.json | 2 +- .../package.json | 2 +- libs/sdk-ui-all/package.json | 2 +- libs/sdk-ui-catalog/package.json | 2 +- libs/sdk-ui-charts/package.json | 2 +- libs/sdk-ui-dashboard/package.json | 2 +- libs/sdk-ui-ext/package.json | 2 +- libs/sdk-ui-filters/package.json | 2 +- libs/sdk-ui-gen-ai/package.json | 2 +- .../components/ConversationDeleteDialog.tsx | 4 +- .../src/components/GenAIChatConversations.tsx | 22 +- .../components/utils/conversationGrouper.ts | 8 +- .../utils/tests/conversationGrouper.test.ts | 9 +- libs/sdk-ui-gen-ai/src/model.ts | 9 + .../src/store/messages/messagesSelectors.ts | 14 +- .../src/store/messages/messagesSlice.ts | 54 +- .../src/store/sideEffects/index.ts | 3 + .../store/sideEffects/onConversationDelete.ts | 5 +- .../src/store/sideEffects/onThreadClear.ts | 9 +- .../src/store/sideEffects/onThreadLoad.ts | 8 +- .../src/store/sideEffects/onUserFeedback.ts | 10 +- .../src/store/sideEffects/onUserMessage.ts | 19 +- .../store/sideEffects/onUserMessageUpdate.ts | 70 + .../sideEffects/onVisualisationRender.ts | 6 +- .../store/sideEffects/onVisualizationSave.ts | 5 +- .../sideEffects/onVisualizationSuccessSave.ts | 6 +- libs/sdk-ui-gen-ai/src/tests/utils.test.ts | 10 + libs/sdk-ui-gen-ai/src/utils.ts | 20 +- .../styles/scss/conversations.scss | 4 +- libs/sdk-ui-geo/package.json | 2 +- libs/sdk-ui-kit/api/sdk-ui-kit.api.md | 3 +- libs/sdk-ui-kit/package.json | 2 +- libs/sdk-ui-kit/src/@ui/UiDrawer/UiDrawer.tsx | 12 +- .../src/@ui/hooks/useElementSize.tsx | 10 +- libs/sdk-ui-loaders/package.json | 2 +- libs/sdk-ui-pivot/package.json | 2 +- .../sdk-ui-pluggable-application/package.json | 2 +- libs/sdk-ui-semantic-search/package.json | 2 +- libs/sdk-ui-theme-provider/package.json | 2 +- libs/sdk-ui-vis-commons/package.json | 2 +- libs/sdk-ui/package.json | 2 +- libs/util/package.json | 2 +- tools/app-toolkit/package.json | 2 +- tools/catalog-export/package.json | 2 +- tools/eslint-config/package.json | 2 +- tools/i18n-toolkit/package.json | 2 +- tools/lint-config/package.json | 2 +- tools/mock-handling/package.json | 2 +- tools/oxlint-config/package.json | 2 +- tools/plugin-toolkit/package.json | 2 +- tools/reference-workspace/package.json | 2 +- tools/stylelint-config/package.json | 2 +- 99 files changed, 2192 insertions(+), 1766 deletions(-) create mode 100644 common/changes/@gooddata/sdk-ui-all/SHA_master_2026-05-07-09-18.json create mode 100644 common/changes/@gooddata/sdk-ui-all/jacek-meta_2026-05-07-09-30.json create mode 100644 libs/sdk-ui-gen-ai/src/store/sideEffects/onUserMessageUpdate.ts diff --git a/common/changes/@gooddata/sdk-ui-all/SHA_master_2026-05-07-09-18.json b/common/changes/@gooddata/sdk-ui-all/SHA_master_2026-05-07-09-18.json new file mode 100644 index 00000000000..1768f79482c --- /dev/null +++ b/common/changes/@gooddata/sdk-ui-all/SHA_master_2026-05-07-09-18.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@gooddata/sdk-ui-all", + "comment": "sdk-gen-ai: add support for generating conversation titles", + "type": "none" + } + ], + "packageName": "@gooddata/sdk-ui-all" +} diff --git a/common/changes/@gooddata/sdk-ui-all/jacek-meta_2026-05-07-09-30.json b/common/changes/@gooddata/sdk-ui-all/jacek-meta_2026-05-07-09-30.json new file mode 100644 index 00000000000..5c845d40ec4 --- /dev/null +++ b/common/changes/@gooddata/sdk-ui-all/jacek-meta_2026-05-07-09-30.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Fix yamlDatasetToDeclarative emitting reference.type='fact' for APPROXIMATE_COUNT aggregated facts against attribute targets (CQ-2147)", + "type": "none", + "packageName": "@gooddata/sdk-ui-all" + } + ], + "packageName": "@gooddata/sdk-ui-all", + "email": "jan.soubusta@gooddata.com" +} diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index 1b5483ed840..14c4dd5da82 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -1,1434 +1,1218 @@ -// DO NOT ADD COMMENTS IN THIS FILE. They will be lost when the Rush tool resaves it. -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/approved-packages.schema.json", - "packages": [ - { - "name": "@aaronhayes/react-use-hubspot-form", - "allowedCategories": [ "production" ] - }, - { - "name": "@babel/cli", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@babel/core", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@babel/plugin-proposal-export-default-from", - "allowedCategories": [ "production" ] - }, - { - "name": "@babel/plugin-transform-async-to-generator", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@babel/plugin-transform-class-properties", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@babel/plugin-transform-object-rest-spread", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@babel/plugin-transform-typescript", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@babel/preset-env", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@babel/preset-react", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@babel/preset-typescript", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@babel/runtime", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@braintree/sanitize-url", - "allowedCategories": [ "production" ] - }, - { - "name": "@codemirror/autocomplete", - "allowedCategories": [ "production" ] - }, - { - "name": "@codemirror/commands", - "allowedCategories": [ "production" ] - }, - { - "name": "@codemirror/lang-yaml", - "allowedCategories": [ "production" ] - }, - { - "name": "@codemirror/language", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@codemirror/lint", - "allowedCategories": [ "production" ] - }, - { - "name": "@codemirror/state", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@codemirror/view", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@componentdriven/csf", - "allowedCategories": [ "production" ] - }, - { - "name": "@eslint/js", - "allowedCategories": [ "tools" ] - }, - { - "name": "@evil-internetmann/react-dnd", - "allowedCategories": [ "production" ] - }, - { - "name": "@floating-ui/dom", - "allowedCategories": [ "production" ] - }, - { - "name": "@floating-ui/react", - "allowedCategories": [ "production" ] - }, - { - "name": "@floating-ui/react-dom", - "allowedCategories": [ "production" ] - }, - { - "name": "@formatjs/cli-lib", - "allowedCategories": [ "tools" ] - }, - { - "name": "@formatjs/icu-messageformat-parser", - "allowedCategories": [ "tools" ] - }, - { - "name": "@gooddata/api-client-tiger", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "@gooddata/catalog-export", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/emailjs-mime-codec-new", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/eslint-config", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/fixtures", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "@gooddata/i18n-toolkit", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/lint-config", - "allowedCategories": [ "tools" ] - }, - { - "name": "@gooddata/mock-handling", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "@gooddata/number-formatter", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/oxlint-config", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/plugin-toolkit", - "allowedCategories": [ "tools" ] - }, - { - "name": "@gooddata/reference-workspace", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-backend-base", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-backend-mockingbird", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-backend-spi", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-backend-tiger", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-code-convertors", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-code-schemas", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-e2e-utils", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-embedding", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-model", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-pluggable-application-model", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-ui", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-ui-catalog", - "allowedCategories": [ "examples" ] - }, - { - "name": "@gooddata/sdk-ui-charts", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-ui-dashboard", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-ui-ext", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-ui-filters", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-ui-gen-ai", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-ui-geo", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-ui-kit", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-ui-loaders", - "allowedCategories": [ "examples", "tools" ] - }, - { - "name": "@gooddata/sdk-ui-pivot", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@gooddata/sdk-ui-semantic-search", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@gooddata/sdk-ui-tests-app", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-ui-tests-reference-workspace", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-ui-tests-scenarios", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-ui-theme-provider", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@gooddata/sdk-ui-vis-commons", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/sdk-ui-web-components", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/stylelint-config", - "allowedCategories": [ "production" ] - }, - { - "name": "@gooddata/util", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "@joint/core", - "allowedCategories": [ "production" ] - }, - { - "name": "@joint/layout-directed-graph", - "allowedCategories": [ "production" ] - }, - { - "name": "@lezer/highlight", - "allowedCategories": [ "production" ] - }, - { - "name": "@microsoft/api-documenter", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "@microsoft/api-extractor", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "@openapitools/openapi-generator-cli", - "allowedCategories": [ "production" ] - }, - { - "name": "@playwright/test", - "allowedCategories": [ "production" ] - }, - { - "name": "@react-aria/interactions", - "allowedCategories": [ "production" ] - }, - { - "name": "@reduxjs/toolkit", - "allowedCategories": [ "production" ] - }, - { - "name": "@storybook/addon-a11y", - "allowedCategories": [ "production" ] - }, - { - "name": "@storybook/builder-vite", - "allowedCategories": [ "production" ] - }, - { - "name": "@storybook/builder-webpack5", - "allowedCategories": [ "production" ] - }, - { - "name": "@storybook/cli", - "allowedCategories": [ "production" ] - }, - { - "name": "@storybook/manager-webpack5", - "allowedCategories": [ "production" ] - }, - { - "name": "@storybook/preset-scss", - "allowedCategories": [ "production" ] - }, - { - "name": "@storybook/react", - "allowedCategories": [ "production" ] - }, - { - "name": "@storybook/react-vite", - "allowedCategories": [ "production" ] - }, - { - "name": "@storybook/react-webpack5", - "allowedCategories": [ "production" ] - }, - { - "name": "@tanstack/react-virtual", - "allowedCategories": [ "production" ] - }, - { - "name": "@testing-library/dom", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "@testing-library/react", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "@testing-library/user-event", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/babel__core", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/blessed", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/columnify", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/cross-spawn", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/debounce-promise", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/fast-levenshtein", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/fs-extra", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/geojson", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/history", - "allowedCategories": [ "examples" ] - }, - { - "name": "@types/hoist-non-react-statics", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/inquirer", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/isomorphic-fetch", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@types/js-yaml", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/json5", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/kefir", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/lodash-es", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@types/mapbox-gl", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/maplibre-gl", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/mdast", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/node", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@types/node-fetch", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/pdf-parse", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/qs", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/raf", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "@types/react", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@types/react-datepicker", - "allowedCategories": [ "examples" ] - }, - { - "name": "@types/react-dom", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@types/react-google-recaptcha", - "allowedCategories": [ "examples" ] - }, - { - "name": "@types/react-helmet", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@types/react-lines-ellipsis", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/react-measure", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@types/react-native-listener", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/react-portal", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/react-redux", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/react-router-dom", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@types/react-syntax-highlighter", - "allowedCategories": [ "examples" ] - }, - { - "name": "@types/react-textarea-autosize", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/react-transition-group", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/rimraf", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/semver", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/spark-md5", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/stringify-object", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/tar", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/tinycolor2", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/tough-cookie", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/unist", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/uuid", - "allowedCategories": [ "production" ] - }, - { - "name": "@types/validate-npm-package-name", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/watchpack", - "allowedCategories": [ "tools" ] - }, - { - "name": "@types/webpack-env", - "allowedCategories": [ "examples" ] - }, - { - "name": "@typescript-eslint/eslint-plugin", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@typescript-eslint/parser", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@typescript/native-preview", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "@vitejs/plugin-react", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "@vitejs/plugin-react-swc", - "allowedCategories": [ "examples" ] - }, - { - "name": "@vitest/eslint-plugin", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "@welldone-software/why-did-you-render", - "allowedCategories": [ "examples" ] - }, - { - "name": "ag-grid-community", - "allowedCategories": [ "production" ] - }, - { - "name": "ag-grid-enterprise", - "allowedCategories": [ "production" ] - }, - { - "name": "ag-grid-react", - "allowedCategories": [ "production" ] - }, - { - "name": "async", - "allowedCategories": [ "production" ] - }, - { - "name": "axios", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "axios-cache-interceptor", - "allowedCategories": [ "production" ] - }, - { - "name": "babel-loader", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "babel-plugin-lodash", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "babel-plugin-require-context-hook", - "allowedCategories": [ "production" ] - }, - { - "name": "blessed", - "allowedCategories": [ "tools" ] - }, - { - "name": "blob-polyfill", - "allowedCategories": [ "production" ] - }, - { - "name": "case-sensitive-paths-webpack-plugin", - "allowedCategories": [ "examples", "tools" ] - }, - { - "name": "chalk", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "chokidar", - "allowedCategories": [ "tools" ] - }, - { - "name": "circular-dependency-plugin", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "classnames", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "clean-webpack-plugin", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "codemirror", - "allowedCategories": [ "production" ] - }, - { - "name": "columnify", - "allowedCategories": [ "tools" ] - }, - { - "name": "commander", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "compression-webpack-plugin", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "concurrently", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "copy-to-clipboard", - "allowedCategories": [ "production" ] - }, - { - "name": "copy-webpack-plugin", - "allowedCategories": [ "production" ] - }, - { - "name": "core-js", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "cron-parser", - "allowedCategories": [ "production" ] - }, - { - "name": "cross-spawn", - "allowedCategories": [ "tools" ] - }, - { - "name": "css-loader", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "date-fns", - "allowedCategories": [ "production" ] - }, - { - "name": "date-fns-tz", - "allowedCategories": [ "production" ] - }, - { - "name": "debounce-promise", - "allowedCategories": [ "production" ] - }, - { - "name": "default-import", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "dependency-cruiser", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "dotenv", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "dotenv-webpack", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "downshift", - "allowedCategories": [ "production" ] - }, - { - "name": "esbuild-loader", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-import-resolver-typescript", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-chai-friendly", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "eslint-plugin-header", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-headers", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-import", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-import-esm", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-import-x", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-jsdoc", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-no-barrel-files", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-no-only-tests", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-playwright", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "eslint-plugin-react", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-react-hooks", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-regexp", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-sonarjs", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eslint-plugin-storybook", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "eslint-plugin-tsdoc", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "eventsource-parser", - "allowedCategories": [ "production" ] - }, - { - "name": "exponential-backoff", - "allowedCategories": [ "production" ] - }, - { - "name": "fast-equals", - "allowedCategories": [ "production" ] - }, - { - "name": "fast-glob", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "fast-levenshtein", - "allowedCategories": [ "production" ] - }, - { - "name": "fetch-cookie", - "allowedCategories": [ "production" ] - }, - { - "name": "fetch-mock", - "allowedCategories": [ "production" ] - }, - { - "name": "find-up", - "allowedCategories": [ "tools" ] - }, - { - "name": "fix-esm-import-path", - "allowedCategories": [ "production" ] - }, - { - "name": "fixed-data-table-2", - "allowedCategories": [ "production" ] - }, - { - "name": "fork-ts-checker-webpack-plugin", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "fs-extra", - "allowedCategories": [ "tools" ] - }, - { - "name": "full-icu", - "allowedCategories": [ "production" ] - }, - { - "name": "glob", - "allowedCategories": [ "production" ] - }, - { - "name": "globals", - "allowedCategories": [ "tools" ] - }, - { - "name": "happy-dom", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "highcharts", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "highcharts-react-official", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "history", - "allowedCategories": [ "examples" ] - }, - { - "name": "hoist-non-react-statics", - "allowedCategories": [ "production" ] - }, - { - "name": "html-validate", - "allowedCategories": [ "tools" ] - }, - { - "name": "html-webpack-plugin", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "http-status-codes", - "allowedCategories": [ "production" ] - }, - { - "name": "immer", - "allowedCategories": [ "production" ] - }, - { - "name": "inquirer", - "allowedCategories": [ "tools" ] - }, - { - "name": "isomorphic-fetch", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "jiti", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "js-object-pretty-print", - "allowedCategories": [ "production" ] - }, - { - "name": "js-yaml", - "allowedCategories": [ "production" ] - }, - { - "name": "jsdom", - "allowedCategories": [ "production" ] - }, - { - "name": "json-loader", - "allowedCategories": [ "production" ] - }, - { - "name": "json-schema-to-typescript", - "allowedCategories": [ "production" ] - }, - { - "name": "json-stable-stringify", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "json5", - "allowedCategories": [ "tools" ] - }, - { - "name": "jsonschema", - "allowedCategories": [ "tools" ] - }, - { - "name": "kefir", - "allowedCategories": [ "production" ] - }, - { - "name": "lodash-es", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "lru-cache", - "allowedCategories": [ "production" ] - }, - { - "name": "lz-string", - "allowedCategories": [ "production" ] - }, - { - "name": "mapbox-gl", - "allowedCategories": [ "production" ] - }, - { - "name": "maplibre-gl", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "mdast", - "allowedCategories": [ "production" ] - }, - { - "name": "mini-css-extract-plugin", - "allowedCategories": [ "production" ] - }, - { - "name": "mkdirp", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "mocha", - "allowedCategories": [ "production" ] - }, - { - "name": "mocha-junit-reporter", - "allowedCategories": [ "production" ] - }, - { - "name": "moment", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "moment-timezone", - "allowedCategories": [ "production" ] - }, - { - "name": "node-fetch", - "allowedCategories": [ "production" ] - }, - { - "name": "node-xlsx", - "allowedCategories": [ "production" ] - }, - { - "name": "npm-run-all", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "open", - "allowedCategories": [ "tools" ] - }, - { - "name": "ora", - "allowedCategories": [ "tools" ] - }, - { - "name": "oxfmt", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "oxlint", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "oxlint-tsgolint", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "p-map", - "allowedCategories": [ "tools" ] - }, - { - "name": "pdf-parse", - "allowedCategories": [ "production" ] - }, - { - "name": "polished", - "allowedCategories": [ "production" ] - }, - { - "name": "postcss", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "postcss-scss", - "allowedCategories": [ "tools" ] - }, - { - "name": "postcss-value-parser", - "allowedCategories": [ "production" ] - }, - { - "name": "prettier", - "allowedCategories": [ "production" ] - }, - { - "name": "process", - "allowedCategories": [ "examples", "tools" ] - }, - { - "name": "qs", - "allowedCategories": [ "production" ] - }, - { - "name": "raf", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "react", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "react-content-loader", - "allowedCategories": [ "production" ] - }, - { - "name": "react-datepicker", - "allowedCategories": [ "examples" ] - }, - { - "name": "react-day-picker", - "allowedCategories": [ "production" ] - }, - { - "name": "react-dnd", - "allowedCategories": [ "production" ] - }, - { - "name": "react-dnd-html5-backend", - "allowedCategories": [ "production" ] - }, - { - "name": "react-dom", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "react-fast-compare", - "allowedCategories": [ "production" ] - }, - { - "name": "react-ga", - "allowedCategories": [ "examples" ] - }, - { - "name": "react-google-recaptcha", - "allowedCategories": [ "examples" ] - }, - { - "name": "react-grid-system", - "allowedCategories": [ "production" ] - }, - { - "name": "react-helmet", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "react-intl", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "react-lines-ellipsis", - "allowedCategories": [ "production" ] - }, - { - "name": "react-loading-skeleton", - "allowedCategories": [ "production" ] - }, - { - "name": "react-markdown", - "allowedCategories": [ "production" ] - }, - { - "name": "react-measure", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "react-native-listener", - "allowedCategories": [ "production" ] - }, - { - "name": "react-portal", - "allowedCategories": [ "production" ] - }, - { - "name": "react-redux", - "allowedCategories": [ "production" ] - }, - { - "name": "react-responsive", - "allowedCategories": [ "production" ] - }, - { - "name": "react-router-dom", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "react-select", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "react-select-async-paginate", - "allowedCategories": [ "production" ] - }, - { - "name": "react-syntax-highlighter", - "allowedCategories": [ "examples" ] - }, - { - "name": "react-textarea-autosize", - "allowedCategories": [ "production" ] - }, - { - "name": "react-transition-group", - "allowedCategories": [ "production" ] - }, - { - "name": "react-window", - "allowedCategories": [ "production" ] - }, - { - "name": "readdirp", - "allowedCategories": [ "production" ] - }, - { - "name": "recharts", - "allowedCategories": [ "examples" ] - }, - { - "name": "redux", - "allowedCategories": [ "production" ] - }, - { - "name": "redux-batched-actions", - "allowedCategories": [ "production" ] - }, - { - "name": "redux-saga", - "allowedCategories": [ "production" ] - }, - { - "name": "remark", - "allowedCategories": [ "production" ] - }, - { - "name": "remark-emoji", - "allowedCategories": [ "production" ] - }, - { - "name": "remark-gfm", - "allowedCategories": [ "production" ] - }, - { - "name": "require-from-string", - "allowedCategories": [ "production" ] - }, - { - "name": "reselect", - "allowedCategories": [ "production" ] - }, - { - "name": "rolldown", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "rollup", - "allowedCategories": [ "production" ] - }, - { - "name": "sass", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "sass-loader", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "semver", - "allowedCategories": [ "production" ] - }, - { - "name": "source-map-loader", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "spark-md5", - "allowedCategories": [ "production" ] - }, - { - "name": "speed-measure-webpack-plugin", - "allowedCategories": [ "examples" ] - }, - { - "name": "storybook", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "stringify-object", - "allowedCategories": [ "production" ] - }, - { - "name": "strip-ansi", - "allowedCategories": [ "tools" ] - }, - { - "name": "style-loader", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "styled-jsx", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "stylelint", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "stylelint-config-standard", - "allowedCategories": [ "tools" ] - }, - { - "name": "stylelint-order", - "allowedCategories": [ "tools" ] - }, - { - "name": "stylelint-plugin-defensive-css", - "allowedCategories": [ "tools" ] - }, - { - "name": "stylelint-scss", - "allowedCategories": [ "tools" ] - }, - { - "name": "svgo", - "allowedCategories": [ "production" ] - }, - { - "name": "tar", - "allowedCategories": [ "tools" ] - }, - { - "name": "tinycolor2", - "allowedCategories": [ "production" ] - }, - { - "name": "ts-invariant", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "ts-loader", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "ts-morph", - "allowedCategories": [ "tools" ] - }, - { - "name": "tsd", - "allowedCategories": [ "production" ] - }, - { - "name": "tslib", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "typescript", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "unified", - "allowedCategories": [ "production" ] - }, - { - "name": "util", - "allowedCategories": [ "examples", "tools" ] - }, - { - "name": "uuid", - "allowedCategories": [ "production" ] - }, - { - "name": "validate-npm-package-name", - "allowedCategories": [ "examples", "tools" ] - }, - { - "name": "vite", - "allowedCategories": [ "examples", "production" ] - }, - { - "name": "vite-node", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "vite-plugin-css-injected-by-js", - "allowedCategories": [ "production" ] - }, - { - "name": "vite-plugin-environment", - "allowedCategories": [ "production" ] - }, - { - "name": "vite-plugin-html", - "allowedCategories": [ "examples" ] - }, - { - "name": "vite-plugin-mkcert", - "allowedCategories": [ "examples" ] - }, - { - "name": "vite-plugin-static-copy", - "allowedCategories": [ "production" ] - }, - { - "name": "vitest", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "vitest-dom", - "allowedCategories": [ "production" ] - }, - { - "name": "wait-on", - "allowedCategories": [ "production" ] - }, - { - "name": "watchpack", - "allowedCategories": [ "tools" ] - }, - { - "name": "webpack", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "webpack-bundle-analyzer", - "allowedCategories": [ "production", "tools" ] - }, - { - "name": "webpack-cli", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "webpack-dev-server", - "allowedCategories": [ "examples", "production", "tools" ] - }, - { - "name": "xml2js", - "allowedCategories": [ "production" ] - }, - { - "name": "yaml", - "allowedCategories": [ "production" ] - }, - { - "name": "zod", - "allowedCategories": [ "production" ] - } - ] -} +// DO NOT ADD COMMENTS IN THIS FILE. They will be lost when the Rush tool resaves it. +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/approved-packages.schema.json", + "packages": [ + { + "name": "@aaronhayes/react-use-hubspot-form", + "allowedCategories": ["production"] + }, + { + "name": "@babel/cli", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@babel/core", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@babel/plugin-proposal-export-default-from", + "allowedCategories": ["production"] + }, + { + "name": "@babel/plugin-transform-async-to-generator", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@babel/plugin-transform-class-properties", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@babel/plugin-transform-object-rest-spread", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@babel/plugin-transform-typescript", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@babel/preset-env", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@babel/preset-react", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@babel/preset-typescript", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@babel/runtime", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@braintree/sanitize-url", + "allowedCategories": ["production"] + }, + { + "name": "@codemirror/autocomplete", + "allowedCategories": ["production"] + }, + { + "name": "@codemirror/commands", + "allowedCategories": ["production"] + }, + { + "name": "@codemirror/lang-yaml", + "allowedCategories": ["production"] + }, + { + "name": "@codemirror/language", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@codemirror/lint", + "allowedCategories": ["production"] + }, + { + "name": "@codemirror/state", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@codemirror/view", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@componentdriven/csf", + "allowedCategories": ["production"] + }, + { + "name": "@floating-ui/dom", + "allowedCategories": ["production"] + }, + { + "name": "@floating-ui/react", + "allowedCategories": ["production"] + }, + { + "name": "@floating-ui/react-dom", + "allowedCategories": ["production"] + }, + { + "name": "@formatjs/cli-lib", + "allowedCategories": ["tools"] + }, + { + "name": "@formatjs/icu-messageformat-parser", + "allowedCategories": ["tools"] + }, + { + "name": "@gooddata/api-client-tiger", + "allowedCategories": ["production", "tools"] + }, + { + "name": "@gooddata/catalog-export", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/eslint-config", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/fixtures", + "allowedCategories": ["production", "tools"] + }, + { + "name": "@gooddata/i18n-toolkit", + "allowedCategories": ["production"] + }, + { + "name": "@gooddata/mock-handling", + "allowedCategories": ["production", "tools"] + }, + { + "name": "@gooddata/number-formatter", + "allowedCategories": ["production"] + }, + { + "name": "@gooddata/plugin-toolkit", + "allowedCategories": ["tools"] + }, + { + "name": "@gooddata/reference-workspace", + "allowedCategories": ["production"] + }, + { + "name": "@gooddata/sdk-backend-base", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-backend-mockingbird", + "allowedCategories": ["production"] + }, + { + "name": "@gooddata/sdk-backend-spi", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-backend-tiger", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-embedding", + "allowedCategories": ["production"] + }, + { + "name": "@gooddata/sdk-model", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-ui", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-ui-dashboard", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-ui-ext", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-ui-filters", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-ui-gen-ai", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-ui-geo", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-ui-charts", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-ui-kit", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-ui-loaders", + "allowedCategories": ["examples", "tools"] + }, + { + "name": "@gooddata/sdk-ui-pivot", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@gooddata/sdk-ui-semantic-search", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@gooddata/sdk-ui-theme-provider", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@gooddata/sdk-ui-vis-commons", + "allowedCategories": ["production"] + }, + { + "name": "@gooddata/sdk-ui-web-components", + "allowedCategories": ["production"] + }, + { + "name": "@gooddata/stylelint-config", + "allowedCategories": ["production"] + }, + { + "name": "@gooddata/util", + "allowedCategories": ["production"] + }, + { + "name": "@lezer/highlight", + "allowedCategories": ["production"] + }, + { + "name": "@microsoft/api-documenter", + "allowedCategories": ["production", "tools"] + }, + { + "name": "@microsoft/api-extractor", + "allowedCategories": ["production", "tools"] + }, + { + "name": "@openapitools/openapi-generator-cli", + "allowedCategories": ["production"] + }, + { + "name": "@react-aria/interactions", + "allowedCategories": ["production"] + }, + { + "name": "@reduxjs/toolkit", + "allowedCategories": ["production"] + }, + { + "name": "@storybook/builder-vite", + "allowedCategories": ["production"] + }, + { + "name": "@storybook/builder-webpack5", + "allowedCategories": ["production"] + }, + { + "name": "@storybook/cli", + "allowedCategories": ["production"] + }, + { + "name": "@storybook/manager-webpack5", + "allowedCategories": ["production"] + }, + { + "name": "@storybook/preset-scss", + "allowedCategories": ["production"] + }, + { + "name": "@storybook/react", + "allowedCategories": ["production"] + }, + { + "name": "@storybook/react-vite", + "allowedCategories": ["production"] + }, + { + "name": "@storybook/react-webpack5", + "allowedCategories": ["production"] + }, + { + "name": "@tanstack/react-virtual", + "allowedCategories": ["production"] + }, + { + "name": "@testing-library/dom", + "allowedCategories": ["production", "tools"] + }, + { + "name": "@testing-library/react", + "allowedCategories": ["production", "tools"] + }, + { + "name": "@testing-library/user-event", + "allowedCategories": ["production"] + }, + { + "name": "@types/babel__core", + "allowedCategories": ["tools"] + }, + { + "name": "@types/blessed", + "allowedCategories": ["tools"] + }, + { + "name": "@types/columnify", + "allowedCategories": ["tools"] + }, + { + "name": "@types/cross-spawn", + "allowedCategories": ["tools"] + }, + { + "name": "@types/debounce-promise", + "allowedCategories": ["production"] + }, + { + "name": "@types/fast-levenshtein", + "allowedCategories": ["production"] + }, + { + "name": "@types/fs-extra", + "allowedCategories": ["tools"] + }, + { + "name": "@types/history", + "allowedCategories": ["examples"] + }, + { + "name": "@types/hoist-non-react-statics", + "allowedCategories": ["production"] + }, + { + "name": "@types/inquirer", + "allowedCategories": ["tools"] + }, + { + "name": "@types/isomorphic-fetch", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@types/js-yaml", + "allowedCategories": ["production"] + }, + { + "name": "@types/json5", + "allowedCategories": ["tools"] + }, + { + "name": "@types/kefir", + "allowedCategories": ["production"] + }, + { + "name": "@types/mapbox-gl", + "allowedCategories": ["production"] + }, + { + "name": "@types/mdast", + "allowedCategories": ["production"] + }, + { + "name": "@types/node", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@types/node-fetch", + "allowedCategories": ["production"] + }, + { + "name": "@types/pdf-parse", + "allowedCategories": ["production"] + }, + { + "name": "@types/qs", + "allowedCategories": ["production"] + }, + { + "name": "@types/raf", + "allowedCategories": ["production", "tools"] + }, + { + "name": "@types/react", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@types/react-datepicker", + "allowedCategories": ["examples"] + }, + { + "name": "@types/react-dom", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@types/react-google-recaptcha", + "allowedCategories": ["examples"] + }, + { + "name": "@types/react-helmet", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@types/react-lines-ellipsis", + "allowedCategories": ["production"] + }, + { + "name": "@types/react-measure", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@types/react-native-listener", + "allowedCategories": ["production"] + }, + { + "name": "@types/react-portal", + "allowedCategories": ["production"] + }, + { + "name": "@types/react-redux", + "allowedCategories": ["production"] + }, + { + "name": "@types/react-router-dom", + "allowedCategories": ["examples", "production"] + }, + { + "name": "@types/react-syntax-highlighter", + "allowedCategories": ["examples"] + }, + { + "name": "@types/react-textarea-autosize", + "allowedCategories": ["production"] + }, + { + "name": "@types/react-transition-group", + "allowedCategories": ["production"] + }, + { + "name": "@types/rimraf", + "allowedCategories": ["tools"] + }, + { + "name": "@types/semver", + "allowedCategories": ["production"] + }, + { + "name": "@types/spark-md5", + "allowedCategories": ["production"] + }, + { + "name": "@types/stringify-object", + "allowedCategories": ["production"] + }, + { + "name": "@types/tar", + "allowedCategories": ["tools"] + }, + { + "name": "@types/tinycolor2", + "allowedCategories": ["production"] + }, + { + "name": "@types/tough-cookie", + "allowedCategories": ["production"] + }, + { + "name": "@types/unist", + "allowedCategories": ["production"] + }, + { + "name": "@types/uuid", + "allowedCategories": ["production"] + }, + { + "name": "@types/validate-npm-package-name", + "allowedCategories": ["tools"] + }, + { + "name": "@types/watchpack", + "allowedCategories": ["tools"] + }, + { + "name": "@types/webpack-env", + "allowedCategories": ["examples"] + }, + { + "name": "@typescript-eslint/eslint-plugin", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@typescript-eslint/parser", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "@vitejs/plugin-react", + "allowedCategories": ["examples"] + }, + { + "name": "@vitejs/plugin-react-swc", + "allowedCategories": ["examples"] + }, + { + "name": "@welldone-software/why-did-you-render", + "allowedCategories": ["examples"] + }, + { + "name": "ag-grid-community", + "allowedCategories": ["production"] + }, + { + "name": "ag-grid-enterprise", + "allowedCategories": ["production"] + }, + { + "name": "ag-grid-react", + "allowedCategories": ["production"] + }, + { + "name": "async", + "allowedCategories": ["production"] + }, + { + "name": "axios", + "allowedCategories": ["production", "tools"] + }, + { + "name": "axios-cache-interceptor", + "allowedCategories": ["production"] + }, + { + "name": "babel-loader", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "babel-plugin-lodash", + "allowedCategories": ["examples", "production"] + }, + { + "name": "babel-plugin-require-context-hook", + "allowedCategories": ["production"] + }, + { + "name": "blessed", + "allowedCategories": ["tools"] + }, + { + "name": "blob-polyfill", + "allowedCategories": ["production"] + }, + { + "name": "case-sensitive-paths-webpack-plugin", + "allowedCategories": ["examples", "tools"] + }, + { + "name": "circular-dependency-plugin", + "allowedCategories": ["examples", "production"] + }, + { + "name": "classnames", + "allowedCategories": ["examples", "production"] + }, + { + "name": "clean-webpack-plugin", + "allowedCategories": ["examples", "production"] + }, + { + "name": "codemirror", + "allowedCategories": ["production"] + }, + { + "name": "columnify", + "allowedCategories": ["tools"] + }, + { + "name": "commander", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "compression-webpack-plugin", + "allowedCategories": ["examples", "production"] + }, + { + "name": "concurrently", + "allowedCategories": ["production", "tools"] + }, + { + "name": "copy-to-clipboard", + "allowedCategories": ["production"] + }, + { + "name": "copy-webpack-plugin", + "allowedCategories": ["production"] + }, + { + "name": "core-js", + "allowedCategories": ["examples", "production"] + }, + { + "name": "cron-parser", + "allowedCategories": ["production"] + }, + { + "name": "cross-spawn", + "allowedCategories": ["tools"] + }, + { + "name": "css-loader", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "date-fns", + "allowedCategories": ["production"] + }, + { + "name": "date-fns-tz", + "allowedCategories": ["production"] + }, + { + "name": "debounce-promise", + "allowedCategories": ["production"] + }, + { + "name": "default-import", + "allowedCategories": ["examples", "production"] + }, + { + "name": "dependency-cruiser", + "allowedCategories": ["production", "tools"] + }, + { + "name": "dotenv", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "dotenv-webpack", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "downshift", + "allowedCategories": ["production"] + }, + { + "name": "@gooddata/emailjs-mime-codec-new", + "allowedCategories": ["production"] + }, + { + "name": "esbuild-loader", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eslint", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eslint-import-resolver-typescript", + "allowedCategories": ["examples", "production"] + }, + { + "name": "eslint-plugin-header", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eslint-plugin-import", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eslint-plugin-import-esm", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eslint-plugin-no-only-tests", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eslint-plugin-react", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eslint-plugin-react-hooks", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eslint-plugin-regexp", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eslint-plugin-sonarjs", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eslint-plugin-tsdoc", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "eventsource-parser", + "allowedCategories": ["production"] + }, + { + "name": "exponential-backoff", + "allowedCategories": ["production"] + }, + { + "name": "fast-glob", + "allowedCategories": ["production", "tools"] + }, + { + "name": "fast-levenshtein", + "allowedCategories": ["production"] + }, + { + "name": "fetch-cookie", + "allowedCategories": ["production"] + }, + { + "name": "fetch-mock", + "allowedCategories": ["production"] + }, + { + "name": "find-up", + "allowedCategories": ["tools"] + }, + { + "name": "fix-esm-import-path", + "allowedCategories": ["production"] + }, + { + "name": "fixed-data-table-2", + "allowedCategories": ["production"] + }, + { + "name": "fork-ts-checker-webpack-plugin", + "allowedCategories": ["examples", "production"] + }, + { + "name": "fs-extra", + "allowedCategories": ["tools"] + }, + { + "name": "full-icu", + "allowedCategories": ["production"] + }, + { + "name": "glob", + "allowedCategories": ["production"] + }, + { + "name": "happy-dom", + "allowedCategories": ["production", "tools"] + }, + { + "name": "highcharts", + "allowedCategories": ["examples", "production"] + }, + { + "name": "highcharts-react-official", + "allowedCategories": ["examples", "production"] + }, + { + "name": "history", + "allowedCategories": ["examples"] + }, + { + "name": "hoist-non-react-statics", + "allowedCategories": ["production"] + }, + { + "name": "html-validate", + "allowedCategories": ["tools"] + }, + { + "name": "html-webpack-plugin", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "http-status-codes", + "allowedCategories": ["production"] + }, + { + "name": "chalk", + "allowedCategories": ["production", "tools"] + }, + { + "name": "chokidar", + "allowedCategories": ["tools"] + }, + { + "name": "immer", + "allowedCategories": ["production"] + }, + { + "name": "inquirer", + "allowedCategories": ["tools"] + }, + { + "name": "isomorphic-fetch", + "allowedCategories": ["examples", "production"] + }, + { + "name": "js-object-pretty-print", + "allowedCategories": ["production"] + }, + { + "name": "js-yaml", + "allowedCategories": ["production"] + }, + { + "name": "jsdom", + "allowedCategories": ["production"] + }, + { + "name": "json-loader", + "allowedCategories": ["production"] + }, + { + "name": "json-stable-stringify", + "allowedCategories": ["production", "tools"] + }, + { + "name": "json5", + "allowedCategories": ["tools"] + }, + { + "name": "jsonschema", + "allowedCategories": ["tools"] + }, + { + "name": "kefir", + "allowedCategories": ["production"] + }, + { + "name": "lru-cache", + "allowedCategories": ["production"] + }, + { + "name": "lz-string", + "allowedCategories": ["production"] + }, + { + "name": "mapbox-gl", + "allowedCategories": ["production"] + }, + { + "name": "mdast", + "allowedCategories": ["production"] + }, + { + "name": "mini-css-extract-plugin", + "allowedCategories": ["production"] + }, + { + "name": "mkdirp", + "allowedCategories": ["production", "tools"] + }, + { + "name": "mocha", + "allowedCategories": ["production"] + }, + { + "name": "mocha-junit-reporter", + "allowedCategories": ["production"] + }, + { + "name": "moment", + "allowedCategories": ["examples", "production"] + }, + { + "name": "node-fetch", + "allowedCategories": ["production"] + }, + { + "name": "node-xlsx", + "allowedCategories": ["production"] + }, + { + "name": "npm-run-all", + "allowedCategories": ["examples", "production"] + }, + { + "name": "open", + "allowedCategories": ["tools"] + }, + { + "name": "ora", + "allowedCategories": ["tools"] + }, + { + "name": "p-map", + "allowedCategories": ["tools"] + }, + { + "name": "pdf-parse", + "allowedCategories": ["production"] + }, + { + "name": "polished", + "allowedCategories": ["production"] + }, + { + "name": "postcss", + "allowedCategories": ["production"] + }, + { + "name": "postcss-value-parser", + "allowedCategories": ["production"] + }, + { + "name": "process", + "allowedCategories": ["examples", "tools"] + }, + { + "name": "qs", + "allowedCategories": ["production"] + }, + { + "name": "raf", + "allowedCategories": ["production", "tools"] + }, + { + "name": "react", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "react-content-loader", + "allowedCategories": ["production"] + }, + { + "name": "react-datepicker", + "allowedCategories": ["examples"] + }, + { + "name": "react-day-picker", + "allowedCategories": ["production"] + }, + { + "name": "react-dnd", + "allowedCategories": ["production"] + }, + { + "name": "react-dnd-html5-backend", + "allowedCategories": ["production"] + }, + { + "name": "react-dom", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "react-fast-compare", + "allowedCategories": ["production"] + }, + { + "name": "react-ga", + "allowedCategories": ["examples"] + }, + { + "name": "react-google-recaptcha", + "allowedCategories": ["examples"] + }, + { + "name": "react-grid-system", + "allowedCategories": ["production"] + }, + { + "name": "react-helmet", + "allowedCategories": ["examples", "production"] + }, + { + "name": "react-intl", + "allowedCategories": ["production", "tools"] + }, + { + "name": "react-lines-ellipsis", + "allowedCategories": ["production"] + }, + { + "name": "react-loading-skeleton", + "allowedCategories": ["production"] + }, + { + "name": "react-markdown", + "allowedCategories": ["production"] + }, + { + "name": "react-measure", + "allowedCategories": ["examples", "production"] + }, + { + "name": "react-native-listener", + "allowedCategories": ["production"] + }, + { + "name": "react-portal", + "allowedCategories": ["production"] + }, + { + "name": "react-redux", + "allowedCategories": ["production"] + }, + { + "name": "react-responsive", + "allowedCategories": ["production"] + }, + { + "name": "react-router-dom", + "allowedCategories": ["examples", "production"] + }, + { + "name": "react-select", + "allowedCategories": ["examples", "production"] + }, + { + "name": "react-select-async-paginate", + "allowedCategories": ["production"] + }, + { + "name": "react-syntax-highlighter", + "allowedCategories": ["examples"] + }, + { + "name": "react-textarea-autosize", + "allowedCategories": ["production"] + }, + { + "name": "react-transition-group", + "allowedCategories": ["production"] + }, + { + "name": "react-window", + "allowedCategories": ["production"] + }, + { + "name": "redux-batched-actions", + "allowedCategories": ["production"] + }, + { + "name": "redux-saga", + "allowedCategories": ["production"] + }, + { + "name": "recharts", + "allowedCategories": ["examples"] + }, + { + "name": "remark", + "allowedCategories": ["production"] + }, + { + "name": "remark-emoji", + "allowedCategories": ["production"] + }, + { + "name": "require-from-string", + "allowedCategories": ["production"] + }, + { + "name": "reselect", + "allowedCategories": ["production"] + }, + { + "name": "sass", + "allowedCategories": ["examples", "production"] + }, + { + "name": "sass-loader", + "allowedCategories": ["examples", "production"] + }, + { + "name": "semver", + "allowedCategories": ["production"] + }, + { + "name": "source-map-loader", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "spark-md5", + "allowedCategories": ["production"] + }, + { + "name": "speed-measure-webpack-plugin", + "allowedCategories": ["examples"] + }, + { + "name": "storybook", + "allowedCategories": ["production"] + }, + { + "name": "stringify-object", + "allowedCategories": ["production"] + }, + { + "name": "strip-ansi", + "allowedCategories": ["tools"] + }, + { + "name": "style-loader", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "styled-jsx", + "allowedCategories": ["examples", "production"] + }, + { + "name": "stylelint", + "allowedCategories": ["production"] + }, + { + "name": "svgo", + "allowedCategories": ["production"] + }, + { + "name": "tar", + "allowedCategories": ["tools"] + }, + { + "name": "tinycolor2", + "allowedCategories": ["production"] + }, + { + "name": "ts-invariant", + "allowedCategories": ["examples", "production"] + }, + { + "name": "ts-loader", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "ts-morph", + "allowedCategories": ["tools"] + }, + { + "name": "tsd", + "allowedCategories": ["production"] + }, + { + "name": "tslib", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "typescript", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "unified", + "allowedCategories": ["production"] + }, + { + "name": "util", + "allowedCategories": ["examples", "tools"] + }, + { + "name": "uuid", + "allowedCategories": ["production"] + }, + { + "name": "validate-npm-package-name", + "allowedCategories": ["examples", "tools"] + }, + { + "name": "vite", + "allowedCategories": ["examples", "production"] + }, + { + "name": "vite-plugin-html", + "allowedCategories": ["examples"] + }, + { + "name": "vite-plugin-mkcert", + "allowedCategories": ["examples"] + }, + { + "name": "vite-plugin-static-copy", + "allowedCategories": ["production"] + }, + { + "name": "vitest", + "allowedCategories": ["production", "tools"] + }, + { + "name": "vitest-dom", + "allowedCategories": ["production"] + }, + { + "name": "wait-on", + "allowedCategories": ["production"] + }, + { + "name": "watchpack", + "allowedCategories": ["tools"] + }, + { + "name": "webpack", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "webpack-bundle-analyzer", + "allowedCategories": ["production", "tools"] + }, + { + "name": "webpack-cli", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "webpack-dev-server", + "allowedCategories": ["examples", "production", "tools"] + }, + { + "name": "xml2js", + "allowedCategories": ["production"] + } + ] +} diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 6b799da641a..0674b4108e5 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,7 +8,7 @@ importers: .: {} - ../../examples/playground: + ../../../sdk/examples/playground: devDependencies: '@codemirror/state': specifier: 6.5.3 @@ -167,13 +167,13 @@ importers: specifier: 8.0.0 version: 8.0.0(@types/node@24.12.0)(sass@1.70.0) - ../../examples/sdk-interactive-examples: + ../../../sdk/examples/sdk-interactive-examples: devDependencies: validate-npm-package-name: specifier: ^5.0.0 version: 5.0.1 - ../../examples/sdk-interactive-examples/examples-template: + ../../../sdk/examples/sdk-interactive-examples/examples-template: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -309,7 +309,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-attributefilter: + ../../../sdk/examples/sdk-interactive-examples/examples/example-attributefilter: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -445,7 +445,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-chartconfig: + ../../../sdk/examples/sdk-interactive-examples/examples/example-chartconfig: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -581,7 +581,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-columnchart: + ../../../sdk/examples/sdk-interactive-examples/examples/example-columnchart: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -717,7 +717,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-combochart: + ../../../sdk/examples/sdk-interactive-examples/examples/example-combochart: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -853,7 +853,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-dashboard: + ../../../sdk/examples/sdk-interactive-examples/examples/example-dashboard: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -989,7 +989,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-datefilter: + ../../../sdk/examples/sdk-interactive-examples/examples/example-datefilter: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1125,7 +1125,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-dependentfilters: + ../../../sdk/examples/sdk-interactive-examples/examples/example-dependentfilters: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1261,7 +1261,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-execute: + ../../../sdk/examples/sdk-interactive-examples/examples/example-execute: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1406,7 +1406,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-granularity: + ../../../sdk/examples/sdk-interactive-examples/examples/example-granularity: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1542,7 +1542,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-headline: + ../../../sdk/examples/sdk-interactive-examples/examples/example-headline: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1678,7 +1678,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-pivottable: + ../../../sdk/examples/sdk-interactive-examples/examples/example-pivottable: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1814,7 +1814,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-relativedatefilter: + ../../../sdk/examples/sdk-interactive-examples/examples/example-relativedatefilter: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1950,7 +1950,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../examples/sdk-interactive-examples/examples/example-repeater: + ../../../sdk/examples/sdk-interactive-examples/examples/example-repeater: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -2086,7 +2086,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../libs/api-client-tiger: + ../../../sdk/libs/api-client-tiger: dependencies: '@gooddata/sdk-model': specifier: workspace:* @@ -2189,7 +2189,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../libs/sdk-backend-base: + ../../../sdk/libs/sdk-backend-base: dependencies: '@braintree/sanitize-url': specifier: ^6.0.0 @@ -2301,7 +2301,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../libs/sdk-backend-mockingbird: + ../../../sdk/libs/sdk-backend-mockingbird: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -2401,7 +2401,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../libs/sdk-backend-spi: + ../../../sdk/libs/sdk-backend-spi: dependencies: '@gooddata/sdk-model': specifier: workspace:* @@ -2486,7 +2486,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../libs/sdk-backend-tiger: + ../../../sdk/libs/sdk-backend-tiger: dependencies: '@gooddata/api-client-tiger': specifier: workspace:* @@ -2628,7 +2628,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../libs/sdk-code-convertors: + ../../../sdk/libs/sdk-code-convertors: dependencies: '@gooddata/api-client-tiger': specifier: workspace:* @@ -2710,7 +2710,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0)(yaml@2.8.3) - ../../libs/sdk-code-schemas: + ../../../sdk/libs/sdk-code-schemas: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -2788,7 +2788,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../libs/sdk-e2e-utils: + ../../../sdk/libs/sdk-e2e-utils: dependencies: '@playwright/test': specifier: 1.59.1 @@ -2876,7 +2876,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../libs/sdk-embedding: + ../../../sdk/libs/sdk-embedding: dependencies: '@gooddata/sdk-model': specifier: workspace:* @@ -2961,7 +2961,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../libs/sdk-model: + ../../../sdk/libs/sdk-model: dependencies: '@types/geojson': specifier: ^7946.0.16 @@ -3061,7 +3061,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../libs/sdk-pluggable-application-model: + ../../../sdk/libs/sdk-pluggable-application-model: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -3146,7 +3146,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../libs/sdk-ui: + ../../../sdk/libs/sdk-ui: dependencies: '@gooddata/number-formatter': specifier: ^1.0.6 @@ -3333,7 +3333,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-all: + ../../../sdk/libs/sdk-ui-all: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -3430,7 +3430,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../libs/sdk-ui-catalog: + ../../../sdk/libs/sdk-ui-catalog: dependencies: '@babel/core': specifier: 7.28.4 @@ -3626,7 +3626,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-charts: + ../../../sdk/libs/sdk-ui-charts: dependencies: '@gooddata/number-formatter': specifier: ^1.0.6 @@ -3849,7 +3849,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-dashboard: + ../../../sdk/libs/sdk-ui-dashboard: dependencies: '@codemirror/language': specifier: 6.12.1 @@ -4117,7 +4117,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-ext: + ../../../sdk/libs/sdk-ui-ext: dependencies: '@codemirror/commands': specifier: 6.10.1 @@ -4400,7 +4400,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-filters: + ../../../sdk/libs/sdk-ui-filters: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -4602,7 +4602,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-gen-ai: + ../../../sdk/libs/sdk-ui-gen-ai: dependencies: '@codemirror/autocomplete': specifier: 6.20.0 @@ -4849,7 +4849,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-geo: + ../../../sdk/libs/sdk-ui-geo: dependencies: '@gooddata/number-formatter': specifier: ^1.0.6 @@ -5036,7 +5036,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-kit: + ../../../sdk/libs/sdk-ui-kit: dependencies: '@aaronhayes/react-use-hubspot-form': specifier: 2.1.2 @@ -5328,7 +5328,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-loaders: + ../../../sdk/libs/sdk-ui-loaders: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -5461,7 +5461,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../libs/sdk-ui-pivot: + ../../../sdk/libs/sdk-ui-pivot: dependencies: '@gooddata/number-formatter': specifier: ^1.0.6 @@ -5651,7 +5651,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-pluggable-application: + ../../../sdk/libs/sdk-ui-pluggable-application: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -5775,7 +5775,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../libs/sdk-ui-semantic-search: + ../../../sdk/libs/sdk-ui-semantic-search: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -5935,7 +5935,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-tests-app: + ../../../sdk/libs/sdk-ui-tests-app: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -6070,7 +6070,7 @@ importers: specifier: 8.0.0 version: 8.0.0(@types/node@24.12.0)(sass@1.70.0) - ../../libs/sdk-ui-tests-e2e: + ../../../sdk/libs/sdk-ui-tests-e2e: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -6169,7 +6169,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../libs/sdk-ui-tests-reference-workspace: + ../../../sdk/libs/sdk-ui-tests-reference-workspace: devDependencies: '@gooddata/catalog-export': specifier: workspace:* @@ -6235,7 +6235,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../libs/sdk-ui-tests-scenarios: + ../../../sdk/libs/sdk-ui-tests-scenarios: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -6397,7 +6397,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../libs/sdk-ui-tests-storybook: + ../../../sdk/libs/sdk-ui-tests-storybook: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -6625,7 +6625,7 @@ importers: specifier: 3.1.2 version: 3.1.2(vite@8.0.0) - ../../libs/sdk-ui-theme-provider: + ../../../sdk/libs/sdk-ui-theme-provider: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -6782,7 +6782,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../libs/sdk-ui-vis-commons: + ../../../sdk/libs/sdk-ui-vis-commons: dependencies: '@gooddata/number-formatter': specifier: ^1.0.6 @@ -6951,7 +6951,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../libs/sdk-ui-web-components: + ../../../sdk/libs/sdk-ui-web-components: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -7120,7 +7120,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../libs/util: + ../../../sdk/libs/util: dependencies: lodash-es: specifier: ^4.17.23 @@ -7202,7 +7202,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../tools/app-toolkit: + ../../../sdk/tools/app-toolkit: dependencies: '@babel/cli': specifier: ^7.23.4 @@ -7359,7 +7359,7 @@ importers: specifier: 5.93.0 version: 5.93.0(webpack-cli@6.0.1) - ../../tools/applink: + ../../../sdk/tools/applink: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -7464,7 +7464,7 @@ importers: specifier: ^2.4.4 version: 2.4.4 - ../../tools/catalog-export: + ../../../sdk/tools/catalog-export: dependencies: '@babel/core': specifier: 7.28.4 @@ -7588,7 +7588,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../tools/dashboard-plugin-template: + ../../../sdk/tools/dashboard-plugin-template: dependencies: json-stable-stringify: specifier: 1.3.0 @@ -7784,7 +7784,7 @@ importers: specifier: 5.2.2 version: 5.2.2(webpack-cli@6.0.1)(webpack@5.93.0) - ../../tools/eslint-config: + ../../../sdk/tools/eslint-config: devDependencies: '@eslint/js': specifier: 9.28.0 @@ -7877,7 +7877,7 @@ importers: specifier: ^5.2.0 version: 5.2.0(@types/node@24.12.0)(jiti@2.6.1) - ../../tools/i18n-toolkit: + ../../../sdk/tools/i18n-toolkit: dependencies: '@formatjs/cli-lib': specifier: ^6.1.1 @@ -7986,7 +7986,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../tools/lint-config: + ../../../sdk/tools/lint-config: devDependencies: '@typescript/native-preview': specifier: 7.0.0-dev.20260202.1 @@ -8001,7 +8001,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../tools/mock-handling: + ../../../sdk/tools/mock-handling: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -8110,7 +8110,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../tools/oxlint-config: + ../../../sdk/tools/oxlint-config: devDependencies: '@eslint/js': specifier: 9.28.0 @@ -8188,7 +8188,7 @@ importers: specifier: ^5.2.0 version: 5.2.0(@types/node@24.12.0)(jiti@2.6.1) - ../../tools/plugin-toolkit: + ../../../sdk/tools/plugin-toolkit: dependencies: '@babel/cli': specifier: ^7.23.4 @@ -8336,7 +8336,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../tools/react-app-template: + ../../../sdk/tools/react-app-template: dependencies: '@codemirror/state': specifier: 6.5.3 @@ -8499,7 +8499,7 @@ importers: specifier: 5.2.2 version: 5.2.2(webpack-cli@6.0.1)(webpack@5.93.0) - ../../tools/reference-workspace: + ../../../sdk/tools/reference-workspace: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -8575,7 +8575,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../tools/reference-workspace-mgmt: + ../../../sdk/tools/reference-workspace-mgmt: dependencies: '@gooddata/catalog-export': specifier: workspace:* @@ -8657,7 +8657,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../tools/stylelint-config: + ../../../sdk/tools/stylelint-config: dependencies: postcss: specifier: 8.5.6 @@ -8789,7 +8789,7 @@ packages: resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.28.4 /@babel/helper-compilation-targets@7.28.6: resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} @@ -8813,7 +8813,7 @@ packages: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.4 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -8856,6 +8856,15 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-module-imports@7.27.1: + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + /@babel/helper-module-imports@7.28.6: resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} @@ -8865,6 +8874,19 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4): + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.4 + transitivePeerDependencies: + - supports-color + /@babel/helper-module-transforms@7.28.6(@babel/core@7.28.4): resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} @@ -8924,7 +8946,7 @@ packages: '@babel/core': 7.28.4 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -8932,8 +8954,8 @@ packages: resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color @@ -8941,6 +8963,10 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.27.1: + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.28.5: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} @@ -9458,7 +9484,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.4) + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9667,10 +9693,10 @@ packages: dependencies: '@babel/core': 7.28.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.28.6 + '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/types': 7.29.0 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color dev: true @@ -9977,6 +10003,20 @@ packages: '@babel/parser': 7.29.0 '@babel/types': 7.29.0 + /@babel/traverse@7.28.4: + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} + engines: {node: '>=6.9.0'} + 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 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + /@babel/traverse@7.29.0: resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} @@ -9991,6 +10031,13 @@ packages: transitivePeerDependencies: - supports-color + /@babel/types@7.28.4: + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + /@babel/types@7.29.0: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} @@ -10117,13 +10164,13 @@ packages: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - /@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1): + /@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0): resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} engines: {node: '>=18'} peerDependencies: postcss-selector-parser: ^7.0.0 dependencies: - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 /@dagrejs/dagre@1.1.8: resolution: {integrity: sha512-5SEDlndt4W/LaVzPYJW+bSmSEZc9EzTf8rJ20WCKvjS5EAZAN0b+x0Yww7VMT4R3Wootkg+X9bUfUxazYw6Blw==} @@ -11544,7 +11591,7 @@ packages: /@nestjs/axios@4.0.1(@nestjs/common@11.1.6)(axios@1.12.2)(rxjs@7.8.2): resolution: {integrity: sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A==} peerDependencies: - '@nestjs/common': ^10.0.0 || ^11.0.0 || 9.3.11 + '@nestjs/common': ^10.0.0 || ^11.0.0 axios: ^1.3.1 rxjs: ^7.0.0 dependencies: @@ -11582,7 +11629,7 @@ packages: engines: {node: '>= 20'} requiresBuild: true peerDependencies: - '@nestjs/common': ^11.0.0 || 9.3.11 + '@nestjs/common': ^11.0.0 '@nestjs/microservices': ^11.0.0 '@nestjs/platform-express': ^11.0.0 '@nestjs/websockets': ^11.0.0 @@ -12099,7 +12146,7 @@ packages: react-redux: optional: true dependencies: - '@standard-schema/spec': 1.1.0 + '@standard-schema/spec': 1.0.0 '@standard-schema/utils': 0.3.0 immer: 10.1.1 react: 19.1.1 @@ -12256,7 +12303,7 @@ packages: dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 - picomatch: 4.0.4 + picomatch: 4.0.3 dev: true /@rollup/rollup-android-arm-eabi@4.54.0: @@ -12568,6 +12615,10 @@ packages: engines: {node: '>=10'} dev: false + /@standard-schema/spec@1.0.0: + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + dev: false + /@standard-schema/spec@1.1.0: resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -12609,7 +12660,7 @@ packages: dependencies: '@storybook/codemod': 10.1.11(@testing-library/dom@10.4.1)(react-dom@19.1.1)(react@19.1.1) '@types/semver': 7.3.13 - commander: 14.0.3 + commander: 14.0.2 create-storybook: 10.1.11(@testing-library/dom@10.4.1)(react-dom@19.1.1)(react@19.1.1) jscodeshift: 0.15.2 storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.1)(react@19.1.1) @@ -13378,6 +13429,20 @@ packages: - supports-color dev: true + /@typescript-eslint/project-service@8.52.0(typescript@5.9.3): + resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + dependencies: + '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) + '@typescript-eslint/types': 8.53.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/project-service@8.58.0(typescript@5.9.3): resolution: {integrity: sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13392,6 +13457,14 @@ packages: - supports-color dev: true + /@typescript-eslint/scope-manager@8.52.0: + resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/visitor-keys': 8.52.0 + dev: true + /@typescript-eslint/scope-manager@8.58.0: resolution: {integrity: sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13400,6 +13473,15 @@ packages: '@typescript-eslint/visitor-keys': 8.58.0 dev: true + /@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.9.3): + resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + dependencies: + typescript: 5.9.3 + dev: true + /@typescript-eslint/tsconfig-utils@8.58.0(typescript@5.9.3): resolution: {integrity: sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13427,11 +13509,41 @@ packages: - supports-color dev: true + /@typescript-eslint/types@8.52.0: + resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + + /@typescript-eslint/types@8.53.0: + resolution: {integrity: sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + /@typescript-eslint/types@8.58.0: resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true + /@typescript-eslint/typescript-estree@8.52.0(typescript@5.9.3): + resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + dependencies: + '@typescript-eslint/project-service': 8.52.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/visitor-keys': 8.52.0 + debug: 4.4.3 + minimatch: 10.1.2 + semver: 7.7.4 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3): resolution: {integrity: sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13452,6 +13564,23 @@ packages: - supports-color dev: true + /@typescript-eslint/utils@8.52.0(eslint@9.39.2)(typescript@5.9.3): + resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) + '@typescript-eslint/scope-manager': 8.52.0 + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils@8.58.0(eslint@9.39.2)(typescript@5.9.3): resolution: {integrity: sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13469,6 +13598,14 @@ packages: - supports-color dev: true + /@typescript-eslint/visitor-keys@8.52.0: + resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + '@typescript-eslint/types': 8.52.0 + eslint-visitor-keys: 4.2.1 + dev: true + /@typescript-eslint/visitor-keys@8.58.0: resolution: {integrity: sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13548,7 +13685,6 @@ packages: /@ungap/structured-clone@1.3.0: resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - deprecated: Potential CWE-502 - Update to 1.3.1 or higher dev: false /@unrs/resolver-binding-android-arm-eabi@1.11.1: @@ -13735,8 +13871,8 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/utils': 8.58.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.52.0 + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 vitest: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) @@ -13951,9 +14087,6 @@ packages: peerDependencies: webpack: ^5.82.0 webpack-cli: 6.x.x - peerDependenciesMeta: - webpack: - optional: true dependencies: webpack: 5.93.0(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.2)(webpack@5.93.0) @@ -13964,9 +14097,6 @@ packages: peerDependencies: webpack: ^5.82.0 webpack-cli: 6.x.x - peerDependenciesMeta: - webpack: - optional: true dependencies: webpack: 5.93.0(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.2)(webpack@5.93.0) @@ -13979,8 +14109,6 @@ packages: webpack-cli: 6.x.x webpack-dev-server: '*' peerDependenciesMeta: - webpack: - optional: true webpack-dev-server: optional: true dependencies: @@ -14001,17 +14129,25 @@ packages: mime-types: 2.1.35 negotiator: 0.6.3 - /acorn-import-attributes@1.9.5(acorn@8.16.0): + /acorn-import-attributes@1.9.5(acorn@8.15.0): resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.16.0 + acorn: 8.15.0 /acorn-jsx-walk@2.0.0: resolution: {integrity: sha512-uuo6iJj4D4ygkdzd6jPtcxs8vZgDX9YFIkqczGImoypX2fQ4dVImmu3UzA4ynixCIMTrEOWW+95M2HuBaCEOVA==} dev: true + /acorn-jsx@5.3.2(acorn@8.15.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.15.0 + dev: true + /acorn-jsx@5.3.2(acorn@8.16.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -14027,16 +14163,29 @@ packages: acorn: 8.16.0 dev: true + /acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.15.0 + /acorn-walk@8.3.5: resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} engines: {node: '>=0.4.0'} dependencies: acorn: 8.16.0 + dev: true + + /acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true /acorn@8.16.0: resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} hasBin: true + dev: true /ag-charts-community@13.1.0: resolution: {integrity: sha512-w+uFTjxlAoTq1+8tgUORtB/zr9jm38ibXzbbWnkBP9Dep9yahi5a1jZL7yExAX35uq3g9QtjTh0Oj/QPDBQ9Ew==} @@ -14481,9 +14630,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' - peerDependenciesMeta: - webpack: - optional: true dependencies: '@babel/core': 7.28.4 find-cache-dir: 3.3.2 @@ -14553,7 +14699,6 @@ packages: /basic-ftp@5.0.5: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} - deprecated: Security vulnerability fixed in 5.2.1, please upgrade dev: true /batch@0.6.1: @@ -14962,6 +15107,11 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} + /commander@14.0.2: + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + engines: {node: '>=20'} + dev: true + /commander@14.0.3: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} @@ -15628,14 +15778,16 @@ packages: engines: {node: '>=10'} peerDependencies: webpack: ^4 || ^5 - peerDependenciesMeta: - webpack: - optional: true dependencies: dotenv-defaults: 2.0.2 webpack: 5.93.0(webpack-cli@6.0.1) dev: true + /dotenv@16.0.3: + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + engines: {node: '>=12'} + dev: true + /dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} @@ -15748,12 +15900,20 @@ packages: tapable: 1.1.3 dev: true + /enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.3 + /enhanced-resolve@5.20.1: resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 tapable: 2.3.2 + dev: true /entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -15955,9 +16115,6 @@ packages: resolution: {integrity: sha512-D7HeJNdkDKKMarPQO/3dlJT6RwN2YJO7ENU6RPlpOz5YxSHnUNi2yvW41Bckvi1EVwctIaLzlb0ni5ag2GINYA==} peerDependencies: webpack: ^4.40.0 || ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true dependencies: esbuild: 0.25.9 get-tsconfig: 4.10.1 @@ -16301,7 +16458,7 @@ packages: eslint: '>=8' storybook: ^10.1.11 dependencies: - '@typescript-eslint/utils': 8.58.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.1)(react@19.1.1) transitivePeerDependencies: @@ -16413,8 +16570,8 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 dev: true @@ -16604,7 +16761,7 @@ packages: pend: 1.2.0 dev: true - /fdir@6.5.0(picomatch@4.0.4): + /fdir@6.5.0(picomatch@4.0.3): resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -16613,7 +16770,7 @@ packages: picomatch: optional: true dependencies: - picomatch: 4.0.4 + picomatch: 4.0.3 /fetch-cookie@0.7.3: resolution: {integrity: sha512-rZPkLnI8x5V+zYAiz8QonAHsTb4BY+iFowFBI1RFn0zrO343AVp9X7/yUj/9wL6Ef/8fLls8b/vGtzUvmyAUGA==} @@ -17023,7 +17180,6 @@ packages: /glob@11.0.3: resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} engines: {node: 20 || >=22} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true dependencies: foreground-child: 3.3.1 @@ -17366,7 +17522,7 @@ packages: html-minifier-terser: 6.1.0 lodash: 4.17.21 pretty-error: 4.0.0 - tapable: 2.3.2 + tapable: 2.2.3 webpack: 5.93.0(webpack-cli@6.0.1) dev: true @@ -19863,9 +20019,14 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + /picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + /picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} + dev: true /pidtree@0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} @@ -19997,6 +20158,13 @@ packages: postcss: 8.5.6 dev: false + /postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + /postcss-selector-parser@7.1.1: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} @@ -20576,9 +20744,6 @@ packages: resolution: {integrity: sha512-6orZWyCnIQXMGY4DUGM0oj0L7oYnwTACsfsru/J7r94RM3P9eS7SORGpr3LCeRCMoIMQcpfKZ7X4NdyFHBS8Eg==} peerDependencies: redux: '>=1.0.0' - peerDependenciesMeta: - redux: - optional: true dependencies: redux: 5.0.1 dev: false @@ -20593,9 +20758,6 @@ packages: resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} peerDependencies: redux: ^5.0.0 - peerDependenciesMeta: - redux: - optional: true dependencies: redux: 5.0.1 dev: false @@ -21330,9 +21492,6 @@ packages: engines: {node: '>= 14.15.0'} peerDependencies: webpack: ^5.72.1 - peerDependenciesMeta: - webpack: - optional: true dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 @@ -21465,7 +21624,7 @@ packages: '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 '@vitest/spy': 3.2.4 - esbuild: 0.27.2 + esbuild: 0.25.9 open: 10.2.0 prettier: 3.6.2 recast: 0.23.11 @@ -21640,9 +21799,6 @@ packages: engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true dependencies: webpack: 5.93.0(webpack-cli@6.0.1) dev: true @@ -21725,7 +21881,7 @@ packages: '@csstools/css-syntax-patches-for-csstree': 1.0.26 '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) '@dual-bundle/import-meta-resolve': 4.2.1 balanced-match: 2.0.0 colord: 2.9.3 @@ -21752,7 +21908,7 @@ packages: postcss: 8.5.6 postcss-resolve-nested-selector: 0.1.6 postcss-safe-parser: 7.0.1(postcss@8.5.6) - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 @@ -21847,9 +22003,14 @@ packages: engines: {node: '>=6'} dev: true + /tapable@2.2.3: + resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} + engines: {node: '>=6'} + /tapable@2.3.2: resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} engines: {node: '>=6'} + dev: true /tar-stream@1.6.2: resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} @@ -21867,7 +22028,6 @@ packages: /tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -21899,8 +22059,6 @@ packages: optional: true uglify-js: optional: true - webpack: - optional: true dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 @@ -21915,7 +22073,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.16.0 + acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -21978,8 +22136,8 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 /tinypool@2.1.0: resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} @@ -22094,6 +22252,15 @@ packages: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} dev: false + /ts-api-utils@2.4.0(typescript@5.9.3): + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + dependencies: + typescript: 5.9.3 + dev: true + /ts-api-utils@2.5.0(typescript@5.9.3): resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} @@ -22126,9 +22293,6 @@ packages: peerDependencies: typescript: '*' webpack: '*' - peerDependenciesMeta: - webpack: - optional: true dependencies: chalk: 4.1.2 enhanced-resolve: 4.5.0 @@ -22152,7 +22316,7 @@ packages: dependencies: chalk: 4.1.2 enhanced-resolve: 5.20.1 - tapable: 2.3.2 + tapable: 2.2.3 tsconfig-paths: 4.2.0 dev: true @@ -22405,8 +22569,8 @@ packages: engines: {node: '>=18.12.0'} dependencies: '@jridgewell/remapping': 2.3.5 - acorn: 8.16.0 - picomatch: 4.0.4 + acorn: 8.15.0 + picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 dev: true @@ -22533,7 +22697,6 @@ packages: /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true /validate-npm-package-license@3.0.4: @@ -22614,7 +22777,7 @@ packages: colorette: 2.0.20 connect-history-api-fallback: 1.6.0 consola: 2.15.3 - dotenv: 16.4.5 + dotenv: 16.0.3 dotenv-expand: 8.0.3 ejs: 3.1.10 fast-glob: 3.3.3 @@ -22681,9 +22844,9 @@ packages: dependencies: '@types/node': 24.12.0 esbuild: 0.27.2 - fdir: 6.5.0(picomatch@4.0.4) + fdir: 6.5.0(picomatch@4.0.3) jiti: 2.6.1 - picomatch: 4.0.4 + picomatch: 4.0.3 postcss: 8.5.6 rollup: 4.54.0 tinyglobby: 0.2.15 @@ -22737,7 +22900,7 @@ packages: '@oxc-project/runtime': 0.115.0 '@types/node': 24.12.0 lightningcss: 1.32.0 - picomatch: 4.0.4 + picomatch: 4.0.3 postcss: 8.5.8 rolldown: 1.0.0-rc.9 sass: 1.70.0 @@ -22790,7 +22953,7 @@ packages: dependencies: '@oxc-project/runtime': 0.115.0 lightningcss: 1.32.0 - picomatch: 4.0.4 + picomatch: 4.0.3 postcss: 8.5.8 rolldown: 1.0.0-rc.9 sass: 1.70.0 @@ -22862,7 +23025,7 @@ packages: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.4 + picomatch: 4.0.3 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 @@ -22932,7 +23095,7 @@ packages: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.4 + picomatch: 4.0.3 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 @@ -23002,7 +23165,7 @@ packages: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.4 + picomatch: 4.0.3 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 @@ -23072,7 +23235,7 @@ packages: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.4 + picomatch: 4.0.3 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 @@ -23143,8 +23306,8 @@ packages: hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.16.0 - acorn-walk: 8.3.5 + acorn: 8.15.0 + acorn-walk: 8.3.4 commander: 7.2.0 debounce: 1.2.1 escape-string-regexp: 4.0.0 @@ -23167,8 +23330,6 @@ packages: webpack-bundle-analyzer: '*' webpack-dev-server: '*' peerDependenciesMeta: - webpack: - optional: true webpack-bundle-analyzer: optional: true webpack-dev-server: @@ -23295,11 +23456,11 @@ packages: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-attributes: 1.9.5(acorn@8.16.0) + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.20.1 + enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -23310,7 +23471,7 @@ packages: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 3.3.0 - tapable: 2.3.2 + tapable: 2.2.3 terser-webpack-plugin: 5.3.14(webpack@5.93.0) watchpack: 2.4.4 webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.2)(webpack@5.93.0) diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 462a45eb3f6..96d04b9645e 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -12,14 +12,14 @@ { "definitionName": "lockStepVersion", "policyName": "sdk", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "nextBump": "prerelease", "mainProject": "@gooddata/sdk-ui-all" }, { "definitionName": "lockStepVersion", "policyName": "sdk-examples", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "nextBump": "prerelease", "mainProject": "@gooddata/sdk-ui-all" } diff --git a/examples/sdk-interactive-examples/examples-template/package.json b/examples/sdk-interactive-examples/examples-template/package.json index 60d902cc1e7..e2ac2456aaf 100644 --- a/examples/sdk-interactive-examples/examples-template/package.json +++ b/examples/sdk-interactive-examples/examples-template/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-examples-template", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "GoodData interactive example template", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-attributefilter/package.json b/examples/sdk-interactive-examples/examples/example-attributefilter/package.json index 79b7eb05b07..6d22cd42aec 100644 --- a/examples/sdk-interactive-examples/examples/example-attributefilter/package.json +++ b/examples/sdk-interactive-examples/examples/example-attributefilter/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-attributefilter", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "This example demonstrates how to use the AttributeFilter component to filter data in a visualization.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-chartconfig/package.json b/examples/sdk-interactive-examples/examples/example-chartconfig/package.json index 961db3574a6..babae2ccfd3 100644 --- a/examples/sdk-interactive-examples/examples/example-chartconfig/package.json +++ b/examples/sdk-interactive-examples/examples/example-chartconfig/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-chartconfig", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "This interactive example demonstrates how to manipulate the chart config.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-columnchart/package.json b/examples/sdk-interactive-examples/examples/example-columnchart/package.json index 2bd3dc80b6f..cfed6abe21e 100644 --- a/examples/sdk-interactive-examples/examples/example-columnchart/package.json +++ b/examples/sdk-interactive-examples/examples/example-columnchart/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-columnchart", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "This example demonstrates the usage of the ColumnChart component with the viewBy and stackBy properties.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-combochart/package.json b/examples/sdk-interactive-examples/examples/example-combochart/package.json index c36976cbffa..58401dba2aa 100644 --- a/examples/sdk-interactive-examples/examples/example-combochart/package.json +++ b/examples/sdk-interactive-examples/examples/example-combochart/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-combochart", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "Example demonstrates ComboChart secondaryMeasures definition. ", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-dashboard/package.json b/examples/sdk-interactive-examples/examples/example-dashboard/package.json index 6fada208756..51a7b701c99 100644 --- a/examples/sdk-interactive-examples/examples/example-dashboard/package.json +++ b/examples/sdk-interactive-examples/examples/example-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-dashboard", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "This example shows how to use the Dashboard component.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-datefilter/package.json b/examples/sdk-interactive-examples/examples/example-datefilter/package.json index ea5b15623b5..16a187b862f 100644 --- a/examples/sdk-interactive-examples/examples/example-datefilter/package.json +++ b/examples/sdk-interactive-examples/examples/example-datefilter/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-datefilter", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "Example demonstrates usage of Date Filter component.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-dependentfilters/package.json b/examples/sdk-interactive-examples/examples/example-dependentfilters/package.json index 0cab838c579..bfa3694a985 100644 --- a/examples/sdk-interactive-examples/examples/example-dependentfilters/package.json +++ b/examples/sdk-interactive-examples/examples/example-dependentfilters/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-dependentfilters", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "This example demonstrates how to use multiple attribute filters linked together to filter data in a visualization.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-execute/package.json b/examples/sdk-interactive-examples/examples/example-execute/package.json index f069cd0e8f9..cd5d2877ac9 100644 --- a/examples/sdk-interactive-examples/examples/example-execute/package.json +++ b/examples/sdk-interactive-examples/examples/example-execute/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-execute", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "This example demonstrates using Execute component and build custom visualization.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-granularity/package.json b/examples/sdk-interactive-examples/examples/example-granularity/package.json index 710d4be3b5b..c37be785af7 100644 --- a/examples/sdk-interactive-examples/examples/example-granularity/package.json +++ b/examples/sdk-interactive-examples/examples/example-granularity/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-granularity", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "This example exmplains DateFilter granularity ", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-headline/package.json b/examples/sdk-interactive-examples/examples/example-headline/package.json index ae4e22b8585..4844ee83ed7 100644 --- a/examples/sdk-interactive-examples/examples/example-headline/package.json +++ b/examples/sdk-interactive-examples/examples/example-headline/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-headline", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "This example shows how to use the Headline component.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-pivottable/package.json b/examples/sdk-interactive-examples/examples/example-pivottable/package.json index 53d4b7f2bab..47fe696097d 100644 --- a/examples/sdk-interactive-examples/examples/example-pivottable/package.json +++ b/examples/sdk-interactive-examples/examples/example-pivottable/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-pivottable", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "Basic PivotTable manipulation.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-relativedatefilter/package.json b/examples/sdk-interactive-examples/examples/example-relativedatefilter/package.json index 77d6068d721..0c3a3c1abc7 100644 --- a/examples/sdk-interactive-examples/examples/example-relativedatefilter/package.json +++ b/examples/sdk-interactive-examples/examples/example-relativedatefilter/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-relativedatefilter", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "Example demonstrates how to set relative DateFilter for visualization.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/examples/example-repeater/package.json b/examples/sdk-interactive-examples/examples/example-repeater/package.json index 6214820d7f6..3c3eff828b7 100644 --- a/examples/sdk-interactive-examples/examples/example-repeater/package.json +++ b/examples/sdk-interactive-examples/examples/example-repeater/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-example-repeater", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "This example demonstrates how to use Repeater component.", "license": "LicenseRef-LICENSE", diff --git a/examples/sdk-interactive-examples/package.json b/examples/sdk-interactive-examples/package.json index 22ab416283f..932ffd79e9b 100644 --- a/examples/sdk-interactive-examples/package.json +++ b/examples/sdk-interactive-examples/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-interactive-examples", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "private": false, "description": "GoodData React interactive examples", "license": "LicenseRef-LICENSE", diff --git a/libs/api-client-tiger/api/api-client-tiger.api.md b/libs/api-client-tiger/api/api-client-tiger.api.md index b3ccf5b92eb..10133dd8643 100644 --- a/libs/api-client-tiger/api/api-client-tiger.api.md +++ b/libs/api-client-tiger/api/api-client-tiger.api.md @@ -7654,6 +7654,7 @@ export class ConversationsAi extends BaseAPI implements ConversationsAiInterface getConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsGet(requestParameters: ConversationsAiGetConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsGetRequest, options?: AxiosRequestConfig): AxiosPromise; patchConversationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdPatch(requestParameters: ConversationsAiPatchConversationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdPatchRequest, options?: AxiosRequestConfig): AxiosPromise; postConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPost(requestParameters: ConversationsAiPostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPostRequest, options?: AxiosRequestConfig): AxiosPromise; + postGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost(requestParameters: ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest, options?: AxiosRequestConfig): AxiosPromise; } // @public @@ -7681,6 +7682,11 @@ function ConversationsAi_PostConversationsApiV1AiWorkspacesWorkspaceIdChatConver export { ConversationsAi_PostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPost } export { ConversationsAi_PostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPost as GenAiApi_PostConversations } +// @public +function ConversationsAi_PostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost(axios: AxiosInstance, basePath: string, requestParameters: ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest, options?: AxiosRequestConfig, configuration?: Configuration_2): AxiosPromise; +export { ConversationsAi_PostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost } +export { ConversationsAi_PostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost as GenAiApi_PostGenerateConversationTitle } + // @public export function ConversationsAiAxiosParamCreator_DeleteConversationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdDelete(workspaceId: string, conversationId: string, options?: AxiosRequestConfig, configuration?: Configuration_2): Promise; @@ -7696,6 +7702,9 @@ export function ConversationsAiAxiosParamCreator_PatchConversationApiV1AiWorkspa // @public export function ConversationsAiAxiosParamCreator_PostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPost(workspaceId: string, isPreview?: boolean, options?: AxiosRequestConfig, configuration?: Configuration_2): Promise; +// @public +export function ConversationsAiAxiosParamCreator_PostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost(workspaceId: string, conversationId: string, options?: AxiosRequestConfig, configuration?: Configuration_2): Promise; + // @public interface ConversationsAiDeleteConversationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdDeleteRequest { readonly conversationId: string; @@ -7729,6 +7738,7 @@ export interface ConversationsAiInterface { getConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsGet(requestParameters: ConversationsAiGetConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsGetRequest, options?: AxiosRequestConfig): AxiosPromise; patchConversationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdPatch(requestParameters: ConversationsAiPatchConversationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdPatchRequest, options?: AxiosRequestConfig): AxiosPromise; postConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPost(requestParameters: ConversationsAiPostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPostRequest, options?: AxiosRequestConfig): AxiosPromise; + postGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost(requestParameters: ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest, options?: AxiosRequestConfig): AxiosPromise; } // @public @@ -7748,6 +7758,14 @@ interface ConversationsAiPostConversationsApiV1AiWorkspacesWorkspaceIdChatConver export { ConversationsAiPostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPostRequest } export { ConversationsAiPostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPostRequest as GenAiApiPostConversationsRequest } +// @public +interface ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest { + readonly conversationId: string; + readonly workspaceId: string; +} +export { ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest } +export { ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest as GenAiApiPostGenerateConversationTitleRequest } + // @public export class CookieSecurityConfigurationApi extends MetadataBaseApi implements CookieSecurityConfigurationApiInterface { getEntityCookieSecurityConfigurations(requestParameters: CookieSecurityConfigurationApiGetEntityCookieSecurityConfigurationsRequest, options?: AxiosRequestConfig): AxiosPromise; diff --git a/libs/api-client-tiger/package.json b/libs/api-client-tiger/package.json index fa77b42c339..a54cd0e5167 100644 --- a/libs/api-client-tiger/package.json +++ b/libs/api-client-tiger/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/api-client-tiger", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "API Client for GoodData Cloud and GoodData.CN", "license": "MIT", "author": "GoodData", diff --git a/libs/api-client-tiger/src/endpoints/genAI/index.ts b/libs/api-client-tiger/src/endpoints/genAI/index.ts index e5e31678e23..4d2c911f453 100644 --- a/libs/api-client-tiger/src/endpoints/genAI/index.ts +++ b/libs/api-client-tiger/src/endpoints/genAI/index.ts @@ -45,11 +45,13 @@ import { type ConversationsAiGetConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsGetRequest, type ConversationsAiPatchConversationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdPatchRequest, type ConversationsAiPostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPostRequest, + type ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest, ConversationsAi_DeleteConversationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdDelete, ConversationsAi_GetConversationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGet, ConversationsAi_GetConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsGet, ConversationsAi_PatchConversationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdPatch, ConversationsAi_PostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPost, + ConversationsAi_PostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost, type ItemsAiGetConversationItemsApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdItemsGetRequest, ItemsAi_GetConversationItemsApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdItemsGet, type KnowledgeAiCreateDocumentRequest, @@ -143,6 +145,8 @@ export { type ResponsesAiPatchResponseApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdResponsesResponseIdPatchRequest as GenAiApiPatchConversationResponseRequest, VisualizationsAi_PatchVisualizationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdVisualizationsVisualizationIdPatch as GenAiApi_PatchVisualization, type VisualizationsAiPatchVisualizationApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdVisualizationsVisualizationIdPatchRequest as GenAiApiPatchVisualizationRequest, + ConversationsAi_PostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost as GenAiApi_PostGenerateConversationTitle, + type ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest as GenAiApiPostGenerateConversationTitleRequest, // Knowledge Documents KnowledgeAi_CreateDocument as GenAiApi_CreateKnowledgeDocument, type KnowledgeAiCreateDocumentRequest as GenAiApiCreateKnowledgeDocumentRequest, diff --git a/libs/api-client-tiger/src/generated/ai-json-api/api.ts b/libs/api-client-tiger/src/generated/ai-json-api/api.ts index 8728d305735..a4c88966c05 100644 --- a/libs/api-client-tiger/src/generated/ai-json-api/api.ts +++ b/libs/api-client-tiger/src/generated/ai-json-api/api.ts @@ -1460,6 +1460,55 @@ export async function ConversationsAiAxiosParamCreator_PostConversationsApiV1AiW } +// ConversationsAi FP - ConversationsAiAxiosParamCreator +/** + * + * @summary Post Generate Conversation Title + * @param {string} workspaceId + * @param {string} conversationId + * @param {*} [options] Override http request option. + * @param {Configuration} [configuration] Optional configuration. + * @throws {RequiredError} + */ +export async function ConversationsAiAxiosParamCreator_PostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost( + workspaceId: string, conversationId: string, + options: AxiosRequestConfig = {}, + configuration?: Configuration, +): Promise { + // verify required parameter 'workspaceId' is not null or undefined + assertParamExists('postGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost', 'workspaceId', workspaceId) + // verify required parameter 'conversationId' is not null or undefined + assertParamExists('postGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost', 'conversationId', conversationId) + const localVarPath = `/api/v1/ai/workspaces/{workspace_id}/chat/conversations/{conversation_id}/generateTitle` + .replace(`{${"workspace_id"}}`, encodeURIComponent(String(workspaceId))) + .replace(`{${"conversation_id"}}`, encodeURIComponent(String(conversationId))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + const headersFromBaseOptions = baseOptions?.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { + ...localVarHeaderParameter, + ...headersFromBaseOptions, + ...options.headers, + }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; +} + + // ConversationsAi Api FP /** @@ -1591,6 +1640,32 @@ export async function ConversationsAi_PostConversationsApiV1AiWorkspacesWorkspac } +// ConversationsAi Api FP +/** + * + * @summary Post Generate Conversation Title + * @param {AxiosInstance} axios Axios instance. + * @param {string} basePath Base path. + * @param {ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @param {Configuration} [configuration] Optional configuration. + * @throws {RequiredError} + */ +export async function ConversationsAi_PostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost( + axios: AxiosInstance, basePath: string, + requestParameters: ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest, + options?: AxiosRequestConfig, + configuration?: Configuration, +): AxiosPromise { + const localVarAxiosArgs = await ConversationsAiAxiosParamCreator_PostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost( + requestParameters.workspaceId, requestParameters.conversationId, + options || {}, + configuration, + ); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, basePath); +} + + /** * ConversationsAi - interface * @export @@ -1647,6 +1722,16 @@ export interface ConversationsAiInterface { */ postConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPost(requestParameters: ConversationsAiPostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPostRequest, options?: AxiosRequestConfig): AxiosPromise; + /** + * + * @summary Post Generate Conversation Title + * @param {ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof ConversationsAiInterface + */ + postGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost(requestParameters: ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest, options?: AxiosRequestConfig): AxiosPromise; + } /** @@ -1775,6 +1860,27 @@ export interface ConversationsAiPostConversationsApiV1AiWorkspacesWorkspaceIdCha readonly isPreview?: boolean } +/** + * Request parameters for postGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost operation in ConversationsAi. + * @export + * @interface ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest + */ +export interface ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest { + /** + * + * @type {string} + * @memberof ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost + */ + readonly workspaceId: string + + /** + * + * @type {string} + * @memberof ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost + */ + readonly conversationId: string +} + /** * ConversationsAi - object-oriented interface * @export @@ -1841,6 +1947,18 @@ export class ConversationsAi extends BaseAPI implements ConversationsAiInterface public postConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPost(requestParameters: ConversationsAiPostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPostRequest, options?: AxiosRequestConfig) { return ConversationsAi_PostConversationsApiV1AiWorkspacesWorkspaceIdChatConversationsPost(this.axios, this.basePath, requestParameters, options, this.configuration); } + + /** + * + * @summary Post Generate Conversation Title + * @param {ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof ConversationsAi + */ + public postGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost(requestParameters: ConversationsAiPostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePostRequest, options?: AxiosRequestConfig) { + return ConversationsAi_PostGenerateConversationTitleApiV1AiWorkspacesWorkspaceIdChatConversationsConversationIdGenerateTitlePost(this.axios, this.basePath, requestParameters, options, this.configuration); + } } diff --git a/libs/api-client-tiger/src/generated/ai-json-api/openapi-spec.json b/libs/api-client-tiger/src/generated/ai-json-api/openapi-spec.json index c6d6264d9a5..6e8da6bf6c9 100644 --- a/libs/api-client-tiger/src/generated/ai-json-api/openapi-spec.json +++ b/libs/api-client-tiger/src/generated/ai-json-api/openapi-spec.json @@ -289,6 +289,53 @@ } } }, + "/api/v1/ai/workspaces/{workspace_id}/chat/conversations/{conversation_id}/generateTitle": { + "post": { + "tags": [ + "Conversations" + ], + "summary": "Post Generate Conversation Title", + "operationId": "post_generate_conversation_title_api_v1_ai_workspaces__workspace_id__chat_conversations__conversation_id__generateTitle_post", + "parameters": [ + { + "name": "workspace_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "Workspace Id" + } + }, + { + "name": "conversation_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "Conversation Id" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConversationResponse" + } + } + } + }, + "404": { + "description": "Conversation not found." + }, + "422": { + "description": "Title cannot be generated yet or LLM is not configured." + } + } + } + }, "/api/v1/ai/workspaces/{workspace_id}/chat/conversations/{conversation_id}/items": { "get": { "tags": [ diff --git a/libs/sdk-backend-base/api/sdk-backend-base.api.md b/libs/sdk-backend-base/api/sdk-backend-base.api.md index 860b416afe8..0d4afb3e874 100644 --- a/libs/sdk-backend-base/api/sdk-backend-base.api.md +++ b/libs/sdk-backend-base/api/sdk-backend-base.api.md @@ -822,6 +822,8 @@ export class DummyChatConversations implements IChatConversations { // (undocumented) delete(_conversationId: string): Promise; // (undocumented) + generateTitle(_conversationId: string): Promise; + // (undocumented) getConversation(_conversationId: string): Promise; // (undocumented) getConversationItemsQuery(): IChatConversationItemsQuery; diff --git a/libs/sdk-backend-base/package.json b/libs/sdk-backend-base/package.json index 00a0d7db3c4..fe8d3db4767 100644 --- a/libs/sdk-backend-base/package.json +++ b/libs/sdk-backend-base/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-backend-base", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData.UI SDK - Base for backend implementations", "license": "MIT", "author": "GoodData", diff --git a/libs/sdk-backend-base/src/dummyBackend/DummyGenAIChatThread.ts b/libs/sdk-backend-base/src/dummyBackend/DummyGenAIChatThread.ts index 23bacdaa281..fc3fc2c30fc 100644 --- a/libs/sdk-backend-base/src/dummyBackend/DummyGenAIChatThread.ts +++ b/libs/sdk-backend-base/src/dummyBackend/DummyGenAIChatThread.ts @@ -154,6 +154,9 @@ export class DummyChatConversations implements IChatConversations { delete(_conversationId: string): Promise { throw new Error("Method not implemented."); } + generateTitle(_conversationId: string): Promise { + throw new Error("Method not implemented."); + } getConversation(_conversationId: string): Promise { throw new Error("Method not implemented."); } diff --git a/libs/sdk-backend-mockingbird/package.json b/libs/sdk-backend-mockingbird/package.json index 0a9e3e56997..a84a2e352e8 100644 --- a/libs/sdk-backend-mockingbird/package.json +++ b/libs/sdk-backend-mockingbird/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-backend-mockingbird", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "Mock GoodData Backend SPI implementation", "license": "MIT", "author": "GoodData", diff --git a/libs/sdk-backend-spi/api/sdk-backend-spi.api.md b/libs/sdk-backend-spi/api/sdk-backend-spi.api.md index 3a1d6b696da..797a3b8c2b4 100644 --- a/libs/sdk-backend-spi/api/sdk-backend-spi.api.md +++ b/libs/sdk-backend-spi/api/sdk-backend-spi.api.md @@ -725,6 +725,7 @@ export type IChatConversationReasoningContent = { export interface IChatConversations { create(): Promise; delete(conversationId: string): Promise; + generateTitle(conversationId: string): Promise; getConversation(conversationId: string): Promise; getConversationItemsQuery(): IChatConversationItemsQuery; getConversationThread(conversationId: string): IChatConversationThread; diff --git a/libs/sdk-backend-spi/package.json b/libs/sdk-backend-spi/package.json index 7f32cd203e7..5ed71d5df7e 100644 --- a/libs/sdk-backend-spi/package.json +++ b/libs/sdk-backend-spi/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-backend-spi", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData Backend SPI abstraction interfaces", "license": "MIT", "author": "GoodData", diff --git a/libs/sdk-backend-spi/src/workspace/genAI/index.ts b/libs/sdk-backend-spi/src/workspace/genAI/index.ts index 62442d5bf4b..94ad364c471 100644 --- a/libs/sdk-backend-spi/src/workspace/genAI/index.ts +++ b/libs/sdk-backend-spi/src/workspace/genAI/index.ts @@ -740,6 +740,11 @@ export interface IChatConversations { */ delete(conversationId: string): Promise; + /** + * Generate title for a conversation. + */ + generateTitle(conversationId: string): Promise; + /** * Get conversation by id. */ diff --git a/libs/sdk-backend-tiger/package.json b/libs/sdk-backend-tiger/package.json index 325cf53d483..ebaf8544766 100644 --- a/libs/sdk-backend-tiger/package.json +++ b/libs/sdk-backend-tiger/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-backend-tiger", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN", "license": "MIT", "author": "GoodData", diff --git a/libs/sdk-backend-tiger/src/backend/workspace/genAI/ChatConversations.ts b/libs/sdk-backend-tiger/src/backend/workspace/genAI/ChatConversations.ts index 43b5201a3a1..bbf936f11ca 100644 --- a/libs/sdk-backend-tiger/src/backend/workspace/genAI/ChatConversations.ts +++ b/libs/sdk-backend-tiger/src/backend/workspace/genAI/ChatConversations.ts @@ -13,6 +13,7 @@ import { GenAiApi_PatchConversationResponse, GenAiApi_PatchVisualization, GenAiApi_PostConversations, + GenAiApi_PostGenerateConversationTitle, GenAiApi_PostMessages, } from "@gooddata/api-client-tiger/endpoints/genAI"; import { ServerPaging } from "@gooddata/sdk-backend-base"; @@ -95,6 +96,16 @@ export class ChatConversationsService implements IChatConversations { }); } + async generateTitle(conversationId: string): Promise { + return await this.authCall(async (client) => { + const response = await GenAiApi_PostGenerateConversationTitle(client.axios, client.basePath, { + workspaceId: this.workspaceId, + conversationId, + }); + return convertChatConversationFromBackend(response.data); + }); + } + async getConversation(conversationId: string): Promise { return await this.authCall(async (client) => { const response = await GenAiApi_GetConversation(client.axios, client.basePath, { diff --git a/libs/sdk-code-convertors/package.json b/libs/sdk-code-convertors/package.json index 6c5fc8ccc76..2aa18373093 100644 --- a/libs/sdk-code-convertors/package.json +++ b/libs/sdk-code-convertors/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-code-convertors", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData AAC declarative converters", "license": "MIT", "author": "GoodData", diff --git a/libs/sdk-code-convertors/python/pyproject.toml b/libs/sdk-code-convertors/python/pyproject.toml index a373d098dd6..fae2e217ec0 100644 --- a/libs/sdk-code-convertors/python/pyproject.toml +++ b/libs/sdk-code-convertors/python/pyproject.toml @@ -2,7 +2,7 @@ [project] name = "gooddata-code-convertors" -version = "11.35.0a1" +version = "11.35.0a2" description = "GoodData AAC YAML / Declarative API code converters (WASM-powered)" readme = "README.md" license = { file = "LICENSE" } diff --git a/libs/sdk-code-convertors/python/src/gooddata_code_convertors/_types.py b/libs/sdk-code-convertors/python/src/gooddata_code_convertors/_types.py index 68a97967d29..771dd39cac6 100644 --- a/libs/sdk-code-convertors/python/src/gooddata_code_convertors/_types.py +++ b/libs/sdk-code-convertors/python/src/gooddata_code_convertors/_types.py @@ -1,5 +1,5 @@ # (C) 2026 GoodData Corporation -# schema-hash: 7a407027c7b9eb05b67431df553793f227fddced628421322b5574879979714c +# schema-hash: 33fb2515f2ec8bec50f7549dc1e3ebd5f4f2200351cfb0c55859c029bf46e6d8 from __future__ import annotations diff --git a/libs/sdk-code-convertors/src/__tests__/datasetAggAwareRoundTrip.test.ts b/libs/sdk-code-convertors/src/__tests__/datasetAggAwareRoundTrip.test.ts index a0a3dd76c5f..3abf79b0c3e 100644 --- a/libs/sdk-code-convertors/src/__tests__/datasetAggAwareRoundTrip.test.ts +++ b/libs/sdk-code-convertors/src/__tests__/datasetAggAwareRoundTrip.test.ts @@ -29,9 +29,12 @@ const noEntities: ExportEntities = []; * - one base NORMAL dataset with plain `dataSourceTableId` */ describe("dataset agg-aware round-trip (CQ-2302)", () => { - function roundTrip(declarative: DeclarativeDataset): DeclarativeDataset { + function roundTrip( + declarative: DeclarativeDataset, + entities: ExportEntities = noEntities, + ): DeclarativeDataset { const { json: yamlAsJson } = declarativeDatasetToYaml(declarative, profile, {}); - return yamlDatasetToDeclarative(noEntities, yamlAsJson as Dataset, profile.data_source); + return yamlDatasetToDeclarative(entities, yamlAsJson as Dataset, profile.data_source); } describe("AUXILIARY dataset", () => { @@ -161,7 +164,7 @@ describe("dataset agg-aware round-trip (CQ-2302)", () => { sourceColumnDataType: "HLL", sourceFactReference: { operation: "APPROXIMATE_COUNT", - reference: { id: "users_hll", type: "fact" }, + reference: { id: "country_id", type: "attribute" }, }, }, { @@ -187,18 +190,21 @@ describe("dataset agg-aware round-trip (CQ-2302)", () => { expect(hllFact?.sourceColumnDataType).toBe("HLL"); }); - it("preserves aggregatedFacts[] including APPROXIMATE_COUNT operation", () => { + it("preserves aggregatedFacts[] including APPROXIMATE_COUNT operation against an attribute target", () => { const out = roundTrip(preAgg); const agg = out.aggregatedFacts ?? []; expect(agg).toHaveLength(2); + // APPROXIMATE_COUNT must reference an attribute (gdc-nas CQ-2147 / CommonModel.SourceReferenceOperation.isAllowedForAttribute). const approx = agg.find((f) => f.id === "users_approx"); expect(approx?.sourceFactReference.operation).toBe("APPROXIMATE_COUNT"); - expect(approx?.sourceFactReference.reference.id).toBe("users_hll"); + expect(approx?.sourceFactReference.reference.id).toBe("country_id"); + expect(approx?.sourceFactReference.reference.type).toBe("attribute"); expect(approx?.sourceColumnDataType).toBe("HLL"); const sum = agg.find((f) => f.id === "amount_sum"); expect(sum?.sourceFactReference.operation).toBe("SUM"); + expect(sum?.sourceFactReference.reference.type).toBe("fact"); }); it("preserves the reference to the AUX dataset", () => { @@ -277,4 +283,80 @@ describe("dataset agg-aware round-trip (CQ-2302)", () => { expect(out.sql).toBeUndefined(); }); }); + + /** + * Direct YAML→declarative coverage for an APPROXIMATE_COUNT aggregated fact whose + * `assigned_to` points at an attribute on an AUXILIARY dataset. + * + * Mirrors the canonical xfail repro in gooddata-python-sdk + * (`tests/catalog/unit_tests/test_aac_agg_aware.py + * ::test_pre_aggregation_approximate_count_attribute_target_round_trips`). + * + * Platform contract: gdc-nas CQ-2147 / SourceReferenceOperation.isAllowedForFact() === false + * for APPROXIMATE_COUNT — the only valid `reference.type` is `"attribute"`. + */ + describe("APPROXIMATE_COUNT against attribute target (CQ-2147)", () => { + const aux: Dataset = { + type: "dataset", + id: "orders", + title: "Orders", + dataset_type: "auxiliary", + fields: { + unique_customer: { type: "attribute", title: "Unique Customer", data_type: "STRING" }, + }, + } as Dataset; + + const aac: Dataset = { + type: "dataset", + id: "agg_orders_country_daily", + title: "Agg", + table_path: "agg_orders_country_daily", + data_source: "demo-ds", + dataset_type: "standard", + precedence: 1, + fields: { + "agg_orders_country_daily.unique_customers_hll": { + type: "aggregated_fact", + source_column: "unique_customers_hll", + data_type: "HLL", + aggregated_as: "APPROXIMATE_COUNT", + assigned_to: "attribute/unique_customer", + }, + }, + } as Dataset; + + const entities: ExportEntities = [ + { id: "orders", type: "dataset", path: "orders.yaml", data: aux }, + { id: aac.id, type: "dataset", path: `${aac.id}.yaml`, data: aac }, + ]; + + it("resolves prefixed assigned_to as attribute", () => { + const out = yamlDatasetToDeclarative(entities, aac, "demo-ds"); + const af = out.aggregatedFacts?.[0]; + expect(af?.sourceFactReference.operation).toBe("APPROXIMATE_COUNT"); + expect(af?.sourceColumnDataType).toBe("HLL"); + expect(af?.sourceFactReference.reference.id).toBe("unique_customer"); + expect(af?.sourceFactReference.reference.type).toBe("attribute"); + }); + + it("resolves bare assigned_to as attribute via entities lookup", () => { + const aacBare: Dataset = { + ...aac, + fields: { + "agg_orders_country_daily.unique_customers_hll": { + type: "aggregated_fact", + source_column: "unique_customers_hll", + data_type: "HLL", + aggregated_as: "APPROXIMATE_COUNT", + assigned_to: "unique_customer", + }, + }, + } as Dataset; + + const out = yamlDatasetToDeclarative(entities, aacBare, "demo-ds"); + const af = out.aggregatedFacts?.[0]; + expect(af?.sourceFactReference.reference.id).toBe("unique_customer"); + expect(af?.sourceFactReference.reference.type).toBe("attribute"); + }); + }); }); diff --git a/libs/sdk-code-convertors/src/from/declarativeDatasetToYaml.ts b/libs/sdk-code-convertors/src/from/declarativeDatasetToYaml.ts index d164804254c..9a163b10062 100644 --- a/libs/sdk-code-convertors/src/from/declarativeDatasetToYaml.ts +++ b/libs/sdk-code-convertors/src/from/declarativeDatasetToYaml.ts @@ -212,7 +212,13 @@ function processDeclarativeAggregatedFact( ); map.add(new Pair("aggregated_as", fact.sourceFactReference.operation)); - map.add(new Pair("assigned_to", fact.sourceFactReference.reference.id)); + // Re-emit the `attribute/` prefix so YAML→declarative does not need entities scope to + // recover the type for HLL synopses (gdc-nas CQ-2147). Fact targets stay bare for + // backward compatibility with existing AAC YAML. + const reference = fact.sourceFactReference.reference; + map.add( + new Pair("assigned_to", reference.type === "attribute" ? `attribute/${reference.id}` : reference.id), + ); if (fact.description) { map.add(new Pair("description", fact.description ?? "")); diff --git a/libs/sdk-code-convertors/src/to/yamlDatasetToDeclarative.ts b/libs/sdk-code-convertors/src/to/yamlDatasetToDeclarative.ts index 863a23a3505..5f02c0f9045 100644 --- a/libs/sdk-code-convertors/src/to/yamlDatasetToDeclarative.ts +++ b/libs/sdk-code-convertors/src/to/yamlDatasetToDeclarative.ts @@ -112,7 +112,7 @@ export function yamlDatasetToDeclarative( output.facts = buildFacts(input.fields); output.attributes = buildAttributes(input.fields, input.dataset_type === "auxiliary"); - const aggregatedFacts = buildAggregatedFacts(input.fields); + const aggregatedFacts = buildAggregatedFacts(input.fields, entities); if (aggregatedFacts.length > 0) { output.aggregatedFacts = aggregatedFacts; } @@ -120,6 +120,44 @@ export function yamlDatasetToDeclarative( return output; } +/** + * Resolve `assigned_to` on an aggregated fact to a (id, type) pair. + * + * `assigned_to` is a free-form string in AAC YAML. It can be either: + * - prefixed (`attribute/` or `fact/`) — type is taken from the prefix and `` is returned bare, + * - bare (``) — type is inferred by searching `entities` for an `attribute` field with a matching id; + * falls back to `"fact"` if no such attribute is found. + * + * Platform contract (gdc-nas CQ-2147 / SourceReferenceOperation): `APPROXIMATE_COUNT` requires + * `type === "attribute"`, `SUM` requires `type === "fact"`. We do not enforce that here — the + * server validates and rejects mismatches — but correct type resolution is what makes the + * payload acceptable in the first place. + */ +function resolveAggregatedFactReference( + assignedTo: string, + entities: ExportEntities, +): { id: string; type: "attribute" | "fact" } { + const slashIndex = assignedTo.indexOf("/"); + if (slashIndex > 0) { + const prefix = assignedTo.slice(0, slashIndex); + const id = assignedTo.slice(slashIndex + 1); + if (prefix === "attribute" || prefix === "fact") { + return { id, type: prefix }; + } + } + + const isAttribute = entities.some((entity) => { + if (entity.type !== "dataset") { + return false; + } + const fields = (entity.data as Dataset).fields; + const field = fields?.[assignedTo]; + return field !== undefined && (field as Attribute).type === "attribute"; + }); + + return { id: assignedTo, type: isAttribute ? "attribute" : "fact" }; +} + /** * Build `grain` declarative prop. */ @@ -275,7 +313,10 @@ export function buildFacts(fields?: Fields): DeclarativeFact[] { /** * Build declarative aggregated facts out of AaC fields */ -export function buildAggregatedFacts(fields?: Fields): DeclarativeAggregatedFact[] { +export function buildAggregatedFacts( + fields?: Fields, + entities: ExportEntities = [], +): DeclarativeAggregatedFact[] { if (!fields) { return []; } @@ -286,16 +327,15 @@ export function buildAggregatedFacts(fields?: Fields): DeclarativeAggregatedFact return null; } + const reference = resolveAggregatedFactReference(field.assigned_to, entities); + const output: DeclarativeAggregatedFact = { id, sourceColumn: field.source_column ?? id, sourceColumnDataType: field.data_type, sourceFactReference: { operation: field.aggregated_as, - reference: { - id: field.assigned_to, - type: "fact", - }, + reference, }, }; diff --git a/libs/sdk-code-schemas/api/sdk-code-schemas.api.md b/libs/sdk-code-schemas/api/sdk-code-schemas.api.md index 33205b3fc06..a62f02a9c4c 100644 --- a/libs/sdk-code-schemas/api/sdk-code-schemas.api.md +++ b/libs/sdk-code-schemas/api/sdk-code-schemas.api.md @@ -5293,10 +5293,6 @@ export const metadata_v1: { using: { $ref: string; description: string; - $semantic: { - type: string; - source: string; - }; }; conditions: { type: string; diff --git a/libs/sdk-code-schemas/package.json b/libs/sdk-code-schemas/package.json index 71987d282ee..d279cb989b1 100644 --- a/libs/sdk-code-schemas/package.json +++ b/libs/sdk-code-schemas/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-code-schemas", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData AAC JSON Schema types and compiled schemas", "license": "MIT", "author": "GoodData", diff --git a/libs/sdk-code-schemas/schemas/v1/src/common.json b/libs/sdk-code-schemas/schemas/v1/src/common.json index 1ce8d5cce61..67b1fee3559 100644 --- a/libs/sdk-code-schemas/schemas/v1/src/common.json +++ b/libs/sdk-code-schemas/schemas/v1/src/common.json @@ -1071,11 +1071,7 @@ }, "using": { "$ref": "#/$defs/metricIdentifier", - "description": "Reference to the metric being filtered.", - "$semantic": { - "type": "reference", - "source": "metric.id" - } + "description": "Reference to the metric being filtered." }, "conditions": { "type": "array", diff --git a/libs/sdk-code-schemas/schemas/v1/src/dashboard.json b/libs/sdk-code-schemas/schemas/v1/src/dashboard.json index b6bcf81a467..c37475853f3 100644 --- a/libs/sdk-code-schemas/schemas/v1/src/dashboard.json +++ b/libs/sdk-code-schemas/schemas/v1/src/dashboard.json @@ -301,10 +301,10 @@ "description": "A list of dashboard filters to be ignored for this widget", "items": { "type": "string", - "description": "An id of the dashboard label, attribute or date to be ignored", + "description": "An id of the dashboard label, attribute, metric or date to be ignored", "$semantic": { "type": "reference", - "sources": ["dateDataset.id", "attribute.id", "label.id"], + "sources": ["dateDataset.id", "attribute.id", "label.id", "metric.id"], "typePrefix": true } } diff --git a/libs/sdk-code-schemas/src/v1/metadata.json b/libs/sdk-code-schemas/src/v1/metadata.json index b6d8a9d9824..d0f7b5720a8 100644 --- a/libs/sdk-code-schemas/src/v1/metadata.json +++ b/libs/sdk-code-schemas/src/v1/metadata.json @@ -3465,8 +3465,7 @@ }, "using": { "$ref": "#/$defs/metricIdentifier", - "description": "Reference to the metric being filtered.", - "$semantic": { "type": "reference", "source": "metric.id" } + "description": "Reference to the metric being filtered." }, "conditions": { "type": "array", @@ -4974,10 +4973,10 @@ "description": "A list of dashboard filters to be ignored for this widget", "items": { "type": "string", - "description": "An id of the dashboard label, attribute or date to be ignored", + "description": "An id of the dashboard label, attribute, metric or date to be ignored", "$semantic": { "type": "reference", - "sources": ["dateDataset.id", "attribute.id", "label.id"], + "sources": ["dateDataset.id", "attribute.id", "label.id", "metric.id"], "typePrefix": true } } diff --git a/libs/sdk-e2e-utils/package.json b/libs/sdk-e2e-utils/package.json index d21b975f70c..692a0dec734 100644 --- a/libs/sdk-e2e-utils/package.json +++ b/libs/sdk-e2e-utils/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-e2e-utils", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData utility functions for Playwright E2E tests", "license": "MIT", "author": "GoodData", diff --git a/libs/sdk-embedding/package.json b/libs/sdk-embedding/package.json index 658c67447d8..557f63ae6a2 100644 --- a/libs/sdk-embedding/package.json +++ b/libs/sdk-embedding/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-embedding", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData Embedding APIs", "license": "MIT", "author": "GoodData", diff --git a/libs/sdk-model/package.json b/libs/sdk-model/package.json index 22b7a896bcb..3a65ca0cdb3 100644 --- a/libs/sdk-model/package.json +++ b/libs/sdk-model/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-model", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData Model definitions used by UI components and Backend SPI", "license": "MIT", "author": "GoodData", diff --git a/libs/sdk-pluggable-application-model/package.json b/libs/sdk-pluggable-application-model/package.json index 0307f94b80d..2abdaee83a2 100644 --- a/libs/sdk-pluggable-application-model/package.json +++ b/libs/sdk-pluggable-application-model/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-pluggable-application-model", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK model contracts for pluggable applications", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-all/package.json b/libs/sdk-ui-all/package.json index badaa806dcb..6528bb17a41 100644 --- a/libs/sdk-ui-all/package.json +++ b/libs/sdk-ui-all/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-all", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK - All-In-One", "license": "LicenseRef-LICENSE", "author": "GoodData", diff --git a/libs/sdk-ui-catalog/package.json b/libs/sdk-ui-catalog/package.json index 5588475ed91..0a91b2a0bee 100644 --- a/libs/sdk-ui-catalog/package.json +++ b/libs/sdk-ui-catalog/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-catalog", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK - Analytics Catalog", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-charts/package.json b/libs/sdk-ui-charts/package.json index 5d5cbeb9401..bc976cb1eec 100644 --- a/libs/sdk-ui-charts/package.json +++ b/libs/sdk-ui-charts/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-charts", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData.UI SDK - Charts", "license": "LicenseRef-LICENSE", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-dashboard/package.json b/libs/sdk-ui-dashboard/package.json index 8be09230b56..800016313ff 100644 --- a/libs/sdk-ui-dashboard/package.json +++ b/libs/sdk-ui-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-dashboard", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK - Dashboard Component", "license": "LicenseRef-LICENSE", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-ext/package.json b/libs/sdk-ui-ext/package.json index ca0f0965bfa..a1e24fc5035 100644 --- a/libs/sdk-ui-ext/package.json +++ b/libs/sdk-ui-ext/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-ext", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData.UI SDK - Extensions", "license": "LicenseRef-LICENSE", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-filters/package.json b/libs/sdk-ui-filters/package.json index 988075a1dbc..e4d962010a6 100644 --- a/libs/sdk-ui-filters/package.json +++ b/libs/sdk-ui-filters/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-filters", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData.UI SDK - Filter Components", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-gen-ai/package.json b/libs/sdk-ui-gen-ai/package.json index e2025dd4eb9..528c5211e74 100644 --- a/libs/sdk-ui-gen-ai/package.json +++ b/libs/sdk-ui-gen-ai/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-gen-ai", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData GenAI SDK", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-gen-ai/src/components/ConversationDeleteDialog.tsx b/libs/sdk-ui-gen-ai/src/components/ConversationDeleteDialog.tsx index 285e6db8c4e..678453c7b2a 100644 --- a/libs/sdk-ui-gen-ai/src/components/ConversationDeleteDialog.tsx +++ b/libs/sdk-ui-gen-ai/src/components/ConversationDeleteDialog.tsx @@ -5,9 +5,9 @@ import { useMemo } from "react"; import { FormattedMessage, defineMessages, useIntl } from "react-intl"; import { useSelector } from "react-redux"; -import { type IChatConversation } from "@gooddata/sdk-backend-spi"; import { ConfirmDialog } from "@gooddata/sdk-ui-kit"; +import { type IChatConversationLocal } from "../model.js"; import { catalogItemsSelector } from "../store/chatWindow/chatWindowSelectors.js"; import { generateTemporaryTitle } from "../utils.js"; import { collectReferences, replaceReferences } from "./completion/references.js"; @@ -20,7 +20,7 @@ const messages = defineMessages({ }); type ConversationDeleteDialogProps = { - conversation: IChatConversation; + conversation: IChatConversationLocal; onDelete: () => void; onClose: () => void; }; diff --git a/libs/sdk-ui-gen-ai/src/components/GenAIChatConversations.tsx b/libs/sdk-ui-gen-ai/src/components/GenAIChatConversations.tsx index cb946ba2a72..a86c9a11e5e 100644 --- a/libs/sdk-ui-gen-ai/src/components/GenAIChatConversations.tsx +++ b/libs/sdk-ui-gen-ai/src/components/GenAIChatConversations.tsx @@ -6,7 +6,6 @@ import cx from "classnames"; import { FormattedMessage, useIntl } from "react-intl"; import { connect, useSelector } from "react-redux"; -import { type IChatConversation } from "@gooddata/sdk-backend-spi"; import { DefaultUiMenuInteractiveItemWrapper, type IUiMenuItem, @@ -16,6 +15,7 @@ import { UiMenu, } from "@gooddata/sdk-ui-kit"; +import { type IChatConversationLocal } from "../model.js"; import { catalogItemsSelector } from "../store/chatWindow/chatWindowSelectors.js"; import { setHistoryAction } from "../store/chatWindow/chatWindowSlice.js"; import { conversationSelector, conversationsSelector } from "../store/messages/messagesSelectors.js"; @@ -54,7 +54,7 @@ function GenAIChatConversationsComponent({ const { isFullscreen, isSmallScreen } = useFullscreenCheck(); const { isHistory } = useHistoryCheck(); - const [conversationToDelete, setConversationToDelete] = useState(); + const [conversationToDelete, setConversationToDelete] = useState(); const catalogItems = useSelector(catalogItemsSelector); @@ -106,7 +106,7 @@ function GenAIChatConversationsComponent({ }, []); const handleSelect = useCallback( - (conversation: IChatConversation) => { + (conversation: IChatConversationLocal) => { loadConversation({ conversation }); setHistory({ isHistory: false }); }, @@ -130,8 +130,11 @@ function GenAIChatConversationsComponent({ node={ref.current} showBackdrop={false} header={ -
- {intl.formatMessage({ id: "gd.gen-ai.conversations.title" })} +
+
+ {intl.formatMessage({ id: "gd.gen-ai.conversations.title" })} +
+
} closeLabel={intl.formatMessage({ id: "gd.gen-ai.conversations.close-label" })} @@ -144,7 +147,6 @@ function GenAIChatConversationsComponent({ "gd-gen-ai-chat__window__conversations--isSmallScreen": isSmallScreen, })} > -
{(conversations ?? []).length === 0 ? (
@@ -164,17 +166,17 @@ function GenAIChatConversationsComponent({ if (event.key === "Delete" && focusedItem) { event.preventDefault(); event.stopPropagation(); - setConversationToDelete(focusedItem.data as IChatConversation); + setConversationToDelete(focusedItem.data as IChatConversationLocal); } }} InteractiveItemWrapper={(props) => { - const data = props.item.data as IChatConversation; + const data = props.item.data as IChatConversationLocal; return (
@@ -192,7 +194,7 @@ function GenAIChatConversationsComponent({ }} items={menuItems} onSelect={(item, event) => { - handleSelect(item.data as IChatConversation); + handleSelect(item.data as IChatConversationLocal); event.stopPropagation(); event.preventDefault(); }} diff --git a/libs/sdk-ui-gen-ai/src/components/utils/conversationGrouper.ts b/libs/sdk-ui-gen-ai/src/components/utils/conversationGrouper.ts index ca02da58ca4..ac261615221 100644 --- a/libs/sdk-ui-gen-ai/src/components/utils/conversationGrouper.ts +++ b/libs/sdk-ui-gen-ai/src/components/utils/conversationGrouper.ts @@ -1,6 +1,6 @@ // (C) 2026 GoodData Corporation -import { type IChatConversation } from "@gooddata/sdk-backend-spi"; +import { type IChatConversationLocal } from "../../model.js"; export enum ConversationDateGroup { TODAY = "TODAY", @@ -15,7 +15,7 @@ export type ConversationDateGroupConfig = { export type ConversationDateBucket = { group: ConversationDateGroup; - conversations: IChatConversation[]; + conversations: IChatConversationLocal[]; }; export const DEFAULT_CONVERSATION_DATE_GROUPS: ConversationDateGroupConfig[] = [ @@ -25,11 +25,11 @@ export const DEFAULT_CONVERSATION_DATE_GROUPS: ConversationDateGroupConfig[] = [ ]; export function groupConversationsByDate( - conversations: IChatConversation[] | undefined = [], + conversations: IChatConversationLocal[] | undefined = [], groups: ConversationDateGroupConfig[] = DEFAULT_CONVERSATION_DATE_GROUPS, now: Date = new Date(), ): ConversationDateBucket[] { - const conversationGroups = new Map(); + const conversationGroups = new Map(); groups.forEach((group) => { conversationGroups.set(group.group, []); diff --git a/libs/sdk-ui-gen-ai/src/components/utils/tests/conversationGrouper.test.ts b/libs/sdk-ui-gen-ai/src/components/utils/tests/conversationGrouper.test.ts index 38f6d50e6fa..03de1de8395 100644 --- a/libs/sdk-ui-gen-ai/src/components/utils/tests/conversationGrouper.test.ts +++ b/libs/sdk-ui-gen-ai/src/components/utils/tests/conversationGrouper.test.ts @@ -2,15 +2,14 @@ import { describe, expect, it } from "vitest"; -import { type IChatConversation } from "@gooddata/sdk-backend-spi"; - +import { type IChatConversationLocal } from "../../../model.js"; import { ConversationDateGroup, type ConversationDateGroupConfig, groupConversationsByDate, } from "../conversationGrouper.js"; -function createConversation(id: string, updatedAt: string): IChatConversation { +function createConversation(id: string, updatedAt: string): IChatConversationLocal { return { id, createdAt: updatedAt, @@ -29,7 +28,7 @@ describe("groupConversationsByDate", () => { const now = new Date("2026-05-04T09:24:00.000Z"); it("should group conversations to default date buckets", () => { - const conversations: IChatConversation[] = [ + const conversations: IChatConversationLocal[] = [ createConversation("today", daysAgoIso(0, now)), createConversation("last-7-days", daysAgoIso(3, now)), createConversation("older", daysAgoIso(14, now)), @@ -52,7 +51,7 @@ describe("groupConversationsByDate", () => { }); it("should use custom configuration and preserve configured order", () => { - const conversations: IChatConversation[] = [ + const conversations: IChatConversationLocal[] = [ createConversation("older", daysAgoIso(5, now)), createConversation("newer", daysAgoIso(0, now)), ]; diff --git a/libs/sdk-ui-gen-ai/src/model.ts b/libs/sdk-ui-gen-ai/src/model.ts index e3f3458017e..486f1f9ea21 100644 --- a/libs/sdk-ui-gen-ai/src/model.ts +++ b/libs/sdk-ui-gen-ai/src/model.ts @@ -3,6 +3,7 @@ import { v4 as uuidv4 } from "uuid"; import { + type IChatConversation, type IChatConversationContent, type IChatConversationError, type IChatConversationItem, @@ -347,6 +348,14 @@ export const makeAssistantMessage = ( */ export type Message = UserMessage | AssistantMessage; +/** + * Represents a local chat conversation that extends the base `IChatConversation` type. + * Includes additional optional properties specific to the local context. + */ +export type IChatConversationLocal = IChatConversation & { + generatingTitle?: boolean; +}; + /** * Chat conversation item with local ID. * @public diff --git a/libs/sdk-ui-gen-ai/src/store/messages/messagesSelectors.ts b/libs/sdk-ui-gen-ai/src/store/messages/messagesSelectors.ts index 2b3dd51a7b5..35625f210d2 100644 --- a/libs/sdk-ui-gen-ai/src/store/messages/messagesSelectors.ts +++ b/libs/sdk-ui-gen-ai/src/store/messages/messagesSelectors.ts @@ -2,9 +2,7 @@ import { createSelector } from "@reduxjs/toolkit"; -import { type IChatConversation } from "@gooddata/sdk-backend-spi"; - -import { type IChatConversationLocalItem, type Message } from "../../model.js"; +import { type IChatConversationLocal, type IChatConversationLocalItem, type Message } from "../../model.js"; import { type RootState } from "../types.js"; import { messagesSliceName } from "./messagesSlice.js"; @@ -53,19 +51,17 @@ export const conversationMessagesSelector: (state: RootState) => IChatConversati state.conversationItemsOrder.map((id) => state.conversationItems[id]), ); -export const conversationSelector: (state: RootState) => IChatConversation | "new" | undefined = +export const conversationSelector: (state: RootState) => IChatConversationLocal | "new" | undefined = createSelector(messagesSliceSelector, (state) => state.currentConversation); export const conversationByIdSelector: ( state: RootState, conversationId: string, -) => IChatConversation | undefined = createSelector( +) => IChatConversationLocal | undefined = createSelector( [messagesSliceSelector, (_state: RootState, conversationId: string) => conversationId], (state, conversationId) => state.conversations?.find((conversation) => conversation.id === conversationId), ); -export const conversationsSelector: (state: RootState) => IChatConversation[] | undefined = createSelector( - messagesSliceSelector, - (state) => state.conversations, -); +export const conversationsSelector: (state: RootState) => IChatConversationLocal[] | undefined = + createSelector(messagesSliceSelector, (state) => state.conversations); diff --git a/libs/sdk-ui-gen-ai/src/store/messages/messagesSlice.ts b/libs/sdk-ui-gen-ai/src/store/messages/messagesSlice.ts index 1168018dfaf..3d2e44b826c 100644 --- a/libs/sdk-ui-gen-ai/src/store/messages/messagesSlice.ts +++ b/libs/sdk-ui-gen-ai/src/store/messages/messagesSlice.ts @@ -2,11 +2,7 @@ import { type PayloadAction, type Reducer, createSlice } from "@reduxjs/toolkit"; -import { - type IChatConversation, - type IChatConversationItem, - type IChatSuggestionsItem, -} from "@gooddata/sdk-backend-spi"; +import { type IChatConversationItem, type IChatSuggestionsItem } from "@gooddata/sdk-backend-spi"; import { type GenAIChatInteractionUserFeedback } from "@gooddata/sdk-model"; import { type SdkErrorType } from "@gooddata/sdk-ui"; @@ -14,6 +10,7 @@ import { type AssistantMessage, type Contents, type IChatConversationErrorContent, + type IChatConversationLocal, type IChatConversationLocalContent, type IChatConversationLocalItem, type IChatConversationMultipartLocalPart, @@ -49,13 +46,13 @@ type MessagesSliceState = { /** * A list of conversations. */ - conversations: IChatConversation[] | undefined; + conversations: IChatConversationLocal[] | undefined; /** * The current conversation. * - "new": indicates UI is in a transient state to start a brand new conversation. * - undefined: no conversation is selected */ - currentConversation: IChatConversation | "new" | undefined; + currentConversation: IChatConversationLocal | "new" | undefined; /** * Conversation items. */ @@ -129,13 +126,13 @@ const setNormalizedMessages = (state: MessagesSliceState, messages: Message[]) = state.loaded = true; }; -const setNormalizedConversations = (state: MessagesSliceState, conversations: IChatConversation[]) => { +const setNormalizedConversations = (state: MessagesSliceState, conversations: IChatConversationLocal[]) => { state.conversations = conversations; }; const setNormalizedConversation = ( state: MessagesSliceState, - conversation: IChatConversation | "new", + conversation: IChatConversationLocal | "new", items: IChatConversationLocalItem[] = [], ) => { state.currentConversation = conversation; @@ -272,7 +269,7 @@ const messagesSlice = createSlice({ { payload: { conversations }, }: PayloadAction<{ - conversations: IChatConversation[]; + conversations: IChatConversationLocal[]; }>, ) => { setNormalizedConversations(state, conversations); @@ -282,7 +279,7 @@ const messagesSlice = createSlice({ { payload: { currentConversation, conversationItems, threadId }, }: PayloadAction<{ - currentConversation: IChatConversation | "new"; + currentConversation: IChatConversationLocal | "new"; conversationItems: IChatConversationLocalItem[]; threadId?: string; }>, @@ -309,7 +306,7 @@ const messagesSlice = createSlice({ state, { payload: { conversation, threadId }, - }: PayloadAction<{ conversation: IChatConversation; threadId: string }>, + }: PayloadAction<{ conversation: IChatConversationLocal; threadId: string }>, ) => { state.conversations = [conversation, ...(state.conversations ?? [])]; state.currentConversation = conversation; @@ -454,13 +451,41 @@ const messagesSlice = createSlice({ userMessage.id = payload.interactionId ?? userMessage.id; } }, + evaluateConversationTitleAction: ( + state, + { + payload, + }: PayloadAction<{ + conversation: IChatConversationLocal; + generatingTitle: boolean; + title?: string; + }>, + ) => { + const conversation = state.conversations?.find((c) => c.id === payload.conversation.id); + if (!conversation) { + return; + } + + conversation.generatingTitle = payload.generatingTitle; + if (payload.title) { + conversation.title = payload.title; + if ( + state.currentConversation !== "new" && + state.currentConversation?.id === conversation.id + ) { + state.currentConversation.title = payload.title; + } + } + }, evaluateMessageUpdateAction: ( state, { payload, }: PayloadAction<{ userMessageId: string; + conversation: IChatConversationLocal; message: IChatConversationItem | UserMessage; + isStartMessage: boolean; interactionId?: string; }>, ) => { @@ -539,7 +564,7 @@ const messagesSlice = createSlice({ }, setCurrentConversationAction: ( state, - { payload }: PayloadAction<{ conversation: IChatConversation }>, + { payload }: PayloadAction<{ conversation: IChatConversationLocal }>, ) => { const existing = state.conversations?.find((c) => c.id === payload.conversation.id); @@ -875,7 +900,7 @@ const messagesSlice = createSlice({ deleteConversationSuccessAction: (state, _action: PayloadAction<{ conversationId: string }>) => state, deleteConversationFailureAction: ( state, - { payload }: PayloadAction<{ conversation: IChatConversation; error: Error }>, + { payload }: PayloadAction<{ conversation: IChatConversationLocal; error: Error }>, ) => { state.conversations = [...(state.conversations ?? []), payload.conversation]; }, @@ -896,6 +921,7 @@ export const { clearThreadErrorAction, clearThreadSuccessAction, clearConversationSuccessAction, + evaluateConversationTitleAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, diff --git a/libs/sdk-ui-gen-ai/src/store/sideEffects/index.ts b/libs/sdk-ui-gen-ai/src/store/sideEffects/index.ts index 252974872e7..9ae1b02fd18 100644 --- a/libs/sdk-ui-gen-ai/src/store/sideEffects/index.ts +++ b/libs/sdk-ui-gen-ai/src/store/sideEffects/index.ts @@ -5,6 +5,7 @@ import { call, fork, takeEvery, takeLatest } from "redux-saga/effects"; import { clearThreadAction, deleteConversationAction, + evaluateMessageUpdateAction, loadThreadAction, newMessageAction, saveVisualisationRenderStatusAction, @@ -22,6 +23,7 @@ import { onThreadClear } from "./onThreadClear.js"; import { onThreadLoad } from "./onThreadLoad.js"; import { onUserFeedback } from "./onUserFeedback.js"; import { onUserMessage } from "./onUserMessage.js"; +import { onUserMessageUpdate } from "./onUserMessageUpdate.js"; import { onVerboseStore } from "./onVerboseStore.js"; import { onVisualisationRender } from "./onVisualisationRender.js"; import { onVisualizationSave } from "./onVisualizationSave.js"; @@ -42,6 +44,7 @@ export function* rootSaga() { yield takeEvery(saveVisualisationRenderStatusAction.type, onVisualisationRender); //conversations API yield takeEvery(deleteConversationAction.type, onConversationDelete); + yield takeEvery(evaluateMessageUpdateAction.type, onUserMessageUpdate); //others yield takeEvery(setVerboseAction.type, onVerboseStore); yield fork(onEvent); diff --git a/libs/sdk-ui-gen-ai/src/store/sideEffects/onConversationDelete.ts b/libs/sdk-ui-gen-ai/src/store/sideEffects/onConversationDelete.ts index a3875790f02..a85b6165ed9 100644 --- a/libs/sdk-ui-gen-ai/src/store/sideEffects/onConversationDelete.ts +++ b/libs/sdk-ui-gen-ai/src/store/sideEffects/onConversationDelete.ts @@ -3,8 +3,9 @@ import { type PayloadAction } from "@reduxjs/toolkit"; import { call, getContext, put, select } from "redux-saga/effects"; -import { type IAnalyticalBackend, type IChatConversation } from "@gooddata/sdk-backend-spi"; +import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi"; +import { type IChatConversationLocal } from "../../model.js"; import { conversationByIdSelector } from "../messages/messagesSelectors.js"; import { deleteConversationFailureAction, @@ -21,7 +22,7 @@ export function* onConversationDelete({ const backend: IAnalyticalBackend = yield getContext("backend"); const workspace: string = yield getContext("workspace"); - const conversation: IChatConversation | undefined = yield select( + const conversation: IChatConversationLocal | undefined = yield select( conversationByIdSelector, payload.conversationId, ); diff --git a/libs/sdk-ui-gen-ai/src/store/sideEffects/onThreadClear.ts b/libs/sdk-ui-gen-ai/src/store/sideEffects/onThreadClear.ts index 3b3ce0c3165..59ce5b8a08e 100644 --- a/libs/sdk-ui-gen-ai/src/store/sideEffects/onThreadClear.ts +++ b/libs/sdk-ui-gen-ai/src/store/sideEffects/onThreadClear.ts @@ -2,12 +2,9 @@ import { call, getContext, put, race, select, take } from "redux-saga/effects"; -import { - type IAnalyticalBackend, - type IChatConversation, - type IUserWorkspaceSettings, -} from "@gooddata/sdk-backend-spi"; +import { type IAnalyticalBackend, type IUserWorkspaceSettings } from "@gooddata/sdk-backend-spi"; +import { type IChatConversationLocal } from "../../model.js"; import { settingsSelector } from "../chatWindow/chatWindowSelectors.js"; import { threadIdSelector } from "../messages/messagesSelectors.js"; import { @@ -71,7 +68,7 @@ function* resetConversation() { .getChatConversations({ isPreview }) .getConversationThread(conversationId); - const [results, cancelAction]: [results: IChatConversation, ReturnType] = + const [results, cancelAction]: [results: IChatConversationLocal, ReturnType] = yield race([call(chatThread.reset.bind(chatThread)), take(cancelAsyncAction.type)]); if (cancelAction) { diff --git a/libs/sdk-ui-gen-ai/src/store/sideEffects/onThreadLoad.ts b/libs/sdk-ui-gen-ai/src/store/sideEffects/onThreadLoad.ts index 313519b8e7f..6af321b76d0 100644 --- a/libs/sdk-ui-gen-ai/src/store/sideEffects/onThreadLoad.ts +++ b/libs/sdk-ui-gen-ai/src/store/sideEffects/onThreadLoad.ts @@ -4,7 +4,6 @@ import { call, cancelled, getContext, put, race, select, take } from "redux-saga import { type IAnalyticalBackend, - type IChatConversation, type IChatConversationItem, type IChatConversationItemsQueryResult, type IChatConversationThread, @@ -16,6 +15,7 @@ import { import { type AssistantMessage, type Contents, + type IChatConversationLocal, type Message, isAssistantMessage, isSemanticSearchContents, @@ -163,7 +163,7 @@ function* fetchAllConversations() { const workspace: string = yield getContext("workspace"); const isPreview: boolean | undefined = yield getContext("isPreview"); - const conversations: IChatConversation[] | undefined = yield select(conversationsSelector); + const conversations: IChatConversationLocal[] | undefined = yield select(conversationsSelector); // Already loaded if (conversations) { @@ -197,8 +197,8 @@ function* fetchCurrentConversation() { const workspace: string = yield getContext("workspace"); const isPreview: boolean | undefined = yield getContext("isPreview"); - const conversations: IChatConversation[] | undefined = yield select(conversationsSelector); - const conversation: "new" | IChatConversation | undefined = yield select(conversationSelector); + const conversations: IChatConversationLocal[] | undefined = yield select(conversationsSelector); + const conversation: "new" | IChatConversationLocal | undefined = yield select(conversationSelector); // New conversation selected if (conversation === "new") { diff --git a/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserFeedback.ts b/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserFeedback.ts index d33f61e838e..9a90bb6446c 100644 --- a/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserFeedback.ts +++ b/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserFeedback.ts @@ -3,14 +3,10 @@ import { type PayloadAction } from "@reduxjs/toolkit"; import { getContext, put, select } from "redux-saga/effects"; -import { - type IAnalyticalBackend, - type IChatConversation, - type IUserWorkspaceSettings, -} from "@gooddata/sdk-backend-spi"; +import { type IAnalyticalBackend, type IUserWorkspaceSettings } from "@gooddata/sdk-backend-spi"; import { type GenAIChatInteractionUserFeedback } from "@gooddata/sdk-model"; -import { type IChatConversationLocalItem, type Message } from "../../model.js"; +import { type IChatConversationLocal, type IChatConversationLocalItem, type Message } from "../../model.js"; import { settingsSelector } from "../chatWindow/chatWindowSelectors.js"; import { conversationMessagesSelector, @@ -39,7 +35,7 @@ export function* onUserFeedback({ if (settings?.enableAiAgenticConversations) { try { - const conversation: IChatConversation = yield select(conversationSelector); + const conversation: IChatConversationLocal = yield select(conversationSelector); const messages: IChatConversationLocalItem[] = yield select(conversationMessagesSelector); const message = messages.find((message) => message.localId === payload.assistantMessageId); diff --git a/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserMessage.ts b/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserMessage.ts index 5c5b69ebefe..5dc7248427b 100644 --- a/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserMessage.ts +++ b/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserMessage.ts @@ -4,7 +4,6 @@ import { call, cancel, cancelled, getContext, put, select } from "redux-saga/eff import { type IAnalyticalBackend, - type IChatConversation, type IChatConversationError, type IChatConversationItem, type IChatConversationThreadQuery, @@ -24,6 +23,7 @@ import { import { type AssistantMessage, + type IChatConversationLocal, type IChatConversationLocalItem, type Message, isChatConversationLocalItem, @@ -64,7 +64,7 @@ import { convertMessageToChatConversation, extractError } from "./utils.js"; * @internal */ export function* onUserMessage({ payload }: ReturnType) { - const conversation: IChatConversation | "new" | undefined = yield select(conversationSelector); + const conversation: IChatConversationLocal | "new" | undefined = yield select(conversationSelector); let message = payload; if (conversation && !isChatConversationLocalItem(message)) { @@ -300,7 +300,8 @@ function* conversationUserMessage(message: IChatConversationLocalItem) { const isPreview: boolean | undefined = yield getContext("isPreview"); // Check current conversation - const conversationState: IChatConversation | "new" | undefined = yield select(conversationSelector); + const conversationState: IChatConversationLocal | "new" | undefined = + yield select(conversationSelector); // Check state if (conversationState !== "new" && !conversationState?.id) { @@ -313,12 +314,12 @@ function* conversationUserMessage(message: IChatConversationLocalItem) { // Set evaluation state in store yield put(evaluateMessageAction({ message: initialAssistantMessage })); - let conversation: IChatConversation; + let conversation: IChatConversationLocal; // If we are in the transient new-conversation state, create the conversation first if (conversationState === "new") { const api = backend.workspace(workspace).genAI().getChatConversations({ isPreview }); - const created: IChatConversation = yield call(api.create.bind(api)); - const updated: IChatConversation = yield call(api.update.bind(api), created.id, { + const created: IChatConversationLocal = yield call(api.create.bind(api)); + const updated: IChatConversationLocal = yield call(api.update.bind(api), created.id, { title: generateTitleFromQuestion(message.content.text), }); // Store it as current conversation and clear the transient flag @@ -341,9 +342,11 @@ function* conversationUserMessage(message: IChatConversationLocalItem) { // multiple interaction IDs. It returns the last message that needs to be completed. const result: EvaluateUserConversationMessageResult = yield call( evaluateUserConversationMessage, + conversation, message, initialAssistantMessage, chatThreadQuery, + conversationState === "new", ); lastAssistantMessage = result.lastAssistantMessage; } catch (e) { @@ -393,9 +396,11 @@ type EvaluateUserConversationMessageResult = { }; function* evaluateUserConversationMessage( + conversation: IChatConversationLocal, userMessage: IChatConversationLocalItem, assistantMessage: IChatConversationLocalItem, preparedChatThread: IChatConversationThreadQuery, + isStartMessage: boolean, ) { let reader: | ReadableStreamReader @@ -450,9 +455,11 @@ function* evaluateUserConversationMessage( if (value.role === "user" && currentUserMessage) { yield put( evaluateMessageUpdateAction({ + conversation, userMessageId: currentUserMessage.localId, interactionId: value.id, message: value, + isStartMessage, }), ); //reset diff --git a/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserMessageUpdate.ts b/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserMessageUpdate.ts new file mode 100644 index 00000000000..46e8c8301eb --- /dev/null +++ b/libs/sdk-ui-gen-ai/src/store/sideEffects/onUserMessageUpdate.ts @@ -0,0 +1,70 @@ +// (C) 2026 GoodData Corporation + +import { call, getContext, put, select } from "redux-saga/effects"; + +import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi"; + +import { type IChatConversationLocal } from "../../model.js"; +import { conversationByIdSelector } from "../messages/messagesSelectors.js"; +import { + evaluateConversationTitleAction, + type evaluateMessageUpdateAction, +} from "../messages/messagesSlice.js"; + +/** + * Load thread history and put it to the store. + * @internal + */ +export function* onUserMessageUpdate({ payload }: ReturnType) { + // Retrieve backend from context + const backend: IAnalyticalBackend = yield getContext("backend"); + const workspace: string = yield getContext("workspace"); + + if (!payload.isStartMessage) { + return; + } + + const conversation: IChatConversationLocal = yield select( + conversationByIdSelector, + payload.conversation.id, + ); + + if (!conversation) { + return; + } + + if (conversation.generatingTitle) { + return; + } + + yield put( + evaluateConversationTitleAction({ + conversation: conversation, + generatingTitle: true, + }), + ); + + try { + const conversationsCall = backend.workspace(workspace).genAI().getChatConversations(); + + const updated: IChatConversationLocal = yield call( + conversationsCall.generateTitle.bind(conversationsCall), + payload.conversation.id, + ); + + yield put( + evaluateConversationTitleAction({ + conversation: updated, + generatingTitle: false, + title: updated.title, + }), + ); + } catch { + yield put( + evaluateConversationTitleAction({ + conversation: conversation, + generatingTitle: false, + }), + ); + } +} diff --git a/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualisationRender.ts b/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualisationRender.ts index 0346dbd9090..d3328dc651e 100644 --- a/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualisationRender.ts +++ b/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualisationRender.ts @@ -3,9 +3,9 @@ import { type PayloadAction } from "@reduxjs/toolkit"; import { call, getContext, put, select } from "redux-saga/effects"; -import { type IAnalyticalBackend, type IChatConversation } from "@gooddata/sdk-backend-spi"; +import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi"; -import { type Message, isVisualizationContents } from "../../model.js"; +import { type IChatConversationLocal, type Message, isVisualizationContents } from "../../model.js"; import { conversationSelector, messagesSelector } from "../messages/messagesSelectors.js"; import { saveVisualisationRenderStatusSuccessAction } from "../messages/messagesSlice.js"; import { extractError } from "./utils.js"; @@ -25,7 +25,7 @@ export function* onVisualisationRender({ // Retrieve backend from context const backend: IAnalyticalBackend = yield getContext("backend"); const workspace: string = yield getContext("workspace"); - const conversation: IChatConversation = yield select(conversationSelector); + const conversation: IChatConversationLocal = yield select(conversationSelector); try { if (conversation) { diff --git a/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualizationSave.ts b/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualizationSave.ts index 5952b2d20a5..259b279def9 100644 --- a/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualizationSave.ts +++ b/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualizationSave.ts @@ -3,7 +3,7 @@ import { type PayloadAction } from "@reduxjs/toolkit"; import { call, getContext, put, select } from "redux-saga/effects"; -import { type IAnalyticalBackend, type IChatConversation } from "@gooddata/sdk-backend-spi"; +import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi"; import { type IAttributeOrMeasure, type IBucket, @@ -20,6 +20,7 @@ import { mapVisualizationClusteringToChartConfig } from "../../clustering/cluste import { prepareExecution } from "../../components/messages/contents/useExecution.js"; import { mapVisualizationForecastToChartConfig } from "../../forecast/forecastMapping.js"; import { + type IChatConversationLocal, type IChatConversationLocalItem, type IChatConversationMultipartLocalPart, type Message, @@ -44,7 +45,7 @@ export function* onVisualizationSave({ // Retrieve backend from context const backend: IAnalyticalBackend = yield getContext("backend"); const workspace: string = yield getContext("workspace"); - const conversation: IChatConversation = yield select(conversationSelector); + const conversation: IChatConversationLocal = yield select(conversationSelector); try { if (conversation) { diff --git a/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualizationSuccessSave.ts b/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualizationSuccessSave.ts index 0fdb89ce1f7..33320493096 100644 --- a/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualizationSuccessSave.ts +++ b/libs/sdk-ui-gen-ai/src/store/sideEffects/onVisualizationSuccessSave.ts @@ -3,10 +3,10 @@ import { type PayloadAction } from "@reduxjs/toolkit"; import { call, getContext, select } from "redux-saga/effects"; -import { type IAnalyticalBackend, type IChatConversation } from "@gooddata/sdk-backend-spi"; +import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi"; import { type GenAIChatInteractionUserVisualisation } from "@gooddata/sdk-model"; -import { type Message } from "../../model.js"; +import { type IChatConversationLocal, type Message } from "../../model.js"; import { getVisualizationHref } from "../../utils.js"; import { conversationSelector, messagesSelector } from "../messages/messagesSelectors.js"; @@ -21,7 +21,7 @@ export function* onVisualizationSuccessSave({ // Retrieve backend from context const backend: IAnalyticalBackend = yield getContext("backend"); const workspace: string = yield getContext("workspace"); - const conversation: IChatConversation = yield select(conversationSelector); + const conversation: IChatConversationLocal = yield select(conversationSelector); if (conversation) { if (payload.explore) { diff --git a/libs/sdk-ui-gen-ai/src/tests/utils.test.ts b/libs/sdk-ui-gen-ai/src/tests/utils.test.ts index 704bbf1e721..b01a4c4afd1 100644 --- a/libs/sdk-ui-gen-ai/src/tests/utils.test.ts +++ b/libs/sdk-ui-gen-ai/src/tests/utils.test.ts @@ -9,6 +9,10 @@ describe("generateTitleFromQuestion", () => { expect(generateTitleFromQuestion(" short question ")).toBe("short question"); }); + it("should normalize whitespace and remove invisible characters", () => { + expect(generateTitleFromQuestion(" first\n\t\u200Bsecond third ")).toBe("first second third"); + }); + it("should truncate to 50 characters and append ellipsis when text is longer", () => { const input = `${"a".repeat(50)}extra`; @@ -28,4 +32,10 @@ describe("generateTitleFromQuestion", () => { expect(generateTitleFromQuestion(input)).toBe(`${prefix}{metric/}...`); }); + + it("should sanitize text before truncation and still append ellipsis when truncated", () => { + const input = ` ${"a".repeat(30)}\n\t${"b".repeat(30)} `; + + expect(generateTitleFromQuestion(input)).toBe(`${"a".repeat(30)} ${"b".repeat(19)}...`); + }); }); diff --git a/libs/sdk-ui-gen-ai/src/utils.ts b/libs/sdk-ui-gen-ai/src/utils.ts index 38d54c2aee4..f60fe1a6e75 100644 --- a/libs/sdk-ui-gen-ai/src/utils.ts +++ b/libs/sdk-ui-gen-ai/src/utils.ts @@ -2,10 +2,10 @@ import { type IntlShape } from "react-intl"; -import { type IChatConversation } from "@gooddata/sdk-backend-spi"; import { type IAttributeOrMeasure } from "@gooddata/sdk-model"; import { REFERENCE_REGEX } from "./components/completion/references.js"; +import { type IChatConversationLocal } from "./model.js"; export function getVisualizationHref(wsId: string, visId: string) { return `/analyze/#/${wsId}/${visId}/edit`; @@ -45,7 +45,7 @@ export function getHeadlineComparison(metrics: IAttributeOrMeasure[]) { }; } -export function generateTemporaryTitle(intl: IntlShape, data: IChatConversation): string { +export function generateTemporaryTitle(intl: IntlShape, data: IChatConversationLocal): string { return intl.formatMessage( { id: "gd.chat.conversation.generating-title" }, { @@ -58,30 +58,34 @@ export function generateTemporaryTitle(intl: IntlShape, data: IChatConversation) export function generateTitleFromQuestion(text: string): string { const maxTitleLength = 50; + const sanitizedText = text + .replace(/[\u007F-\u009F\u200B-\u200D\u2060\uFEFF]/g, "") + .replace(/\s+/g, " ") + .trim(); - if (text.length <= maxTitleLength) { - return text.trim(); + if (sanitizedText.length <= maxTitleLength) { + return sanitizedText; } let sliceEnd = maxTitleLength; - const slicedText = text.slice(0, sliceEnd); + const slicedText = sanitizedText.slice(0, sliceEnd); const lastOpeningBrace = slicedText.lastIndexOf("{"); const lastClosingBrace = slicedText.lastIndexOf("}"); if (lastOpeningBrace > lastClosingBrace) { - const referenceStart = text.slice(lastOpeningBrace); + const referenceStart = sanitizedText.slice(lastOpeningBrace); REFERENCE_REGEX.lastIndex = 0; const referenceMatch = REFERENCE_REGEX.exec(referenceStart); if (referenceMatch?.index === 0) { sliceEnd = lastOpeningBrace + referenceMatch[0].length; } else { - const closingBrace = text.indexOf("}", sliceEnd); + const closingBrace = sanitizedText.indexOf("}", sliceEnd); if (closingBrace !== -1) { sliceEnd = closingBrace + 1; } } } - return `${text.slice(0, sliceEnd).trim()}...`; + return `${sanitizedText.slice(0, sliceEnd).trim()}...`; } diff --git a/libs/sdk-ui-gen-ai/styles/scss/conversations.scss b/libs/sdk-ui-gen-ai/styles/scss/conversations.scss index daa0a50b7c5..20db708c4dd 100644 --- a/libs/sdk-ui-gen-ai/styles/scss/conversations.scss +++ b/libs/sdk-ui-gen-ai/styles/scss/conversations.scss @@ -7,8 +7,9 @@ display: flex; align-items: center; align-self: stretch; + width: 100%; - padding: 5px 5px 0 10px; + padding: 5px 5px 5px 10px; color: kit-variables.$gd-color-text; font-size: 14px; font-style: normal; @@ -66,7 +67,6 @@ flex-direction: column; display: flex; - padding-top: 5px; margin-left: -10px; margin-right: -10px; align-items: stretch; diff --git a/libs/sdk-ui-geo/package.json b/libs/sdk-ui-geo/package.json index 1a393da380a..b462a5c60c9 100644 --- a/libs/sdk-ui-geo/package.json +++ b/libs/sdk-ui-geo/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-geo", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData.UI SDK - Geo Charts", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-kit/api/sdk-ui-kit.api.md b/libs/sdk-ui-kit/api/sdk-ui-kit.api.md index b507f0dc7ec..ed667759808 100644 --- a/libs/sdk-ui-kit/api/sdk-ui-kit.api.md +++ b/libs/sdk-ui-kit/api/sdk-ui-kit.api.md @@ -20,6 +20,7 @@ import { CSSProperties } from 'react'; import { CsvDelimiterPreset } from '@gooddata/sdk-model'; import { CsvDelimiterValidationError } from '@gooddata/sdk-model'; import { DebouncedFunc } from 'lodash-es'; +import { DependencyList } from 'react'; import { Dispatch } from 'react'; import { EditorView } from '@codemirror/view'; import { ElementType } from 'react'; @@ -8685,7 +8686,7 @@ export type UseCurrencyFormatDefaultsConfig = { }; // @internal (undocumented) -export function useElementSize(): { +export function useElementSize(deps?: DependencyList): { ref: RefObject; height: number; width: number; diff --git a/libs/sdk-ui-kit/package.json b/libs/sdk-ui-kit/package.json index 21427c77e92..923f8053112 100644 --- a/libs/sdk-ui-kit/package.json +++ b/libs/sdk-ui-kit/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-kit", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK - UI Building Components", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-kit/src/@ui/UiDrawer/UiDrawer.tsx b/libs/sdk-ui-kit/src/@ui/UiDrawer/UiDrawer.tsx index 59167bfe2fa..82bea9471f0 100644 --- a/libs/sdk-ui-kit/src/@ui/UiDrawer/UiDrawer.tsx +++ b/libs/sdk-ui-kit/src/@ui/UiDrawer/UiDrawer.tsx @@ -7,6 +7,7 @@ import { Portal } from "react-portal"; import { bem } from "../@utils/bem.js"; import { makeDialogKeyboardNavigation } from "../@utils/keyboardNavigation.js"; import { OverlayContent, OverlayProvider } from "../@utils/OverlayStack.js"; +import { useElementSize } from "../hooks/useElementSize.js"; import { UiAutofocus } from "../UiFocusManager/UiAutofocus.js"; import { UiFocusTrap } from "../UiFocusManager/UiFocusTrap.js"; import { UiReturnFocusOnUnmount } from "../UiFocusManager/UiReturnFocusOnUnmount.js"; @@ -41,6 +42,7 @@ export function UiDrawer({ accessibilityConfig, }: IUiDrawerProps) { const ref = useRef(null); + const { isOpen, isFullyOpen, view, backdropStyle, contentStyle } = useToggleDrawer( open ?? false, transition ?? {}, @@ -61,6 +63,8 @@ export function UiDrawer({ [onEscapeKey], ); + const { ref: headerRef, height } = useElementSize([isOpen, ref.current]); + if (!isOpen) { return null; } @@ -83,7 +87,11 @@ export function UiDrawer({ }>
-
+
{header} {showCloseButton ? (
diff --git a/libs/sdk-ui-kit/src/@ui/hooks/useElementSize.tsx b/libs/sdk-ui-kit/src/@ui/hooks/useElementSize.tsx index 38a12e7fdbf..0a4258e6222 100644 --- a/libs/sdk-ui-kit/src/@ui/hooks/useElementSize.tsx +++ b/libs/sdk-ui-kit/src/@ui/hooks/useElementSize.tsx @@ -1,10 +1,11 @@ -// (C) 2024-2025 GoodData Corporation -import { useLayoutEffect, useRef, useState } from "react"; +// (C) 2024-2026 GoodData Corporation + +import { type DependencyList, useLayoutEffect, useRef, useState } from "react"; /** * @internal */ -export function useElementSize() { +export function useElementSize(deps?: DependencyList) { const ref = useRef(null); const [height, setHeight] = useState(0); const [width, setWidth] = useState(0); @@ -31,7 +32,8 @@ export function useElementSize() { setWidth(0); } }; - }, []); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, deps ?? []); return { ref, diff --git a/libs/sdk-ui-loaders/package.json b/libs/sdk-ui-loaders/package.json index 05d5ae61af1..41d9dc229eb 100644 --- a/libs/sdk-ui-loaders/package.json +++ b/libs/sdk-ui-loaders/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-loaders", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK Runtime Component Loaders", "license": "LicenseRef-LICENSE", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-pivot/package.json b/libs/sdk-ui-pivot/package.json index fe05b7ee8ed..abf8af70071 100644 --- a/libs/sdk-ui-pivot/package.json +++ b/libs/sdk-ui-pivot/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-pivot", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData.UI SDK - Pivot Table", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-pluggable-application/package.json b/libs/sdk-ui-pluggable-application/package.json index cf569206860..0b3d738b5a6 100644 --- a/libs/sdk-ui-pluggable-application/package.json +++ b/libs/sdk-ui-pluggable-application/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-pluggable-application", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK React helpers for pluggable applications", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-semantic-search/package.json b/libs/sdk-ui-semantic-search/package.json index c89761f4cee..abcafa56275 100644 --- a/libs/sdk-ui-semantic-search/package.json +++ b/libs/sdk-ui-semantic-search/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-semantic-search", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK TypeScript & React skeleton", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-theme-provider/package.json b/libs/sdk-ui-theme-provider/package.json index 09c5a261b86..de36e9298b3 100644 --- a/libs/sdk-ui-theme-provider/package.json +++ b/libs/sdk-ui-theme-provider/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-theme-provider", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK - Theme provider", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui-vis-commons/package.json b/libs/sdk-ui-vis-commons/package.json index 2c677ef7e49..e7504ce1390 100644 --- a/libs/sdk-ui-vis-commons/package.json +++ b/libs/sdk-ui-vis-commons/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui-vis-commons", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData.UI SDK - common functionality for different types of visualizations", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/sdk-ui/package.json b/libs/sdk-ui/package.json index 7790991f3fe..628056e993f 100644 --- a/libs/sdk-ui/package.json +++ b/libs/sdk-ui/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/sdk-ui", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData.UI SDK - Core", "license": "MIT", "author": "GoodData Corporation", diff --git a/libs/util/package.json b/libs/util/package.json index f31d988dd12..234cb1cad1f 100644 --- a/libs/util/package.json +++ b/libs/util/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/util", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData Utility Functions", "license": "MIT", "author": "GoodData", diff --git a/tools/app-toolkit/package.json b/tools/app-toolkit/package.json index 57ec0731036..cc3d932fa8a 100644 --- a/tools/app-toolkit/package.json +++ b/tools/app-toolkit/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/app-toolkit", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "CLI with useful tools for creating and maintaining GoodData web applications.", "license": "LicenseRef-LICENSE", "author": "GoodData", diff --git a/tools/catalog-export/package.json b/tools/catalog-export/package.json index ddc7a73802a..9d9a56758f7 100644 --- a/tools/catalog-export/package.json +++ b/tools/catalog-export/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/catalog-export", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK Catalog Export tooling", "license": "MIT", "author": "GoodData", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 86bde8676bf..762af917965 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/eslint-config", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "license": "MIT", "author": "GoodData", "repository": { diff --git a/tools/i18n-toolkit/package.json b/tools/i18n-toolkit/package.json index 96e2c4eb8b7..6dcf06726ed 100644 --- a/tools/i18n-toolkit/package.json +++ b/tools/i18n-toolkit/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/i18n-toolkit", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "Localization validator to validate localization complexity and intl and html format.", "license": "MIT", "author": "GoodData", diff --git a/tools/lint-config/package.json b/tools/lint-config/package.json index a8b521229b8..89385678fe9 100644 --- a/tools/lint-config/package.json +++ b/tools/lint-config/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/lint-config", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "Linter-agnostic shared rules for @gooddata/eslint-config and @gooddata/oxlint-config", "license": "MIT", "author": "GoodData", diff --git a/tools/mock-handling/package.json b/tools/mock-handling/package.json index e7c05b19449..4a96184bfd6 100644 --- a/tools/mock-handling/package.json +++ b/tools/mock-handling/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/mock-handling", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK Mock data capture and management tool", "license": "MIT", "author": "GoodData", diff --git a/tools/oxlint-config/package.json b/tools/oxlint-config/package.json index d312550bc65..07010d97297 100644 --- a/tools/oxlint-config/package.json +++ b/tools/oxlint-config/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/oxlint-config", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "license": "MIT", "author": "GoodData", "repository": { diff --git a/tools/plugin-toolkit/package.json b/tools/plugin-toolkit/package.json index 677a52cf501..5c83fa5ed05 100644 --- a/tools/plugin-toolkit/package.json +++ b/tools/plugin-toolkit/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/plugin-toolkit", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData Set of Tools for working with Plugins", "license": "LicenseRef-LICENSE", "author": "GoodData", diff --git a/tools/reference-workspace/package.json b/tools/reference-workspace/package.json index 9d60f84148e..381a480679a 100644 --- a/tools/reference-workspace/package.json +++ b/tools/reference-workspace/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/reference-workspace", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData SDK - Reference Workspace for tests", "license": "MIT", "author": "GoodData", diff --git a/tools/stylelint-config/package.json b/tools/stylelint-config/package.json index 8144b14bf32..1f2abb5e8d8 100644 --- a/tools/stylelint-config/package.json +++ b/tools/stylelint-config/package.json @@ -1,6 +1,6 @@ { "name": "@gooddata/stylelint-config", - "version": "11.35.0-alpha.1", + "version": "11.35.0-alpha.2", "description": "GoodData CSS Style Guide", "keywords": [ "config", From dfc80cbd7b61a061db278172109c73418b571116 Mon Sep 17 00:00:00 2001 From: git-action Date: Thu, 7 May 2026 11:16:16 +0000 Subject: [PATCH 2/2] chore: update dependencies after rush update risk: low --- .../rush/browser-approved-packages.json | 2652 +++++++++-------- common/config/rush/pnpm-lock.yaml | 469 +-- 2 files changed, 1588 insertions(+), 1533 deletions(-) diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index 14c4dd5da82..1b5483ed840 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -1,1218 +1,1434 @@ -// DO NOT ADD COMMENTS IN THIS FILE. They will be lost when the Rush tool resaves it. -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/approved-packages.schema.json", - "packages": [ - { - "name": "@aaronhayes/react-use-hubspot-form", - "allowedCategories": ["production"] - }, - { - "name": "@babel/cli", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@babel/core", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@babel/plugin-proposal-export-default-from", - "allowedCategories": ["production"] - }, - { - "name": "@babel/plugin-transform-async-to-generator", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@babel/plugin-transform-class-properties", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@babel/plugin-transform-object-rest-spread", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@babel/plugin-transform-typescript", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@babel/preset-env", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@babel/preset-react", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@babel/preset-typescript", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@babel/runtime", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@braintree/sanitize-url", - "allowedCategories": ["production"] - }, - { - "name": "@codemirror/autocomplete", - "allowedCategories": ["production"] - }, - { - "name": "@codemirror/commands", - "allowedCategories": ["production"] - }, - { - "name": "@codemirror/lang-yaml", - "allowedCategories": ["production"] - }, - { - "name": "@codemirror/language", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@codemirror/lint", - "allowedCategories": ["production"] - }, - { - "name": "@codemirror/state", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@codemirror/view", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@componentdriven/csf", - "allowedCategories": ["production"] - }, - { - "name": "@floating-ui/dom", - "allowedCategories": ["production"] - }, - { - "name": "@floating-ui/react", - "allowedCategories": ["production"] - }, - { - "name": "@floating-ui/react-dom", - "allowedCategories": ["production"] - }, - { - "name": "@formatjs/cli-lib", - "allowedCategories": ["tools"] - }, - { - "name": "@formatjs/icu-messageformat-parser", - "allowedCategories": ["tools"] - }, - { - "name": "@gooddata/api-client-tiger", - "allowedCategories": ["production", "tools"] - }, - { - "name": "@gooddata/catalog-export", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/eslint-config", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/fixtures", - "allowedCategories": ["production", "tools"] - }, - { - "name": "@gooddata/i18n-toolkit", - "allowedCategories": ["production"] - }, - { - "name": "@gooddata/mock-handling", - "allowedCategories": ["production", "tools"] - }, - { - "name": "@gooddata/number-formatter", - "allowedCategories": ["production"] - }, - { - "name": "@gooddata/plugin-toolkit", - "allowedCategories": ["tools"] - }, - { - "name": "@gooddata/reference-workspace", - "allowedCategories": ["production"] - }, - { - "name": "@gooddata/sdk-backend-base", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-backend-mockingbird", - "allowedCategories": ["production"] - }, - { - "name": "@gooddata/sdk-backend-spi", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-backend-tiger", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-embedding", - "allowedCategories": ["production"] - }, - { - "name": "@gooddata/sdk-model", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-ui", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-ui-dashboard", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-ui-ext", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-ui-filters", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-ui-gen-ai", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-ui-geo", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-ui-charts", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-ui-kit", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-ui-loaders", - "allowedCategories": ["examples", "tools"] - }, - { - "name": "@gooddata/sdk-ui-pivot", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@gooddata/sdk-ui-semantic-search", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@gooddata/sdk-ui-theme-provider", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@gooddata/sdk-ui-vis-commons", - "allowedCategories": ["production"] - }, - { - "name": "@gooddata/sdk-ui-web-components", - "allowedCategories": ["production"] - }, - { - "name": "@gooddata/stylelint-config", - "allowedCategories": ["production"] - }, - { - "name": "@gooddata/util", - "allowedCategories": ["production"] - }, - { - "name": "@lezer/highlight", - "allowedCategories": ["production"] - }, - { - "name": "@microsoft/api-documenter", - "allowedCategories": ["production", "tools"] - }, - { - "name": "@microsoft/api-extractor", - "allowedCategories": ["production", "tools"] - }, - { - "name": "@openapitools/openapi-generator-cli", - "allowedCategories": ["production"] - }, - { - "name": "@react-aria/interactions", - "allowedCategories": ["production"] - }, - { - "name": "@reduxjs/toolkit", - "allowedCategories": ["production"] - }, - { - "name": "@storybook/builder-vite", - "allowedCategories": ["production"] - }, - { - "name": "@storybook/builder-webpack5", - "allowedCategories": ["production"] - }, - { - "name": "@storybook/cli", - "allowedCategories": ["production"] - }, - { - "name": "@storybook/manager-webpack5", - "allowedCategories": ["production"] - }, - { - "name": "@storybook/preset-scss", - "allowedCategories": ["production"] - }, - { - "name": "@storybook/react", - "allowedCategories": ["production"] - }, - { - "name": "@storybook/react-vite", - "allowedCategories": ["production"] - }, - { - "name": "@storybook/react-webpack5", - "allowedCategories": ["production"] - }, - { - "name": "@tanstack/react-virtual", - "allowedCategories": ["production"] - }, - { - "name": "@testing-library/dom", - "allowedCategories": ["production", "tools"] - }, - { - "name": "@testing-library/react", - "allowedCategories": ["production", "tools"] - }, - { - "name": "@testing-library/user-event", - "allowedCategories": ["production"] - }, - { - "name": "@types/babel__core", - "allowedCategories": ["tools"] - }, - { - "name": "@types/blessed", - "allowedCategories": ["tools"] - }, - { - "name": "@types/columnify", - "allowedCategories": ["tools"] - }, - { - "name": "@types/cross-spawn", - "allowedCategories": ["tools"] - }, - { - "name": "@types/debounce-promise", - "allowedCategories": ["production"] - }, - { - "name": "@types/fast-levenshtein", - "allowedCategories": ["production"] - }, - { - "name": "@types/fs-extra", - "allowedCategories": ["tools"] - }, - { - "name": "@types/history", - "allowedCategories": ["examples"] - }, - { - "name": "@types/hoist-non-react-statics", - "allowedCategories": ["production"] - }, - { - "name": "@types/inquirer", - "allowedCategories": ["tools"] - }, - { - "name": "@types/isomorphic-fetch", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@types/js-yaml", - "allowedCategories": ["production"] - }, - { - "name": "@types/json5", - "allowedCategories": ["tools"] - }, - { - "name": "@types/kefir", - "allowedCategories": ["production"] - }, - { - "name": "@types/mapbox-gl", - "allowedCategories": ["production"] - }, - { - "name": "@types/mdast", - "allowedCategories": ["production"] - }, - { - "name": "@types/node", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@types/node-fetch", - "allowedCategories": ["production"] - }, - { - "name": "@types/pdf-parse", - "allowedCategories": ["production"] - }, - { - "name": "@types/qs", - "allowedCategories": ["production"] - }, - { - "name": "@types/raf", - "allowedCategories": ["production", "tools"] - }, - { - "name": "@types/react", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@types/react-datepicker", - "allowedCategories": ["examples"] - }, - { - "name": "@types/react-dom", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@types/react-google-recaptcha", - "allowedCategories": ["examples"] - }, - { - "name": "@types/react-helmet", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@types/react-lines-ellipsis", - "allowedCategories": ["production"] - }, - { - "name": "@types/react-measure", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@types/react-native-listener", - "allowedCategories": ["production"] - }, - { - "name": "@types/react-portal", - "allowedCategories": ["production"] - }, - { - "name": "@types/react-redux", - "allowedCategories": ["production"] - }, - { - "name": "@types/react-router-dom", - "allowedCategories": ["examples", "production"] - }, - { - "name": "@types/react-syntax-highlighter", - "allowedCategories": ["examples"] - }, - { - "name": "@types/react-textarea-autosize", - "allowedCategories": ["production"] - }, - { - "name": "@types/react-transition-group", - "allowedCategories": ["production"] - }, - { - "name": "@types/rimraf", - "allowedCategories": ["tools"] - }, - { - "name": "@types/semver", - "allowedCategories": ["production"] - }, - { - "name": "@types/spark-md5", - "allowedCategories": ["production"] - }, - { - "name": "@types/stringify-object", - "allowedCategories": ["production"] - }, - { - "name": "@types/tar", - "allowedCategories": ["tools"] - }, - { - "name": "@types/tinycolor2", - "allowedCategories": ["production"] - }, - { - "name": "@types/tough-cookie", - "allowedCategories": ["production"] - }, - { - "name": "@types/unist", - "allowedCategories": ["production"] - }, - { - "name": "@types/uuid", - "allowedCategories": ["production"] - }, - { - "name": "@types/validate-npm-package-name", - "allowedCategories": ["tools"] - }, - { - "name": "@types/watchpack", - "allowedCategories": ["tools"] - }, - { - "name": "@types/webpack-env", - "allowedCategories": ["examples"] - }, - { - "name": "@typescript-eslint/eslint-plugin", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@typescript-eslint/parser", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "@vitejs/plugin-react", - "allowedCategories": ["examples"] - }, - { - "name": "@vitejs/plugin-react-swc", - "allowedCategories": ["examples"] - }, - { - "name": "@welldone-software/why-did-you-render", - "allowedCategories": ["examples"] - }, - { - "name": "ag-grid-community", - "allowedCategories": ["production"] - }, - { - "name": "ag-grid-enterprise", - "allowedCategories": ["production"] - }, - { - "name": "ag-grid-react", - "allowedCategories": ["production"] - }, - { - "name": "async", - "allowedCategories": ["production"] - }, - { - "name": "axios", - "allowedCategories": ["production", "tools"] - }, - { - "name": "axios-cache-interceptor", - "allowedCategories": ["production"] - }, - { - "name": "babel-loader", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "babel-plugin-lodash", - "allowedCategories": ["examples", "production"] - }, - { - "name": "babel-plugin-require-context-hook", - "allowedCategories": ["production"] - }, - { - "name": "blessed", - "allowedCategories": ["tools"] - }, - { - "name": "blob-polyfill", - "allowedCategories": ["production"] - }, - { - "name": "case-sensitive-paths-webpack-plugin", - "allowedCategories": ["examples", "tools"] - }, - { - "name": "circular-dependency-plugin", - "allowedCategories": ["examples", "production"] - }, - { - "name": "classnames", - "allowedCategories": ["examples", "production"] - }, - { - "name": "clean-webpack-plugin", - "allowedCategories": ["examples", "production"] - }, - { - "name": "codemirror", - "allowedCategories": ["production"] - }, - { - "name": "columnify", - "allowedCategories": ["tools"] - }, - { - "name": "commander", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "compression-webpack-plugin", - "allowedCategories": ["examples", "production"] - }, - { - "name": "concurrently", - "allowedCategories": ["production", "tools"] - }, - { - "name": "copy-to-clipboard", - "allowedCategories": ["production"] - }, - { - "name": "copy-webpack-plugin", - "allowedCategories": ["production"] - }, - { - "name": "core-js", - "allowedCategories": ["examples", "production"] - }, - { - "name": "cron-parser", - "allowedCategories": ["production"] - }, - { - "name": "cross-spawn", - "allowedCategories": ["tools"] - }, - { - "name": "css-loader", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "date-fns", - "allowedCategories": ["production"] - }, - { - "name": "date-fns-tz", - "allowedCategories": ["production"] - }, - { - "name": "debounce-promise", - "allowedCategories": ["production"] - }, - { - "name": "default-import", - "allowedCategories": ["examples", "production"] - }, - { - "name": "dependency-cruiser", - "allowedCategories": ["production", "tools"] - }, - { - "name": "dotenv", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "dotenv-webpack", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "downshift", - "allowedCategories": ["production"] - }, - { - "name": "@gooddata/emailjs-mime-codec-new", - "allowedCategories": ["production"] - }, - { - "name": "esbuild-loader", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eslint", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eslint-import-resolver-typescript", - "allowedCategories": ["examples", "production"] - }, - { - "name": "eslint-plugin-header", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eslint-plugin-import", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eslint-plugin-import-esm", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eslint-plugin-no-only-tests", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eslint-plugin-react", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eslint-plugin-react-hooks", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eslint-plugin-regexp", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eslint-plugin-sonarjs", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eslint-plugin-tsdoc", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "eventsource-parser", - "allowedCategories": ["production"] - }, - { - "name": "exponential-backoff", - "allowedCategories": ["production"] - }, - { - "name": "fast-glob", - "allowedCategories": ["production", "tools"] - }, - { - "name": "fast-levenshtein", - "allowedCategories": ["production"] - }, - { - "name": "fetch-cookie", - "allowedCategories": ["production"] - }, - { - "name": "fetch-mock", - "allowedCategories": ["production"] - }, - { - "name": "find-up", - "allowedCategories": ["tools"] - }, - { - "name": "fix-esm-import-path", - "allowedCategories": ["production"] - }, - { - "name": "fixed-data-table-2", - "allowedCategories": ["production"] - }, - { - "name": "fork-ts-checker-webpack-plugin", - "allowedCategories": ["examples", "production"] - }, - { - "name": "fs-extra", - "allowedCategories": ["tools"] - }, - { - "name": "full-icu", - "allowedCategories": ["production"] - }, - { - "name": "glob", - "allowedCategories": ["production"] - }, - { - "name": "happy-dom", - "allowedCategories": ["production", "tools"] - }, - { - "name": "highcharts", - "allowedCategories": ["examples", "production"] - }, - { - "name": "highcharts-react-official", - "allowedCategories": ["examples", "production"] - }, - { - "name": "history", - "allowedCategories": ["examples"] - }, - { - "name": "hoist-non-react-statics", - "allowedCategories": ["production"] - }, - { - "name": "html-validate", - "allowedCategories": ["tools"] - }, - { - "name": "html-webpack-plugin", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "http-status-codes", - "allowedCategories": ["production"] - }, - { - "name": "chalk", - "allowedCategories": ["production", "tools"] - }, - { - "name": "chokidar", - "allowedCategories": ["tools"] - }, - { - "name": "immer", - "allowedCategories": ["production"] - }, - { - "name": "inquirer", - "allowedCategories": ["tools"] - }, - { - "name": "isomorphic-fetch", - "allowedCategories": ["examples", "production"] - }, - { - "name": "js-object-pretty-print", - "allowedCategories": ["production"] - }, - { - "name": "js-yaml", - "allowedCategories": ["production"] - }, - { - "name": "jsdom", - "allowedCategories": ["production"] - }, - { - "name": "json-loader", - "allowedCategories": ["production"] - }, - { - "name": "json-stable-stringify", - "allowedCategories": ["production", "tools"] - }, - { - "name": "json5", - "allowedCategories": ["tools"] - }, - { - "name": "jsonschema", - "allowedCategories": ["tools"] - }, - { - "name": "kefir", - "allowedCategories": ["production"] - }, - { - "name": "lru-cache", - "allowedCategories": ["production"] - }, - { - "name": "lz-string", - "allowedCategories": ["production"] - }, - { - "name": "mapbox-gl", - "allowedCategories": ["production"] - }, - { - "name": "mdast", - "allowedCategories": ["production"] - }, - { - "name": "mini-css-extract-plugin", - "allowedCategories": ["production"] - }, - { - "name": "mkdirp", - "allowedCategories": ["production", "tools"] - }, - { - "name": "mocha", - "allowedCategories": ["production"] - }, - { - "name": "mocha-junit-reporter", - "allowedCategories": ["production"] - }, - { - "name": "moment", - "allowedCategories": ["examples", "production"] - }, - { - "name": "node-fetch", - "allowedCategories": ["production"] - }, - { - "name": "node-xlsx", - "allowedCategories": ["production"] - }, - { - "name": "npm-run-all", - "allowedCategories": ["examples", "production"] - }, - { - "name": "open", - "allowedCategories": ["tools"] - }, - { - "name": "ora", - "allowedCategories": ["tools"] - }, - { - "name": "p-map", - "allowedCategories": ["tools"] - }, - { - "name": "pdf-parse", - "allowedCategories": ["production"] - }, - { - "name": "polished", - "allowedCategories": ["production"] - }, - { - "name": "postcss", - "allowedCategories": ["production"] - }, - { - "name": "postcss-value-parser", - "allowedCategories": ["production"] - }, - { - "name": "process", - "allowedCategories": ["examples", "tools"] - }, - { - "name": "qs", - "allowedCategories": ["production"] - }, - { - "name": "raf", - "allowedCategories": ["production", "tools"] - }, - { - "name": "react", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "react-content-loader", - "allowedCategories": ["production"] - }, - { - "name": "react-datepicker", - "allowedCategories": ["examples"] - }, - { - "name": "react-day-picker", - "allowedCategories": ["production"] - }, - { - "name": "react-dnd", - "allowedCategories": ["production"] - }, - { - "name": "react-dnd-html5-backend", - "allowedCategories": ["production"] - }, - { - "name": "react-dom", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "react-fast-compare", - "allowedCategories": ["production"] - }, - { - "name": "react-ga", - "allowedCategories": ["examples"] - }, - { - "name": "react-google-recaptcha", - "allowedCategories": ["examples"] - }, - { - "name": "react-grid-system", - "allowedCategories": ["production"] - }, - { - "name": "react-helmet", - "allowedCategories": ["examples", "production"] - }, - { - "name": "react-intl", - "allowedCategories": ["production", "tools"] - }, - { - "name": "react-lines-ellipsis", - "allowedCategories": ["production"] - }, - { - "name": "react-loading-skeleton", - "allowedCategories": ["production"] - }, - { - "name": "react-markdown", - "allowedCategories": ["production"] - }, - { - "name": "react-measure", - "allowedCategories": ["examples", "production"] - }, - { - "name": "react-native-listener", - "allowedCategories": ["production"] - }, - { - "name": "react-portal", - "allowedCategories": ["production"] - }, - { - "name": "react-redux", - "allowedCategories": ["production"] - }, - { - "name": "react-responsive", - "allowedCategories": ["production"] - }, - { - "name": "react-router-dom", - "allowedCategories": ["examples", "production"] - }, - { - "name": "react-select", - "allowedCategories": ["examples", "production"] - }, - { - "name": "react-select-async-paginate", - "allowedCategories": ["production"] - }, - { - "name": "react-syntax-highlighter", - "allowedCategories": ["examples"] - }, - { - "name": "react-textarea-autosize", - "allowedCategories": ["production"] - }, - { - "name": "react-transition-group", - "allowedCategories": ["production"] - }, - { - "name": "react-window", - "allowedCategories": ["production"] - }, - { - "name": "redux-batched-actions", - "allowedCategories": ["production"] - }, - { - "name": "redux-saga", - "allowedCategories": ["production"] - }, - { - "name": "recharts", - "allowedCategories": ["examples"] - }, - { - "name": "remark", - "allowedCategories": ["production"] - }, - { - "name": "remark-emoji", - "allowedCategories": ["production"] - }, - { - "name": "require-from-string", - "allowedCategories": ["production"] - }, - { - "name": "reselect", - "allowedCategories": ["production"] - }, - { - "name": "sass", - "allowedCategories": ["examples", "production"] - }, - { - "name": "sass-loader", - "allowedCategories": ["examples", "production"] - }, - { - "name": "semver", - "allowedCategories": ["production"] - }, - { - "name": "source-map-loader", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "spark-md5", - "allowedCategories": ["production"] - }, - { - "name": "speed-measure-webpack-plugin", - "allowedCategories": ["examples"] - }, - { - "name": "storybook", - "allowedCategories": ["production"] - }, - { - "name": "stringify-object", - "allowedCategories": ["production"] - }, - { - "name": "strip-ansi", - "allowedCategories": ["tools"] - }, - { - "name": "style-loader", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "styled-jsx", - "allowedCategories": ["examples", "production"] - }, - { - "name": "stylelint", - "allowedCategories": ["production"] - }, - { - "name": "svgo", - "allowedCategories": ["production"] - }, - { - "name": "tar", - "allowedCategories": ["tools"] - }, - { - "name": "tinycolor2", - "allowedCategories": ["production"] - }, - { - "name": "ts-invariant", - "allowedCategories": ["examples", "production"] - }, - { - "name": "ts-loader", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "ts-morph", - "allowedCategories": ["tools"] - }, - { - "name": "tsd", - "allowedCategories": ["production"] - }, - { - "name": "tslib", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "typescript", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "unified", - "allowedCategories": ["production"] - }, - { - "name": "util", - "allowedCategories": ["examples", "tools"] - }, - { - "name": "uuid", - "allowedCategories": ["production"] - }, - { - "name": "validate-npm-package-name", - "allowedCategories": ["examples", "tools"] - }, - { - "name": "vite", - "allowedCategories": ["examples", "production"] - }, - { - "name": "vite-plugin-html", - "allowedCategories": ["examples"] - }, - { - "name": "vite-plugin-mkcert", - "allowedCategories": ["examples"] - }, - { - "name": "vite-plugin-static-copy", - "allowedCategories": ["production"] - }, - { - "name": "vitest", - "allowedCategories": ["production", "tools"] - }, - { - "name": "vitest-dom", - "allowedCategories": ["production"] - }, - { - "name": "wait-on", - "allowedCategories": ["production"] - }, - { - "name": "watchpack", - "allowedCategories": ["tools"] - }, - { - "name": "webpack", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "webpack-bundle-analyzer", - "allowedCategories": ["production", "tools"] - }, - { - "name": "webpack-cli", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "webpack-dev-server", - "allowedCategories": ["examples", "production", "tools"] - }, - { - "name": "xml2js", - "allowedCategories": ["production"] - } - ] -} +// DO NOT ADD COMMENTS IN THIS FILE. They will be lost when the Rush tool resaves it. +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/approved-packages.schema.json", + "packages": [ + { + "name": "@aaronhayes/react-use-hubspot-form", + "allowedCategories": [ "production" ] + }, + { + "name": "@babel/cli", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@babel/core", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@babel/plugin-proposal-export-default-from", + "allowedCategories": [ "production" ] + }, + { + "name": "@babel/plugin-transform-async-to-generator", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@babel/plugin-transform-class-properties", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@babel/plugin-transform-object-rest-spread", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@babel/plugin-transform-typescript", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@babel/preset-env", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@babel/preset-react", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@babel/preset-typescript", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@babel/runtime", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@braintree/sanitize-url", + "allowedCategories": [ "production" ] + }, + { + "name": "@codemirror/autocomplete", + "allowedCategories": [ "production" ] + }, + { + "name": "@codemirror/commands", + "allowedCategories": [ "production" ] + }, + { + "name": "@codemirror/lang-yaml", + "allowedCategories": [ "production" ] + }, + { + "name": "@codemirror/language", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@codemirror/lint", + "allowedCategories": [ "production" ] + }, + { + "name": "@codemirror/state", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@codemirror/view", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@componentdriven/csf", + "allowedCategories": [ "production" ] + }, + { + "name": "@eslint/js", + "allowedCategories": [ "tools" ] + }, + { + "name": "@evil-internetmann/react-dnd", + "allowedCategories": [ "production" ] + }, + { + "name": "@floating-ui/dom", + "allowedCategories": [ "production" ] + }, + { + "name": "@floating-ui/react", + "allowedCategories": [ "production" ] + }, + { + "name": "@floating-ui/react-dom", + "allowedCategories": [ "production" ] + }, + { + "name": "@formatjs/cli-lib", + "allowedCategories": [ "tools" ] + }, + { + "name": "@formatjs/icu-messageformat-parser", + "allowedCategories": [ "tools" ] + }, + { + "name": "@gooddata/api-client-tiger", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "@gooddata/catalog-export", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/emailjs-mime-codec-new", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/eslint-config", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/fixtures", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "@gooddata/i18n-toolkit", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/lint-config", + "allowedCategories": [ "tools" ] + }, + { + "name": "@gooddata/mock-handling", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "@gooddata/number-formatter", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/oxlint-config", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/plugin-toolkit", + "allowedCategories": [ "tools" ] + }, + { + "name": "@gooddata/reference-workspace", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-backend-base", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-backend-mockingbird", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-backend-spi", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-backend-tiger", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-code-convertors", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-code-schemas", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-e2e-utils", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-embedding", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-model", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-pluggable-application-model", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-ui", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-ui-catalog", + "allowedCategories": [ "examples" ] + }, + { + "name": "@gooddata/sdk-ui-charts", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-ui-dashboard", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-ui-ext", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-ui-filters", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-ui-gen-ai", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-ui-geo", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-ui-kit", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-ui-loaders", + "allowedCategories": [ "examples", "tools" ] + }, + { + "name": "@gooddata/sdk-ui-pivot", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@gooddata/sdk-ui-semantic-search", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@gooddata/sdk-ui-tests-app", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-ui-tests-reference-workspace", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-ui-tests-scenarios", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-ui-theme-provider", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@gooddata/sdk-ui-vis-commons", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/sdk-ui-web-components", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/stylelint-config", + "allowedCategories": [ "production" ] + }, + { + "name": "@gooddata/util", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "@joint/core", + "allowedCategories": [ "production" ] + }, + { + "name": "@joint/layout-directed-graph", + "allowedCategories": [ "production" ] + }, + { + "name": "@lezer/highlight", + "allowedCategories": [ "production" ] + }, + { + "name": "@microsoft/api-documenter", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "@microsoft/api-extractor", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "@openapitools/openapi-generator-cli", + "allowedCategories": [ "production" ] + }, + { + "name": "@playwright/test", + "allowedCategories": [ "production" ] + }, + { + "name": "@react-aria/interactions", + "allowedCategories": [ "production" ] + }, + { + "name": "@reduxjs/toolkit", + "allowedCategories": [ "production" ] + }, + { + "name": "@storybook/addon-a11y", + "allowedCategories": [ "production" ] + }, + { + "name": "@storybook/builder-vite", + "allowedCategories": [ "production" ] + }, + { + "name": "@storybook/builder-webpack5", + "allowedCategories": [ "production" ] + }, + { + "name": "@storybook/cli", + "allowedCategories": [ "production" ] + }, + { + "name": "@storybook/manager-webpack5", + "allowedCategories": [ "production" ] + }, + { + "name": "@storybook/preset-scss", + "allowedCategories": [ "production" ] + }, + { + "name": "@storybook/react", + "allowedCategories": [ "production" ] + }, + { + "name": "@storybook/react-vite", + "allowedCategories": [ "production" ] + }, + { + "name": "@storybook/react-webpack5", + "allowedCategories": [ "production" ] + }, + { + "name": "@tanstack/react-virtual", + "allowedCategories": [ "production" ] + }, + { + "name": "@testing-library/dom", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "@testing-library/react", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "@testing-library/user-event", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/babel__core", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/blessed", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/columnify", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/cross-spawn", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/debounce-promise", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/fast-levenshtein", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/fs-extra", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/geojson", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/history", + "allowedCategories": [ "examples" ] + }, + { + "name": "@types/hoist-non-react-statics", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/inquirer", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/isomorphic-fetch", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@types/js-yaml", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/json5", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/kefir", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/lodash-es", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@types/mapbox-gl", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/maplibre-gl", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/mdast", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/node", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@types/node-fetch", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/pdf-parse", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/qs", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/raf", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "@types/react", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@types/react-datepicker", + "allowedCategories": [ "examples" ] + }, + { + "name": "@types/react-dom", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@types/react-google-recaptcha", + "allowedCategories": [ "examples" ] + }, + { + "name": "@types/react-helmet", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@types/react-lines-ellipsis", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/react-measure", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@types/react-native-listener", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/react-portal", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/react-redux", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/react-router-dom", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@types/react-syntax-highlighter", + "allowedCategories": [ "examples" ] + }, + { + "name": "@types/react-textarea-autosize", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/react-transition-group", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/rimraf", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/semver", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/spark-md5", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/stringify-object", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/tar", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/tinycolor2", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/tough-cookie", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/unist", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/uuid", + "allowedCategories": [ "production" ] + }, + { + "name": "@types/validate-npm-package-name", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/watchpack", + "allowedCategories": [ "tools" ] + }, + { + "name": "@types/webpack-env", + "allowedCategories": [ "examples" ] + }, + { + "name": "@typescript-eslint/eslint-plugin", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@typescript-eslint/parser", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@typescript/native-preview", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "@vitejs/plugin-react", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "@vitejs/plugin-react-swc", + "allowedCategories": [ "examples" ] + }, + { + "name": "@vitest/eslint-plugin", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "@welldone-software/why-did-you-render", + "allowedCategories": [ "examples" ] + }, + { + "name": "ag-grid-community", + "allowedCategories": [ "production" ] + }, + { + "name": "ag-grid-enterprise", + "allowedCategories": [ "production" ] + }, + { + "name": "ag-grid-react", + "allowedCategories": [ "production" ] + }, + { + "name": "async", + "allowedCategories": [ "production" ] + }, + { + "name": "axios", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "axios-cache-interceptor", + "allowedCategories": [ "production" ] + }, + { + "name": "babel-loader", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "babel-plugin-lodash", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "babel-plugin-require-context-hook", + "allowedCategories": [ "production" ] + }, + { + "name": "blessed", + "allowedCategories": [ "tools" ] + }, + { + "name": "blob-polyfill", + "allowedCategories": [ "production" ] + }, + { + "name": "case-sensitive-paths-webpack-plugin", + "allowedCategories": [ "examples", "tools" ] + }, + { + "name": "chalk", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "chokidar", + "allowedCategories": [ "tools" ] + }, + { + "name": "circular-dependency-plugin", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "classnames", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "clean-webpack-plugin", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "codemirror", + "allowedCategories": [ "production" ] + }, + { + "name": "columnify", + "allowedCategories": [ "tools" ] + }, + { + "name": "commander", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "compression-webpack-plugin", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "concurrently", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "copy-to-clipboard", + "allowedCategories": [ "production" ] + }, + { + "name": "copy-webpack-plugin", + "allowedCategories": [ "production" ] + }, + { + "name": "core-js", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "cron-parser", + "allowedCategories": [ "production" ] + }, + { + "name": "cross-spawn", + "allowedCategories": [ "tools" ] + }, + { + "name": "css-loader", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "date-fns", + "allowedCategories": [ "production" ] + }, + { + "name": "date-fns-tz", + "allowedCategories": [ "production" ] + }, + { + "name": "debounce-promise", + "allowedCategories": [ "production" ] + }, + { + "name": "default-import", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "dependency-cruiser", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "dotenv", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "dotenv-webpack", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "downshift", + "allowedCategories": [ "production" ] + }, + { + "name": "esbuild-loader", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-import-resolver-typescript", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-chai-friendly", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "eslint-plugin-header", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-headers", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-import", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-import-esm", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-import-x", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-jsdoc", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-no-barrel-files", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-no-only-tests", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-playwright", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "eslint-plugin-react", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-react-hooks", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-regexp", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-sonarjs", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eslint-plugin-storybook", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "eslint-plugin-tsdoc", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "eventsource-parser", + "allowedCategories": [ "production" ] + }, + { + "name": "exponential-backoff", + "allowedCategories": [ "production" ] + }, + { + "name": "fast-equals", + "allowedCategories": [ "production" ] + }, + { + "name": "fast-glob", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "fast-levenshtein", + "allowedCategories": [ "production" ] + }, + { + "name": "fetch-cookie", + "allowedCategories": [ "production" ] + }, + { + "name": "fetch-mock", + "allowedCategories": [ "production" ] + }, + { + "name": "find-up", + "allowedCategories": [ "tools" ] + }, + { + "name": "fix-esm-import-path", + "allowedCategories": [ "production" ] + }, + { + "name": "fixed-data-table-2", + "allowedCategories": [ "production" ] + }, + { + "name": "fork-ts-checker-webpack-plugin", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "fs-extra", + "allowedCategories": [ "tools" ] + }, + { + "name": "full-icu", + "allowedCategories": [ "production" ] + }, + { + "name": "glob", + "allowedCategories": [ "production" ] + }, + { + "name": "globals", + "allowedCategories": [ "tools" ] + }, + { + "name": "happy-dom", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "highcharts", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "highcharts-react-official", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "history", + "allowedCategories": [ "examples" ] + }, + { + "name": "hoist-non-react-statics", + "allowedCategories": [ "production" ] + }, + { + "name": "html-validate", + "allowedCategories": [ "tools" ] + }, + { + "name": "html-webpack-plugin", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "http-status-codes", + "allowedCategories": [ "production" ] + }, + { + "name": "immer", + "allowedCategories": [ "production" ] + }, + { + "name": "inquirer", + "allowedCategories": [ "tools" ] + }, + { + "name": "isomorphic-fetch", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "jiti", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "js-object-pretty-print", + "allowedCategories": [ "production" ] + }, + { + "name": "js-yaml", + "allowedCategories": [ "production" ] + }, + { + "name": "jsdom", + "allowedCategories": [ "production" ] + }, + { + "name": "json-loader", + "allowedCategories": [ "production" ] + }, + { + "name": "json-schema-to-typescript", + "allowedCategories": [ "production" ] + }, + { + "name": "json-stable-stringify", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "json5", + "allowedCategories": [ "tools" ] + }, + { + "name": "jsonschema", + "allowedCategories": [ "tools" ] + }, + { + "name": "kefir", + "allowedCategories": [ "production" ] + }, + { + "name": "lodash-es", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "lru-cache", + "allowedCategories": [ "production" ] + }, + { + "name": "lz-string", + "allowedCategories": [ "production" ] + }, + { + "name": "mapbox-gl", + "allowedCategories": [ "production" ] + }, + { + "name": "maplibre-gl", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "mdast", + "allowedCategories": [ "production" ] + }, + { + "name": "mini-css-extract-plugin", + "allowedCategories": [ "production" ] + }, + { + "name": "mkdirp", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "mocha", + "allowedCategories": [ "production" ] + }, + { + "name": "mocha-junit-reporter", + "allowedCategories": [ "production" ] + }, + { + "name": "moment", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "moment-timezone", + "allowedCategories": [ "production" ] + }, + { + "name": "node-fetch", + "allowedCategories": [ "production" ] + }, + { + "name": "node-xlsx", + "allowedCategories": [ "production" ] + }, + { + "name": "npm-run-all", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "open", + "allowedCategories": [ "tools" ] + }, + { + "name": "ora", + "allowedCategories": [ "tools" ] + }, + { + "name": "oxfmt", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "oxlint", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "oxlint-tsgolint", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "p-map", + "allowedCategories": [ "tools" ] + }, + { + "name": "pdf-parse", + "allowedCategories": [ "production" ] + }, + { + "name": "polished", + "allowedCategories": [ "production" ] + }, + { + "name": "postcss", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "postcss-scss", + "allowedCategories": [ "tools" ] + }, + { + "name": "postcss-value-parser", + "allowedCategories": [ "production" ] + }, + { + "name": "prettier", + "allowedCategories": [ "production" ] + }, + { + "name": "process", + "allowedCategories": [ "examples", "tools" ] + }, + { + "name": "qs", + "allowedCategories": [ "production" ] + }, + { + "name": "raf", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "react", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "react-content-loader", + "allowedCategories": [ "production" ] + }, + { + "name": "react-datepicker", + "allowedCategories": [ "examples" ] + }, + { + "name": "react-day-picker", + "allowedCategories": [ "production" ] + }, + { + "name": "react-dnd", + "allowedCategories": [ "production" ] + }, + { + "name": "react-dnd-html5-backend", + "allowedCategories": [ "production" ] + }, + { + "name": "react-dom", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "react-fast-compare", + "allowedCategories": [ "production" ] + }, + { + "name": "react-ga", + "allowedCategories": [ "examples" ] + }, + { + "name": "react-google-recaptcha", + "allowedCategories": [ "examples" ] + }, + { + "name": "react-grid-system", + "allowedCategories": [ "production" ] + }, + { + "name": "react-helmet", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "react-intl", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "react-lines-ellipsis", + "allowedCategories": [ "production" ] + }, + { + "name": "react-loading-skeleton", + "allowedCategories": [ "production" ] + }, + { + "name": "react-markdown", + "allowedCategories": [ "production" ] + }, + { + "name": "react-measure", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "react-native-listener", + "allowedCategories": [ "production" ] + }, + { + "name": "react-portal", + "allowedCategories": [ "production" ] + }, + { + "name": "react-redux", + "allowedCategories": [ "production" ] + }, + { + "name": "react-responsive", + "allowedCategories": [ "production" ] + }, + { + "name": "react-router-dom", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "react-select", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "react-select-async-paginate", + "allowedCategories": [ "production" ] + }, + { + "name": "react-syntax-highlighter", + "allowedCategories": [ "examples" ] + }, + { + "name": "react-textarea-autosize", + "allowedCategories": [ "production" ] + }, + { + "name": "react-transition-group", + "allowedCategories": [ "production" ] + }, + { + "name": "react-window", + "allowedCategories": [ "production" ] + }, + { + "name": "readdirp", + "allowedCategories": [ "production" ] + }, + { + "name": "recharts", + "allowedCategories": [ "examples" ] + }, + { + "name": "redux", + "allowedCategories": [ "production" ] + }, + { + "name": "redux-batched-actions", + "allowedCategories": [ "production" ] + }, + { + "name": "redux-saga", + "allowedCategories": [ "production" ] + }, + { + "name": "remark", + "allowedCategories": [ "production" ] + }, + { + "name": "remark-emoji", + "allowedCategories": [ "production" ] + }, + { + "name": "remark-gfm", + "allowedCategories": [ "production" ] + }, + { + "name": "require-from-string", + "allowedCategories": [ "production" ] + }, + { + "name": "reselect", + "allowedCategories": [ "production" ] + }, + { + "name": "rolldown", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "rollup", + "allowedCategories": [ "production" ] + }, + { + "name": "sass", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "sass-loader", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "semver", + "allowedCategories": [ "production" ] + }, + { + "name": "source-map-loader", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "spark-md5", + "allowedCategories": [ "production" ] + }, + { + "name": "speed-measure-webpack-plugin", + "allowedCategories": [ "examples" ] + }, + { + "name": "storybook", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "stringify-object", + "allowedCategories": [ "production" ] + }, + { + "name": "strip-ansi", + "allowedCategories": [ "tools" ] + }, + { + "name": "style-loader", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "styled-jsx", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "stylelint", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "stylelint-config-standard", + "allowedCategories": [ "tools" ] + }, + { + "name": "stylelint-order", + "allowedCategories": [ "tools" ] + }, + { + "name": "stylelint-plugin-defensive-css", + "allowedCategories": [ "tools" ] + }, + { + "name": "stylelint-scss", + "allowedCategories": [ "tools" ] + }, + { + "name": "svgo", + "allowedCategories": [ "production" ] + }, + { + "name": "tar", + "allowedCategories": [ "tools" ] + }, + { + "name": "tinycolor2", + "allowedCategories": [ "production" ] + }, + { + "name": "ts-invariant", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "ts-loader", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "ts-morph", + "allowedCategories": [ "tools" ] + }, + { + "name": "tsd", + "allowedCategories": [ "production" ] + }, + { + "name": "tslib", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "typescript", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "unified", + "allowedCategories": [ "production" ] + }, + { + "name": "util", + "allowedCategories": [ "examples", "tools" ] + }, + { + "name": "uuid", + "allowedCategories": [ "production" ] + }, + { + "name": "validate-npm-package-name", + "allowedCategories": [ "examples", "tools" ] + }, + { + "name": "vite", + "allowedCategories": [ "examples", "production" ] + }, + { + "name": "vite-node", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "vite-plugin-css-injected-by-js", + "allowedCategories": [ "production" ] + }, + { + "name": "vite-plugin-environment", + "allowedCategories": [ "production" ] + }, + { + "name": "vite-plugin-html", + "allowedCategories": [ "examples" ] + }, + { + "name": "vite-plugin-mkcert", + "allowedCategories": [ "examples" ] + }, + { + "name": "vite-plugin-static-copy", + "allowedCategories": [ "production" ] + }, + { + "name": "vitest", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "vitest-dom", + "allowedCategories": [ "production" ] + }, + { + "name": "wait-on", + "allowedCategories": [ "production" ] + }, + { + "name": "watchpack", + "allowedCategories": [ "tools" ] + }, + { + "name": "webpack", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "webpack-bundle-analyzer", + "allowedCategories": [ "production", "tools" ] + }, + { + "name": "webpack-cli", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "webpack-dev-server", + "allowedCategories": [ "examples", "production", "tools" ] + }, + { + "name": "xml2js", + "allowedCategories": [ "production" ] + }, + { + "name": "yaml", + "allowedCategories": [ "production" ] + }, + { + "name": "zod", + "allowedCategories": [ "production" ] + } + ] +} diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 0674b4108e5..6b799da641a 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,7 +8,7 @@ importers: .: {} - ../../../sdk/examples/playground: + ../../examples/playground: devDependencies: '@codemirror/state': specifier: 6.5.3 @@ -167,13 +167,13 @@ importers: specifier: 8.0.0 version: 8.0.0(@types/node@24.12.0)(sass@1.70.0) - ../../../sdk/examples/sdk-interactive-examples: + ../../examples/sdk-interactive-examples: devDependencies: validate-npm-package-name: specifier: ^5.0.0 version: 5.0.1 - ../../../sdk/examples/sdk-interactive-examples/examples-template: + ../../examples/sdk-interactive-examples/examples-template: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -309,7 +309,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-attributefilter: + ../../examples/sdk-interactive-examples/examples/example-attributefilter: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -445,7 +445,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-chartconfig: + ../../examples/sdk-interactive-examples/examples/example-chartconfig: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -581,7 +581,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-columnchart: + ../../examples/sdk-interactive-examples/examples/example-columnchart: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -717,7 +717,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-combochart: + ../../examples/sdk-interactive-examples/examples/example-combochart: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -853,7 +853,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-dashboard: + ../../examples/sdk-interactive-examples/examples/example-dashboard: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -989,7 +989,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-datefilter: + ../../examples/sdk-interactive-examples/examples/example-datefilter: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1125,7 +1125,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-dependentfilters: + ../../examples/sdk-interactive-examples/examples/example-dependentfilters: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1261,7 +1261,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-execute: + ../../examples/sdk-interactive-examples/examples/example-execute: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1406,7 +1406,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-granularity: + ../../examples/sdk-interactive-examples/examples/example-granularity: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1542,7 +1542,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-headline: + ../../examples/sdk-interactive-examples/examples/example-headline: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1678,7 +1678,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-pivottable: + ../../examples/sdk-interactive-examples/examples/example-pivottable: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1814,7 +1814,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-relativedatefilter: + ../../examples/sdk-interactive-examples/examples/example-relativedatefilter: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -1950,7 +1950,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/examples/sdk-interactive-examples/examples/example-repeater: + ../../examples/sdk-interactive-examples/examples/example-repeater: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -2086,7 +2086,7 @@ importers: specifier: ~3.2.0 version: 3.2.2(vite@8.0.0) - ../../../sdk/libs/api-client-tiger: + ../../libs/api-client-tiger: dependencies: '@gooddata/sdk-model': specifier: workspace:* @@ -2189,7 +2189,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../../sdk/libs/sdk-backend-base: + ../../libs/sdk-backend-base: dependencies: '@braintree/sanitize-url': specifier: ^6.0.0 @@ -2301,7 +2301,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../../sdk/libs/sdk-backend-mockingbird: + ../../libs/sdk-backend-mockingbird: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -2401,7 +2401,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../../sdk/libs/sdk-backend-spi: + ../../libs/sdk-backend-spi: dependencies: '@gooddata/sdk-model': specifier: workspace:* @@ -2486,7 +2486,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../../sdk/libs/sdk-backend-tiger: + ../../libs/sdk-backend-tiger: dependencies: '@gooddata/api-client-tiger': specifier: workspace:* @@ -2628,7 +2628,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../../sdk/libs/sdk-code-convertors: + ../../libs/sdk-code-convertors: dependencies: '@gooddata/api-client-tiger': specifier: workspace:* @@ -2710,7 +2710,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0)(yaml@2.8.3) - ../../../sdk/libs/sdk-code-schemas: + ../../libs/sdk-code-schemas: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -2788,7 +2788,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../../sdk/libs/sdk-e2e-utils: + ../../libs/sdk-e2e-utils: dependencies: '@playwright/test': specifier: 1.59.1 @@ -2876,7 +2876,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../../sdk/libs/sdk-embedding: + ../../libs/sdk-embedding: dependencies: '@gooddata/sdk-model': specifier: workspace:* @@ -2961,7 +2961,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../../sdk/libs/sdk-model: + ../../libs/sdk-model: dependencies: '@types/geojson': specifier: ^7946.0.16 @@ -3061,7 +3061,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../../sdk/libs/sdk-pluggable-application-model: + ../../libs/sdk-pluggable-application-model: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -3146,7 +3146,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../../sdk/libs/sdk-ui: + ../../libs/sdk-ui: dependencies: '@gooddata/number-formatter': specifier: ^1.0.6 @@ -3333,7 +3333,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-all: + ../../libs/sdk-ui-all: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -3430,7 +3430,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../../sdk/libs/sdk-ui-catalog: + ../../libs/sdk-ui-catalog: dependencies: '@babel/core': specifier: 7.28.4 @@ -3626,7 +3626,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-charts: + ../../libs/sdk-ui-charts: dependencies: '@gooddata/number-formatter': specifier: ^1.0.6 @@ -3849,7 +3849,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-dashboard: + ../../libs/sdk-ui-dashboard: dependencies: '@codemirror/language': specifier: 6.12.1 @@ -4117,7 +4117,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-ext: + ../../libs/sdk-ui-ext: dependencies: '@codemirror/commands': specifier: 6.10.1 @@ -4400,7 +4400,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-filters: + ../../libs/sdk-ui-filters: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -4602,7 +4602,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-gen-ai: + ../../libs/sdk-ui-gen-ai: dependencies: '@codemirror/autocomplete': specifier: 6.20.0 @@ -4849,7 +4849,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-geo: + ../../libs/sdk-ui-geo: dependencies: '@gooddata/number-formatter': specifier: ^1.0.6 @@ -5036,7 +5036,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-kit: + ../../libs/sdk-ui-kit: dependencies: '@aaronhayes/react-use-hubspot-form': specifier: 2.1.2 @@ -5328,7 +5328,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-loaders: + ../../libs/sdk-ui-loaders: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -5461,7 +5461,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../../sdk/libs/sdk-ui-pivot: + ../../libs/sdk-ui-pivot: dependencies: '@gooddata/number-formatter': specifier: ^1.0.6 @@ -5651,7 +5651,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-pluggable-application: + ../../libs/sdk-ui-pluggable-application: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -5775,7 +5775,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../../sdk/libs/sdk-ui-semantic-search: + ../../libs/sdk-ui-semantic-search: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -5935,7 +5935,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-tests-app: + ../../libs/sdk-ui-tests-app: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -6070,7 +6070,7 @@ importers: specifier: 8.0.0 version: 8.0.0(@types/node@24.12.0)(sass@1.70.0) - ../../../sdk/libs/sdk-ui-tests-e2e: + ../../libs/sdk-ui-tests-e2e: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -6169,7 +6169,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../../sdk/libs/sdk-ui-tests-reference-workspace: + ../../libs/sdk-ui-tests-reference-workspace: devDependencies: '@gooddata/catalog-export': specifier: workspace:* @@ -6235,7 +6235,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../../sdk/libs/sdk-ui-tests-scenarios: + ../../libs/sdk-ui-tests-scenarios: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -6397,7 +6397,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../../sdk/libs/sdk-ui-tests-storybook: + ../../libs/sdk-ui-tests-storybook: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -6625,7 +6625,7 @@ importers: specifier: 3.1.2 version: 3.1.2(vite@8.0.0) - ../../../sdk/libs/sdk-ui-theme-provider: + ../../libs/sdk-ui-theme-provider: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -6782,7 +6782,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../../sdk/libs/sdk-ui-vis-commons: + ../../libs/sdk-ui-vis-commons: dependencies: '@gooddata/number-formatter': specifier: ^1.0.6 @@ -6951,7 +6951,7 @@ importers: specifier: 0.1.1 version: 0.1.1(vitest@4.1.0) - ../../../sdk/libs/sdk-ui-web-components: + ../../libs/sdk-ui-web-components: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -7120,7 +7120,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../../sdk/libs/util: + ../../libs/util: dependencies: lodash-es: specifier: ^4.17.23 @@ -7202,7 +7202,7 @@ importers: specifier: 4.1.0 version: 4.1.0(happy-dom@18.0.1)(sass@1.70.0) - ../../../sdk/tools/app-toolkit: + ../../tools/app-toolkit: dependencies: '@babel/cli': specifier: ^7.23.4 @@ -7359,7 +7359,7 @@ importers: specifier: 5.93.0 version: 5.93.0(webpack-cli@6.0.1) - ../../../sdk/tools/applink: + ../../tools/applink: devDependencies: '@gooddata/eslint-config': specifier: workspace:* @@ -7464,7 +7464,7 @@ importers: specifier: ^2.4.4 version: 2.4.4 - ../../../sdk/tools/catalog-export: + ../../tools/catalog-export: dependencies: '@babel/core': specifier: 7.28.4 @@ -7588,7 +7588,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../../sdk/tools/dashboard-plugin-template: + ../../tools/dashboard-plugin-template: dependencies: json-stable-stringify: specifier: 1.3.0 @@ -7784,7 +7784,7 @@ importers: specifier: 5.2.2 version: 5.2.2(webpack-cli@6.0.1)(webpack@5.93.0) - ../../../sdk/tools/eslint-config: + ../../tools/eslint-config: devDependencies: '@eslint/js': specifier: 9.28.0 @@ -7877,7 +7877,7 @@ importers: specifier: ^5.2.0 version: 5.2.0(@types/node@24.12.0)(jiti@2.6.1) - ../../../sdk/tools/i18n-toolkit: + ../../tools/i18n-toolkit: dependencies: '@formatjs/cli-lib': specifier: ^6.1.1 @@ -7986,7 +7986,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../../sdk/tools/lint-config: + ../../tools/lint-config: devDependencies: '@typescript/native-preview': specifier: 7.0.0-dev.20260202.1 @@ -8001,7 +8001,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../../sdk/tools/mock-handling: + ../../tools/mock-handling: dependencies: '@gooddata/sdk-backend-base': specifier: workspace:* @@ -8110,7 +8110,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../../sdk/tools/oxlint-config: + ../../tools/oxlint-config: devDependencies: '@eslint/js': specifier: 9.28.0 @@ -8188,7 +8188,7 @@ importers: specifier: ^5.2.0 version: 5.2.0(@types/node@24.12.0)(jiti@2.6.1) - ../../../sdk/tools/plugin-toolkit: + ../../tools/plugin-toolkit: dependencies: '@babel/cli': specifier: ^7.23.4 @@ -8336,7 +8336,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../../sdk/tools/react-app-template: + ../../tools/react-app-template: dependencies: '@codemirror/state': specifier: 6.5.3 @@ -8499,7 +8499,7 @@ importers: specifier: 5.2.2 version: 5.2.2(webpack-cli@6.0.1)(webpack@5.93.0) - ../../../sdk/tools/reference-workspace: + ../../tools/reference-workspace: dependencies: '@gooddata/sdk-backend-spi': specifier: workspace:* @@ -8575,7 +8575,7 @@ importers: specifier: 5.9.3 version: 5.9.3 - ../../../sdk/tools/reference-workspace-mgmt: + ../../tools/reference-workspace-mgmt: dependencies: '@gooddata/catalog-export': specifier: workspace:* @@ -8657,7 +8657,7 @@ importers: specifier: 4.1.0 version: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) - ../../../sdk/tools/stylelint-config: + ../../tools/stylelint-config: dependencies: postcss: specifier: 8.5.6 @@ -8789,7 +8789,7 @@ packages: resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.29.0 /@babel/helper-compilation-targets@7.28.6: resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} @@ -8813,7 +8813,7 @@ packages: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.29.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -8856,15 +8856,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-module-imports@7.27.1: - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - /@babel/helper-module-imports@7.28.6: resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} @@ -8874,19 +8865,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4): - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 - transitivePeerDependencies: - - supports-color - /@babel/helper-module-transforms@7.28.6(@babel/core@7.28.4): resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} @@ -8946,7 +8924,7 @@ packages: '@babel/core': 7.28.4 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color @@ -8954,8 +8932,8 @@ packages: resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -8963,10 +8941,6 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier@7.27.1: - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier@7.28.5: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} @@ -9484,7 +9458,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9693,10 +9667,10 @@ packages: dependencies: '@babel/core': 7.28.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/types': 7.28.4 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color dev: true @@ -10003,20 +9977,6 @@ packages: '@babel/parser': 7.29.0 '@babel/types': 7.29.0 - /@babel/traverse@7.28.4: - resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} - engines: {node: '>=6.9.0'} - 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 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - /@babel/traverse@7.29.0: resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} @@ -10031,13 +9991,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/types@7.28.4: - resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - /@babel/types@7.29.0: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} @@ -10164,13 +10117,13 @@ packages: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - /@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0): + /@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1): resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} engines: {node: '>=18'} peerDependencies: postcss-selector-parser: ^7.0.0 dependencies: - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 /@dagrejs/dagre@1.1.8: resolution: {integrity: sha512-5SEDlndt4W/LaVzPYJW+bSmSEZc9EzTf8rJ20WCKvjS5EAZAN0b+x0Yww7VMT4R3Wootkg+X9bUfUxazYw6Blw==} @@ -11591,7 +11544,7 @@ packages: /@nestjs/axios@4.0.1(@nestjs/common@11.1.6)(axios@1.12.2)(rxjs@7.8.2): resolution: {integrity: sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A==} peerDependencies: - '@nestjs/common': ^10.0.0 || ^11.0.0 + '@nestjs/common': ^10.0.0 || ^11.0.0 || 9.3.11 axios: ^1.3.1 rxjs: ^7.0.0 dependencies: @@ -11629,7 +11582,7 @@ packages: engines: {node: '>= 20'} requiresBuild: true peerDependencies: - '@nestjs/common': ^11.0.0 + '@nestjs/common': ^11.0.0 || 9.3.11 '@nestjs/microservices': ^11.0.0 '@nestjs/platform-express': ^11.0.0 '@nestjs/websockets': ^11.0.0 @@ -12146,7 +12099,7 @@ packages: react-redux: optional: true dependencies: - '@standard-schema/spec': 1.0.0 + '@standard-schema/spec': 1.1.0 '@standard-schema/utils': 0.3.0 immer: 10.1.1 react: 19.1.1 @@ -12303,7 +12256,7 @@ packages: dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 - picomatch: 4.0.3 + picomatch: 4.0.4 dev: true /@rollup/rollup-android-arm-eabi@4.54.0: @@ -12615,10 +12568,6 @@ packages: engines: {node: '>=10'} dev: false - /@standard-schema/spec@1.0.0: - resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} - dev: false - /@standard-schema/spec@1.1.0: resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -12660,7 +12609,7 @@ packages: dependencies: '@storybook/codemod': 10.1.11(@testing-library/dom@10.4.1)(react-dom@19.1.1)(react@19.1.1) '@types/semver': 7.3.13 - commander: 14.0.2 + commander: 14.0.3 create-storybook: 10.1.11(@testing-library/dom@10.4.1)(react-dom@19.1.1)(react@19.1.1) jscodeshift: 0.15.2 storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.1)(react@19.1.1) @@ -13429,20 +13378,6 @@ packages: - supports-color dev: true - /@typescript-eslint/project-service@8.52.0(typescript@5.9.3): - resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - dependencies: - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.53.0 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/project-service@8.58.0(typescript@5.9.3): resolution: {integrity: sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13457,14 +13392,6 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@8.52.0: - resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 - dev: true - /@typescript-eslint/scope-manager@8.58.0: resolution: {integrity: sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13473,15 +13400,6 @@ packages: '@typescript-eslint/visitor-keys': 8.58.0 dev: true - /@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.9.3): - resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - dependencies: - typescript: 5.9.3 - dev: true - /@typescript-eslint/tsconfig-utils@8.58.0(typescript@5.9.3): resolution: {integrity: sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13509,41 +13427,11 @@ packages: - supports-color dev: true - /@typescript-eslint/types@8.52.0: - resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - - /@typescript-eslint/types@8.53.0: - resolution: {integrity: sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - /@typescript-eslint/types@8.58.0: resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@typescript-eslint/typescript-estree@8.52.0(typescript@5.9.3): - resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - dependencies: - '@typescript-eslint/project-service': 8.52.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 - debug: 4.4.3 - minimatch: 10.1.2 - semver: 7.7.4 - tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3): resolution: {integrity: sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13564,23 +13452,6 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@8.52.0(eslint@9.39.2)(typescript@5.9.3): - resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/utils@8.58.0(eslint@9.39.2)(typescript@5.9.3): resolution: {integrity: sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13598,14 +13469,6 @@ packages: - supports-color dev: true - /@typescript-eslint/visitor-keys@8.52.0: - resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@typescript-eslint/types': 8.52.0 - eslint-visitor-keys: 4.2.1 - dev: true - /@typescript-eslint/visitor-keys@8.58.0: resolution: {integrity: sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13685,6 +13548,7 @@ packages: /@ungap/structured-clone@1.3.0: resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher dev: false /@unrs/resolver-binding-android-arm-eabi@1.11.1: @@ -13871,8 +13735,8 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.0 + '@typescript-eslint/utils': 8.58.0(eslint@9.39.2)(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 vitest: 4.1.0(@types/node@24.12.0)(happy-dom@18.0.1) @@ -14087,6 +13951,9 @@ packages: peerDependencies: webpack: ^5.82.0 webpack-cli: 6.x.x + peerDependenciesMeta: + webpack: + optional: true dependencies: webpack: 5.93.0(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.2)(webpack@5.93.0) @@ -14097,6 +13964,9 @@ packages: peerDependencies: webpack: ^5.82.0 webpack-cli: 6.x.x + peerDependenciesMeta: + webpack: + optional: true dependencies: webpack: 5.93.0(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.2)(webpack@5.93.0) @@ -14109,6 +13979,8 @@ packages: webpack-cli: 6.x.x webpack-dev-server: '*' peerDependenciesMeta: + webpack: + optional: true webpack-dev-server: optional: true dependencies: @@ -14129,25 +14001,17 @@ packages: mime-types: 2.1.35 negotiator: 0.6.3 - /acorn-import-attributes@1.9.5(acorn@8.15.0): + /acorn-import-attributes@1.9.5(acorn@8.16.0): resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.15.0 + acorn: 8.16.0 /acorn-jsx-walk@2.0.0: resolution: {integrity: sha512-uuo6iJj4D4ygkdzd6jPtcxs8vZgDX9YFIkqczGImoypX2fQ4dVImmu3UzA4ynixCIMTrEOWW+95M2HuBaCEOVA==} dev: true - /acorn-jsx@5.3.2(acorn@8.15.0): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.15.0 - dev: true - /acorn-jsx@5.3.2(acorn@8.16.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -14163,29 +14027,16 @@ packages: acorn: 8.16.0 dev: true - /acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - dependencies: - acorn: 8.15.0 - /acorn-walk@8.3.5: resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} engines: {node: '>=0.4.0'} dependencies: acorn: 8.16.0 - dev: true - - /acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true /acorn@8.16.0: resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /ag-charts-community@13.1.0: resolution: {integrity: sha512-w+uFTjxlAoTq1+8tgUORtB/zr9jm38ibXzbbWnkBP9Dep9yahi5a1jZL7yExAX35uq3g9QtjTh0Oj/QPDBQ9Ew==} @@ -14630,6 +14481,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' + peerDependenciesMeta: + webpack: + optional: true dependencies: '@babel/core': 7.28.4 find-cache-dir: 3.3.2 @@ -14699,6 +14553,7 @@ packages: /basic-ftp@5.0.5: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} + deprecated: Security vulnerability fixed in 5.2.1, please upgrade dev: true /batch@0.6.1: @@ -15107,11 +14962,6 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} - /commander@14.0.2: - resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} - engines: {node: '>=20'} - dev: true - /commander@14.0.3: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} @@ -15778,16 +15628,14 @@ packages: engines: {node: '>=10'} peerDependencies: webpack: ^4 || ^5 + peerDependenciesMeta: + webpack: + optional: true dependencies: dotenv-defaults: 2.0.2 webpack: 5.93.0(webpack-cli@6.0.1) dev: true - /dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} - engines: {node: '>=12'} - dev: true - /dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} @@ -15900,20 +15748,12 @@ packages: tapable: 1.1.3 dev: true - /enhanced-resolve@5.18.3: - resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.3 - /enhanced-resolve@5.20.1: resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 tapable: 2.3.2 - dev: true /entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -16115,6 +15955,9 @@ packages: resolution: {integrity: sha512-D7HeJNdkDKKMarPQO/3dlJT6RwN2YJO7ENU6RPlpOz5YxSHnUNi2yvW41Bckvi1EVwctIaLzlb0ni5ag2GINYA==} peerDependencies: webpack: ^4.40.0 || ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true dependencies: esbuild: 0.25.9 get-tsconfig: 4.10.1 @@ -16458,7 +16301,7 @@ packages: eslint: '>=8' storybook: ^10.1.11 dependencies: - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@9.39.2)(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.1)(react@19.1.1) transitivePeerDependencies: @@ -16570,8 +16413,8 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 4.2.1 dev: true @@ -16761,7 +16604,7 @@ packages: pend: 1.2.0 dev: true - /fdir@6.5.0(picomatch@4.0.3): + /fdir@6.5.0(picomatch@4.0.4): resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -16770,7 +16613,7 @@ packages: picomatch: optional: true dependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 /fetch-cookie@0.7.3: resolution: {integrity: sha512-rZPkLnI8x5V+zYAiz8QonAHsTb4BY+iFowFBI1RFn0zrO343AVp9X7/yUj/9wL6Ef/8fLls8b/vGtzUvmyAUGA==} @@ -17180,6 +17023,7 @@ packages: /glob@11.0.3: resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} engines: {node: 20 || >=22} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true dependencies: foreground-child: 3.3.1 @@ -17522,7 +17366,7 @@ packages: html-minifier-terser: 6.1.0 lodash: 4.17.21 pretty-error: 4.0.0 - tapable: 2.2.3 + tapable: 2.3.2 webpack: 5.93.0(webpack-cli@6.0.1) dev: true @@ -20019,14 +19863,9 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - /picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - /picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} - dev: true /pidtree@0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} @@ -20158,13 +19997,6 @@ packages: postcss: 8.5.6 dev: false - /postcss-selector-parser@7.1.0: - resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - /postcss-selector-parser@7.1.1: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} @@ -20744,6 +20576,9 @@ packages: resolution: {integrity: sha512-6orZWyCnIQXMGY4DUGM0oj0L7oYnwTACsfsru/J7r94RM3P9eS7SORGpr3LCeRCMoIMQcpfKZ7X4NdyFHBS8Eg==} peerDependencies: redux: '>=1.0.0' + peerDependenciesMeta: + redux: + optional: true dependencies: redux: 5.0.1 dev: false @@ -20758,6 +20593,9 @@ packages: resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} peerDependencies: redux: ^5.0.0 + peerDependenciesMeta: + redux: + optional: true dependencies: redux: 5.0.1 dev: false @@ -21492,6 +21330,9 @@ packages: engines: {node: '>= 14.15.0'} peerDependencies: webpack: ^5.72.1 + peerDependenciesMeta: + webpack: + optional: true dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 @@ -21624,7 +21465,7 @@ packages: '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 '@vitest/spy': 3.2.4 - esbuild: 0.25.9 + esbuild: 0.27.2 open: 10.2.0 prettier: 3.6.2 recast: 0.23.11 @@ -21799,6 +21640,9 @@ packages: engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true dependencies: webpack: 5.93.0(webpack-cli@6.0.1) dev: true @@ -21881,7 +21725,7 @@ packages: '@csstools/css-syntax-patches-for-csstree': 1.0.26 '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) '@dual-bundle/import-meta-resolve': 4.2.1 balanced-match: 2.0.0 colord: 2.9.3 @@ -21908,7 +21752,7 @@ packages: postcss: 8.5.6 postcss-resolve-nested-selector: 0.1.6 postcss-safe-parser: 7.0.1(postcss@8.5.6) - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 @@ -22003,14 +21847,9 @@ packages: engines: {node: '>=6'} dev: true - /tapable@2.2.3: - resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} - engines: {node: '>=6'} - /tapable@2.3.2: resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} engines: {node: '>=6'} - dev: true /tar-stream@1.6.2: resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} @@ -22028,6 +21867,7 @@ packages: /tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -22059,6 +21899,8 @@ packages: optional: true uglify-js: optional: true + webpack: + optional: true dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 @@ -22073,7 +21915,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 + acorn: 8.16.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -22136,8 +21978,8 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 /tinypool@2.1.0: resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} @@ -22252,15 +22094,6 @@ packages: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} dev: false - /ts-api-utils@2.4.0(typescript@5.9.3): - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - dependencies: - typescript: 5.9.3 - dev: true - /ts-api-utils@2.5.0(typescript@5.9.3): resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} @@ -22293,6 +22126,9 @@ packages: peerDependencies: typescript: '*' webpack: '*' + peerDependenciesMeta: + webpack: + optional: true dependencies: chalk: 4.1.2 enhanced-resolve: 4.5.0 @@ -22316,7 +22152,7 @@ packages: dependencies: chalk: 4.1.2 enhanced-resolve: 5.20.1 - tapable: 2.2.3 + tapable: 2.3.2 tsconfig-paths: 4.2.0 dev: true @@ -22569,8 +22405,8 @@ packages: engines: {node: '>=18.12.0'} dependencies: '@jridgewell/remapping': 2.3.5 - acorn: 8.15.0 - picomatch: 4.0.3 + acorn: 8.16.0 + picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 dev: true @@ -22697,6 +22533,7 @@ packages: /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true /validate-npm-package-license@3.0.4: @@ -22777,7 +22614,7 @@ packages: colorette: 2.0.20 connect-history-api-fallback: 1.6.0 consola: 2.15.3 - dotenv: 16.0.3 + dotenv: 16.4.5 dotenv-expand: 8.0.3 ejs: 3.1.10 fast-glob: 3.3.3 @@ -22844,9 +22681,9 @@ packages: dependencies: '@types/node': 24.12.0 esbuild: 0.27.2 - fdir: 6.5.0(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.4) jiti: 2.6.1 - picomatch: 4.0.3 + picomatch: 4.0.4 postcss: 8.5.6 rollup: 4.54.0 tinyglobby: 0.2.15 @@ -22900,7 +22737,7 @@ packages: '@oxc-project/runtime': 0.115.0 '@types/node': 24.12.0 lightningcss: 1.32.0 - picomatch: 4.0.3 + picomatch: 4.0.4 postcss: 8.5.8 rolldown: 1.0.0-rc.9 sass: 1.70.0 @@ -22953,7 +22790,7 @@ packages: dependencies: '@oxc-project/runtime': 0.115.0 lightningcss: 1.32.0 - picomatch: 4.0.3 + picomatch: 4.0.4 postcss: 8.5.8 rolldown: 1.0.0-rc.9 sass: 1.70.0 @@ -23025,7 +22862,7 @@ packages: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 @@ -23095,7 +22932,7 @@ packages: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 @@ -23165,7 +23002,7 @@ packages: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 @@ -23235,7 +23072,7 @@ packages: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 @@ -23306,8 +23143,8 @@ packages: hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.15.0 - acorn-walk: 8.3.4 + acorn: 8.16.0 + acorn-walk: 8.3.5 commander: 7.2.0 debounce: 1.2.1 escape-string-regexp: 4.0.0 @@ -23330,6 +23167,8 @@ packages: webpack-bundle-analyzer: '*' webpack-dev-server: '*' peerDependenciesMeta: + webpack: + optional: true webpack-bundle-analyzer: optional: true webpack-dev-server: @@ -23456,11 +23295,11 @@ packages: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-attributes: 1.9.5(acorn@8.15.0) + acorn: 8.16.0 + acorn-import-attributes: 1.9.5(acorn@8.16.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.3 + enhanced-resolve: 5.20.1 es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -23471,7 +23310,7 @@ packages: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 3.3.0 - tapable: 2.2.3 + tapable: 2.3.2 terser-webpack-plugin: 5.3.14(webpack@5.93.0) watchpack: 2.4.4 webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.2)(webpack@5.93.0)