Chore: Add 'import/no-extraneous-dependencies' rule for packages (#111931)

This commit is contained in:
Tom Ratcliffe
2025-10-21 12:55:57 +01:00
committed by GitHub
parent 29f3a1f1b2
commit a651fb1348
11 changed files with 87 additions and 45 deletions
+2 -1
View File
@@ -275,10 +275,11 @@ module.exports = [
{
// No NPM package should import from @grafana/*/internal because it does not exist
// outside of this repo - they're not published to NPM.
name: 'grafana/packages-overrides',
name: 'grafana/packages',
files: ['packages/**/*.{ts,tsx}'],
ignores: [],
rules: {
'import/no-extraneous-dependencies': ['error', { includeInternal: true }],
'no-restricted-imports': [
'error',
withBaseRestrictedImportsConfig({
-3
View File
@@ -161,7 +161,6 @@
"@types/slate-react": "0.22.9",
"@types/swagger-ui-react": "5.18.0",
"@types/systemjs": "6.15.3",
"@types/tinycolor2": "1.4.6",
"@types/uuid": "10.0.0",
"@types/webpack-assets-manifest": "^5",
"@types/webpack-env": "^1.18.4",
@@ -251,7 +250,6 @@
"style-loader": "4.0.0",
"stylelint": "16.23.0",
"stylelint-config-sass-guidelines": "12.1.0",
"terser-webpack-plugin": "5.3.14",
"testing-library-selector": "0.3.1",
"tracelib": "1.0.1",
"ts-jest": "29.4.0",
@@ -430,7 +428,6 @@
"swagger-ui-react": "5.28.1",
"symbol-observable": "4.0.0",
"systemjs": "6.15.1",
"tinycolor2": "1.6.0",
"tslib": "2.8.1",
"tween-functions": "^1.2.0",
"type-fest": "^4.18.2",
+2
View File
@@ -84,7 +84,9 @@
"xss": "^1.0.14"
},
"devDependencies": {
"@grafana/scenes": "6.38.0",
"@rollup/plugin-node-resolve": "16.0.1",
"@testing-library/react": "16.3.0",
"@types/history": "4.7.11",
"@types/lodash": "4.17.20",
"@types/node": "22.17.0",
@@ -1,18 +1,11 @@
import {
ConfigOverrideRule,
FieldColorModeId,
FieldConfig,
FieldConfigProperty,
FieldConfigSource,
PanelPlugin,
standardEditorsRegistry,
standardFieldConfigEditorRegistry,
StandardOptionConfig,
ThresholdsMode,
} from '@grafana/data';
import { getPanelPlugin, mockStandardFieldConfigOptions } from '../../test';
import { standardEditorsRegistry, standardFieldConfigEditorRegistry } from '../field/standardFieldConfigEditorRegistry';
import { FieldConfig } from '../types/dataFrame';
import { FieldColorModeId } from '../types/fieldColor';
import { ConfigOverrideRule, FieldConfigProperty, FieldConfigSource } from '../types/fieldOverrides';
import { ThresholdsMode } from '../types/thresholds';
import { PanelPlugin, StandardOptionConfig } from './PanelPlugin';
import { getPanelOptionsWithDefaults, restoreCustomOverrideRules } from './getPanelOptionsWithDefaults';
standardFieldConfigEditorRegistry.setInit(() => mockStandardFieldConfigOptions());
@@ -1,4 +1,5 @@
import { PanelPlugin, PluginMeta, PluginType } from '@grafana/data';
import { PanelPlugin } from '../panel/PanelPlugin';
import { PluginMeta, PluginType } from '../types/plugin';
import { throwIfAngular } from './throwIfAngular';
@@ -4,6 +4,8 @@
"private": true,
"version": "12.3.0-pre",
"dependencies": {
"react": "18.3.1",
"terser-webpack-plugin": "5.3.14",
"tslib": "2.8.1"
},
"type": "module",
@@ -13,6 +15,7 @@
"@swc/helpers": "^0.5.0",
"@swc/jest": "^0.2.26",
"@types/eslint": "9.6.1",
"@types/react": "18.3.18",
"@types/webpack-bundle-analyzer": "^4.7.0",
"copy-webpack-plugin": "13.0.0",
"eslint": "9.32.0",
+1
View File
@@ -67,6 +67,7 @@
"lodash": "4.17.21",
"moment": "2.30.1",
"moment-timezone": "0.5.47",
"monaco-editor": "0.34.1",
"monaco-promql": "1.8.0",
"pluralize": "8.0.0",
"prismjs": "1.30.0",
+1
View File
@@ -41,6 +41,7 @@
"glob": "^11.0.0",
"rimraf": "6.0.1",
"rollup": "^4.22.4",
"rollup-plugin-copy": "3.5.0",
"rollup-plugin-esbuild": "6.2.1",
"rollup-plugin-node-externals": "^8.0.0",
"typescript": "5.9.2"
+7 -1
View File
@@ -53,12 +53,18 @@
"test:ci": "jest --maxWorkers 4"
},
"dependencies": {
"msw": "2.10.4"
"chance": "^1.1.13",
"jest-matcher-utils": "29.7.0",
"lodash": "4.17.21",
"msw": "2.10.4",
"rxjs": "7.8.2"
},
"devDependencies": {
"@swc/core": "1.13.3",
"@swc/jest": "^0.2.26",
"@types/chance": "^1.1.7",
"@types/jest": "29.5.14",
"@types/lodash": "4.17.20",
"@types/node": "22.17.0",
"jest": "29.7.0",
"typescript": "5.9.2"
+1
View File
@@ -1,3 +1,4 @@
/* eslint-disable import/no-extraneous-dependencies */
// This file contains the common parts of the rollup configuration that are shared across multiple packages.
import nodeResolve from '@rollup/plugin-node-resolve';
import { dirname, resolve } from 'node:path';
+62 -26
View File
@@ -2324,15 +2324,15 @@ __metadata:
languageName: node
linkType: hard
"@formatjs/ecma402-abstract@npm:2.3.6":
version: 2.3.6
resolution: "@formatjs/ecma402-abstract@npm:2.3.6"
"@formatjs/ecma402-abstract@npm:2.3.4":
version: 2.3.4
resolution: "@formatjs/ecma402-abstract@npm:2.3.4"
dependencies:
"@formatjs/fast-memoize": "npm:2.2.7"
"@formatjs/intl-localematcher": "npm:0.6.2"
"@formatjs/intl-localematcher": "npm:0.6.1"
decimal.js: "npm:^10.4.3"
tslib: "npm:^2.8.0"
checksum: 10/30b1b5cd6b62ba46245f934429936592df5500bc1b089dc92dd49c826757b873dd92c305dcfe370701e4df6b057bf007782113abb9b65db550d73be4961718bc
checksum: 10/573971ffc291096a4b9fcc80b4708124e89bf2e3ac50e0f78b41eb797e9aa1b842f4dc3665e4467a853c738386821769d9e40408a1d25bc73323a1f057a16cf2
languageName: node
linkType: hard
@@ -2376,13 +2376,13 @@ __metadata:
linkType: hard
"@formatjs/intl-durationformat@npm:^0.7.0":
version: 0.7.6
resolution: "@formatjs/intl-durationformat@npm:0.7.6"
version: 0.7.4
resolution: "@formatjs/intl-durationformat@npm:0.7.4"
dependencies:
"@formatjs/ecma402-abstract": "npm:2.3.6"
"@formatjs/intl-localematcher": "npm:0.6.2"
"@formatjs/ecma402-abstract": "npm:2.3.4"
"@formatjs/intl-localematcher": "npm:0.6.1"
tslib: "npm:^2.8.0"
checksum: 10/442236ba85bcd9cb7296c43a708271fa09f110b1ca9d5899066d00812fc2965eaeaec6b5240be421b80daba62860352131088449ba0fcd2061f671cec6240f0b
checksum: 10/d62273ecd635475ca91e9b501301f3f396403fa91b584c550734b19b2d194ba1316b27303fed985c1d42ae933d54eb220da6540edfdf376b0d9371ecfd0d4e15
languageName: node
linkType: hard
@@ -2395,12 +2395,12 @@ __metadata:
languageName: node
linkType: hard
"@formatjs/intl-localematcher@npm:0.6.2":
version: 0.6.2
resolution: "@formatjs/intl-localematcher@npm:0.6.2"
"@formatjs/intl-localematcher@npm:0.6.1":
version: 0.6.1
resolution: "@formatjs/intl-localematcher@npm:0.6.1"
dependencies:
tslib: "npm:^2.8.0"
checksum: 10/eb12a7f5367bbecdfafc20d7f005559ce840f420e970f425c5213d35e94e86dfe75bde03464971a26494bf8427d4961269db22ecad2834f2a19d888b5d9cc064
checksum: 10/c7b3bc8395d18670677f207b2fd107561fff5d6394a9b4273c29e0bea920300ec3a2eefead600ebb7761c04a770cada28f78ac059f84d00520bfb57a9db36998
languageName: node
linkType: hard
@@ -3050,9 +3050,11 @@ __metadata:
dependencies:
"@braintree/sanitize-url": "npm:7.0.1"
"@grafana/i18n": "npm:12.3.0-pre"
"@grafana/scenes": "npm:6.38.0"
"@grafana/schema": "npm:12.3.0-pre"
"@leeoniya/ufuzzy": "npm:1.0.19"
"@rollup/plugin-node-resolve": "npm:16.0.1"
"@testing-library/react": "npm:16.3.0"
"@types/d3-interpolate": "npm:^3.0.0"
"@types/history": "npm:4.7.11"
"@types/lodash": "npm:4.17.20"
@@ -3356,6 +3358,7 @@ __metadata:
"@swc/helpers": "npm:^0.5.0"
"@swc/jest": "npm:^0.2.26"
"@types/eslint": "npm:9.6.1"
"@types/react": "npm:18.3.18"
"@types/webpack-bundle-analyzer": "npm:^4.7.0"
copy-webpack-plugin: "npm:13.0.0"
eslint: "npm:9.32.0"
@@ -3366,8 +3369,10 @@ __metadata:
imports-loader: "npm:^5.0.0"
jest-canvas-mock: "npm:2.5.2"
jest-environment-jsdom: "npm:29.7.0"
react: "npm:18.3.1"
replace-in-file-webpack-plugin: "npm:1.0.6"
swc-loader: "npm:0.2.6"
terser-webpack-plugin: "npm:5.3.14"
tslib: "npm:2.8.1"
typescript: "npm:5.9.2"
webpack: "npm:5.101.0"
@@ -3465,6 +3470,7 @@ __metadata:
lodash: "npm:4.17.21"
moment: "npm:2.30.1"
moment-timezone: "npm:0.5.47"
monaco-editor: "npm:0.34.1"
monaco-promql: "npm:1.8.0"
pluralize: "npm:8.0.0"
prismjs: "npm:1.30.0"
@@ -3553,6 +3559,32 @@ __metadata:
languageName: node
linkType: hard
"@grafana/scenes@npm:6.38.0":
version: 6.38.0
resolution: "@grafana/scenes@npm:6.38.0"
dependencies:
"@floating-ui/react": "npm:^0.26.16"
"@leeoniya/ufuzzy": "npm:^1.0.16"
"@tanstack/react-virtual": "npm:^3.9.0"
i18next-parser: "npm:9.3.0"
react-grid-layout: "npm:1.3.4"
react-use: "npm:17.5.0"
react-virtualized-auto-sizer: "npm:1.0.24"
uuid: "npm:^9.0.0"
peerDependencies:
"@grafana/data": ">=10.4"
"@grafana/e2e-selectors": ">=10.4"
"@grafana/i18n": "*"
"@grafana/runtime": ">=10.4"
"@grafana/schema": ">=10.4"
"@grafana/ui": ">=10.4"
react: ^18.0.0
react-dom: ^18.0.0
react-router-dom: ^6.28.0
checksum: 10/9372896e76271becb80e4a8691d8c51bc3b54b54d98c82f2953134f407a7370dc66a3e8afaa508003147e2f1b5b08d0ddbb6b1616a3a3ab3f7ad69fb941dd998
languageName: node
linkType: hard
"@grafana/scenes@npm:6.39.8, @grafana/scenes@npm:^6.39.8":
version: 6.39.8
resolution: "@grafana/scenes@npm:6.39.8"
@@ -3588,6 +3620,7 @@ __metadata:
glob: "npm:^11.0.0"
rimraf: "npm:6.0.1"
rollup: "npm:^4.22.4"
rollup-plugin-copy: "npm:3.5.0"
rollup-plugin-esbuild: "npm:6.2.1"
rollup-plugin-node-externals: "npm:^8.0.0"
tslib: "npm:2.8.1"
@@ -3646,10 +3679,16 @@ __metadata:
dependencies:
"@swc/core": "npm:1.13.3"
"@swc/jest": "npm:^0.2.26"
"@types/chance": "npm:^1.1.7"
"@types/jest": "npm:29.5.14"
"@types/lodash": "npm:4.17.20"
"@types/node": "npm:22.17.0"
chance: "npm:^1.1.13"
jest: "npm:29.7.0"
jest-matcher-utils: "npm:29.7.0"
lodash: "npm:4.17.21"
msw: "npm:2.10.4"
rxjs: "npm:7.8.2"
typescript: "npm:5.9.2"
languageName: unknown
linkType: soft
@@ -5765,9 +5804,9 @@ __metadata:
linkType: hard
"@openfeature/core@npm:^1.9.0":
version: 1.9.1
resolution: "@openfeature/core@npm:1.9.1"
checksum: 10/6099e16b1b4cd6e3c45c05ab4acd44c9cb4ab501b676ab6f3e77f0be1b56abc7506c5629187381333a02975d315d831e0905582435b356d9676255e72a465899
version: 1.9.0
resolution: "@openfeature/core@npm:1.9.0"
checksum: 10/c6d20edc09053afd99752fe46d8328158680950bca4b86679f67f79249d7226eea127b31fffdc38e26ecb729f2bab5a4a5a7c1db708ae76b7fbbac68cd56f094
languageName: node
linkType: hard
@@ -5792,11 +5831,11 @@ __metadata:
linkType: hard
"@openfeature/web-sdk@npm:^1.6.1":
version: 1.6.2
resolution: "@openfeature/web-sdk@npm:1.6.2"
version: 1.6.1
resolution: "@openfeature/web-sdk@npm:1.6.1"
peerDependencies:
"@openfeature/core": ^1.9.0
checksum: 10/0fcc0ef76ff51d4725a00ff07755b21941b647f775d1ff04fc3d973143e78c909ccba485f582fcbc7f6201f42c795c85bcb103c43d64924fedf13ea517f625ac
checksum: 10/8bd7d1ea386e21cdd7492cab2fd1d2b138b4e6a376a4c0a40244633e5955f6452039bc2633fc5230bd7b494506a4137ba7210d40850634f9618f77a0ee435f9d
languageName: node
linkType: hard
@@ -18400,7 +18439,6 @@ __metadata:
"@types/slate-react": "npm:0.22.9"
"@types/swagger-ui-react": "npm:5.18.0"
"@types/systemjs": "npm:6.15.3"
"@types/tinycolor2": "npm:1.4.6"
"@types/uuid": "npm:10.0.0"
"@types/webpack-assets-manifest": "npm:^5"
"@types/webpack-env": "npm:^1.18.4"
@@ -18595,9 +18633,7 @@ __metadata:
swagger-ui-react: "npm:5.28.1"
symbol-observable: "npm:4.0.0"
systemjs: "npm:6.15.1"
terser-webpack-plugin: "npm:5.3.14"
testing-library-selector: "npm:0.3.1"
tinycolor2: "npm:1.6.0"
tracelib: "npm:1.0.1"
ts-jest: "npm:29.4.0"
ts-node: "npm:10.9.2"
@@ -23580,11 +23616,11 @@ __metadata:
linkType: hard
"nanoid@npm:^5.0.9":
version: 5.1.6
resolution: "nanoid@npm:5.1.6"
version: 5.1.5
resolution: "nanoid@npm:5.1.5"
bin:
nanoid: bin/nanoid.js
checksum: 10/4109dbcf596d7f297a9b42f459b8f01694a03ebbdd2f41408d963ad54e5ec7234cbe7b4acad137751f31add11bb4fb3415a3e688082516745812811f05570014
checksum: 10/6de2d006b51c983be385ef7ee285f7f2a57bd96f8c0ca881c4111461644bd81fafc2544f8e07cb834ca0f3e0f3f676c1fe78052183f008b0809efe6e273119f5
languageName: node
linkType: hard