diff --git a/.oxlintrc.json b/.oxlintrc.json
index 0186281c46..c368a4a460 100644
--- a/.oxlintrc.json
+++ b/.oxlintrc.json
@@ -2,12 +2,67 @@
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["react", "typescript", "import", "jsx-a11y"],
"rules": {
- "jsx-a11y/no-autofocus": ["warn", { "ignoreNonDOM": true }],
-
// TODO fix all these and re-enable
"jsx-a11y/click-events-have-key-events": "off",
"jsx-a11y/prefer-tag-over-role": "off",
"jsx-a11y/tabindex-no-positive": "off",
+
+ // Keep these rules
+ "no-var": "warn",
+
+ // JSX A11y rules
+ "jsx-a11y/no-autofocus": ["warn", { "ignoreNonDOM": true }],
+
+ // Import rules
+ "import/first": "error",
+ "import/no-amd": "error",
+ "import/no-default-export": "warn",
+ "import/no-webpack-loader-syntax": "error",
+ "import/no-useless-path-segments": "warn",
+ "import/no-unresolved": "warn",
+ "import/no-unused-modules": "warn",
+ "import/no-duplicates": [
+ "warn",
+ {
+ "prefer-inline": true,
+ },
+ ],
+
+ // React rules
+ "react/exhaustive-deps": [
+ "warn",
+ {
+ "additionalHooks": "(useQuery|useEffectAfterMount)",
+ },
+ ],
+ "react/jsx-curly-brace-presence": "warn",
+ "react/jsx-filename-extension": [
+ "warn",
+ {
+ "extensions": [".jsx", ".tsx"],
+ "allow": "as-needed",
+ },
+ ],
+ "react/jsx-no-comment-textnodes": "warn",
+ "react/jsx-no-duplicate-props": "warn",
+ "react/jsx-no-target-blank": "warn",
+ "react/jsx-no-undef": "error",
+ "react/jsx-no-useless-fragment": "warn",
+ "react/jsx-pascal-case": [
+ "warn",
+ {
+ "allowAllCaps": true,
+ "ignore": [],
+ },
+ ],
+ "react/no-danger-with-children": "warn",
+ "react/no-direct-mutation-state": "warn",
+ "react/no-is-mounted": "warn",
+ "react/no-unstable-nested-components": "warn",
+ "react/require-render-return": "error",
+ "react/rules-of-hooks": "error",
+ "react/self-closing-comp": "warn",
+ "react/style-prop-object": "warn",
},
"overrides": [
{
@@ -59,8 +114,21 @@
"packages/desktop-client/src/hooks/useQuery.ts",
],
"rules": {
- "react-hooks/exhaustive-deps": "off",
+ "react/exhaustive-deps": "off",
},
},
+
+ {
+ "files": [
+ "packages/docs/**/*", // TODO: fix these issues
+ "packages/api/migrations/*",
+ "packages/loot-core/migrations/*",
+ "packages/sync-server/src/app-gocardless/banks/*.js",
+ "*.config.{ts,mts,mjs}",
+ ],
+ "rules": {
+ "import/no-default-export": "off",
+ }
+ }
]
}
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 3a3a207c25..aa30696714 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -3,8 +3,6 @@ import { defineConfig } from 'eslint/config';
import pluginImport from 'eslint-plugin-import';
import pluginJSXA11y from 'eslint-plugin-jsx-a11y';
import oxlint from 'eslint-plugin-oxlint';
-import pluginReact from 'eslint-plugin-react';
-import pluginReactHooks from 'eslint-plugin-react-hooks';
import pluginTypescriptPaths from 'eslint-plugin-typescript-paths';
import globals from 'globals';
import pluginTypescript from 'typescript-eslint';
@@ -150,8 +148,6 @@ export default defineConfig(
},
},
},
- pluginReact.configs.flat.recommended,
- pluginReact.configs.flat['jsx-runtime'],
pluginTypescript.configs.recommended,
pluginImport.flatConfigs.recommended,
{
@@ -167,7 +163,6 @@ export default defineConfig(
files: ['**/*.{js,ts,jsx,tsx,mjs,mts}'],
plugins: {
'jsx-a11y': pluginJSXA11y,
- 'react-hooks': pluginReactHooks,
},
rules: {
// http://eslint.org/docs/rules/
@@ -318,11 +313,7 @@ export default defineConfig(
'getter-return': 'warn',
- // https://github.com/benmosher/eslint-plugin-import/tree/master/docs/rules
- 'import/first': 'error',
- 'import/no-amd': 'error',
- 'import/no-anonymous-default-export': 'warn',
- 'import/no-webpack-loader-syntax': 'error',
+ 'import/no-unresolved': 'off',
'import/extensions': [
'warn',
'never',
@@ -330,13 +321,6 @@ export default defineConfig(
json: 'always',
},
],
- 'import/no-useless-path-segments': 'warn',
- 'import/no-duplicates': [
- 'warn',
- {
- 'prefer-inline': true,
- },
- ],
'import/order': [
'warn',
{
@@ -367,53 +351,6 @@ export default defineConfig(
},
],
- // https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules
- 'react/forbid-foreign-prop-types': [
- 'warn',
- {
- allowInPropTypes: true,
- },
- ],
- 'react/jsx-no-comment-textnodes': 'warn',
- 'react/jsx-no-duplicate-props': 'warn',
- 'react/jsx-no-target-blank': 'warn',
- 'react/jsx-no-undef': 'error',
- 'react/jsx-pascal-case': [
- 'warn',
- {
- allowAllCaps: true,
- ignore: [],
- },
- ],
- 'react/no-danger-with-children': 'warn',
- // Disabled because of undesirable warnings
- // See https://github.com/facebook/create-react-app/issues/5204 for
- // blockers until its re-enabled
- // 'react/no-deprecated': 'warn',
- 'react/no-direct-mutation-state': 'warn',
- 'react/no-is-mounted': 'warn',
- 'react/no-typos': 'error',
- 'react/require-render-return': 'error',
- 'react/style-prop-object': 'warn',
- 'react/jsx-no-useless-fragment': 'warn',
- 'react/self-closing-comp': 'warn',
- 'react/jsx-filename-extension': [
- 'warn',
- {
- extensions: ['.jsx', '.tsx'],
- allow: 'as-needed',
- },
- ],
- 'react/no-unstable-nested-components': [
- 'warn',
- {
- allowAsProps: true,
- customValidators: ['formatter'],
- },
- ],
- // Don't need this as we're using TypeScript
- 'react/prop-types': 'off',
-
// https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules
'jsx-a11y/alt-text': 'warn',
'jsx-a11y/anchor-has-content': 'warn',
@@ -443,15 +380,6 @@ export default defineConfig(
'jsx-a11y/role-supports-aria-props': 'warn',
'jsx-a11y/scope': 'warn',
- // https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks
- 'react-hooks/rules-of-hooks': 'error',
- 'react-hooks/exhaustive-deps': [
- 'warn',
- {
- additionalHooks: '(useQuery|useEffectAfterMount)',
- },
- ],
-
'actual/typography': 'warn',
'actual/prefer-if-statement': 'warn',
'actual/prefer-logger-over-console': 'error',
@@ -474,10 +402,6 @@ export default defineConfig(
// https://github.com/eslint/eslint/issues/16953
'no-loop-func': 'off',
- // TODO: re-enable these rules
- 'react/react-in-jsx-scope': 'off',
- 'no-var': 'warn',
- 'react/jsx-curly-brace-presence': 'warn',
'object-shorthand': ['warn', 'properties'],
'no-restricted-syntax': [
@@ -561,7 +485,6 @@ export default defineConfig(
'prefer-spread': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-require-imports': 'off',
- 'import/no-default-export': 'warn',
},
},
{
@@ -593,19 +516,11 @@ export default defineConfig(
// 'tsc' already handles this (https://github.com/typescript-eslint/typescript-eslint/issues/477)
'no-undef': 'off',
- // TypeScript already handles these (https://typescript-eslint.io/troubleshooting/typed-linting/performance/#eslint-plugin-import)
- 'import/named': 'off',
- 'import/namespace': 'off',
- 'import/default': 'off',
- 'import/no-named-as-default-member': 'off',
- 'import/no-unresolved': 'off',
-
// Add TypeScript specific rules (and turn off ESLint equivalents)
'@typescript-eslint/consistent-type-assertions': 'warn',
'no-array-constructor': 'off',
'@typescript-eslint/no-array-constructor': 'warn',
'no-redeclare': 'off',
- '@typescript-eslint/no-redeclare': 'warn',
'no-use-before-define': 'off',
'@typescript-eslint/no-use-before-define': [
@@ -680,48 +595,6 @@ export default defineConfig(
],
},
},
- {
- files: [
- 'packages/loot-core/src/types/**/*',
- 'packages/loot-core/src/client/state-types/**/*',
- '**/icons/**/*',
- '**/{mocks,__mocks__}/**/*',
- // can't correctly resolve usages
- '**/*.{testing,electron,browser,web,api}.ts',
- ],
-
- rules: {
- 'import/no-unused-modules': 'off',
- },
- },
- {
- files: ['packages/api/migrations/*', 'packages/loot-core/migrations/*'],
-
- rules: {
- 'import/no-default-export': 'off',
- },
- },
- {
- files: ['packages/api/index.ts'],
- rules: {
- 'import/no-unresolved': 'off',
- },
- },
-
- // Allow configuring vitest with default exports (recommended as per vitest docs)
- {
- files: [
- '**/vitest.config.{ts,mts}',
- '**/vitest.web.config.ts',
- '**/vite.config.{ts,mts}',
- 'eslint.config.mjs',
- ],
- rules: {
- 'import/no-anonymous-default-export': 'off',
- 'import/no-default-export': 'off',
- },
- },
-
{
files: [
'eslint.config.mjs',
@@ -756,13 +629,6 @@ export default defineConfig(
'actual/typography': 'off',
},
},
- {
- files: ['packages/sync-server/src/app-gocardless/banks/*.js'],
- rules: {
- 'import/no-anonymous-default-export': 'off',
- 'import/no-default-export': 'off',
- },
- },
// Disable ESLint rules that are already covered by oxlint
// This must be at the end to override previous rule configurations
...oxlint.configs['flat/recommended'],
diff --git a/package.json b/package.json
index 0090bbc904..1e546ac079 100644
--- a/package.json
+++ b/package.json
@@ -69,8 +69,6 @@
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-oxlint": "^1.30.0",
- "eslint-plugin-react": "^7.37.5",
- "eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-typescript-paths": "^0.0.33",
"globals": "^16.5.0",
"html-to-image": "^1.11.13",
diff --git a/packages/desktop-client/playwright.config.ts b/packages/desktop-client/playwright.config.ts
index 40804157f1..80fb472591 100644
--- a/packages/desktop-client/playwright.config.ts
+++ b/packages/desktop-client/playwright.config.ts
@@ -1,6 +1,5 @@
import { defineConfig } from '@playwright/test';
-// eslint-disable-next-line import/no-default-export
export default defineConfig({
timeout: 60000, // 60 seconds
retries: 1,
diff --git a/packages/desktop-client/src/browser-preload.browser.js b/packages/desktop-client/src/browser-preload.browser.js
index 449253ccef..09219fe69f 100644
--- a/packages/desktop-client/src/browser-preload.browser.js
+++ b/packages/desktop-client/src/browser-preload.browser.js
@@ -1,5 +1,4 @@
import { initBackend as initSQLBackend } from 'absurd-sql/dist/indexeddb-main-thread';
-// eslint-disable-next-line import/no-unresolved
import { registerSW } from 'virtual:pwa-register';
import * as Platform from 'loot-core/shared/platform';
diff --git a/packages/desktop-client/src/components/Modals.tsx b/packages/desktop-client/src/components/Modals.tsx
index 379d68ac31..96533f9c64 100644
--- a/packages/desktop-client/src/components/Modals.tsx
+++ b/packages/desktop-client/src/components/Modals.tsx
@@ -411,6 +411,6 @@ export function Modals() {
));
// fragment needed per TS types
- // eslint-disable-next-line react/jsx-no-useless-fragment
+ // oxlint-disable-next-line react/jsx-no-useless-fragment
return <>{modals}>;
}
diff --git a/packages/desktop-client/src/components/reports/graphs/CrossoverGraph.tsx b/packages/desktop-client/src/components/reports/graphs/CrossoverGraph.tsx
index a277debcf8..8bfc654902 100644
--- a/packages/desktop-client/src/components/reports/graphs/CrossoverGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/CrossoverGraph.tsx
@@ -69,7 +69,7 @@ export function CrossoverGraph({
payload?: PayloadItem[];
};
- // eslint-disable-next-line react/no-unstable-nested-components
+ // oxlint-disable-next-line react/no-unstable-nested-components
const CustomTooltip = ({ active, payload }: CustomTooltipProps) => {
if (active && payload && payload.length) {
return (
diff --git a/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx b/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx
index 46b5666875..1a4dae129b 100644
--- a/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx
@@ -115,7 +115,7 @@ export function NetWorthGraph({
payload?: PayloadItem[];
};
- // eslint-disable-next-line react/no-unstable-nested-components
+ // oxlint-disable-next-line react/no-unstable-nested-components
const CustomTooltip = ({ active, payload }: CustomTooltipProps) => {
if (active && payload && payload.length) {
return (
diff --git a/packages/desktop-electron/beforePackHook.ts b/packages/desktop-electron/beforePackHook.ts
index fa9bd755e4..3da026b997 100644
--- a/packages/desktop-electron/beforePackHook.ts
+++ b/packages/desktop-electron/beforePackHook.ts
@@ -43,5 +43,5 @@ const beforePackHook = async (context: AfterPackContext) => {
}
};
-// eslint-disable-next-line import/no-default-export
+// oxlint-disable-next-line import/no-default-export
export default beforePackHook;
diff --git a/packages/desktop-electron/e2e/fixtures.ts b/packages/desktop-electron/e2e/fixtures.ts
index ff4f8478ec..9ad72752dc 100644
--- a/packages/desktop-electron/e2e/fixtures.ts
+++ b/packages/desktop-electron/e2e/fixtures.ts
@@ -1,4 +1,4 @@
-/* eslint-disable react-hooks/rules-of-hooks */
+/* oxlint-disable react-hooks/rules-of-hooks */
import path from 'node:path';
import {
diff --git a/packages/desktop-electron/playwright.config.ts b/packages/desktop-electron/playwright.config.ts
index 66309cbeb2..fb47467858 100644
--- a/packages/desktop-electron/playwright.config.ts
+++ b/packages/desktop-electron/playwright.config.ts
@@ -1,6 +1,5 @@
import { defineConfig } from '@playwright/test';
-// eslint-disable-next-line import/no-default-export
export default defineConfig({
timeout: 60000, // 60 seconds
retries: 1,
diff --git a/packages/docs/docs/api/APIList.js b/packages/docs/docs/api/APIList.jsx
similarity index 100%
rename from packages/docs/docs/api/APIList.js
rename to packages/docs/docs/api/APIList.jsx
diff --git a/packages/docs/docs/api/types.js b/packages/docs/docs/api/types.jsx
similarity index 100%
rename from packages/docs/docs/api/types.js
rename to packages/docs/docs/api/types.jsx
diff --git a/packages/docs/src/components/HomepageFeatures/index.js b/packages/docs/src/components/HomepageFeatures/index.jsx
similarity index 100%
rename from packages/docs/src/components/HomepageFeatures/index.js
rename to packages/docs/src/components/HomepageFeatures/index.jsx
diff --git a/packages/docs/src/pages/index.js b/packages/docs/src/pages/index.jsx
similarity index 99%
rename from packages/docs/src/pages/index.js
rename to packages/docs/src/pages/index.jsx
index 072fea0cd8..f709f390c6 100644
--- a/packages/docs/src/pages/index.js
+++ b/packages/docs/src/pages/index.jsx
@@ -382,9 +382,9 @@ const icons = {
-
+
-
+
),
hierarchy1: (
@@ -394,9 +394,9 @@ const icons = {
),
shieldLock: (
),
play: (
diff --git a/packages/docs/src/theme/Layout/index.js b/packages/docs/src/theme/Layout/index.jsx
similarity index 100%
rename from packages/docs/src/theme/Layout/index.js
rename to packages/docs/src/theme/Layout/index.jsx
diff --git a/packages/loot-core/vite.api.config.ts b/packages/loot-core/vite.api.config.ts
index 36f960175e..e302ad2c05 100644
--- a/packages/loot-core/vite.api.config.ts
+++ b/packages/loot-core/vite.api.config.ts
@@ -4,7 +4,6 @@ import { visualizer } from 'rollup-plugin-visualizer';
import { defineConfig } from 'vite';
import peggyLoader from 'vite-plugin-peggy-loader';
-// eslint-disable-next-line import/no-default-export
export default defineConfig(({ mode }) => {
const outDir = path.resolve(__dirname, '../api/app');
const crdtDir = path.resolve(__dirname, '../crdt');
diff --git a/packages/loot-core/vite.desktop.config.ts b/packages/loot-core/vite.desktop.config.ts
index dbd46f022e..3dc4a5f93f 100644
--- a/packages/loot-core/vite.desktop.config.ts
+++ b/packages/loot-core/vite.desktop.config.ts
@@ -4,7 +4,6 @@ import { visualizer } from 'rollup-plugin-visualizer';
import { defineConfig } from 'vite';
import peggyLoader from 'vite-plugin-peggy-loader';
-// eslint-disable-next-line import/no-default-export
export default defineConfig(({ mode }) => {
const outDir = path.resolve(__dirname, 'lib-dist/electron');
const crdtDir = path.resolve(__dirname, '../crdt');
diff --git a/upcoming-release-notes/6312.md b/upcoming-release-notes/6312.md
new file mode 100644
index 0000000000..12dde6b995
--- /dev/null
+++ b/upcoming-release-notes/6312.md
@@ -0,0 +1,6 @@
+---
+category: Maintenance
+authors: [MatissJanis]
+---
+
+Port react rules from eslint to oxlint
diff --git a/yarn.lock b/yarn.lock
index 82d15966f6..b071563914 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -785,7 +785,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5":
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/parser@npm:7.28.5"
dependencies:
@@ -9989,8 +9989,6 @@ __metadata:
eslint-plugin-import: "npm:^2.32.0"
eslint-plugin-jsx-a11y: "npm:^6.10.2"
eslint-plugin-oxlint: "npm:^1.30.0"
- eslint-plugin-react: "npm:^7.37.5"
- eslint-plugin-react-hooks: "npm:^7.0.1"
eslint-plugin-typescript-paths: "npm:^0.0.33"
globals: "npm:^16.5.0"
html-to-image: "npm:^1.11.13"
@@ -10418,20 +10416,6 @@ __metadata:
languageName: node
linkType: hard
-"array.prototype.findlast@npm:^1.2.5":
- version: 1.2.5
- resolution: "array.prototype.findlast@npm:1.2.5"
- dependencies:
- call-bind: "npm:^1.0.7"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.2"
- es-errors: "npm:^1.3.0"
- es-object-atoms: "npm:^1.0.0"
- es-shim-unscopables: "npm:^1.0.2"
- checksum: 10/7dffcc665aa965718ad6de7e17ac50df0c5e38798c0a5bf9340cf24feb8594df6ec6f3fcbe714c1577728a1b18b5704b15669474b27bceeca91ef06ce2a23c31
- languageName: node
- linkType: hard
-
"array.prototype.findlastindex@npm:^1.2.6":
version: 1.2.6
resolution: "array.prototype.findlastindex@npm:1.2.6"
@@ -10471,19 +10455,6 @@ __metadata:
languageName: node
linkType: hard
-"array.prototype.tosorted@npm:^1.1.4":
- version: 1.1.4
- resolution: "array.prototype.tosorted@npm:1.1.4"
- dependencies:
- call-bind: "npm:^1.0.7"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.3"
- es-errors: "npm:^1.3.0"
- es-shim-unscopables: "npm:^1.0.2"
- checksum: 10/874694e5d50e138894ff5b853e639c29b0aa42bbd355acda8e8e9cd337f1c80565f21edc15e8c727fa4c0877fd9d8783c575809e440cc4d2d19acaa048bf967d
- languageName: node
- linkType: hard
-
"arraybuffer.prototype.slice@npm:^1.0.4":
version: 1.0.4
resolution: "arraybuffer.prototype.slice@npm:1.0.4"
@@ -14363,7 +14334,7 @@ __metadata:
languageName: node
linkType: hard
-"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0":
+"es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0":
version: 1.24.0
resolution: "es-abstract@npm:1.24.0"
dependencies:
@@ -14456,30 +14427,6 @@ __metadata:
languageName: node
linkType: hard
-"es-iterator-helpers@npm:^1.2.1":
- version: 1.2.1
- resolution: "es-iterator-helpers@npm:1.2.1"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.3"
- define-properties: "npm:^1.2.1"
- es-abstract: "npm:^1.23.6"
- es-errors: "npm:^1.3.0"
- es-set-tostringtag: "npm:^2.0.3"
- function-bind: "npm:^1.1.2"
- get-intrinsic: "npm:^1.2.6"
- globalthis: "npm:^1.0.4"
- gopd: "npm:^1.2.0"
- has-property-descriptors: "npm:^1.0.2"
- has-proto: "npm:^1.2.0"
- has-symbols: "npm:^1.1.0"
- internal-slot: "npm:^1.1.0"
- iterator.prototype: "npm:^1.1.4"
- safe-array-concat: "npm:^1.1.3"
- checksum: 10/802e0e8427a05ff4a5b0c70c7fdaaeff37cdb81a28694aeb7bfb831c6ab340d8f3deeb67b96732ff9e9699ea240524d5ea8a9a6a335fcd15aa3983b27b06113f
- languageName: node
- linkType: hard
-
"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.7.0":
version: 1.7.0
resolution: "es-module-lexer@npm:1.7.0"
@@ -14496,7 +14443,7 @@ __metadata:
languageName: node
linkType: hard
-"es-set-tostringtag@npm:^2.0.3, es-set-tostringtag@npm:^2.1.0":
+"es-set-tostringtag@npm:^2.1.0":
version: 2.1.0
resolution: "es-set-tostringtag@npm:2.1.0"
dependencies:
@@ -14885,49 +14832,6 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-react-hooks@npm:^7.0.1":
- version: 7.0.1
- resolution: "eslint-plugin-react-hooks@npm:7.0.1"
- dependencies:
- "@babel/core": "npm:^7.24.4"
- "@babel/parser": "npm:^7.24.4"
- hermes-parser: "npm:^0.25.1"
- zod: "npm:^3.25.0 || ^4.0.0"
- zod-validation-error: "npm:^3.5.0 || ^4.0.0"
- peerDependencies:
- eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
- checksum: 10/12e96c68d58c6588305fd17d660524a1ef1e872650ec591d5b138f059431290831c373d4b1c9ae8991fb25f96c43935497d2149678c027e65d0417d3d99ecc85
- languageName: node
- linkType: hard
-
-"eslint-plugin-react@npm:^7.37.5":
- version: 7.37.5
- resolution: "eslint-plugin-react@npm:7.37.5"
- dependencies:
- array-includes: "npm:^3.1.8"
- array.prototype.findlast: "npm:^1.2.5"
- array.prototype.flatmap: "npm:^1.3.3"
- array.prototype.tosorted: "npm:^1.1.4"
- doctrine: "npm:^2.1.0"
- es-iterator-helpers: "npm:^1.2.1"
- estraverse: "npm:^5.3.0"
- hasown: "npm:^2.0.2"
- jsx-ast-utils: "npm:^2.4.1 || ^3.0.0"
- minimatch: "npm:^3.1.2"
- object.entries: "npm:^1.1.9"
- object.fromentries: "npm:^2.0.8"
- object.values: "npm:^1.2.1"
- prop-types: "npm:^15.8.1"
- resolve: "npm:^2.0.0-next.5"
- semver: "npm:^6.3.1"
- string.prototype.matchall: "npm:^4.0.12"
- string.prototype.repeat: "npm:^1.0.0"
- peerDependencies:
- eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
- checksum: 10/ee1bd4e0ec64f29109d5a625bb703d179c82e0159c86c3f1b52fc1209d2994625a137dae303c333fb308a2e38315e44066d5204998177e31974382f9fda25d5c
- languageName: node
- linkType: hard
-
"eslint-plugin-typescript-paths@npm:^0.0.33":
version: 0.0.33
resolution: "eslint-plugin-typescript-paths@npm:0.0.33"
@@ -16139,7 +16043,7 @@ __metadata:
languageName: node
linkType: hard
-"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1":
+"get-proto@npm:^1.0.1":
version: 1.0.1
resolution: "get-proto@npm:1.0.1"
dependencies:
@@ -16844,22 +16748,6 @@ __metadata:
languageName: node
linkType: hard
-"hermes-estree@npm:0.25.1":
- version: 0.25.1
- resolution: "hermes-estree@npm:0.25.1"
- checksum: 10/7b1eca98b264a25632064cffa5771360d30cf452e77db1e191f9913ee45cf78c292b2dbca707e92fb71b0870abb97e94b506a5ab80abd96ba237fee169b601fe
- languageName: node
- linkType: hard
-
-"hermes-parser@npm:^0.25.1":
- version: 0.25.1
- resolution: "hermes-parser@npm:0.25.1"
- dependencies:
- hermes-estree: "npm:0.25.1"
- checksum: 10/805efc05691420f236654349872c70731121791fa54de521c7ee51059eae34f84dd19f22ee846741dcb60372f8fb5335719b96b4ecb010d2aed7d872f2eff9cc
- languageName: node
- linkType: hard
-
"history@npm:^4.9.0":
version: 4.10.1
resolution: "history@npm:4.10.1"
@@ -18305,20 +18193,6 @@ __metadata:
languageName: node
linkType: hard
-"iterator.prototype@npm:^1.1.4":
- version: 1.1.5
- resolution: "iterator.prototype@npm:1.1.5"
- dependencies:
- define-data-property: "npm:^1.1.4"
- es-object-atoms: "npm:^1.0.0"
- get-intrinsic: "npm:^1.2.6"
- get-proto: "npm:^1.0.0"
- has-symbols: "npm:^1.1.0"
- set-function-name: "npm:^2.0.2"
- checksum: 10/352bcf333f42189e65cc8cb2dcb94a5c47cf0a9110ce12aba788d405a980b5f5f3a06c79bf915377e1d480647169babd842ded0d898bed181bf6686e8e6823f6
- languageName: node
- linkType: hard
-
"jackspeak@npm:^3.1.2":
version: 3.4.3
resolution: "jackspeak@npm:3.4.3"
@@ -18647,7 +18521,7 @@ __metadata:
languageName: node
linkType: hard
-"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5":
+"jsx-ast-utils@npm:^3.3.5":
version: 3.3.5
resolution: "jsx-ast-utils@npm:3.3.5"
dependencies:
@@ -21276,18 +21150,6 @@ __metadata:
languageName: node
linkType: hard
-"object.entries@npm:^1.1.9":
- version: 1.1.9
- resolution: "object.entries@npm:1.1.9"
- dependencies:
- call-bind: "npm:^1.0.8"
- call-bound: "npm:^1.0.4"
- define-properties: "npm:^1.2.1"
- es-object-atoms: "npm:^1.1.1"
- checksum: 10/24163ab1e1e013796693fc5f5d349e8b3ac0b6a34a7edb6c17d3dd45c6a8854145780c57d302a82512c1582f63720f4b4779d6c1cfba12cbb1420b978802d8a3
- languageName: node
- linkType: hard
-
"object.fromentries@npm:^2.0.8":
version: 2.0.8
resolution: "object.fromentries@npm:2.0.8"
@@ -24606,7 +24468,7 @@ __metadata:
languageName: node
linkType: hard
-"resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.22.1, resolve@npm:^1.22.10, resolve@npm:^1.22.4":
+"resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.22.1, resolve@npm:^1.22.10":
version: 1.22.10
resolution: "resolve@npm:1.22.10"
dependencies:
@@ -24619,20 +24481,20 @@ __metadata:
languageName: node
linkType: hard
-"resolve@npm:^2.0.0-next.5":
- version: 2.0.0-next.5
- resolution: "resolve@npm:2.0.0-next.5"
+"resolve@npm:^1.22.4":
+ version: 1.22.11
+ resolution: "resolve@npm:1.22.11"
dependencies:
- is-core-module: "npm:^2.13.0"
+ is-core-module: "npm:^2.16.1"
path-parse: "npm:^1.0.7"
supports-preserve-symlinks-flag: "npm:^1.0.0"
bin:
resolve: bin/resolve
- checksum: 10/2d6fd28699f901744368e6f2032b4268b4c7b9185fd8beb64f68c93ac6b22e52ae13560ceefc96241a665b985edf9ffd393ae26d2946a7d3a07b7007b7d51e79
+ checksum: 10/e1b2e738884a08de03f97ee71494335eba8c2b0feb1de9ae065e82c48997f349f77a2b10e8817e147cf610bfabc4b1cb7891ee8eaf5bf80d4ad514a34c4fab0a
languageName: node
linkType: hard
-"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.10#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin":
+"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.10#optional!builtin":
version: 1.22.10
resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d"
dependencies:
@@ -24645,16 +24507,16 @@ __metadata:
languageName: node
linkType: hard
-"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin":
- version: 2.0.0-next.5
- resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d"
+"resolve@patch:resolve@npm%3A^1.22.4#optional!builtin":
+ version: 1.22.11
+ resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin::version=1.22.11&hash=c3c19d"
dependencies:
- is-core-module: "npm:^2.13.0"
+ is-core-module: "npm:^2.16.1"
path-parse: "npm:^1.0.7"
supports-preserve-symlinks-flag: "npm:^1.0.0"
bin:
resolve: bin/resolve
- checksum: 10/05fa778de9d0347c8b889eb7a18f1f06bf0f801b0eb4610b4871a4b2f22e220900cf0ad525e94f990bb8d8921c07754ab2122c0c225ab4cdcea98f36e64fa4c2
+ checksum: 10/fd342cad25e52cd6f4f3d1716e189717f2522bfd6641109fe7aa372f32b5714a296ed7c238ddbe7ebb0c1ddfe0b7f71c9984171024c97cf1b2073e3e40ff71a8
languageName: node
linkType: hard
@@ -26056,7 +25918,7 @@ __metadata:
languageName: node
linkType: hard
-"string.prototype.matchall@npm:^4.0.12, string.prototype.matchall@npm:^4.0.6":
+"string.prototype.matchall@npm:^4.0.6":
version: 4.0.12
resolution: "string.prototype.matchall@npm:4.0.12"
dependencies:
@@ -26089,16 +25951,6 @@ __metadata:
languageName: node
linkType: hard
-"string.prototype.repeat@npm:^1.0.0":
- version: 1.0.0
- resolution: "string.prototype.repeat@npm:1.0.0"
- dependencies:
- define-properties: "npm:^1.1.3"
- es-abstract: "npm:^1.17.5"
- checksum: 10/4b1bd91b75fa8fdf0541625184ebe80e445a465ce4253c19c3bccd633898005dadae0f74b85ae72662a53aafb8035bf48f8f5c0755aec09bc106a7f13959d05e
- languageName: node
- linkType: hard
-
"string.prototype.trim@npm:^1.2.10":
version: 1.2.10
resolution: "string.prototype.trim@npm:1.2.10"
@@ -29156,15 +29008,6 @@ __metadata:
languageName: node
linkType: hard
-"zod-validation-error@npm:^3.5.0 || ^4.0.0":
- version: 4.0.2
- resolution: "zod-validation-error@npm:4.0.2"
- peerDependencies:
- zod: ^3.25.0 || ^4.0.0
- checksum: 10/5e35ca8ebb4602dcb526e122d7e9fca695c4a479bd97535f3400a732d49160f24f7213a9ed64986fc9dc3a2e8a6c4e1241ec0c4d8a4e3e69ea91a0328ded2192
- languageName: node
- linkType: hard
-
"zod@npm:^3.23.8":
version: 3.25.76
resolution: "zod@npm:3.25.76"
@@ -29172,7 +29015,7 @@ __metadata:
languageName: node
linkType: hard
-"zod@npm:^3.25.0 || ^4.0.0, zod@npm:^4.1.8":
+"zod@npm:^4.1.8":
version: 4.1.12
resolution: "zod@npm:4.1.12"
checksum: 10/c5f04e6ac306515c4db6ef73cf7705f521c7a2107c8c8912416a0658d689f361db9bee829b0bf01ef4a22492f1065c5cbcdb523ce532606ac6792fd714f3c326