Files
grafana/package.json
T
vesalaakso-oura a9c2117aa7 Transformers: Add smoothing transformer (#111077)
* Transformers: Add smoothing transformer

Added a smoothing transformer to help clean up noisy time series data.
It uses the ASAP algorithm to pick the most important data points while
keeping the overall shape and trends intact.

The transformer always keeps the first and last points so you get the
complete time range. I also added a test for it.

* Change category

Change category from Reformat to CalculateNewFields

* Remove first/last point preservation

* Fix operator recreation

* Simplify ASAP code

Include performance optimization as well

* Refactor interpolateFromSmoothedCurve

Break function into smaller focused functions and lift functions to the
top level

* Add isApplicable Check

Make sure the transformer is applicable for timeseries data

* Add tests for isApplicable check

* UI/UX improvements: Display effective resolution when limited by data points

Show "Effective: X" indicator when resolution is capped by the 2x data
points multiplier. Includes tooltip explaining the limit.

Memoizes calculation to prevent unnecessary recalculation on re-renders.

Example: With 72 data points and resolution set to 150, displays
"Effective: 144" since the limit is 72 x 2 = 144.

Plus added tests

* Improve discoverability by adding tags

* Preserve Original Data

Let's preserve original data as well, makes the UX so much better.
Changed from appending (smoothed) to frame names to use Smoothed frame name. This should match the pattern used by other transformers (e.g,. regression)
Updated tests accordingly
Updated tooltip note

* Add asap tests

Basic functionality:
* returns valid DataPoint objects
* Maintain x-axis ordering

Edge cases:
* Empty array
* single data point
* filter NaN values
* all NaN values
* sort unsorted data
* negative values

* Update dark and light images

* Clear state cache

* Add feature toggle

* Conditionally add new transformation to the registry

* chore: update and regenerate feature toggles

* chore: update yarn.lock

* chore: fix transformers and imports
2026-01-05 17:53:45 +01:00

495 lines
20 KiB
JSON

{
"author": "Grafana Labs",
"license": "AGPL-3.0-only",
"private": true,
"name": "grafana",
"version": "12.4.0-pre",
"repository": "github:grafana/grafana",
"scripts": {
"check-frontend-dev": "./scripts/check-frontend-dev.sh",
"build": "NODE_ENV=production nx exec --verbose -- webpack --config scripts/webpack/webpack.prod.js",
"build:nominify": "yarn run build -- --env noMinify=1",
"build:stats": "NODE_ENV=production webpack --progress --config scripts/webpack/webpack.stats.js",
"codeowners-manifest": "node ./scripts/codeowners-manifest/index.js",
"codeowners-manifest:clean": "rm -rf codeowners-manifest && mkdir -p codeowners-manifest",
"codeowners-manifest:generate": "node ./scripts/codeowners-manifest/generate.js",
"codeowners-manifest:metadata": "node ./scripts/codeowners-manifest/metadata.js",
"codeowners-manifest:raw": "node ./scripts/codeowners-manifest/raw.js",
"dev": "NODE_ENV=dev nx exec -- webpack --config scripts/webpack/webpack.dev.js",
"e2e": "./e2e/start-and-run-suite",
"e2e:old-arch": "./e2e/start-and-run-suite old-arch",
"e2e:schema-v2": "KUBERNETES_DASHBOARDS=true yarn playwright test --project dashboards",
"e2e:dashboards-search": "./e2e/start-and-run-suite dashboards-search",
"e2e:debug": "./e2e/start-and-run-suite debug",
"e2e:dev": "./e2e/start-and-run-suite dev",
"e2e:benchmark:live": "./e2e/start-and-run-suite benchmark live",
"e2e:enterprise": "./e2e/start-and-run-suite enterprise",
"e2e:enterprise:dev": "./e2e/start-and-run-suite enterprise dev",
"e2e:enterprise:debug": "./e2e/start-and-run-suite enterprise debug",
"e2e:playwright": "NODE_OPTIONS='-C @grafana-app/source' yarn playwright test --grep-invert @cloud-plugins",
"e2e:playwright:cloud-plugins": "NODE_OPTIONS='-C @grafana-app/source' yarn playwright test --grep @cloud-plugins",
"e2e:playwright:storybook": "NODE_OPTIONS='-C @grafana-app/source' yarn playwright test -c playwright.storybook.config.ts",
"e2e:acceptance": "NODE_OPTIONS='-C @grafana-app/source' yarn playwright test --grep @acceptance",
"e2e:storybook": "PORT=9001 ./e2e/run-suite storybook true",
"e2e:plugin:build": "nx run-many -t build --projects='@test-plugins/*'",
"e2e:plugin:build:dev": "nx run-many -t dev --projects='@test-plugins/*' --maxParallel=100",
"test": "jest --notify --watch",
"test:coverage": "jest --coverage",
"test:coverage:by-codeowner": "yarn codeowners-manifest && node scripts/test-coverage-by-codeowner.js",
"test:coverage:changes": "jest --coverage --changedSince=origin/main",
"test:storybook": "yarn workspace @grafana/ui storybook:test",
"test:accessibility-report": "./scripts/generate-a11y-report.sh",
"test:ci": "mkdir -p reports/junit && JEST_JUNIT_OUTPUT_DIR=reports/junit jest --ci --reporters=default --reporters=jest-junit -w ${TEST_MAX_WORKERS:-100%} --shard=${TEST_SHARD:-1}/${TEST_SHARD_TOTAL:-1}",
"lint": "yarn run lint:ts && yarn run lint:sass",
"lint:ts": "eslint ./ ./public/app/extensions/ --cache --no-error-on-unmatched-pattern",
"lint:sass": "yarn stylelint '{public/sass,packages}/**/*.scss' --cache",
"lint:fix": "yarn lint:ts --fix",
"lint:prune": "yarn lint:ts --prune-suppressions",
"packages:build": "nx run-many -t build --projects='tag:scope:package'",
"packages:clean": "rimraf ./npm-artifacts && nx run-many -t clean --projects='tag:scope:package' --maxParallel=100",
"packages:i18n-extract": "nx run-many -t i18n-extract --projects='tag:scope:package'",
"packages:prepare": "lerna version --no-push --no-git-tag-version --force-publish --exact",
"packages:pack": "mkdir -p ./npm-artifacts && lerna exec --no-private -- yarn pack --out \"../../npm-artifacts/%s-%v.tgz\"",
"packages:typecheck": "nx run-many -t typecheck --projects='tag:scope:package'",
"packages:test:ci": "nx run-many -t test:ci --projects='tag:scope:package'",
"prettier:check": "prettier --check --ignore-path .prettierignore --list-different=false --log-level=warn \"**/*.{ts,tsx,scss,md,mdx,json,js,cjs}\"",
"prettier:checkDocs": "prettier --check --list-different=false --log-level=warn \"docs/**/*.md\" \"*.md\" \"packages/**/*.{ts,tsx,scss,md,mdx,json,js,cjs}\"",
"prettier:write": "prettier --ignore-path .prettierignore --list-different \"**/*.{js,ts,tsx,scss,md,mdx,json,cjs}\" --write",
"start": "NODE_ENV=dev nx exec -- webpack --config scripts/webpack/webpack.dev.js --watch",
"start:liveReload": "yarn start -- --env liveReload=1",
"start:noTsCheck": "yarn start -- --env noTsCheck=1",
"start:noLint": "yarn start -- --env noTsCheck=1 --env noLint=1",
"stats": "webpack --mode production --config scripts/webpack/webpack.prod.js --profile --json > compilation-stats.json",
"storybook": "yarn workspace @grafana/ui storybook --ci",
"storybook:build": "yarn workspace @grafana/ui storybook:build",
"themes-schema": "typescript-json-schema ./tsconfig.json NewThemeOptions --include 'packages/grafana-data/src/themes/createTheme.ts' --out public/app/features/theme-playground/schema.generated.json",
"themes-generate": "yarn themes-schema && esbuild --target=es6 ./scripts/cli/generateSassVariableFiles.ts --bundle --conditions=@grafana-app/source --platform=node --tsconfig=./scripts/cli/tsconfig.json | node",
"themes:usage": "eslint . --ignore-pattern '*.test.ts*' --ignore-pattern '*.spec.ts*' --cache --plugin '@grafana' --rule '{ @grafana/theme-token-usage: \"error\" }'",
"typecheck": "tsc --noEmit && yarn run packages:typecheck",
"plugins:build-bundled": "echo 'bundled plugins are no longer supported'",
"watch": "yarn start -d watch,start core:start --watchTheme",
"i18n:stats": "node ./scripts/cli/reportI18nStats.mjs",
"i18n-extract": "make i18n-extract",
"plugin:build": "nx run-many -t build --projects='tag:scope:plugin'",
"plugin:build:commit": "nx run-many -t build:commit --projects='tag:scope:plugin'",
"plugin:build:dev": "nx run-many -t dev --projects='tag:scope:plugin' --maxParallel=100",
"plugin:test:ci": "nx run-many -t test:ci --projects='tag:scope:plugin' --maxParallel=2",
"plugin:i18n-extract": "nx run-many -t i18n-extract --projects='tag:scope:plugin'",
"generate-apis": "yarn workspace @grafana/api-clients generate-apis",
"generate:api-client": "yarn workspace @grafana/api-clients generate:api-client"
},
"grafana": {
"whatsNewUrl": "https://grafana.com/docs/grafana/next/whatsnew/whats-new-in-v%[1]s-%[2]s/",
"releaseNotesUrl": "https://grafana.com/docs/grafana/next/release-notes/"
},
"devDependencies": {
"@arethetypeswrong/cli": "^0.18.2",
"@babel/core": "7.28.0",
"@babel/preset-env": "7.28.0",
"@babel/runtime": "7.28.2",
"@crowdin/crowdin-api-client": "^1.42.0",
"@cypress/webpack-preprocessor": "6.0.4",
"@emotion/eslint-plugin": "11.12.0",
"@grafana/eslint-config": "8.2.0",
"@grafana/eslint-plugin": "link:./packages/grafana-eslint-rules",
"@grafana/plugin-e2e": "^3.1.0",
"@grafana/test-utils": "workspace:*",
"@manypkg/get-packages": "^3.0.0",
"@npmcli/package-json": "^6.0.0",
"@playwright/test": "1.56.1",
"@pmmmwh/react-refresh-webpack-plugin": "0.6.1",
"@react-types/button": "3.13.0",
"@react-types/menu": "3.10.3",
"@react-types/overlays": "3.9.0",
"@react-types/shared": "3.31.0",
"@rsdoctor/webpack-plugin": "^1.0.0",
"@rtk-query/codegen-openapi": "^2.0.0",
"@rtsao/plugin-proposal-class-properties": "7.0.1-patch.1",
"@stylistic/eslint-plugin-ts": "^4.0.0",
"@swc/core": "1.13.3",
"@swc/helpers": "0.5.17",
"@testing-library/dom": "10.4.1",
"@testing-library/jest-dom": "6.6.4",
"@testing-library/react": "16.3.0",
"@testing-library/user-event": "14.6.1",
"@types/babel__core": "^7",
"@types/babel__preset-env": "^7",
"@types/chance": "^1.1.7",
"@types/common-tags": "^1.8.0",
"@types/confusing-browser-globals": "^1",
"@types/d3": "7.4.3",
"@types/d3-force": "^3.0.0",
"@types/d3-scale-chromatic": "3.1.0",
"@types/debounce-promise": "3.1.9",
"@types/eslint": "9.6.1",
"@types/eslint-scope": "^8.0.0",
"@types/file-saver": "2.0.7",
"@types/google.analytics": "^0.0.46",
"@types/gtag.js": "^0.0.20",
"@types/history": "4.7.11",
"@types/ini": "^4",
"@types/jest": "29.5.14",
"@types/jquery": "3.5.33",
"@types/js-yaml": "^4.0.5",
"@types/jsurl": "^1.2.28",
"@types/lodash": "4.17.20",
"@types/logfmt": "^1.2.3",
"@types/lucene": "^2",
"@types/node": "24.10.1",
"@types/node-forge": "^1",
"@types/ol-ext": "npm:@siedlerchr/types-ol-ext@3.3.0",
"@types/pluralize": "^0.0.33",
"@types/prismjs": "1.26.5",
"@types/react": "18.3.18",
"@types/react-dom": "18.3.5",
"@types/react-grid-layout": "1.3.5",
"@types/react-highlight-words": "0.20.0",
"@types/react-resizable": "3.0.8",
"@types/react-router": "5.1.20",
"@types/react-router-dom": "5.3.3",
"@types/react-table": "7.7.20",
"@types/react-transition-group": "4.4.12",
"@types/react-virtualized-auto-sizer": "1.0.8",
"@types/react-window": "1.8.8",
"@types/react-window-infinite-loader": "^1",
"@types/redux-mock-store": "1.5.0",
"@types/semver": "7.7.1",
"@types/slate": "0.47.11",
"@types/slate-plain-serializer": "0.7.5",
"@types/slate-react": "0.22.9",
"@types/swagger-ui-react": "5.18.0",
"@types/systemjs": "6.15.3",
"@types/uuid": "10.0.0",
"@types/webpack-assets-manifest": "^5",
"@types/webpack-env": "^1.18.4",
"@types/yargs": "17.0.33",
"@typescript-eslint/eslint-plugin": "8.38.0",
"@typescript-eslint/parser": "8.38.0",
"autoprefixer": "10.4.21",
"babel-loader": "10.0.0",
"blob-polyfill": "9.0.20240710",
"browserslist": "^4.21.4",
"chance": "^1.1.13",
"chrome-remote-interface": "0.33.3",
"codeowners": "^5.1.1",
"confusing-browser-globals": "^1.0.11",
"copy-webpack-plugin": "13.0.0",
"core-js": "3.44.0",
"crashme": "0.0.15",
"css-loader": "7.1.2",
"css-minimizer-webpack-plugin": "7.0.2",
"cypress": "14.3.2",
"cypress-file-upload": "5.0.8",
"cypress-recurse": "^1.35.3",
"enquirer": "^2.4.1",
"esbuild": "0.25.8",
"esbuild-loader": "4.3.0",
"esbuild-plugin-browserslist": "^1.0.0",
"eslint": "9.32.0",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jest": "29.0.1",
"eslint-plugin-jest-dom": "^5.4.0",
"eslint-plugin-jsdoc": "52.0.2",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-lodash": "8.0.0",
"eslint-plugin-no-barrel-files": "^1.1.1",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
"eslint-plugin-react-prefer-function-component": "4.0.1",
"eslint-plugin-testing-library": "^7.0.0",
"eslint-plugin-unicorn": "^56.0.0",
"eslint-scope": "^8.1.0",
"eslint-webpack-plugin": "5.0.2",
"expose-loader": "5.0.1",
"fishery": "^2.2.2",
"fork-ts-checker-webpack-plugin": "9.1.0",
"github-codeowners": "^0.2.1",
"glob": "11.1.0",
"html-loader": "5.1.0",
"html-webpack-plugin": "5.6.3",
"http-server": "14.1.1",
"i18next-cli": "^1.24.22",
"ini": "^5.0.0",
"jest": "29.7.0",
"jest-canvas-mock": "2.5.2",
"jest-date-mock": "1.0.10",
"jest-environment-jsdom": "29.7.0",
"jest-fail-on-console": "3.3.1",
"jest-junit": "16.0.0",
"jest-matcher-utils": "29.7.0",
"jest-monocart-coverage": "^1.1.1",
"jest-watch-typeahead": "^2.2.2",
"jimp": "^1.6.0",
"jsdom-testing-mocks": "^1.13.1",
"lerna": "8.2.3",
"mini-css-extract-plugin": "2.9.2",
"msw": "2.10.4",
"mutationobserver-shim": "0.3.7",
"node-notifier": "10.0.1",
"nx": "21.3.11",
"open": "^10.2.0",
"ora": "^9.0.0",
"pa11y-ci": "^4.0.0",
"pdf-parse": "^1.1.1",
"postcss": "8.5.6",
"postcss-loader": "8.1.1",
"postcss-reporter": "7.1.0",
"postcss-scss": "4.0.9",
"prettier": "3.6.2",
"prom-client": "^15.1.3",
"publint": "^0.3.12",
"react-refresh": "0.14.0",
"react-select-event": "5.5.1",
"redux-mock-store": "1.5.5",
"rimraf": "6.0.1",
"sass": "1.89.2",
"sass-loader": "16.0.5",
"smtp-tester": "^2.1.0",
"style-loader": "4.0.0",
"stylelint": "16.23.0",
"stylelint-config-sass-guidelines": "12.1.0",
"testing-library-selector": "0.3.1",
"tracelib": "1.0.1",
"ts-jest": "29.4.0",
"ts-node": "10.9.2",
"typescript": "5.9.2",
"typescript-json-schema": "^0.65.1",
"webpack": "5.101.0",
"webpack-assets-manifest": "^5.1.0",
"webpack-cli": "6.0.1",
"webpack-livereload-plugin": "3.0.2",
"webpack-manifest-plugin": "5.0.1",
"webpack-merge": "6.0.1",
"webpack-subresource-integrity": "^5.2.0-rc.1",
"webpackbar": "^7.0.0",
"yaml": "^2.0.0",
"yargs": "^18.0.0",
"zod": "^4.0.0"
},
"dependencies": {
"@bsull/augurs": "^0.10.0",
"@emotion/css": "11.13.5",
"@emotion/react": "11.14.0",
"@fingerprintjs/fingerprintjs": "^3.4.2",
"@floating-ui/react": "0.27.16",
"@formatjs/intl-durationformat": "^0.7.0",
"@glideapps/glide-data-grid": "^6.0.0",
"@grafana/alerting": "workspace:*",
"@grafana/api-clients": "workspace:*",
"@grafana/assistant": "0.1.4",
"@grafana/aws-sdk": "0.8.3",
"@grafana/azure-sdk": "0.0.8",
"@grafana/data": "workspace:*",
"@grafana/e2e-selectors": "workspace:*",
"@grafana/faro-core": "^1.19.0",
"@grafana/faro-web-sdk": "^1.19.0",
"@grafana/faro-web-tracing": "^1.19.0",
"@grafana/flamegraph": "workspace:*",
"@grafana/google-sdk": "0.3.5",
"@grafana/i18n": "workspace:*",
"@grafana/lezer-logql": "0.2.9",
"@grafana/llm": "1.0.1",
"@grafana/monaco-logql": "^0.0.8",
"@grafana/o11y-ds-frontend": "workspace:*",
"@grafana/plugin-ui": "^0.11.1",
"@grafana/prometheus": "workspace:*",
"@grafana/runtime": "workspace:*",
"@grafana/scenes": "6.52.0",
"@grafana/scenes-react": "6.52.0",
"@grafana/schema": "workspace:*",
"@grafana/sql": "workspace:*",
"@grafana/ui": "workspace:*",
"@hello-pangea/dnd": "18.0.1",
"@kusto/monaco-kusto": "^10.0.0",
"@leeoniya/ufuzzy": "1.0.19",
"@lezer/common": "1.3.0",
"@lezer/highlight": "1.2.3",
"@lezer/lr": "1.4.3",
"@locker/near-membrane-dom": "0.14.0",
"@locker/near-membrane-shared": "0.14.0",
"@locker/near-membrane-shared-dom": "0.14.0",
"@msagl/core": "^1.1.19",
"@msagl/parser": "^1.1.19",
"@openfeature/ofrep-web-provider": "^0.3.3",
"@openfeature/web-sdk": "^1.6.1",
"@opentelemetry/api": "1.9.0",
"@opentelemetry/exporter-collector": "0.25.0",
"@opentelemetry/semantic-conventions": "1.38.0",
"@popperjs/core": "2.11.8",
"@rc-component/slider": "1.0.1",
"@rc-component/tree": "1.1.0",
"@react-aria/dialog": "3.5.31",
"@react-aria/focus": "3.21.2",
"@react-aria/overlays": "3.30.0",
"@react-aria/utils": "3.31.0",
"@react-awesome-query-builder/ui": "6.6.15",
"@reduxjs/toolkit": "2.10.1",
"@visx/event": "3.12.0",
"@visx/gradient": "3.12.0",
"@visx/group": "3.12.0",
"@visx/shape": "3.12.0",
"@visx/tooltip": "3.12.0",
"@welldone-software/why-did-you-render": "8.0.3",
"ansicolor": "2.0.3",
"baron": "3.0.3",
"brace": "0.11.1",
"centrifuge": "5.5.2",
"classnames": "2.5.1",
"combokeys": "^3.0.0",
"comlink": "4.4.2",
"common-tags": "1.8.2",
"croner": "^9.0.0",
"d3": "7.9.0",
"d3-force": "3.0.0",
"d3-scale-chromatic": "3.1.0",
"dangerously-set-html-content": "1.1.0",
"date-fns": "4.1.0",
"debounce-promise": "3.1.2",
"diff": "^8.0.0",
"downsample": "1.4.0",
"fast-deep-equal": "^3.1.3",
"fast-json-patch": "3.1.1",
"file-saver": "2.0.5",
"history": "4.10.1",
"i18next": "^25.0.0",
"i18next-browser-languagedetector": "^8.0.0",
"i18next-pseudo": "^2.2.1",
"immer": "10.2.0",
"immutable": "5.1.4",
"infinite-viewer": "^0.29.1",
"ix": "^7.0.0",
"jquery": "3.7.1",
"js-yaml": "^4.1.0",
"json-markup": "^1.1.0",
"json-source-map": "0.6.1",
"jsurl": "^0.1.5",
"kbar": "0.1.0-beta.48",
"leven": "^4.0.0",
"lodash": "4.17.21",
"logfmt": "^1.3.2",
"lossless-json": "^4.1.1",
"lru-cache": "11.2.2",
"lru-memoize": "^1.1.0",
"lucene": "^2.1.1",
"marked": "16.3.0",
"memoize-one": "6.0.0",
"micro-memoize": "^4.1.2",
"ml-regression-polynomial": "^3.0.0",
"ml-regression-simple-linear": "^3.0.0",
"moment": "2.30.1",
"moment-timezone": "0.5.47",
"monaco-editor": "0.34.1",
"moveable": "0.53.0",
"nanoid": "^5.0.9",
"node-forge": "^1.3.1",
"ol": "10.7.0",
"ol-ext": "4.0.36",
"ol-mapbox-style": "^13.0.1",
"pluralize": "^8.0.0",
"prismjs": "1.30.0",
"re-resizable": "6.11.2",
"react": "18.3.1",
"react-diff-viewer-continued": "^3.4.0",
"react-dom": "18.3.1",
"react-draggable": "4.5.0",
"react-dropzone": "^14.2.3",
"react-grid-layout": "patch:react-grid-layout@npm%3A1.4.4#~/.yarn/patches/react-grid-layout-npm-1.4.4-4024c5395b.patch",
"react-highlight-words": "0.21.0",
"react-hook-form": "^7.49.2",
"react-i18next": "^15.0.0",
"react-inlinesvg": "4.2.0",
"react-loading-skeleton": "3.5.0",
"react-moveable": "0.56.0",
"react-redux": "9.2.0",
"react-resizable": "3.0.5",
"react-responsive-carousel": "^3.2.23",
"react-router": "5.3.4",
"react-router-dom": "5.3.4",
"react-router-dom-v5-compat": "^6.26.1",
"react-select": "5.10.2",
"react-split-pane": "0.1.92",
"react-table": "7.8.0",
"react-transition-group": "4.4.5",
"react-use": "17.6.0",
"react-virtual": "2.10.4",
"react-virtualized-auto-sizer": "1.0.26",
"react-window": "1.8.11",
"react-window-infinite-loader": "1.0.10",
"reduce-reducers": "^1.0.4",
"redux": "5.0.1",
"redux-thunk": "3.1.0",
"regenerator-runtime": "0.14.1",
"reselect": "5.1.1",
"rxjs": "7.8.2",
"selecto": "1.26.3",
"semver": "7.7.3",
"slate": "0.47.9",
"slate-plain-serializer": "0.7.13",
"slate-react": "0.22.10",
"swagger-ui-react": "5.30.3",
"symbol-observable": "4.0.0",
"systemjs": "6.15.1",
"tslib": "2.8.1",
"tween-functions": "^1.2.0",
"type-fest": "^4.18.2",
"uplot": "1.6.32",
"uuid": "11.1.0",
"vis-data": "^8.0.0",
"vis-network": "10.0.2",
"whatwg-fetch": "3.6.20"
},
"resolutions": {
"underscore": "1.13.7",
"@types/slate": "0.47.11",
"semver@npm:~7.3.5": "^7.3.5",
"debug@npm:^0.7.2": "2.6.9",
"debug@npm:^0.7.4": "2.6.9",
"slate-dev-environment@^0.2.2": "patch:slate-dev-environment@npm:0.2.5#.yarn/patches/slate-dev-environment-npm-0.2.5-9aeb7da7b5.patch",
"react-split-pane@0.1.92": "patch:react-split-pane@npm:0.1.92#.yarn/patches/react-split-pane-npm-0.1.92-93dbf51dff.patch",
"history@4.10.1": "patch:history@npm%3A4.10.1#./.yarn/patches/history-npm-4.10.1-ee217563ae.patch",
"redux": "^5.0.0",
"react-grid-layout": "patch:react-grid-layout@npm%3A1.4.4#~/.yarn/patches/react-grid-layout-npm-1.4.4-4024c5395b.patch",
"@grafana/plugin-e2e/@grafana/e2e-selectors": "workspace:*",
"@grafana/scenes/@grafana/e2e-selectors": "workspace:*",
"@grafana/scenes-react/@grafana/e2e-selectors": "workspace:*",
"swagger-ui-react/dompurify": "3.3.0",
"refractor/prismjs": "^1.27.0",
"@mapbox/jsonlint-lines-primitives": "github:mapbox/jsonlint#commit=e31b7289baedf3e1000d7ae7edd42268212c9954",
"get-document": "github:webmodules/get-document#commit=a04ccb499d6e0433a368c3bb150b4899b698461f",
"gitconfiglocal": "2.1.0",
"tmp@npm:^0.0.33": "~0.2.1",
"js-yaml@npm:4.1.0": "^4.1.0",
"js-yaml@npm:=4.1.0": "^4.1.0",
"nodemailer": "7.0.11",
"@storybook/core@npm:8.6.2": "patch:@storybook/core@npm%3A8.6.2#~/.yarn/patches/@storybook-core-npm-8.6.2-8c752112c0.patch"
},
"workspaces": {
"packages": [
"packages/*",
"public/app/plugins/*/*",
"e2e-playwright/test-plugins/*"
]
},
"engines": {
"node": ">= 22 <25"
},
"packageManager": "yarn@4.11.0",
"dependenciesMeta": {
"cypress": {
"built": true
},
"msw": {
"built": true
},
"prettier@3.6.2": {
"unplugged": true
}
},
"msw": {
"workerDirectory": [
"public"
]
}
}