diff --git a/superset-frontend/oxlint.json b/superset-frontend/oxlint.json index 18ca3ad2ff2..50e482ecedd 100644 --- a/superset-frontend/oxlint.json +++ b/superset-frontend/oxlint.json @@ -136,7 +136,7 @@ "react/jsx-no-bind": "off", "react/jsx-props-no-spreading": "off", "react/jsx-boolean-value": ["error", "never", { "always": [] }], - "react/jsx-no-duplicate-props": ["error", { "ignoreCase": true }], + "react/jsx-no-duplicate-props": "error", "react/jsx-no-undef": "error", "react/jsx-pascal-case": ["error", { "allowAllCaps": true, "ignore": [] }], "react/jsx-uses-vars": "error", diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index 38f4adca55c..8107c27018b 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -265,7 +265,7 @@ "lightningcss": "^1.31.1", "mini-css-extract-plugin": "^2.10.0", "open-cli": "^8.0.0", - "oxlint": "^1.42.0", + "oxlint": "^1.46.0", "po2json": "^0.4.5", "prettier": "3.8.1", "prettier-plugin-packagejson": "^3.0.0", @@ -9058,10 +9058,44 @@ "@octokit/openapi-types": "^25.1.0" } }, - "node_modules/@oxlint/darwin-arm64": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/@oxlint/darwin-arm64/-/darwin-arm64-1.42.0.tgz", - "integrity": "sha512-ui5CdAcDsXPQwZQEXOOSWsilJWhgj9jqHCvYBm2tDE8zfwZZuF9q58+hGKH1x5y0SV4sRlyobB2Quq6uU6EgeA==", + "node_modules/@oxlint/binding-android-arm-eabi": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.46.0.tgz", + "integrity": "sha512-vLPcE+HcZ/W/0cVA1KLuAnoUSejGougDH/fDjBFf0Q+rbBIyBNLevOhgx3AnBNAt3hcIGY7U05ISbJCKZeVa3w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-android-arm64": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.46.0.tgz", + "integrity": "sha512-b8IqCczUsirdtJ3R/be4cRm64I5pMPafMO/9xyTAZvc+R/FxZHMQuhw0iNT9hQwRn+Uo5rNAoA8QS7QurG2QeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-arm64": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.46.0.tgz", + "integrity": "sha512-CfC/KGnNMhI01dkfCMjquKnW4zby3kqD5o/9XA7+pgo9I4b+Nipm+JVFyZPWMNwKqLXNmi35GTLWjs9svPxlew==", "cpu": [ "arm64" ], @@ -9070,12 +9104,15 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@oxlint/darwin-x64": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/@oxlint/darwin-x64/-/darwin-x64-1.42.0.tgz", - "integrity": "sha512-wo0M/hcpHRv7vFje99zHHqheOhVEwUOKjOgBKyi0M99xcLizv04kcSm1rTd6HSCeZgOtiJYZRVAlKhQOQw2byQ==", + "node_modules/@oxlint/binding-darwin-x64": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.46.0.tgz", + "integrity": "sha512-m38mKPsV3rBdWOJ4TAGZiUjWU8RGrBxsmdSeMQ0bPr/8O6CUOm/RJkPBf0GAfPms2WRVcbkfEXvIiPshAeFkeA==", "cpu": [ "x64" ], @@ -9084,12 +9121,66 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@oxlint/linux-arm64-gnu": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-gnu/-/linux-arm64-gnu-1.42.0.tgz", - "integrity": "sha512-j4QzfCM8ks+OyM+KKYWDiBEQsm5RCW50H1Wz16wUyoFsobJ+X5qqcJxq6HvkE07m8euYmZelyB0WqsiDoz1v8g==", + "node_modules/@oxlint/binding-freebsd-x64": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.46.0.tgz", + "integrity": "sha512-YaFRKslSAfuMwn7ejS1/wo9jENqQigpGBjjThX+mrpmEROLYGky+zIC5xSVGRng28U92VEDVbSNJ/sguz3dUAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-gnueabihf": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.46.0.tgz", + "integrity": "sha512-Nlw+5mSZQtkg1Oj0N8ulxzG8ATpmSDz5V2DNaGhaYAVlcdR8NYSm/xTOnweOXc/UOOv3LwkPPYzqcfPhu2lEkA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-musleabihf": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.46.0.tgz", + "integrity": "sha512-d3Y5y4ukMqAGnWLMKpwqj8ftNUaac7pA0NrId4AZ77JvHzezmxEcm2gswaBw2HW8y1pnq6KDB0vEPPvpTfDLrA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-gnu": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.46.0.tgz", + "integrity": "sha512-jkjx+XSOPuFR+C458prQmehO+v0VK19/3Hj2mOYDF4hHUf3CzmtA4fTmQUtkITZiGHnky7Oao6JeJX24mrX7WQ==", "cpu": [ "arm64" ], @@ -9098,12 +9189,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@oxlint/linux-arm64-musl": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-musl/-/linux-arm64-musl-1.42.0.tgz", - "integrity": "sha512-g5b1Uw7zo6yw4Ymzyd1etKzAY7xAaGA3scwB8tAp3QzuY7CYdfTwlhiLKSAKbd7T/JBgxOXAGNcLDorJyVTXcg==", + "node_modules/@oxlint/binding-linux-arm64-musl": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.46.0.tgz", + "integrity": "sha512-X/aPB1rpJUdykjWSeeGIbjk6qbD8VDulgLuTSMWgr/t6m1ljcAjqHb1g49pVG9bZl55zjECgzvlpPLWnfb4FMQ==", "cpu": [ "arm64" ], @@ -9112,12 +9206,83 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@oxlint/linux-x64-gnu": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-gnu/-/linux-x64-gnu-1.42.0.tgz", - "integrity": "sha512-HnD99GD9qAbpV4q9iQil7mXZUJFpoBdDavfcC2CgGLPlawfcV5COzQPNwOgvPVkr7C0cBx6uNCq3S6r9IIiEIg==", + "node_modules/@oxlint/binding-linux-ppc64-gnu": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.46.0.tgz", + "integrity": "sha512-AymyOxGWwKY2KJa8b+h8iLrYJZbWKYCjqctSc2q6uIAkYPrCsxcWlge1JP6XZ14Sa80DVMwI/QvktbytSV+xVw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-gnu": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.46.0.tgz", + "integrity": "sha512-PkeVdPKCDA59rlMuucsel2LjlNEpslQN5AhkMMorIJZItbbqi/0JSuACCzaiIcXYv0oNfbeQ8rbOBikv+aT6cg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-musl": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.46.0.tgz", + "integrity": "sha512-snQaRLO/X+Ry/CxX1px1g8GUbmXzymdRs+/RkP2bySHWZFhFDtbLm2hA1ujX/jKlTLMJDZn4hYzFGLDwG/Rh2w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-s390x-gnu": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.46.0.tgz", + "integrity": "sha512-kZhDMwUe/sgDTluGao9c0Dqc1JzV6wPzfGo0l/FLQdh5Zmp39Yg1FbBsCgsJfVKmKl1fNqsHyFLTShWMOlOEhA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-gnu": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.46.0.tgz", + "integrity": "sha512-n5a7VtQTxHZ13cNAKQc3ziARv5bE1Fx868v/tnhZNVUjaRNYe5uiUrRJ/LZghdAzOxVuQGarjjq/q4QM2+9OPA==", "cpu": [ "x64" ], @@ -9126,12 +9291,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@oxlint/linux-x64-musl": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-musl/-/linux-x64-musl-1.42.0.tgz", - "integrity": "sha512-8NTe8A78HHFn+nBi+8qMwIjgv9oIBh+9zqCPNLH56ah4vKOPvbePLI6NIv9qSkmzrBuu8SB+FJ2TH/G05UzbNA==", + "node_modules/@oxlint/binding-linux-x64-musl": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.46.0.tgz", + "integrity": "sha512-KpsDU/BhdVn3iKCLxMXAOZIpO8fS0jEA5iluRoK1rhHPwKtpzEm/OCwERsu/vboMSZm66qnoTUVXRPJ8M+iKVQ==", "cpu": [ "x64" ], @@ -9140,12 +9308,32 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@oxlint/win32-arm64": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/@oxlint/win32-arm64/-/win32-arm64-1.42.0.tgz", - "integrity": "sha512-lAPS2YAuu+qFqoTNPFcNsxXjwSV0M+dOgAzzVTAN7Yo2ifj+oLOx0GsntWoM78PvQWI7Q827ZxqtU2ImBmDapA==", + "node_modules/@oxlint/binding-openharmony-arm64": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.46.0.tgz", + "integrity": "sha512-jtbqUyEXlsDlRmMtTZqNbw49+1V/WxqNAR5l0S3OEkdat9diI5I+eqq9IT+jb5cSDdszTGcXpn7S3+gUYSydxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-arm64-msvc": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.46.0.tgz", + "integrity": "sha512-EE8NjpqEZPwHQVigNvdyJ11dZwWIfsfn4VeBAuiJeAdrnY4HFX27mIjJINJgP5ZdBYEFV1OWH/eb9fURCYel8w==", "cpu": [ "arm64" ], @@ -9154,12 +9342,32 @@ "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@oxlint/win32-x64": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/@oxlint/win32-x64/-/win32-x64-1.42.0.tgz", - "integrity": "sha512-3/KmyUOHNriL6rLpaFfm9RJxdhpXY2/Ehx9UuorJr2pUA+lrZL15FAEx/DOszYm5r10hfzj40+efAHcCilNvSQ==", + "node_modules/@oxlint/binding-win32-ia32-msvc": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.46.0.tgz", + "integrity": "sha512-BHyk3H/HRdXs+uImGZ/2+qCET+B8lwGHOm7m54JiJEEUWf3zYCFX/Df1SPqtozWWmnBvioxoTG1J3mPRAr8KUA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-x64-msvc": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.46.0.tgz", + "integrity": "sha512-DJbQsSJUr4KSi9uU0QqOgI7PX2C+fKGZX+YDprt3vM2sC0dWZsgVTLoN2vtkNyEWJSY2mnvRFUshWXT3bmo0Ug==", "cpu": [ "x64" ], @@ -9168,7 +9376,10 @@ "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, "node_modules/@peculiar/asn1-cms": { "version": "2.6.0", @@ -39411,9 +39622,9 @@ } }, "node_modules/oxlint": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.42.0.tgz", - "integrity": "sha512-qnspC/lrp8FgKNaONLLn14dm+W5t0SSlus6V5NJpgI2YNT1tkFYZt4fBf14ESxf9AAh98WBASnW5f0gtw462Lg==", + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.46.0.tgz", + "integrity": "sha512-I9h42QDtAVsRwoueJ4PL/7qN5jFzIUXvbO4Z5ddtII92ZCiD7uiS/JW2V4viBSfGLsbZkQp3YEs6Ls4I8q+8tA==", "dev": true, "license": "MIT", "bin": { @@ -39426,14 +39637,25 @@ "url": "https://github.com/sponsors/Boshen" }, "optionalDependencies": { - "@oxlint/darwin-arm64": "1.42.0", - "@oxlint/darwin-x64": "1.42.0", - "@oxlint/linux-arm64-gnu": "1.42.0", - "@oxlint/linux-arm64-musl": "1.42.0", - "@oxlint/linux-x64-gnu": "1.42.0", - "@oxlint/linux-x64-musl": "1.42.0", - "@oxlint/win32-arm64": "1.42.0", - "@oxlint/win32-x64": "1.42.0" + "@oxlint/binding-android-arm-eabi": "1.46.0", + "@oxlint/binding-android-arm64": "1.46.0", + "@oxlint/binding-darwin-arm64": "1.46.0", + "@oxlint/binding-darwin-x64": "1.46.0", + "@oxlint/binding-freebsd-x64": "1.46.0", + "@oxlint/binding-linux-arm-gnueabihf": "1.46.0", + "@oxlint/binding-linux-arm-musleabihf": "1.46.0", + "@oxlint/binding-linux-arm64-gnu": "1.46.0", + "@oxlint/binding-linux-arm64-musl": "1.46.0", + "@oxlint/binding-linux-ppc64-gnu": "1.46.0", + "@oxlint/binding-linux-riscv64-gnu": "1.46.0", + "@oxlint/binding-linux-riscv64-musl": "1.46.0", + "@oxlint/binding-linux-s390x-gnu": "1.46.0", + "@oxlint/binding-linux-x64-gnu": "1.46.0", + "@oxlint/binding-linux-x64-musl": "1.46.0", + "@oxlint/binding-openharmony-arm64": "1.46.0", + "@oxlint/binding-win32-arm64-msvc": "1.46.0", + "@oxlint/binding-win32-ia32-msvc": "1.46.0", + "@oxlint/binding-win32-x64-msvc": "1.46.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.11.2" diff --git a/superset-frontend/package.json b/superset-frontend/package.json index 36d3d994369..6bc1d3f7fda 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -346,7 +346,7 @@ "lightningcss": "^1.31.1", "mini-css-extract-plugin": "^2.10.0", "open-cli": "^8.0.0", - "oxlint": "^1.42.0", + "oxlint": "^1.46.0", "po2json": "^0.4.5", "prettier": "3.8.1", "prettier-plugin-packagejson": "^3.0.0", diff --git a/superset-frontend/plugins/legacy-plugin-chart-map-box/src/ScatterPlotGlowOverlay.tsx b/superset-frontend/plugins/legacy-plugin-chart-map-box/src/ScatterPlotGlowOverlay.tsx index c946d3f2825..e5220a0d538 100644 --- a/superset-frontend/plugins/legacy-plugin-chart-map-box/src/ScatterPlotGlowOverlay.tsx +++ b/superset-frontend/plugins/legacy-plugin-chart-map-box/src/ScatterPlotGlowOverlay.tsx @@ -233,7 +233,7 @@ class ScatterPlotGlowOverlay extends PureComponent ) { ctx.beginPath(); if (location.properties.cluster) { - let clusterLabel = clusterLabelMap[i]; + const clusterLabel = clusterLabelMap[i]; // Validate clusterLabel is a finite number before using it for radius calculation const numericLabel = Number(clusterLabel); const safeNumericLabel = Number.isFinite(numericLabel) diff --git a/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/utilities.ts b/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/utilities.ts index f4991ba4e1f..321387092c3 100644 --- a/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/utilities.ts +++ b/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/utilities.ts @@ -142,8 +142,8 @@ const naturalSort: SortFunction = (as, bs) => { } // finally, "smart" string sorting per http://stackoverflow.com/a/4373421/112871 - let a = String(as); - let b = String(bs); + const a = String(as); + const b = String(bs); if (a === b) { return 0; } diff --git a/superset-frontend/src/dashboard/components/gridComponents/Row/Row.test.tsx b/superset-frontend/src/dashboard/components/gridComponents/Row/Row.test.tsx index 81e551ae3f0..69635012d20 100644 --- a/superset-frontend/src/dashboard/components/gridComponents/Row/Row.test.tsx +++ b/superset-frontend/src/dashboard/components/gridComponents/Row/Row.test.tsx @@ -221,7 +221,7 @@ test('should render a DeleteComponentButton in editMode', () => { /* oxlint-disable-next-line jest/no-disabled-tests */ test.skip('should render a BackgroundStyleDropdown when focused', () => { - let { rerender } = setup({ component: rowWithoutChildren }); + const { rerender } = setup({ component: rowWithoutChildren }); expect(screen.queryByTestId('background-style-dropdown')).toBeFalsy(); // we cannot set props on the Row because of the WithDragDropContext wrapper