This is an automated email from the ASF dual-hosted git repository.

maximebeauchemin pushed a commit to branch fix_critical_npm
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 3912d7c91273d4ca6c3bcb44e83778effd954e7d
Author: Maxime Beauchemin <[email protected]>
AuthorDate: Tue Jan 28 22:50:12 2025 -0800

    fix: false negative on critical security related to 
eslint-plugin-translation-vars
    
    Finally addressing false negative npm "critical" issue realted to the 
`eslint-plugin-translation-vars` in relation to a package that got malicious at 
some point. It appears that @stephenLYZ fixed it by importing the source from 
the pre-vulnerability package into our repo under 
`tools/eslint-plugin-translation-vars`. Now I believe it's been reporting a 
false negative since then.
    
    Anyhow, renaming the `tools/` folder that contains 2 custom lint rules to 
`eslint-rules`, rename things, point them all to the right place and this is 
this PR.
---
 superset-frontend/.eslintrc.js                     |   6 +-
 .../eslint-plugin-i18n-strings}/index.js           |   0
 .../no-template-vars.test.js                       |   0
 .../eslint-plugin-i18n-strings}/package.json       |   2 +-
 .../eslint-plugin-theme-colors/colors.js           |   0
 .../eslint-plugin-theme-colors/index.js            |   0
 .../eslint-plugin-theme-colors/package.json        |   0
 superset-frontend/package-lock.json                | 104 ++++++++-------------
 superset-frontend/package.json                     |   5 +-
 9 files changed, 46 insertions(+), 71 deletions(-)

diff --git a/superset-frontend/.eslintrc.js b/superset-frontend/.eslintrc.js
index 5f5acaa6d6..1c57edf515 100644
--- a/superset-frontend/.eslintrc.js
+++ b/superset-frontend/.eslintrc.js
@@ -74,7 +74,7 @@ module.exports = {
     'file-progress',
     'lodash',
     'theme-colors',
-    'translation-vars',
+    'i18n-strings',
     'react-prefer-function-component',
     'prettier',
   ],
@@ -284,7 +284,7 @@ module.exports = {
       ],
       rules: {
         'theme-colors/no-literal-colors': 0,
-        'translation-vars/no-template-vars': 0,
+        'i18n-strings/no-template-vars': 0,
         'no-restricted-imports': 0,
         'react/no-void-elements': 0,
       },
@@ -292,7 +292,7 @@ module.exports = {
   ],
   rules: {
     'theme-colors/no-literal-colors': 'error',
-    'translation-vars/no-template-vars': ['error', true],
+    'i18n-strings/no-template-vars': ['error', true],
     camelcase: [
       'error',
       {
diff --git a/superset-frontend/tools/eslint-plugin-translation-vars/index.js 
b/superset-frontend/eslint-rules/eslint-plugin-i18n-strings/index.js
similarity index 100%
rename from superset-frontend/tools/eslint-plugin-translation-vars/index.js
rename to superset-frontend/eslint-rules/eslint-plugin-i18n-strings/index.js
diff --git 
a/superset-frontend/tools/eslint-plugin-translation-vars/no-template-vars.test.js
 
b/superset-frontend/eslint-rules/eslint-plugin-i18n-strings/no-template-vars.test.js
similarity index 100%
rename from 
superset-frontend/tools/eslint-plugin-translation-vars/no-template-vars.test.js
rename to 
superset-frontend/eslint-rules/eslint-plugin-i18n-strings/no-template-vars.test.js
diff --git 
a/superset-frontend/tools/eslint-plugin-translation-vars/package.json 
b/superset-frontend/eslint-rules/eslint-plugin-i18n-strings/package.json
similarity index 87%
rename from superset-frontend/tools/eslint-plugin-translation-vars/package.json
rename to superset-frontend/eslint-rules/eslint-plugin-i18n-strings/package.json
index 83e8c184d3..efbf7be7a9 100644
--- a/superset-frontend/tools/eslint-plugin-translation-vars/package.json
+++ b/superset-frontend/eslint-rules/eslint-plugin-i18n-strings/package.json
@@ -1,5 +1,5 @@
 {
-  "name": "eslint-plugin-translation-vars",
+  "name": "eslint-plugin-i18n-strings",
   "version": "1.0.0",
   "description": "Warns about translation variables",
   "main": "index.js",
diff --git a/superset-frontend/tools/eslint-plugin-theme-colors/colors.js 
b/superset-frontend/eslint-rules/eslint-plugin-theme-colors/colors.js
similarity index 100%
rename from superset-frontend/tools/eslint-plugin-theme-colors/colors.js
rename to superset-frontend/eslint-rules/eslint-plugin-theme-colors/colors.js
diff --git a/superset-frontend/tools/eslint-plugin-theme-colors/index.js 
b/superset-frontend/eslint-rules/eslint-plugin-theme-colors/index.js
similarity index 100%
rename from superset-frontend/tools/eslint-plugin-theme-colors/index.js
rename to superset-frontend/eslint-rules/eslint-plugin-theme-colors/index.js
diff --git a/superset-frontend/tools/eslint-plugin-theme-colors/package.json 
b/superset-frontend/eslint-rules/eslint-plugin-theme-colors/package.json
similarity index 100%
rename from superset-frontend/tools/eslint-plugin-theme-colors/package.json
rename to superset-frontend/eslint-rules/eslint-plugin-theme-colors/package.json
diff --git a/superset-frontend/package-lock.json 
b/superset-frontend/package-lock.json
index 8e09981990..7419836a83 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -70,6 +70,7 @@
         "dom-to-pdf": "^0.3.2",
         "echarts": "^5.6.0",
         "emotion-rgba": "0.0.12",
+        "eslint-plugin-i18n-strings": 
"file:eslint-rules/eslint-plugin-i18n-strings",
         "fast-glob": "^3.3.2",
         "fs-extra": "^11.2.0",
         "fuse.js": "^7.0.0",
@@ -237,6 +238,7 @@
         "eslint": "^8.56.0",
         "eslint-config-airbnb": "^19.0.4",
         "eslint-config-prettier": "^7.2.0",
+        "eslint-i18n-plugin-strings": 
"file:eslint-rules/eslint-plugin-i18n-strings",
         "eslint-import-resolver-typescript": "^3.7.0",
         "eslint-plugin-cypress": "^3.6.0",
         "eslint-plugin-file-progress": "^1.5.0",
@@ -252,8 +254,7 @@
         "eslint-plugin-react-prefer-function-component": "^3.3.0",
         "eslint-plugin-storybook": "^0.8.0",
         "eslint-plugin-testing-library": "^6.4.0",
-        "eslint-plugin-theme-colors": "file:tools/eslint-plugin-theme-colors",
-        "eslint-plugin-translation-vars": 
"file:tools/eslint-plugin-translation-vars",
+        "eslint-plugin-theme-colors": 
"file:eslint-rules/eslint-plugin-theme-colors",
         "exports-loader": "^5.0.0",
         "fetch-mock": "^7.7.3",
         "fork-ts-checker-webpack-plugin": "^9.0.2",
@@ -305,6 +306,26 @@
         "npm": "^10.8.1"
       }
     },
+    "eslint-rules/eslint-i18n-strings": {
+      "version": "1.0.0",
+      "extraneous": true,
+      "license": "Apache-2.0",
+      "peerDependencies": {
+        "eslint": ">=0.8.0"
+      }
+    },
+    "eslint-rules/eslint-plugin-i18n-strings": {
+      "version": "1.0.0",
+      "license": "Apache-2.0",
+      "peerDependencies": {
+        "eslint": ">=0.8.0"
+      }
+    },
+    "eslint-rules/eslint-plugin-theme-colors": {
+      "version": "1.0.0",
+      "dev": true,
+      "license": "Apache-2.0"
+    },
     "node_modules/@adobe/css-tools": {
       "version": "4.4.1",
       "resolved": 
"https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz";,
@@ -4519,7 +4540,6 @@
       "version": "4.4.1",
       "resolved": 
"https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz";,
       "integrity": 
"sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "eslint-visitor-keys": "^3.4.3"
@@ -4538,7 +4558,6 @@
       "version": "3.4.3",
       "resolved": 
"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz";,
       "integrity": 
"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
-      "dev": true,
       "license": "Apache-2.0",
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -4551,7 +4570,6 @@
       "version": "4.12.1",
       "resolved": 
"https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz";,
       "integrity": 
"sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
-      "dev": true,
       "license": "MIT",
       "engines": {
         "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -4561,7 +4579,6 @@
       "version": "2.1.4",
       "resolved": 
"https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz";,
       "integrity": 
"sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "ajv": "^6.12.4",
@@ -4585,7 +4602,6 @@
       "version": "6.12.6",
       "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz";,
       "integrity": 
"sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "fast-deep-equal": "^3.1.1",
@@ -4602,14 +4618,12 @@
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz";,
       "integrity": 
"sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
-      "dev": true,
       "license": "Python-2.0"
     },
     "node_modules/@eslint/eslintrc/node_modules/globals": {
       "version": "13.24.0",
       "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz";,
       "integrity": 
"sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "type-fest": "^0.20.2"
@@ -4625,7 +4639,6 @@
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz";,
       "integrity": 
"sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "argparse": "^2.0.1"
@@ -4638,14 +4651,12 @@
       "version": "0.4.1",
       "resolved": 
"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";,
       "integrity": 
"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/@eslint/eslintrc/node_modules/type-fest": {
       "version": "0.20.2",
       "resolved": 
"https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz";,
       "integrity": 
"sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-      "dev": true,
       "license": "(MIT OR CC0-1.0)",
       "engines": {
         "node": ">=10"
@@ -4658,7 +4669,6 @@
       "version": "8.57.1",
       "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz";,
       "integrity": 
"sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
-      "dev": true,
       "license": "MIT",
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -4749,7 +4759,6 @@
       "resolved": 
"https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz";,
       "integrity": 
"sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
       "deprecated": "Use @eslint/config-array instead",
-      "dev": true,
       "license": "Apache-2.0",
       "dependencies": {
         "@humanwhocodes/object-schema": "^2.0.3",
@@ -4764,7 +4773,6 @@
       "version": "1.0.1",
       "resolved": 
"https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz";,
       "integrity": 
"sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
-      "dev": true,
       "license": "Apache-2.0",
       "engines": {
         "node": ">=12.22"
@@ -4779,7 +4787,6 @@
       "resolved": 
"https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz";,
       "integrity": 
"sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
       "deprecated": "Use @eslint/object-schema instead",
-      "dev": true,
       "license": "BSD-3-Clause"
     },
     "node_modules/@hutson/parse-repository-url": {
@@ -22325,7 +22332,6 @@
       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz";,
       "integrity": 
"sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
       "deprecated": "This version is no longer supported. Please see 
https://eslint.org/version-support for other options.",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.2.0",
@@ -22442,6 +22448,10 @@
         "eslint": ">=7.0.0"
       }
     },
+    "node_modules/eslint-i18n-plugin-strings": {
+      "resolved": "eslint-rules/eslint-plugin-i18n-strings",
+      "link": true
+    },
     "node_modules/eslint-import-resolver-node": {
       "version": "0.3.9",
       "resolved": 
"https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz";,
@@ -22609,6 +22619,10 @@
         "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
       }
     },
+    "node_modules/eslint-plugin-i18n-strings": {
+      "resolved": "eslint-rules/eslint-plugin-i18n-strings",
+      "link": true
+    },
     "node_modules/eslint-plugin-import": {
       "version": "2.31.0",
       "resolved": 
"https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz";,
@@ -23001,11 +23015,7 @@
       }
     },
     "node_modules/eslint-plugin-theme-colors": {
-      "resolved": "tools/eslint-plugin-theme-colors",
-      "link": true
-    },
-    "node_modules/eslint-plugin-translation-vars": {
-      "resolved": "tools/eslint-plugin-translation-vars",
+      "resolved": "eslint-rules/eslint-plugin-theme-colors",
       "link": true
     },
     "node_modules/eslint-scope": {
@@ -23046,7 +23056,6 @@
       "version": "6.12.6",
       "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz";,
       "integrity": 
"sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "fast-deep-equal": "^3.1.1",
@@ -23063,14 +23072,12 @@
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz";,
       "integrity": 
"sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
-      "dev": true,
       "license": "Python-2.0"
     },
     "node_modules/eslint/node_modules/chalk": {
       "version": "4.1.2",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz";,
       "integrity": 
"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "ansi-styles": "^4.1.0",
@@ -23087,7 +23094,6 @@
       "version": "7.2.2",
       "resolved": 
"https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz";,
       "integrity": 
"sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
-      "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
         "esrecurse": "^4.3.0",
@@ -23104,7 +23110,6 @@
       "version": "3.4.3",
       "resolved": 
"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz";,
       "integrity": 
"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
-      "dev": true,
       "license": "Apache-2.0",
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -23117,7 +23122,6 @@
       "version": "6.0.2",
       "resolved": 
"https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz";,
       "integrity": 
"sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
-      "dev": true,
       "license": "ISC",
       "dependencies": {
         "is-glob": "^4.0.3"
@@ -23130,7 +23134,6 @@
       "version": "13.24.0",
       "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz";,
       "integrity": 
"sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "type-fest": "^0.20.2"
@@ -23146,7 +23149,6 @@
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz";,
       "integrity": 
"sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "argparse": "^2.0.1"
@@ -23159,14 +23161,12 @@
       "version": "0.4.1",
       "resolved": 
"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";,
       "integrity": 
"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/eslint/node_modules/strip-ansi": {
       "version": "6.0.1",
       "resolved": 
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz";,
       "integrity": 
"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "ansi-regex": "^5.0.1"
@@ -23179,7 +23179,6 @@
       "version": "0.20.2",
       "resolved": 
"https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz";,
       "integrity": 
"sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-      "dev": true,
       "license": "(MIT OR CC0-1.0)",
       "engines": {
         "node": ">=10"
@@ -23201,7 +23200,6 @@
       "version": "9.6.1",
       "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz";,
       "integrity": 
"sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
-      "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
         "acorn": "^8.9.0",
@@ -23219,7 +23217,6 @@
       "version": "8.14.0",
       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz";,
       "integrity": 
"sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
-      "dev": true,
       "license": "MIT",
       "bin": {
         "acorn": "bin/acorn"
@@ -23232,7 +23229,6 @@
       "version": "3.4.3",
       "resolved": 
"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz";,
       "integrity": 
"sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
-      "dev": true,
       "license": "Apache-2.0",
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -23258,7 +23254,6 @@
       "version": "1.6.0",
       "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz";,
       "integrity": 
"sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
-      "dev": true,
       "license": "BSD-3-Clause",
       "dependencies": {
         "estraverse": "^5.1.0"
@@ -23271,7 +23266,6 @@
       "version": "4.3.0",
       "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz";,
       "integrity": 
"sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
-      "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
         "estraverse": "^5.2.0"
@@ -23849,7 +23843,6 @@
       "version": "2.1.0",
       "resolved": 
"https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";,
       "integrity": 
"sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/fast-json-stringify": {
@@ -24170,7 +24163,6 @@
       "version": "6.0.1",
       "resolved": 
"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz";,
       "integrity": 
"sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "flat-cache": "^3.0.4"
@@ -24559,7 +24551,6 @@
       "version": "3.2.0",
       "resolved": 
"https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz";,
       "integrity": 
"sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "flatted": "^3.2.9",
@@ -24575,7 +24566,6 @@
       "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";,
       "integrity": 
"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
       "deprecated": "Rimraf versions prior to v4 are no longer supported",
-      "dev": true,
       "license": "ISC",
       "dependencies": {
         "glob": "^7.1.3"
@@ -24591,7 +24581,6 @@
       "version": "3.3.2",
       "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz";,
       "integrity": 
"sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==",
-      "dev": true,
       "license": "ISC"
     },
     "node_modules/flow-parser": {
@@ -26411,7 +26400,6 @@
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz";,
       "integrity": 
"sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/grid-index": {
@@ -28006,7 +27994,6 @@
       "version": "0.1.4",
       "resolved": 
"https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";,
       "integrity": 
"sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
-      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">=0.8.19"
@@ -28874,7 +28861,6 @@
       "version": "3.0.3",
       "resolved": 
"https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz";,
       "integrity": 
"sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
-      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">=8"
@@ -32389,7 +32375,6 @@
       "version": "3.0.1",
       "resolved": 
"https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz";,
       "integrity": 
"sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/json-parse-better-errors": {
@@ -32458,7 +32443,6 @@
       "version": "1.0.1",
       "resolved": 
"https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";,
       "integrity": 
"sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/json-stringify-nice": {
@@ -32663,7 +32647,6 @@
       "version": "4.5.4",
       "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz";,
       "integrity": 
"sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "json-buffer": "3.0.1"
@@ -33539,7 +33522,6 @@
       "version": "0.4.1",
       "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz";,
       "integrity": 
"sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "prelude-ls": "^1.2.1",
@@ -33866,7 +33848,6 @@
       "version": "4.6.2",
       "resolved": 
"https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz";,
       "integrity": 
"sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/lodash.once": {
@@ -36287,7 +36268,6 @@
       "version": "1.4.0",
       "resolved": 
"https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";,
       "integrity": 
"sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/natural-compare-lite": {
@@ -38094,7 +38074,6 @@
       "version": "0.9.4",
       "resolved": 
"https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz";,
       "integrity": 
"sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "deep-is": "^0.1.3",
@@ -39856,7 +39835,6 @@
       "version": "1.2.1",
       "resolved": 
"https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz";,
       "integrity": 
"sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
-      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">= 0.8.0"
@@ -47440,7 +47418,6 @@
       "version": "3.1.1",
       "resolved": 
"https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";,
       "integrity": 
"sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
-      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">=8"
@@ -48870,7 +48847,6 @@
       "version": "0.4.0",
       "resolved": 
"https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz";,
       "integrity": 
"sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "prelude-ls": "^1.2.1"
@@ -49609,7 +49585,6 @@
       "version": "4.4.1",
       "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz";,
       "integrity": 
"sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
-      "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
         "punycode": "^2.1.0"
@@ -49619,7 +49594,6 @@
       "version": "2.3.1",
       "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz";,
       "integrity": 
"sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
-      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">=6"
@@ -53496,18 +53470,18 @@
         "d3-time": "1 - 2"
       }
     },
-    "tools/eslint-plugin-theme-colors": {
-      "version": "1.0.0",
-      "dev": true,
-      "license": "Apache-2.0"
-    },
-    "tools/eslint-plugin-translation-vars": {
+    "tools/eslint-i18n-strings": {
       "version": "1.0.0",
-      "dev": true,
+      "extraneous": true,
       "license": "Apache-2.0",
       "peerDependencies": {
         "eslint": ">=0.8.0"
       }
+    },
+    "tools/eslint-plugin-theme-colors": {
+      "version": "1.0.0",
+      "extraneous": true,
+      "license": "Apache-2.0"
     }
   }
 }
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 7fe0b30908..cd6cbb35ec 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -137,6 +137,7 @@
     "dom-to-pdf": "^0.3.2",
     "echarts": "^5.6.0",
     "emotion-rgba": "0.0.12",
+    "eslint-plugin-i18n-strings": 
"file:eslint-rules/eslint-plugin-i18n-strings",
     "fast-glob": "^3.3.2",
     "fs-extra": "^11.2.0",
     "fuse.js": "^7.0.0",
@@ -304,6 +305,7 @@
     "eslint": "^8.56.0",
     "eslint-config-airbnb": "^19.0.4",
     "eslint-config-prettier": "^7.2.0",
+    "eslint-i18n-plugin-strings": 
"file:eslint-rules/eslint-plugin-i18n-strings",
     "eslint-import-resolver-typescript": "^3.7.0",
     "eslint-plugin-cypress": "^3.6.0",
     "eslint-plugin-file-progress": "^1.5.0",
@@ -319,8 +321,7 @@
     "eslint-plugin-react-prefer-function-component": "^3.3.0",
     "eslint-plugin-storybook": "^0.8.0",
     "eslint-plugin-testing-library": "^6.4.0",
-    "eslint-plugin-theme-colors": "file:tools/eslint-plugin-theme-colors",
-    "eslint-plugin-translation-vars": 
"file:tools/eslint-plugin-translation-vars",
+    "eslint-plugin-theme-colors": 
"file:eslint-rules/eslint-plugin-theme-colors",
     "exports-loader": "^5.0.0",
     "fetch-mock": "^7.7.3",
     "fork-ts-checker-webpack-plugin": "^9.0.2",

Reply via email to