mirror of
https://github.com/actualbudget/actual.git
synced 2026-10-12 02:10:19 +00:00
Lint: port react and import rules from eslint to oxc (#6312)
* Enforce JSX file extensions for React components - Update eslint config to enforce .jsx/.tsx extensions for files containing JSX - Convert docs package JS files to JSX where they contain React code - Fix unstable nested components in CrossoverGraph and NetWorthGraph - Update oxlint configuration - Update e2e fixtures * Fix: Rename react-hooks/exhaustive-deps to react/exhaustive-deps Co-authored-by: matiss <[email protected]> * Enhance ESLint configuration and update import rules * Refactor ESLint configuration to enhance import order rules and add eslint-plugin-import * Fix ESLint directive comments in API files to use correct syntax * Fix * Fix ESLint directive comments and update import/extensions rule in configuration * Refactor ESLint configuration to enforce JSX extension rules and improve code clarity * Update ESLint configuration: disable 'import/no-unresolved' rule and remove obsolete .oxlintrc.json file --------- Co-authored-by: Cursor Agent <[email protected]>
This commit is contained in:
co-authored by
Cursor Agent
parent
ecb8a1a548
commit
32bc254040
+71
-3
@@ -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",
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+1
-135
@@ -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'],
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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}</>;
|
||||
}
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* eslint-disable react-hooks/rules-of-hooks */
|
||||
/* oxlint-disable react-hooks/rules-of-hooks */
|
||||
import path from 'node:path';
|
||||
|
||||
import {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -382,9 +382,9 @@ const icons = {
|
||||
<path d="M23.832,7.126,16.664.752h0a1,1,0,0,0-1.327,0L8.168,7.126A.5.5,0,0,0,8.5,8h2a.5.5,0,0,1,.5.5v5a1,1,0,0,0,1,1h2a.5.5,0,0,0,.5-.5V11.5a1.5,1.5,0,0,1,3,0V14a.5.5,0,0,0,.5.5h2a1,1,0,0,0,1-1v-5a.5.5,0,0,1,.5-.5h2A.5.5,0,0,0,23.832,7.126Z" />
|
||||
<path d="M23,16a.5.5,0,0,0-.5-.5h-12a.5.5,0,0,0-.5.5v2a.5.5,0,0,0,.5.5H21a.5.5,0,0,1,.5.5v.75a.75.75,0,0,0,1.5,0V16Z" />
|
||||
<path d="M8,11.5H4.877a1,1,0,0,0-.962.726L3.14,14.94a.5.5,0,0,1-.257.31L.552,16.414A1,1,0,0,0,0,17.309V21.5a1,1,0,0,0,1,1H2.535a.5.5,0,0,0,.5-.57A3,3,0,0,1,8.143,19.4.5.5,0,0,0,9,19.053V12.5A1,1,0,0,0,8,11.5Z" />
|
||||
<circle cx="6" cy="21.5" r="2"></circle>
|
||||
<circle cx="6" cy="21.5" r="2" />
|
||||
<path d="M10.5,19.5a.5.5,0,0,0-.5.5v2a.5.5,0,0,0,.5.5h4.539a.5.5,0,0,0,.5-.579,2.884,2.884,0,0,1,.261-1.7.5.5,0,0,0-.45-.718Z" />
|
||||
<circle cx="18.5" cy="21.5" r="2"></circle>
|
||||
<circle cx="18.5" cy="21.5" r="2" />
|
||||
</svg>
|
||||
),
|
||||
hierarchy1: (
|
||||
@@ -394,9 +394,9 @@ const icons = {
|
||||
),
|
||||
shieldLock: (
|
||||
<svg viewBox="0 0 24 24">
|
||||
<circle cx="12" cy="11.994" r="1.5"></circle>
|
||||
<path d="M12,4.744a1.752,1.752,0,0,0-1.75,1.75v1.25a.5.5,0,0,0,.5.5h2.5a.5.5,0,0,0,.5-.5V6.494A1.752,1.752,0,0,0,12,4.744Z"></path>
|
||||
<path d="M24,1.953A1.959,1.959,0,0,0,22.043.006H1.959A1.958,1.958,0,0,0,.012,1.965L0,9.306A15.146,15.146,0,0,0,11.861,23.975a1,1,0,0,0,.4,0A15.145,15.145,0,0,0,23.988,9.2ZM17,14.744a1,1,0,0,1-1,1H8a1,1,0,0,1-1-1v-5.5a1,1,0,0,1,1-1h.25a.5.5,0,0,0,.5-.5V6.494a3.25,3.25,0,0,1,6.5,0v1.25a.5.5,0,0,0,.5.5H16a1,1,0,0,1,1,1Z"></path>
|
||||
<circle cx="12" cy="11.994" r="1.5" />
|
||||
<path d="M12,4.744a1.752,1.752,0,0,0-1.75,1.75v1.25a.5.5,0,0,0,.5.5h2.5a.5.5,0,0,0,.5-.5V6.494A1.752,1.752,0,0,0,12,4.744Z" />
|
||||
<path d="M24,1.953A1.959,1.959,0,0,0,22.043.006H1.959A1.958,1.958,0,0,0,.012,1.965L0,9.306A15.146,15.146,0,0,0,11.861,23.975a1,1,0,0,0,.4,0A15.145,15.145,0,0,0,23.988,9.2ZM17,14.744a1,1,0,0,1-1,1H8a1,1,0,0,1-1-1v-5.5a1,1,0,0,1,1-1h.25a.5.5,0,0,0,.5-.5V6.494a3.25,3.25,0,0,1,6.5,0v1.25a.5.5,0,0,0,.5.5H16a1,1,0,0,1,1,1Z" />
|
||||
</svg>
|
||||
),
|
||||
play: (
|
||||
@@ -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');
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
category: Maintenance
|
||||
authors: [MatissJanis]
|
||||
---
|
||||
|
||||
Port react rules from eslint to oxlint
|
||||
@@ -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<compat/resolve>, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.10#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin<compat/resolve>":
|
||||
"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.10#optional!builtin<compat/resolve>":
|
||||
version: 1.22.10
|
||||
resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin<compat/resolve>::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<compat/resolve>":
|
||||
version: 2.0.0-next.5
|
||||
resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin<compat/resolve>::version=2.0.0-next.5&hash=c3c19d"
|
||||
"resolve@patch:resolve@npm%3A^1.22.4#optional!builtin<compat/resolve>":
|
||||
version: 1.22.11
|
||||
resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin<compat/resolve>::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
|
||||
|
||||
Reference in New Issue
Block a user