@paratco/eslint-config 3.4.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,23 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/configs/base.ts", "../src/rules/javascript.ts", "../src/rules/typescript.ts", "../src/rules/unicorn.ts", "../src/globs.ts", "../src/configs/react.ts", "../src/rules/react.ts", "../src/rules/react_kit.ts", "../src/configs/import.ts", "../src/rules/import.ts", "../src/configs/prettierFormatter.ts", "../src/configs/stylisticFormatter.ts", "../src/rules/stylistic.ts"],
4
+ "sourcesContent": [
5
+ "import type { Linter } from \"eslint\";\nimport { defineConfig } from \"eslint/config\";\nimport globals from \"globals\";\nimport type { TSESLint } from \"@typescript-eslint/utils\";\nimport nodeConfig from \"./configs/node\";\nimport reactConfig from \"./configs/react\";\nimport importConfig from \"./configs/import\";\nimport prettierFormatter from \"./configs/prettierFormatter\";\nimport stylisticFormatter from \"./configs/stylisticFormatter\";\nimport type { Options, TypescriptOptions } from \"./types\";\nimport { ALL_FILES } from \"./globs\";\n\nfunction node(typescript?: TypescriptOptions): TSESLint.FlatConfig.Config[\"languageOptions\"] {\n return {\n globals: globals.node,\n parserOptions: {\n ecmaVersion: \"latest\",\n tsconfigRootDir: typescript?.tsconfigRootDir,\n project: typescript?.project\n }\n };\n}\n\nfunction react(typescript?: TypescriptOptions): TSESLint.FlatConfig.Config[\"languageOptions\"] {\n return {\n globals: {\n ...globals.serviceworker,\n ...globals.browser\n },\n parserOptions: {\n ecmaFeatures: { jsx: true },\n tsconfigRootDir: typescript?.tsconfigRootDir,\n project: typescript?.project\n }\n };\n}\n\nexport function createConfig(opt: Options): Linter.Config[] {\n let config: Linter.Config[];\n\n if (opt.platform === \"node\") {\n config = [\n ...nodeConfig,\n {\n files: ALL_FILES,\n languageOptions: node(opt.typescript) as unknown as Linter.LanguageOptions\n }\n ];\n } else {\n config = [\n ...reactConfig,\n {\n files: ALL_FILES,\n languageOptions: react(opt.typescript) as unknown as Linter.LanguageOptions\n }\n ];\n }\n\n if (opt.useImport === true) {\n config.push(...importConfig(opt.typescript));\n }\n\n config.push(...(opt.style === \"stylistic\" ? stylisticFormatter : prettierFormatter));\n\n if (opt.overrides !== undefined) {\n config.push(...opt.overrides);\n }\n\n if (opt.ignores !== undefined) {\n config.push({ ignores: opt.ignores });\n }\n\n if (opt.files !== undefined && opt.files.length > 0) {\n return defineConfig({ files: opt.files, extends: config });\n }\n\n return config;\n}\n",
6
+ "import eslintJS from \"@eslint/js\";\nimport { configs as eslintTSConfigs } from \"typescript-eslint\";\nimport eslintPluginUnicorn from \"eslint-plugin-unicorn\";\n\n// Custom Rules\nimport type { Linter } from \"eslint\";\nimport javascriptRules from \"../rules/javascript\";\nimport typescriptRules from \"../rules/typescript\";\nimport unicornRules from \"../rules/unicorn\";\nimport { ALL_FILES, TS_FILES } from \"../globs\";\n\nexport default [\n eslintJS.configs.recommended,\n ...eslintTSConfigs.strictTypeChecked,\n ...eslintTSConfigs.stylisticTypeChecked,\n eslintPluginUnicorn.configs.recommended,\n\n // JavaScript Rules\n {\n files: ALL_FILES,\n rules: javascriptRules\n },\n\n // TypeScript Rules\n {\n files: TS_FILES,\n rules: typescriptRules\n },\n\n // Unicorn Rules\n {\n files: ALL_FILES,\n rules: unicornRules\n }\n] as Linter.Config[];\n",
7
+ "import type { Linter } from \"eslint\";\n\nexport default {\n // https://eslint.org/docs/latest/rules/eqeqeq\n // Require the use of === and !==\n eqeqeq: [\"warn\"],\n\n // https://eslint.org/docs/latest/rules/curly\n // Enforce consistent brace style for all control statements\n curly: [\"warn\", \"all\"],\n\n // https://eslint.org/docs/latest/rules/no-restricted-imports\n // Disallow specified modules when loaded by import\n \"no-restricted-imports\": [\n \"error\",\n {\n patterns: [\n {\n regex: \"^(node:)?process$\",\n message: \"Please dont import node:process.\"\n }\n ]\n }\n ],\n\n // https://eslint.org/docs/latest/rules/no-unused-vars\n // Disallow unused variables\n \"no-unused-vars\": [\n \"error\",\n {\n args: \"all\",\n argsIgnorePattern: \"^_\",\n caughtErrors: \"all\",\n caughtErrorsIgnorePattern: \"^_\",\n destructuredArrayIgnorePattern: \"^_\",\n ignoreRestSiblings: true\n }\n ],\n\n // https://eslint.org/docs/latest/rules/no-fallthrough\n // Disallow fallthrough of case statements\n \"no-fallthrough\": [\n \"error\",\n {\n allowEmptyCase: true\n }\n ]\n} as const satisfies Linter.RulesRecord;\n",
8
+ "import type { Linter } from \"eslint\";\n\nexport default {\n // Enforce that class methods utilize this.\n // https://typescript-eslint.io/rules/class-methods-use-this\n // Note: you must disable the base rule as it can report incorrect errors\n \"class-methods-use-this\": \"off\",\n \"@typescript-eslint/class-methods-use-this\": [\n \"error\",\n {\n ignoreOverrideMethods: true,\n ignoreClassesThatImplementAnInterface: true\n }\n ],\n\n // Require return statements to either always or never specify values\n // https://typescript-eslint.io/rules/consistent-return/\n // Note: you must disable the base rule as it can report incorrect errors\n \"consistent-return\": \"off\",\n \"@typescript-eslint/consistent-return\": \"off\",\n\n // Enforce consistent usage of type exports.\n // https://typescript-eslint.io/rules/consistent-type-exports\n \"@typescript-eslint/consistent-type-exports\": [\n \"error\",\n {\n fixMixedExportsWithInlineTypeSpecifier: true\n }\n ],\n\n // Enforce consistent usage of type imports.\n // https://typescript-eslint.io/rules/consistent-type-imports\n \"@typescript-eslint/consistent-type-imports\": [\"error\"],\n\n // Enforce default parameters to be last.\n // https://typescript-eslint.io/rules/default-param-last\n // Note: you must disable the base rule as it can report incorrect errors\n \"default-param-last\": \"off\",\n \"@typescript-eslint/default-param-last\": [\"error\"],\n\n // Require explicit return types on functions and class methods.\n // https://typescript-eslint.io/rules/explicit-function-return-type\n \"@typescript-eslint/explicit-function-return-type\": [\n \"error\",\n {\n allowExpressions: true\n }\n ],\n\n // Require explicit accessibility modifiers on class properties and methods.\n // https://typescript-eslint.io/rules/explicit-member-accessibility\n \"@typescript-eslint/explicit-member-accessibility\": [\n \"error\",\n {\n accessibility: \"no-public\",\n overrides: {\n constructors: \"off\"\n }\n }\n ],\n\n // Require explicit return and argument types on exported functions' and classes' public class methods.\n // https://typescript-eslint.io/rules/explicit-module-boundary-types\n \"@typescript-eslint/explicit-module-boundary-types\": [\"error\"],\n\n // Require or disallow initialization in variable declarations.\n // https://typescript-eslint.io/rules/init-declarations\n // Note: you must disable the base rule as it can report incorrect errors\n \"init-declarations\": \"off\",\n \"@typescript-eslint/init-declarations\": [\"off\"],\n\n // Enforce a maximum number of parameters in function definitions.\n // https://typescript-eslint.io/rules/max-params\n // Note: you must disable the base rule as it can report incorrect errors\n \"max-params\": \"off\",\n \"@typescript-eslint/max-params\": [\"off\"],\n\n // Require a consistent member declaration order.\n // https://typescript-eslint.io/rules/member-ordering\n \"@typescript-eslint/member-ordering\": [\n \"error\",\n { default: [\"constructor\", \"field\", \"static-method\", \"method\", \"signature\"] }\n ],\n\n // Enforce using a particular method signature syntax.\n // https://typescript-eslint.io/rules/method-signature-style\n \"@typescript-eslint/method-signature-style\": [\"error\"],\n\n // Enforce naming conventions for everything across a codebase.\n // https://typescript-eslint.io/rules/naming-convention\n // TODO: We can split this rule. for components it enforces PascalCase and functions camelCase\n \"@typescript-eslint/naming-convention\": [\n \"error\",\n {\n selector: \"function\",\n format: [\"PascalCase\", \"camelCase\"]\n }\n ],\n\n // Disallow duplicate class members.\n // https://typescript-eslint.io/rules/no-dupe-class-members\n // Note: you must disable the base rule as it can report incorrect errors\n \"no-dupe-class-members\": \"off\",\n \"@typescript-eslint/no-dupe-class-members\": [\"off\"],\n\n // Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers.\n // https://typescript-eslint.io/rules/no-import-type-side-effects\n \"@typescript-eslint/no-import-type-side-effects\": [\"error\"],\n\n // Disallow this keywords outside of classes or class-like objects.\n // https://typescript-eslint.io/rules/no-invalid-this\n // Note: you must disable the base rule as it can report incorrect errors\n \"no-invalid-this\": \"off\",\n \"@typescript-eslint/no-invalid-this\": [\"error\"],\n\n // Disallow function declarations that contain unsafe references inside loop statements.\n // https://typescript-eslint.io/rules/no-loop-func\n // Note: you must disable the base rule as it can report incorrect errors\n \"no-loop-func\": \"off\",\n \"@typescript-eslint/no-loop-func\": [\"error\"],\n\n // Disallow magic numbers.\n // https://typescript-eslint.io/rules/no-magic-numbers\n // Note: you must disable the base rule as it can report incorrect errors\n \"no-magic-numbers\": \"off\",\n \"@typescript-eslint/no-magic-numbers\": [\"off\"],\n\n // Disallow variable redeclaration.\n // https://typescript-eslint.io/rules/no-redeclare\n // Note: you must disable the base rule as it can report incorrect errors\n \"no-redeclare\": \"off\",\n \"@typescript-eslint/no-redeclare\": [\"off\"],\n\n // Disallow invocation of require().\n // https://typescript-eslint.io/rules/no-require-imports\n // Added to recommended\n // \"@typescript-eslint/no-require-imports\": [\"error\"],\n\n // Disallow specified modules when loaded by import.\n // https://typescript-eslint.io/rules/no-restricted-imports\n // Note: you must disable the base rule as it can report incorrect errors\n \"no-restricted-imports\": \"off\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n patterns: [\n {\n regex: \"^(node:)?process$\",\n message: \"Please dont import node:process.\"\n }\n ]\n }\n ],\n\n // Disallow certain types\n // https://typescript-eslint.io/rules/no-restricted-types/\n // \"@typescript-eslint/no-restricted-types\": [\"off\"],\n\n // Disallow variable declarations from shadowing variables declared in the outer scope.\n // https://typescript-eslint.io/rules/no-shadow\n // Note: you must disable the base rule as it can report incorrect errors\n \"no-shadow\": \"off\",\n \"@typescript-eslint/no-shadow\": [\"error\"],\n\n // https://typescript-eslint.io/rules/no-unnecessary-parameter-property-assignment/\n // Disallow unnecessary assignment of constructor property parameter\n \"@typescript-eslint/no-unnecessary-parameter-property-assignment\": [\"off\"],\n\n // Disallow unnecessary namespace qualifiers.\n // https://typescript-eslint.io/rules/no-unnecessary-qualifier\n \"@typescript-eslint/no-unnecessary-qualifier\": [\"warn\"],\n\n // Disallow conversion idioms when they do not change the type or value of the expression\n // https://typescript-eslint.io/rules/no-unnecessary-type-conversion/\n \"@typescript-eslint/no-unnecessary-type-conversion\": [\"warn\"],\n\n // Disallow type assertions that narrow a type\n // https://typescript-eslint.io/rules/no-unsafe-type-assertion/\n \"@typescript-eslint/no-unsafe-type-assertion\": [\"off\"],\n\n // Require unary negation to take a number.\n // https://typescript-eslint.io/rules/no-unsafe-unary-minus\n // Added to recommended\n // \"@typescript-eslint/no-unsafe-unary-minus\": [\"error\"],\n\n // Disallow unused expressions.\n // https://typescript-eslint.io/rules/no-unused-expressions\n // Note: you must disable the base rule as it can report incorrect errors\n // Added to recommended\n // \"no-unused-expressions\": \"off\",\n // \"@typescript-eslint/no-unused-expressions\": [\"off\"],\n\n // Disallow the use of variables before they are defined.\n // https://typescript-eslint.io/rules/no-use-before-define\n // Note: you must disable the base rule as it can report incorrect errors\n \"no-use-before-define\": \"off\",\n \"@typescript-eslint/no-use-before-define\": [\"error\"],\n\n // Disallow empty exports that don't change anything in a module file.\n // https://typescript-eslint.io/rules/no-useless-empty-export\n \"@typescript-eslint/no-useless-empty-export\": [\"warn\"],\n\n // Require or disallow parameter properties in class constructors.\n // https://typescript-eslint.io/rules/parameter-properties\n \"@typescript-eslint/parameter-properties\": [\"error\"],\n\n // Require destructuring from arrays and/or objects.\n // https://typescript-eslint.io/rules/prefer-destructuring\n // Note: you must disable the base rule as it can report incorrect errors\n \"prefer-destructuring\": \"off\",\n \"@typescript-eslint/prefer-destructuring\": [\"off\"],\n\n // Require each enum member value to be explicitly initialized.\n // https://typescript-eslint.io/rules/prefer-enum-initializers\n \"@typescript-eslint/prefer-enum-initializers\": [\"off\"],\n\n // Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result.\n // https://typescript-eslint.io/rules/prefer-find\n // Added to stylistic\n // \"@typescript-eslint/prefer-find\": [\"warn\"],\n\n // Require private members to be marked as readonly if they're never modified outside the constructor.\n // https://typescript-eslint.io/rules/prefer-readonly\n \"@typescript-eslint/prefer-readonly\": [\"warn\"],\n\n // Require function parameters to be typed as readonly to prevent accidental mutation of inputs.\n // https://typescript-eslint.io/rules/prefer-readonly-parameter-types\n \"@typescript-eslint/prefer-readonly-parameter-types\": [\"off\"],\n\n // Enforce RegExp#exec over String#match if no global flag is provided.\n // https://typescript-eslint.io/rules/prefer-regexp-exec\n // Added to stylistic\n // \"@typescript-eslint/prefer-regexp-exec\": [\"warn\"],\n\n // Require any function or method that returns a Promise to be marked async.\n // https://typescript-eslint.io/rules/promise-function-async\n \"@typescript-eslint/promise-function-async\": [\"error\"],\n\n // Require Array#sort and Array#toSorted calls to always provide a compareFunction.\n // https://typescript-eslint.io/rules/require-array-sort-compare\n \"@typescript-eslint/require-array-sort-compare\": [\"error\"],\n\n // Enforce consistent returning of awaited values.\n // https://typescript-eslint.io/rules/return-await\n // Note: you must disable the base rule as it can report incorrect errors\n // Added to recommended\n // \"no-return-await\": \"off\",\n // \"@typescript-eslint/return-await\": [\"off\"],\n\n // Disallow certain types in boolean expressions.\n // https://typescript-eslint.io/rules/strict-boolean-expressions\n \"@typescript-eslint/strict-boolean-expressions\": [\n \"error\",\n {\n allowString: false,\n allowNumber: false,\n allowNullableObject: false\n }\n ],\n\n // Require switch-case statements to be exhaustive.\n // https://typescript-eslint.io/rules/switch-exhaustiveness-check\n \"@typescript-eslint/switch-exhaustiveness-check\": [\"error\"],\n\n // Additional rules (Customize rules that are not in predefined configs)\n\n // Enforce template literal expressions to be of string type.\n // https://typescript-eslint.io/rules/restrict-template-expressions\n \"@typescript-eslint/restrict-template-expressions\": [\n \"error\",\n {\n allowBoolean: true,\n allowNumber: true,\n allowRegExp: true\n }\n ],\n\n // Disallow type parameters that aren't used multiple times\n // https://typescript-eslint.io/rules/no-unnecessary-type-parameters\n // Note: This rule is in the strict rules. But we decided to disable this rule.\n \"@typescript-eslint/no-unnecessary-type-parameters\": [\"off\"],\n\n // Disallow unused variables.\n // https://typescript-eslint.io/rules/no-unused-vars\n // Note: This rule is in the recommended rules. But we modify it.\n \"no-unused-vars\": [\"off\"],\n \"@typescript-eslint/no-unused-vars\": [\n \"error\",\n {\n args: \"all\",\n argsIgnorePattern: \"^_\",\n caughtErrors: \"all\",\n caughtErrorsIgnorePattern: \"^_\",\n destructuredArrayIgnorePattern: \"^_\",\n ignoreRestSiblings: true\n }\n ],\n\n // Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects\n // https://typescript-eslint.io/rules/prefer-optional-chain\n // Note: This rule is in the recommended rules. But we remove it.\n \"@typescript-eslint/prefer-optional-chain\": [\"off\"],\n\n // Disallow type assertions that do not change the type of an expression.\n // https://typescript-eslint.io/rules/no-unnecessary-type-assertion/\n // Note: This rule is in the recommended rules. But we disable it.\n \"@typescript-eslint/no-unnecessary-type-assertion\": [\"off\"]\n} as const satisfies Linter.RulesRecord;\n",
9
+ "import type { Linter } from \"eslint\";\n\nexport default {\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/catch-error-name.md\n // Enforce a specific parameter name in catch clauses.\n \"unicorn/catch-error-name\": [\n \"error\",\n {\n ignore: [String.raw`^error[\\da-zA-Z_]*$`]\n }\n ],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/filename-case.md\n // Enforce a case style for filenames.\n \"unicorn/filename-case\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prevent-abbreviations.md\n // Prevent abbreviations.\n \"unicorn/prevent-abbreviations\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-null.md\n // Disallow the use of the null literal.\n \"unicorn/no-null\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negated-condition.md\n // Disallow negated conditions.\n \"unicorn/no-negated-condition\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/switch-case-braces.md\n // Enforce consistent brace style for case clauses.\n \"unicorn/switch-case-braces\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-spread.md\n // Prefer the spread operator over Array.from(…), Array#concat(…), Array#{slice,toSpliced}() and String#split('').\n \"unicorn/prefer-spread\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-at.md\n // Prefer .at() method for index access and String#charAt().\n \"unicorn/prefer-at\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-ternary.md\n // Prefer ternary expressions over simple if-else statements.\n \"unicorn/prefer-ternary\": [\"warn\", \"only-single-line\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-typeof-undefined.md\n // Disallow comparing undefined using typeof.\n \"unicorn/no-typeof-undefined\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-static-only-class.md\n // Disallow classes that only have static members.\n \"unicorn/no-static-only-class\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-top-level-side-effects.md\n // Disallow top-level side effects in exported modules.\n \"unicorn/no-top-level-side-effects\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-break-in-nested-loop.md\n // Disallow `break` and `continue` in nested loops and switches inside loops.\n \"unicorn/no-break-in-nested-loop\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-short-arrow-method.md\n // Prefer arrow function properties over methods with a single return.\n \"unicorn/prefer-short-arrow-method\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/max-nested-calls.md\n // Limit the depth of nested calls.\n \"unicorn/max-nested-calls\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-boolean-name.md\n // Enforce consistent naming for boolean names.\n \"unicorn/consistent-boolean-name\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-class-member-order.md\n // Enforce consistent class member order.\n \"unicorn/consistent-class-member-order\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-uint8array-base64.md\n // Prefer `Uint8Array#toBase64()` and `Uint8Array.fromBase64()` over `atob()`, `btoa()`, and `Buffer` base64 conversions.\n // Kept on deliberately: upstream demoted this to off in v73, but the native path is faster and the\n // gap is polyfillable.\n \"unicorn/prefer-uint8array-base64\": [\"error\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-iterator-to-array.md\n // Prefer `Iterator#toArray()` over temporary arrays from iterator spreads.\n \"unicorn/prefer-iterator-to-array\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-split-limit.md\n // Prefer `String#split()` with a limit.\n \"unicorn/prefer-split-limit\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-minimal-ternary.md\n // Prefer moving ternaries into the minimal varying part of an expression.\n \"unicorn/prefer-minimal-ternary\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-non-function-verb-prefix.md\n // Disallow non-function values with function-style verb prefixes.\n \"unicorn/no-non-function-verb-prefix\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-https.md\n // Prefer HTTPS over HTTP.\n \"unicorn/prefer-https\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/class-reference-in-static-methods.md\n // Enforce consistent class references in static methods.\n \"unicorn/class-reference-in-static-methods\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-await.md\n // Prefer await over promise chaining.\n \"unicorn/prefer-await\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-top-level-assignment-in-function.md\n // Disallow assigning to top-level variables from inside functions.\n \"unicorn/no-top-level-assignment-in-function\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unsafe-string-replacement.md\n // Disallow non-literal replacement values in String#replace() and String#replaceAll().\n \"unicorn/no-unsafe-string-replacement\": [\"warn\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/name-replacements.md\n // Enforce replacements for variable, property, and filenames.\n \"unicorn/name-replacements\": \"off\",\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-nonstandard-builtin-properties.md\n // Disallow non-standard properties on built-in objects.\n \"unicorn/no-nonstandard-builtin-properties\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/single-line-block-comment-style.md\n // Enforce a consistent style for single-line block comments.\n // Off: the default `multiline` style rewrites `/* x */` and one-line `/** x */` JSDoc into\n // multi-line comments. We take no stance on comment shape (see @stylistic/multiline-comment-style).\n \"unicorn/single-line-block-comment-style\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-promise-try.md\n // Prefer `Promise.try()` over promise-wrapping boilerplate.\n // Off: flags everyday `Promise.resolve().then(() => f())` and `Promise.try()` is too new to require.\n \"unicorn/prefer-promise-try\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-then-catch.md\n // Prefer `.then().catch()` over `.then(…, …)` for error handling.\n // Off: not equivalent. `.then(a, b)` does not catch errors thrown by `a`, `.then(a).catch(b)` does.\n \"unicorn/prefer-then-catch\": [\"off\"],\n\n // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-dom-node-html-methods.md\n // Prefer `.getHTML()` and `.setHTML()` over `.innerHTML`.\n // Off: fires on plain `.innerHTML` reads, and `.setHTML()` (Sanitizer API) is not polyfillable.\n \"unicorn/prefer-dom-node-html-methods\": [\"off\"]\n} as const satisfies Linter.RulesRecord;\n",
10
+ "/**\n * File globs shared by every config block.\n *\n * These must stay in sync. `languageOptions` (which carries\n * `parserOptions.project`) and the type-aware rule blocks are matched\n * separately, so any extension covered by one but not the other makes ESLint\n * crash on that file with:\n *\n * Error while loading rule '@typescript-eslint/await-thenable': You have used\n * a rule which requires type information, but don't have parserOptions set to\n * generate type information for this file.\n *\n * Import these instead of writing the globs inline, so they cannot drift apart\n * again. See tests/file-extensions.test.ts.\n */\n\n/** Every JavaScript and TypeScript extension this config supports. */\nexport const ALL_FILES = [\"**/*.{js,mjs,cjs,jsx,ts,mts,cts,tsx}\"];\n\n/** The TypeScript-only subset, for rules that make no sense in plain JS. */\nexport const TS_FILES = [\"**/*.{ts,mts,cts,tsx}\"];\n",
11
+ "// Plugins\nimport eslintReact from \"@eslint-react/eslint-plugin\";\nimport { configs as reactHooksConfigs } from \"eslint-plugin-react-hooks\";\nimport reactRefreshPlugin from \"eslint-plugin-react-refresh\";\n\n// Custom Rules\nimport type { Linter } from \"eslint\";\nimport reactRules from \"../rules/react\";\nimport { ALL_FILES } from \"../globs\";\nimport reactKitRules from \"../rules/react_kit\";\nimport baseConfig from \"./base\";\n\nexport default [\n ...baseConfig,\n reactHooksConfigs.flat[\"recommended-latest\"],\n reactRefreshPlugin.configs.recommended,\n\n // React Plugin\n {\n files: ALL_FILES,\n ...eslintReact.configs[\"recommended-typescript\"],\n\n rules: {\n ...reactRules\n }\n },\n\n // Custom React Kit Rules (self-contained flat config: plugin + rules)\n reactKitRules\n] as Linter.Config[];\n",
12
+ "import type { Linter } from \"eslint\";\n\nexport default {\n // https://eslint-react.xyz/docs/rules/dom-no-missing-button-type\n // Enforces an explicit 'type' attribute for 'button' elements.\n \"@eslint-react/dom-no-missing-button-type\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/no-missing-component-display-name\n // Enforces that all components have a 'displayName' that can be used in DevTools.\n \"@eslint-react/no-missing-component-display-name\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/use-state\n // Enforces correct usage of 'useState', including destructuring, symmetric naming of the value and setter, and wrapping expensive initializers in a lazy initializer function.\n \"@eslint-react/use-state\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox\n // Enforces an explicit 'sandbox' attribute for 'iframe' elements.\n \"@eslint-react/dom-no-missing-iframe-sandbox\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/no-missing-key\n // Disallows missing 'key' on items in list rendering.\n \"@eslint-react/no-missing-key\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/no-duplicate-key\n // Prevents duplicate 'key' props on sibling elements when rendering lists.\n \"@eslint-react/no-duplicate-key\": [\"warn\"],\n\n // https://eslint-react.xyz/docs/rules/jsx-no-comment-textnodes\n // Prevents comment strings from being accidentally inserted into a JSX element's text nodes.\n \"@eslint-react/jsx-no-comment-textnodes\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/no-unstable-context-value\n // Prevents non-stable values (i.e., object literals) from being used as a value for 'Context.Provider'.\n \"@eslint-react/no-unstable-context-value\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering\n // Prevents problematic leaked values from being rendered.\n \"@eslint-react/no-leaked-conditional-rendering\": [\"warn\"],\n\n // https://eslint-react.xyz/docs/rules/dom-no-script-url\n // Disallows 'javascript:' URLs as attribute values.\n \"@eslint-react/dom-no-script-url\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank\n // Disallows 'target=\"_blank\"' without 'rel=\"noreferrer noopener\"'.\n \"@eslint-react/dom-no-unsafe-target-blank\": [\"warn\"],\n\n // https://eslint-react.xyz/docs/rules/jsx-no-useless-fragment\n // Disallows useless fragment elements.\n \"@eslint-react/jsx-no-useless-fragment\": [\"warn\"],\n\n // https://eslint-react.xyz/docs/rules/no-access-state-in-setstate\n // Disallows accessing 'this.state' inside 'setState' calls.\n \"@eslint-react/no-access-state-in-setstate\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/no-array-index-key\n // Disallows using an item's index in the array as its key.\n \"@eslint-react/no-array-index-key\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/jsx-no-children-prop\n // Disallows passing 'children' as a prop.\n \"@eslint-react/jsx-no-children-prop\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml\n // Disallows DOM elements from using 'dangerouslySetInnerHTML'.\n \"@eslint-react/dom-no-dangerously-set-innerhtml\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children\n // Disallows DOM elements from using 'dangerouslySetInnerHTML' and 'children' at the same time.\n \"@eslint-react/dom-no-dangerously-set-innerhtml-with-children\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/dom-no-find-dom-node\n // Disallows 'findDOMNode'.\n \"@eslint-react/dom-no-find-dom-node\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/jsx-no-namespace\n // Disallow JSX namespace syntax, as React does not support them.\n \"@eslint-react/jsx-no-namespace\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/no-unstable-default-props\n // Prevents using referential-type values as default props in object destructuring.\n \"@eslint-react/no-unstable-default-props\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/dom-no-render-return-value\n // Disallows the return value of 'ReactDOM.render'.\n \"@eslint-react/dom-no-render-return-value\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/dom-no-unknown-property\n // Disallows unknown 'DOM' properties.\n \"@eslint-react/dom-no-unknown-property\": [\"warn\"],\n\n // https://eslint-react.xyz/docs/rules/no-nested-component-definitions\n // Disallows nesting component definitions inside other components.\n \"@eslint-react/no-nested-component-definitions\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/no-unused-props\n // Warns about component props that are defined but never used.\n \"@eslint-react/no-unused-props\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/no-unused-state\n // Warns about state variables that are defined but never used.\n \"@eslint-react/no-unused-state\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update\n // Disallows calling 'this.setState' in 'componentWillUpdate' outside functions such as callbacks.\n \"@eslint-react/no-set-state-in-component-will-update\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/dom-no-string-style-prop\n // Disallows the use of string style prop in JSX. Use an object instead.\n \"@eslint-react/dom-no-string-style-prop\": [\"error\"],\n\n // https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children\n // Disallows 'children' in void DOM elements.\n \"@eslint-react/dom-no-void-elements-with-children\": [\"error\"]\n} as const satisfies Linter.RulesRecord;\n",
13
+ "import type { Linter } from \"eslint\";\nimport type { RuleFunction } from \"@eslint-react/kit\";\nimport eslintReactKit from \"@eslint-react/kit\";\nimport { TSESTree } from \"@typescript-eslint/types\";\n\n/** Enforce an explicit value for boolean JSX attributes (e.g. `autoFocus={true}`). */\nfunction jsxBooleanValue(): RuleFunction {\n // eslint-disable-next-line unicorn/consistent-function-scoping -- builder requires a factory returning the rule\n return (context) => ({\n JSXAttribute(node) {\n // › Guard: only shorthand boolean attributes (those without a value) should be flagged\n if (node.value !== null) {\n return;\n }\n\n // › Report: prefer the explicit `={true}` form\n context.report({\n node,\n message: \"Set an explicit value for boolean attributes (e.g. `prop={true}`).\",\n fix: (fixer) => fixer.insertTextAfter(node.name, \"={true}\")\n });\n }\n });\n}\n\n/** Options for {@link jsxFragments}. */\ninterface JsxsFragmentsOptions {\n\n /** The mode to enforce: \"syntax\" (default, shorthand) or \"element\" (standard form). */\n mode?: \"syntax\" | \"element\";\n}\n\n/** Enforce shorthand or standard form for React fragments. */\nfunction jsxFragments(options: JsxsFragmentsOptions = {}): RuleFunction {\n const { mode = \"syntax\" } = options;\n\n return (context) => {\n // ── Helpers ─────────────────────────────────────\n\n function reportSyntaxPreferred(node: TSESTree.JSXOpeningElement, pattern: \"React.Fragment\" | \"Fragment\"): void {\n // › Guard: has key prop (legitimate use of standard form)\n const hasAttributes = node.attributes.length > 0;\n\n if (hasAttributes) {\n return;\n }\n\n context.report({\n node,\n message: `Use shorthand fragment syntax '<>...</>' instead of '<${pattern}>...</${pattern}'.`,\n fix(fixer) {\n const closing = node.parent.closingElement;\n\n if (closing === null) {\n return null;\n }\n\n return [fixer.replaceText(node, \"<>\"), fixer.replaceText(closing, \"</>\")];\n }\n });\n }\n\n // ── Listeners ────────────────────────────────────\n\n return {\n JSXOpeningElement(node) {\n const name = node.name;\n\n // ─── Handle <Fragment> (JSXIdentifier) ───────\n if (name.type === TSESTree.AST_NODE_TYPES.JSXIdentifier && name.name === \"Fragment\") {\n if (mode === \"syntax\") {\n reportSyntaxPreferred(node, \"Fragment\");\n }\n\n return;\n }\n\n // ─── Handle <React.Fragment> (JSXMemberExpression) ─\n if (name.type !== TSESTree.AST_NODE_TYPES.JSXMemberExpression) {\n return;\n }\n\n if (name.object.type !== TSESTree.AST_NODE_TYPES.JSXIdentifier\n || name.object.name !== \"React\"\n || name.property.name !== \"Fragment\") {\n return;\n }\n\n if (mode === \"syntax\") {\n reportSyntaxPreferred(node, \"React.Fragment\");\n }\n },\n JSXFragment(node) {\n if (mode === \"element\") {\n context.report({\n node,\n message: \"Use '<React.Fragment>...</React.Fragment>' instead of shorthand '<>...</>'.\",\n fix: (fixer) => [\n fixer.replaceText(node.openingFragment, \"<React.Fragment>\"),\n fixer.replaceText(node.closingFragment, \"</React.Fragment>\")\n ]\n });\n }\n }\n };\n };\n}\n\n/** Options for {@link jsxNoDuplicateProps}. */\ninterface JsxNoDuplicatePropsOptions {\n\n /** Whether to ignore case when checking for duplicate props. */\n ignoreCase?: boolean;\n}\n\n/** Disallow duplicate properties in JSX. */\nfunction jsxNoDuplicateProps(options: JsxNoDuplicatePropsOptions = {}): RuleFunction {\n const { ignoreCase: isIgnoreCase = false } = options;\n\n return (context) => ({\n JSXOpeningElement(node) {\n const seen = new Map<string, string>();\n\n // ─── Check each attribute ──────────────────────\n for (const attr of node.attributes) {\n if (attr.type !== TSESTree.AST_NODE_TYPES.JSXAttribute) {\n continue;\n }\n\n if (attr.name.type !== TSESTree.AST_NODE_TYPES.JSXIdentifier) {\n continue;\n }\n\n const name = isIgnoreCase ? attr.name.name.toLowerCase() : attr.name.name;\n\n // › Report duplicate\n if (seen.has(name)) {\n context.report({\n node: attr,\n message: `Duplicate prop \"${attr.name.name}\" found.`\n });\n } else {\n seen.set(name, attr.name.name);\n }\n }\n }\n });\n}\n\nconst reactKitConfig: Linter.Config = eslintReactKit()\n .use(jsxBooleanValue)\n .use(jsxFragments, { mode: \"element\" })\n .use(jsxNoDuplicateProps)\n .getConfig();\n\nexport default reactKitConfig;\n",
14
+ "import { flatConfigs as importXFlatConfigs } from \"eslint-plugin-import-x\";\nimport { createTypeScriptImportResolver } from \"eslint-import-resolver-typescript\";\nimport unusedImports from \"eslint-plugin-unused-imports\";\n\n// Custom Rules\nimport type { Linter } from \"eslint\";\nimport type { TypeScriptResolverOptions } from \"eslint-import-resolver-typescript\";\nimport importXRules from \"../rules/import\";\nimport { ALL_FILES } from \"../globs\";\nimport type { TypescriptOptions } from \"../types\";\n\nexport default function importConfig(typescript?: TypescriptOptions): Linter.Config[] {\n const resolverOptions: TypeScriptResolverOptions = { alwaysTryTypes: true, bun: true };\n\n if (typescript !== undefined) {\n resolverOptions.project = typescript.project;\n }\n\n return [\n importXFlatConfigs.recommended,\n importXFlatConfigs.typescript,\n\n // ESLint Plugin Import\n {\n files: ALL_FILES,\n plugins: {\n \"unused-imports\": unusedImports\n },\n settings: {\n \"import-x/resolver-next\": [createTypeScriptImportResolver(resolverOptions)]\n },\n rules: {\n ...importXRules,\n\n // unused-imports\n \"unused-imports/no-unused-imports\": [\"error\"]\n }\n }\n ] as Linter.Config[];\n}\n",
15
+ "import type { Linter } from \"eslint\";\n\nexport default {\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-deprecated.md\n // Forbid imported names marked with @deprecated documentation tag.\n \"import-x/no-deprecated\": [\"error\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-empty-named-blocks.md\n // Forbid empty named import blocks.\n \"import-x/no-empty-named-blocks\": [\"warn\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-extraneous-dependencies.md\n // Forbid the use of extraneous packages.\n \"import-x/no-extraneous-dependencies\": [\n \"error\",\n { devDependencies: false, optionalDependencies: false }\n ],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-mutable-exports.md\n // Forbid the use of mutable exports with var or let.\n \"import-x/no-mutable-exports\": [\"error\"],\n\n // https://github.com/un-ts/eslint-plugin-import-x/blob/HEAD/docs/rules/no-rename-default.md\n // Prohibit importing a default export by another name.\n \"import-x/no-rename-default\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-unused-modules.md\n // Forbid modules without exports, or exports without matching import in another module.\n // TODO: Can be enabled\n \"import-x/no-unused-modules\": [\"off\", { missingExports: true }],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-amd.md\n // Forbid AMD require and define calls.\n \"import-x/no-amd\": [\"error\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-commonjs.md\n // Forbid CommonJS require calls and module.exports or exports.*.\n \"import-x/no-commonjs\": [\"error\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-import-module-exports.md\n // Forbid import statements with CommonJS module.exports.\n \"import-x/no-import-module-exports\": [\"warn\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-nodejs-modules.md\n // Forbid Node.js builtin modules.\n // TODO: Can enable for front-end\n \"import-x/no-nodejs-modules\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/unambiguous.md\n // Forbid potentially ambiguous parse goal (script vs. module).\n \"import-x/unambiguous\": [\"error\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-absolute-path.md\n // Forbid import of modules using absolute paths.\n \"import-x/no-absolute-path\": [\"warn\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-cycle.md\n // Forbid a module from importing a module with a dependency path back to itself.\n \"import-x/no-cycle\": [\"error\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-dynamic-require.md\n // Forbid require() calls with expressions.\n \"import-x/no-dynamic-require\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-internal-modules.md\n // Forbid importing the submodules of other modules.\n // TODO: Must define in the project\n \"import-x/no-internal-modules\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-relative-packages.md\n // Forbid importing packages through relative paths.\n \"import-x/no-relative-packages\": [\"warn\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-relative-parent-imports.md\n // Forbid importing modules from parent directories.\n \"import-x/no-relative-parent-imports\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-restricted-paths.md\n // Enforce which files can be imported in a given folder.\n // TODO: Can be customized\n // \"import-x/no-restricted-paths\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-self-import.md\n // Forbid a module from importing itself.\n \"import-x/no-self-import\": [\"error\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-useless-path-segments.md\n // Forbid unnecessary path segments in import and require statements.\n \"import-x/no-useless-path-segments\": [\n \"warn\",\n {\n noUselessIndex: true\n }\n ],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-webpack-loader-syntax.md\n // Forbid webpack loader syntax in imports.\n \"import-x/no-webpack-loader-syntax\": [\"error\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/consistent-type-specifier-style.md\n // Enforce or ban the use of inline type-only markers for named imports.\n \"import-x/consistent-type-specifier-style\": [\"warn\", \"prefer-top-level\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/dynamic-import-chunkname.md\n // Enforce a leading comment with the webpackChunkName for dynamic imports.\n \"import-x/dynamic-import-chunkname\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/exports-last.md\n // Ensure all exports appear after other statements.\n // TODO: Can be enabled\n \"import-x/exports-last\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/extensions.md\n // Ensure consistent use of file extension within the import path.\n \"import-x/extensions\": [\"error\", \"never\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/first.md\n // Ensure all imports appear before other statements.\n \"import-x/first\": [\"warn\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/group-exports.md\n // Prefer named exports to be grouped together in a single export declaration\n // TODO: Can be enabled\n \"import-x/group-exports\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/max-dependencies.md\n // Enforce the maximum number of dependencies a module can have.\n \"import-x/max-dependencies\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/newline-after-import.md\n // Enforce a newline after import statements.\n \"import-x/newline-after-import\": [\"warn\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-anonymous-default-export.md\n // Forbid anonymous values as default exports.\n \"import-x/no-anonymous-default-export\": [\n \"error\",\n {\n allowArray: false,\n allowArrowFunction: true,\n allowAnonymousClass: false,\n allowAnonymousFunction: false,\n\n // The true value here is for backward compatibility\n allowCallExpression: true,\n allowNew: false,\n allowLiteral: false,\n allowObject: false\n }\n ],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-default-export.md\n // Forbid default exports.\n \"import-x/no-default-export\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-named-default.md\n // Forbid named default exports.\n \"import-x/no-named-default\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-named-export.md\n // Forbid named exports.\n \"import-x/no-named-export\": [\"off\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-namespace.md\n // Forbid namespace (a.k.a. \"wildcard\" *) imports.\n \"import-x/no-namespace\": [\"warn\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-unassigned-import.md\n // Forbid unassigned imports\n \"import-x/no-unassigned-import\": [\"error\", { allow: [\"**/*.css\"] }],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/order.md\n // Enforce a convention in module import order.\n \"import-x/order\": [\"warn\"],\n\n // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/prefer-default-export.md\n // Prefer a default export if module exports a single name or multiple names.\n \"import-x/prefer-default-export\": [\"off\"]\n} as const satisfies Linter.RulesRecord;\n",
16
+ "// Plugins\nimport eslintConfigPrettier from \"eslint-config-prettier\";\nimport type { Linter } from \"eslint\";\n\nexport default [eslintConfigPrettier] as Linter.Config[];\n",
17
+ "import stylistic from \"@stylistic/eslint-plugin\";\nimport type { Linter } from \"eslint\";\nimport stylisticRules from \"../rules/stylistic\";\nimport { ALL_FILES } from \"../globs\";\n\nexport default [\n // Stylistic Configs\n stylistic.configs.customize({\n jsx: true,\n arrowParens: true,\n blockSpacing: true,\n braceStyle: \"stroustrup\",\n commaDangle: \"never\",\n indent: 2,\n semi: true,\n quotes: \"double\",\n quoteProps: \"always\"\n }),\n\n // Stylistic Rules\n {\n files: ALL_FILES,\n languageOptions: {\n parserOptions: {\n ecmaFeatures: {\n jsx: true\n }\n }\n },\n rules: stylisticRules\n }\n] as Linter.Config[];\n",
18
+ "import type { Linter } from \"eslint\";\n\nexport default {\n // https://eslint.style/rules/default/array-bracket-newline\n // Enforce linebreaks after opening and before closing array brackets\n \"@stylistic/array-bracket-newline\": [\"warn\"],\n\n // https://eslint.style/rules/default/array-bracket-spacing\n // Enforce consistent spacing inside array brackets\n \"@stylistic/array-bracket-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/array-element-newline\n // Enforce line breaks after each array element\n \"@stylistic/array-element-newline\": [\"warn\", \"consistent\"],\n\n // https://eslint.style/rules/default/arrow-parens\n // Require parentheses around arrow function arguments\n \"@stylistic/arrow-parens\": [\"warn\", \"always\"],\n\n // https://eslint.style/rules/default/arrow-spacing\n // Enforce consistent spacing before and after the arrow in arrow functions\n \"@stylistic/arrow-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/block-spacing\n // Disallow or enforce spaces inside of blocks after opening block and before closing block\n \"@stylistic/block-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/brace-style\n // Enforce consistent brace style for blocks\n \"@stylistic/brace-style\": [\"warn\", \"1tbs\"],\n\n // https://eslint.style/rules/default/comma-dangle\n // Require or disallow trailing commas\n \"@stylistic/comma-dangle\": [\"warn\"],\n\n // https://eslint.style/rules/default/comma-spacing\n // Enforce consistent spacing before and after commas\n \"@stylistic/comma-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/comma-style\n // Enforce consistent comma style\n \"@stylistic/comma-style\": [\"warn\"],\n\n // https://eslint.style/rules/default/computed-property-spacing\n // Enforce consistent spacing inside computed property brackets\n \"@stylistic/computed-property-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/curly-newline\n // Enforce consistent line breaks after opening and before closing braces\n \"@stylistic/curly-newline\": [\"warn\", \"always\"],\n\n // https://eslint.style/rules/default/dot-location\n // Enforce consistent newlines before and after dots\n \"@stylistic/dot-location\": [\"warn\", \"property\"],\n\n // https://eslint.style/rules/default/eol-last\n // Require or disallow newline at the end of files\n \"@stylistic/eol-last\": [\"warn\"],\n\n // https://eslint.style/rules/default/function-call-spacing\n // Require or disallow spacing between function identifiers and their invocations. Alias of `function-call-spacing`.\n \"@stylistic/function-call-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/function-call-argument-newline\n // Enforce line breaks between arguments of a function call\n \"@stylistic/function-call-argument-newline\": [\"warn\", \"consistent\"],\n\n // https://eslint.style/rules/default/function-paren-newline\n // Enforce consistent line breaks inside function parentheses\n \"@stylistic/function-paren-newline\": [\"warn\", \"consistent\"],\n\n // https://eslint.style/rules/default/generator-star-spacing\n // Enforce consistent spacing around `*` operators in generator functions\n \"@stylistic/generator-star-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/implicit-arrow-linebreak\n // Enforce the location of arrow function bodies\n \"@stylistic/implicit-arrow-linebreak\": [\"warn\"],\n\n // https://eslint.style/rules/default/indent\n // Enforce consistent indentation\n \"@stylistic/indent\": [\"warn\", 2],\n\n // https://eslint.style/rules/default/indent-binary-ops\n // Indentation for binary operators\n \"@stylistic/indent-binary-ops\": [\"warn\", 2],\n\n // https://eslint.style/rules/default/jsx-child-element-spacing\n // Enforce or disallow spaces inside curly braces in JSX attributes and expressions\n \"@stylistic/jsx-child-element-spacing\": [\"error\"],\n\n // https://eslint.style/rules/default/jsx-closing-bracket-location\n // Enforce closing bracket location in JSX\n \"@stylistic/jsx-closing-bracket-location\": [\"warn\"],\n\n // https://eslint.style/rules/default/jsx-closing-tag-location\n // Enforce closing tag location for multiline JSX\n \"@stylistic/jsx-closing-tag-location\": [\"warn\"],\n\n // https://eslint.style/rules/default/jsx-curly-brace-presence\n // Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes\n \"@stylistic/jsx-curly-brace-presence\": [\"warn\"],\n\n // https://eslint.style/rules/default/jsx-curly-newline\n // Enforce consistent linebreaks in curly braces in JSX attributes and expressions\n \"@stylistic/jsx-curly-newline\": [\"warn\"],\n\n // https://eslint.style/rules/default/jsx-curly-spacing\n // Enforce or disallow spaces inside curly braces in JSX attributes and expressions\n \"@stylistic/jsx-curly-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/jsx-equals-spacing\n // Enforce or disallow spaces around equal signs in JSX attributes\n \"@stylistic/jsx-equals-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/jsx-first-prop-new-line\n // Enforce proper position of the first property in JSX\n \"@stylistic/jsx-first-prop-new-line\": [\"warn\"],\n\n // https://eslint.style/rules/default/jsx-function-call-newline\n // Enforce line breaks before and after JSX elements when they are used as arguments to a function.\n \"@stylistic/jsx-function-call-newline\": [\"warn\"],\n\n // https://eslint.style/rules/default/jsx-indent-props\n // Enforce props indentation in JSX\n \"@stylistic/jsx-indent-props\": [\"warn\", 2],\n\n // https://eslint.style/rules/default/jsx-max-props-per-line\n // Enforce maximum of props on a single line in JSX\n \"@stylistic/jsx/jsx-max-props-per-line\": [\"off\"],\n\n // https://eslint.style/rules/default/jsx-newline\n // Require or prevent a new line after jsx elements and expressions.\n \"@stylistic/jsx-newline\": [\"off\"],\n\n // https://eslint.style/rules/default/jsx-one-expression-per-line\n // Require one JSX element per line\n \"@stylistic/jsx-one-expression-per-line\": [\"warn\", { allow: \"single-child\" }],\n\n // https://eslint.style/rules/default/jsx-pascal-case\n // Enforce PascalCase for user-defined JSX components\n \"@stylistic/jsx-pascal-case\": [\"error\"],\n\n // https://eslint.style/rules/default/jsx-quotes\n // Enforce the consistent use of either double or single quotes in JSX attributes\n \"@stylistic/jsx-quotes\": [\"warn\"],\n\n // https://eslint.style/rules/default/jsx-self-closing-comp\n // Disallow extra closing tags for components without children\n \"@stylistic/jsx-self-closing-comp\": [\"warn\"],\n\n // https://eslint.style/rules/default/jsx-sort-props\n // Enforce props alphabetical sorting\n \"@stylistic/jsx-sort-props\": [\n \"warn\",\n {\n callbacksLast: true,\n shorthandFirst: true,\n\n // shorthandLast: false,\n multiline: \"last\",\n\n // ignoreCase: false,\n noSortAlphabetically: true\n\n // reservedFirst: true\n // locale: \"auto\"\n }\n ],\n\n // https://eslint.style/rules/default/jsx-tag-spacing\n // Enforce whitespace in and around the JSX opening and closing brackets\n \"@stylistic/jsx-tag-spacing\": [\n \"warn\",\n {\n closingSlash: \"never\",\n beforeSelfClosing: \"always\",\n afterOpening: \"never\",\n beforeClosing: \"never\"\n }\n ],\n\n // https://eslint.style/rules/default/jsx-wrap-multilines\n // Disallow missing parentheses around multiline JSX\n \"@stylistic/jsx-wrap-multilines\": [\n \"warn\",\n {\n declaration: \"parens-new-line\",\n assignment: \"parens-new-line\",\n return: \"parens-new-line\",\n arrow: \"parens-new-line\",\n condition: \"parens-new-line\",\n logical: \"parens-new-line\",\n prop: \"parens-new-line\"\n }\n ],\n\n // https://eslint.style/rules/default/key-spacing\n // Enforce consistent spacing between keys and values in object literal properties\n \"@stylistic/key-spacing\": \"warn\",\n\n // https://eslint.style/rules/default/keyword-spacing\n // Enforce consistent spacing before and after keywords\n \"@stylistic/keyword-spacing\": \"warn\",\n\n // https://eslint.style/rules/default/line-comment-position\n // Enforce position of line comments\n \"@stylistic/line-comment-position\": \"warn\",\n\n // https://eslint.style/rules/default/linebreak-style\n // Enforce consistent linebreak style\n \"@stylistic/linebreak-style\": \"warn\",\n\n // https://eslint.style/rules/default/lines-around-comment\n // Require empty lines around comments\n \"@stylistic/lines-around-comment\": [\n \"warn\",\n {\n beforeBlockComment: true,\n afterBlockComment: false,\n beforeLineComment: true,\n afterLineComment: false,\n allowBlockStart: true,\n allowBlockEnd: true,\n allowObjectStart: true,\n allowObjectEnd: true,\n allowArrayStart: true,\n allowArrayEnd: true,\n allowClassStart: true,\n allowClassEnd: true,\n afterHashbangComment: true\n }\n ],\n\n // https://eslint.style/rules/default/lines-between-class-members\n // Require or disallow an empty line between class members\n \"@stylistic/lines-between-class-members\": [\n \"warn\",\n {\n enforce: [\n // NOTE: a \"never\" pair (e.g. field -> field) conflicts with `@stylistic/lines-around-comment`:\n // a leading comment counts as part of the next member, so the blank line that rule\n // requires before the comment is read as padding here, producing circular fixes.\n {\n blankLine: \"always\",\n prev: \"*\",\n next: \"method\"\n },\n {\n blankLine: \"always\",\n prev: \"method\",\n next: \"*\"\n }\n ]\n }\n ],\n\n // https://eslint.style/rules/default/max-len\n // Enforce a maximum line length\n \"@stylistic/max-len\": [\n \"error\",\n {\n code: 120,\n tabWidth: 2,\n comments: 120,\n\n // ignorePattern: true,\n ignoreComments: true,\n ignoreTrailingComments: true,\n ignoreUrls: true,\n ignoreStrings: true,\n ignoreTemplateLiterals: true,\n ignoreRegExpLiterals: true\n }\n ],\n\n // https://eslint.style/rules/default/max-statements-per-line\n // Enforce a maximum number of statements allowed per line\n \"@stylistic/max-statements-per-line\": [\"error\"],\n\n // https://eslint.style/rules/default/member-delimiter-style\n // Require a specific member delimiter style for interfaces and type literals\n \"@stylistic/member-delimiter-style\": [\"warn\"],\n\n // https://eslint.style/rules/default/multiline-comment-style\n // Enforce a particular style for multiline comments\n \"@stylistic/multiline-comment-style\": [\"off\"],\n\n // https://eslint.style/rules/default/multiline-ternary\n // Enforce newlines between operands of ternary expressions\n \"@stylistic/multiline-ternary\": [\"warn\", \"always-multiline\"],\n\n // https://eslint.style/rules/default/new-parens\n // Enforce or disallow parentheses when invoking a constructor with no arguments\n \"@stylistic/new-parens\": [\"warn\"],\n\n // https://eslint.style/rules/default/newline-per-chained-call\n // Require a newline after each call in a method chain\n \"@stylistic/newline-per-chained-call\": [\"warn\"],\n\n // https://eslint.style/rules/default/no-confusing-arrow\n // Disallow arrow functions where they could be confused with comparisons\n \"@stylistic/no-confusing-arrow\": [\"warn\"],\n\n // https://eslint.style/rules/default/no-extra-parens\n // Disallow unnecessary parentheses\n \"@stylistic/no-extra-parens\": [\"warn\"],\n\n // https://eslint.style/rules/default/no-extra-semi\n // Disallow unnecessary semicolons\n \"@stylistic/no-extra-semi\": [\"warn\"],\n\n // https://eslint.style/rules/default/no-floating-decimal\n // Disallow leading or trailing decimal points in numeric literals\n \"@stylistic/no-floating-decimal\": [\"warn\"],\n\n // https://eslint.style/rules/default/no-mixed-operators\n // Disallow mixed binary operators\n \"@stylistic/no-mixed-operators\": [\"error\"],\n\n // https://eslint.style/rules/default/no-mixed-spaces-and-tabs\n // Disallow mixed spaces and tabs for indentation\n \"@stylistic/no-mixed-spaces-and-tabs\": [\"error\"],\n\n // https://eslint.style/rules/default/no-multi-spaces\n // Disallow multiple spaces\n \"@stylistic/no-multi-spaces\": [\"warn\"],\n\n // https://eslint.style/rules/default/no-multiple-empty-lines\n // Disallow multiple empty lines\n \"@stylistic/no-multiple-empty-lines\": [\"warn\"],\n\n // https://eslint.style/rules/default/no-tabs\n // Disallow all tabs\n \"@stylistic/no-tabs\": [\"error\"],\n\n // https://eslint.style/rules/default/no-trailing-spaces\n // Disallow trailing whitespace at the end of lines\n \"@stylistic/no-trailing-spaces\": [\"warn\"],\n\n // https://eslint.style/rules/default/no-whitespace-before-property\n // Disallow whitespace before properties\n \"@stylistic/no-whitespace-before-property\": [\"warn\"],\n\n // https://eslint.style/rules/default/nonblock-statement-body-position\n // Enforce the location of single-line statements\n \"@stylistic/nonblock-statement-body-position\": [\"warn\"],\n\n // https://eslint.style/rules/default/object-curly-newline\n // Enforce consistent line breaks after opening and before closing braces\n \"@stylistic/object-curly-newline\": [\n \"warn\",\n {\n consistent: true\n }\n ],\n\n // https://eslint.style/rules/default/object-curly-spacing\n // Enforce consistent spacing inside braces\n \"@stylistic/object-curly-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/object-property-newline\n // Enforce placing object properties on separate lines\n \"@stylistic/object-property-newline\": [\n \"warn\",\n {\n allowAllPropertiesOnSameLine: true\n }\n ],\n\n // https://eslint.style/rules/default/one-var-declaration-per-line\n // Require or disallow newlines around variable declarations\n \"@stylistic/one-var-declaration-per-line\": [\"warn\"],\n\n // https://eslint.style/rules/default/operator-linebreak\n // Enforce consistent linebreak style for operators\n \"@stylistic/operator-linebreak\": [\"warn\"],\n\n // https://eslint.style/rules/default/padded-blocks\n // Require or disallow padding within blocks\n \"@stylistic/padded-blocks\": [\"warn\", \"never\"],\n\n // https://eslint.style/rules/default/padding-line-between-statements\n // Require or disallow padding lines between statements\n \"@stylistic/padding-line-between-statements\": [\n \"warn\",\n {\n blankLine: \"always\",\n prev: \"*\",\n next: \"return\"\n },\n {\n blankLine: \"always\",\n prev: \"*\",\n next: \"block-like\"\n },\n {\n blankLine: \"always\",\n prev: \"block-like\",\n next: \"*\"\n },\n {\n blankLine: \"always\",\n prev: \"case\",\n next: \"case\"\n },\n {\n blankLine: \"never\",\n prev: \"*\",\n next: \"break\"\n },\n {\n blankLine: \"always\",\n prev: \"*\",\n next: \"export\"\n },\n {\n blankLine: \"always\",\n prev: \"*\",\n next: \"interface\"\n },\n {\n blankLine: \"always\",\n prev: \"interface\",\n next: \"*\"\n },\n {\n blankLine: \"always\",\n prev: \"*\",\n next: \"class\"\n },\n {\n blankLine: \"always\",\n prev: \"class\",\n next: \"*\"\n }\n ],\n\n // https://eslint.style/rules/default/quote-props\n // Require quotes around object literal property names\n \"@stylistic/quote-props\": [\"warn\", \"as-needed\"],\n\n // https://eslint.style/rules/default/quotes\n // Enforce the consistent use of either backticks, double, or single quotes\n \"@stylistic/quotes\": [\"warn\"],\n\n // https://eslint.style/rules/default/rest-spread-spacing\n // Enforce spacing between rest and spread operators and their expressions\n \"@stylistic/rest-spread-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/semi\n // Require or disallow semicolons instead of ASI\n \"@stylistic/semi\": [\"warn\"],\n\n // https://eslint.style/rules/default/semi-spacing\n // Enforce consistent spacing before and after semicolons\n \"@stylistic/semi-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/semi-style\n // Enforce location of semicolons\n \"@stylistic/semi-style\": [\"warn\"],\n\n // https://eslint.style/rules/default/space-before-blocks\n // Enforce consistent spacing before blocks\n \"@stylistic/space-before-blocks\": [\"warn\"],\n\n // https://eslint.style/rules/default/space-before-function-paren\n // Enforce consistent spacing before `function` definition opening parenthesis\n \"@stylistic/space-before-function-paren\": [\n \"warn\",\n {\n anonymous: \"always\",\n named: \"never\",\n asyncArrow: \"always\"\n }\n ],\n\n // https://eslint.style/rules/default/space-in-parens\n // Enforce consistent spacing inside parentheses\n \"@stylistic/space-in-parens\": [\"warn\"],\n\n // https://eslint.style/rules/default/space-infix-ops\n // Require spacing around infix operators\n \"@stylistic/space-infix-ops\": [\"warn\"],\n\n // https://eslint.style/rules/default/space-unary-ops\n // Enforce consistent spacing before or after unary operators\n \"@stylistic/space-unary-ops\": [\"warn\"],\n\n // https://eslint.style/rules/default/spaced-comment\n // Enforce consistent spacing after the `//` or `/*` in a comment\n \"@stylistic/spaced-comment\": [\"warn\"],\n\n // https://eslint.style/rules/default/switch-colon-spacing\n // Enforce spacing around colons of switch statements\n \"@stylistic/switch-colon-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/template-curly-spacing\n // Require or disallow spacing around embedded expressions of template strings\n \"@stylistic/template-curly-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/template-tag-spacing\n // Require or disallow spacing between template tags and their literals\n \"@stylistic/template-tag-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/type-annotation-spacing\n // Require consistent spacing around type annotations\n \"@stylistic/type-annotation-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/type-generic-spacing\n // Enforces consistent spacing inside TypeScript type generics\n \"@stylistic/type-generic-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/type-named-tuple-spacing\n // Expect space before the type declaration in the named tuple\n \"@stylistic/type-named-tuple-spacing\": [\"warn\"],\n\n // https://eslint.style/rules/default/wrap-iife\n // Require parentheses around immediate `function` invocations\n \"@stylistic/wrap-iife\": [\"warn\", \"inside\"],\n\n // https://eslint.style/rules/default/wrap-regex\n // Require parenthesis around regex literals\n \"@stylistic/wrap-regex\": [\"warn\"],\n\n // https://eslint.style/rules/default/yield-star-spacing\n // Require or disallow spacing around the `*` in `yield*` expressions\n \"@stylistic/yield-star-spacing\": [\"warn\", \"after\"]\n} as const satisfies Linter.RulesRecord;\n"
19
+ ],
20
+ "mappings": "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",
21
+ "debugId": "C40081A34E0D82FD64756E2164756E21",
22
+ "names": []
23
+ }
@@ -0,0 +1,57 @@
1
+ declare const _default: {
2
+ readonly "import-x/no-deprecated": ["error"];
3
+ readonly "import-x/no-empty-named-blocks": ["warn"];
4
+ readonly "import-x/no-extraneous-dependencies": ["error", {
5
+ readonly devDependencies: false;
6
+ readonly optionalDependencies: false;
7
+ }];
8
+ readonly "import-x/no-mutable-exports": ["error"];
9
+ readonly "import-x/no-rename-default": ["off"];
10
+ readonly "import-x/no-unused-modules": ["off", {
11
+ readonly missingExports: true;
12
+ }];
13
+ readonly "import-x/no-amd": ["error"];
14
+ readonly "import-x/no-commonjs": ["error"];
15
+ readonly "import-x/no-import-module-exports": ["warn"];
16
+ readonly "import-x/no-nodejs-modules": ["off"];
17
+ readonly "import-x/unambiguous": ["error"];
18
+ readonly "import-x/no-absolute-path": ["warn"];
19
+ readonly "import-x/no-cycle": ["error"];
20
+ readonly "import-x/no-dynamic-require": ["off"];
21
+ readonly "import-x/no-internal-modules": ["off"];
22
+ readonly "import-x/no-relative-packages": ["warn"];
23
+ readonly "import-x/no-relative-parent-imports": ["off"];
24
+ readonly "import-x/no-self-import": ["error"];
25
+ readonly "import-x/no-useless-path-segments": ["warn", {
26
+ readonly noUselessIndex: true;
27
+ }];
28
+ readonly "import-x/no-webpack-loader-syntax": ["error"];
29
+ readonly "import-x/consistent-type-specifier-style": ["warn", "prefer-top-level"];
30
+ readonly "import-x/dynamic-import-chunkname": ["off"];
31
+ readonly "import-x/exports-last": ["off"];
32
+ readonly "import-x/extensions": ["error", "never"];
33
+ readonly "import-x/first": ["warn"];
34
+ readonly "import-x/group-exports": ["off"];
35
+ readonly "import-x/max-dependencies": ["off"];
36
+ readonly "import-x/newline-after-import": ["warn"];
37
+ readonly "import-x/no-anonymous-default-export": ["error", {
38
+ readonly allowArray: false;
39
+ readonly allowArrowFunction: true;
40
+ readonly allowAnonymousClass: false;
41
+ readonly allowAnonymousFunction: false;
42
+ readonly allowCallExpression: true;
43
+ readonly allowNew: false;
44
+ readonly allowLiteral: false;
45
+ readonly allowObject: false;
46
+ }];
47
+ readonly "import-x/no-default-export": ["off"];
48
+ readonly "import-x/no-named-default": ["off"];
49
+ readonly "import-x/no-named-export": ["off"];
50
+ readonly "import-x/no-namespace": ["warn"];
51
+ readonly "import-x/no-unassigned-import": ["error", {
52
+ readonly allow: readonly ["**/*.css"];
53
+ }];
54
+ readonly "import-x/order": ["warn"];
55
+ readonly "import-x/prefer-default-export": ["off"];
56
+ };
57
+ export default _default;
@@ -0,0 +1,22 @@
1
+ declare const _default: {
2
+ readonly eqeqeq: ["warn"];
3
+ readonly curly: ["warn", "all"];
4
+ readonly "no-restricted-imports": ["error", {
5
+ readonly patterns: readonly [{
6
+ readonly regex: "^(node:)?process$";
7
+ readonly message: "Please dont import node:process.";
8
+ }];
9
+ }];
10
+ readonly "no-unused-vars": ["error", {
11
+ readonly args: "all";
12
+ readonly argsIgnorePattern: "^_";
13
+ readonly caughtErrors: "all";
14
+ readonly caughtErrorsIgnorePattern: "^_";
15
+ readonly destructuredArrayIgnorePattern: "^_";
16
+ readonly ignoreRestSiblings: true;
17
+ }];
18
+ readonly "no-fallthrough": ["error", {
19
+ readonly allowEmptyCase: true;
20
+ }];
21
+ };
22
+ export default _default;
@@ -0,0 +1,31 @@
1
+ declare const _default: {
2
+ readonly "@eslint-react/dom-no-missing-button-type": ["error"];
3
+ readonly "@eslint-react/no-missing-component-display-name": ["error"];
4
+ readonly "@eslint-react/use-state": ["error"];
5
+ readonly "@eslint-react/dom-no-missing-iframe-sandbox": ["error"];
6
+ readonly "@eslint-react/no-missing-key": ["error"];
7
+ readonly "@eslint-react/no-duplicate-key": ["warn"];
8
+ readonly "@eslint-react/jsx-no-comment-textnodes": ["error"];
9
+ readonly "@eslint-react/no-unstable-context-value": ["error"];
10
+ readonly "@eslint-react/no-leaked-conditional-rendering": ["warn"];
11
+ readonly "@eslint-react/dom-no-script-url": ["error"];
12
+ readonly "@eslint-react/dom-no-unsafe-target-blank": ["warn"];
13
+ readonly "@eslint-react/jsx-no-useless-fragment": ["warn"];
14
+ readonly "@eslint-react/no-access-state-in-setstate": ["error"];
15
+ readonly "@eslint-react/no-array-index-key": ["error"];
16
+ readonly "@eslint-react/jsx-no-children-prop": ["error"];
17
+ readonly "@eslint-react/dom-no-dangerously-set-innerhtml": ["error"];
18
+ readonly "@eslint-react/dom-no-dangerously-set-innerhtml-with-children": ["error"];
19
+ readonly "@eslint-react/dom-no-find-dom-node": ["error"];
20
+ readonly "@eslint-react/jsx-no-namespace": ["error"];
21
+ readonly "@eslint-react/no-unstable-default-props": ["error"];
22
+ readonly "@eslint-react/dom-no-render-return-value": ["error"];
23
+ readonly "@eslint-react/dom-no-unknown-property": ["warn"];
24
+ readonly "@eslint-react/no-nested-component-definitions": ["error"];
25
+ readonly "@eslint-react/no-unused-props": ["error"];
26
+ readonly "@eslint-react/no-unused-state": ["error"];
27
+ readonly "@eslint-react/no-set-state-in-component-will-update": ["error"];
28
+ readonly "@eslint-react/dom-no-string-style-prop": ["error"];
29
+ readonly "@eslint-react/dom-no-void-elements-with-children": ["error"];
30
+ };
31
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import type { Linter } from "eslint";
2
+ declare const reactKitConfig: Linter.Config;
3
+ export default reactKitConfig;
@@ -0,0 +1,198 @@
1
+ declare const _default: {
2
+ readonly "@stylistic/array-bracket-newline": ["warn"];
3
+ readonly "@stylistic/array-bracket-spacing": ["warn"];
4
+ readonly "@stylistic/array-element-newline": ["warn", "consistent"];
5
+ readonly "@stylistic/arrow-parens": ["warn", "always"];
6
+ readonly "@stylistic/arrow-spacing": ["warn"];
7
+ readonly "@stylistic/block-spacing": ["warn"];
8
+ readonly "@stylistic/brace-style": ["warn", "1tbs"];
9
+ readonly "@stylistic/comma-dangle": ["warn"];
10
+ readonly "@stylistic/comma-spacing": ["warn"];
11
+ readonly "@stylistic/comma-style": ["warn"];
12
+ readonly "@stylistic/computed-property-spacing": ["warn"];
13
+ readonly "@stylistic/curly-newline": ["warn", "always"];
14
+ readonly "@stylistic/dot-location": ["warn", "property"];
15
+ readonly "@stylistic/eol-last": ["warn"];
16
+ readonly "@stylistic/function-call-spacing": ["warn"];
17
+ readonly "@stylistic/function-call-argument-newline": ["warn", "consistent"];
18
+ readonly "@stylistic/function-paren-newline": ["warn", "consistent"];
19
+ readonly "@stylistic/generator-star-spacing": ["warn"];
20
+ readonly "@stylistic/implicit-arrow-linebreak": ["warn"];
21
+ readonly "@stylistic/indent": ["warn", 2];
22
+ readonly "@stylistic/indent-binary-ops": ["warn", 2];
23
+ readonly "@stylistic/jsx-child-element-spacing": ["error"];
24
+ readonly "@stylistic/jsx-closing-bracket-location": ["warn"];
25
+ readonly "@stylistic/jsx-closing-tag-location": ["warn"];
26
+ readonly "@stylistic/jsx-curly-brace-presence": ["warn"];
27
+ readonly "@stylistic/jsx-curly-newline": ["warn"];
28
+ readonly "@stylistic/jsx-curly-spacing": ["warn"];
29
+ readonly "@stylistic/jsx-equals-spacing": ["warn"];
30
+ readonly "@stylistic/jsx-first-prop-new-line": ["warn"];
31
+ readonly "@stylistic/jsx-function-call-newline": ["warn"];
32
+ readonly "@stylistic/jsx-indent-props": ["warn", 2];
33
+ readonly "@stylistic/jsx/jsx-max-props-per-line": ["off"];
34
+ readonly "@stylistic/jsx-newline": ["off"];
35
+ readonly "@stylistic/jsx-one-expression-per-line": ["warn", {
36
+ readonly allow: "single-child";
37
+ }];
38
+ readonly "@stylistic/jsx-pascal-case": ["error"];
39
+ readonly "@stylistic/jsx-quotes": ["warn"];
40
+ readonly "@stylistic/jsx-self-closing-comp": ["warn"];
41
+ readonly "@stylistic/jsx-sort-props": ["warn", {
42
+ readonly callbacksLast: true;
43
+ readonly shorthandFirst: true;
44
+ readonly multiline: "last";
45
+ readonly noSortAlphabetically: true;
46
+ }];
47
+ readonly "@stylistic/jsx-tag-spacing": ["warn", {
48
+ readonly closingSlash: "never";
49
+ readonly beforeSelfClosing: "always";
50
+ readonly afterOpening: "never";
51
+ readonly beforeClosing: "never";
52
+ }];
53
+ readonly "@stylistic/jsx-wrap-multilines": ["warn", {
54
+ readonly declaration: "parens-new-line";
55
+ readonly assignment: "parens-new-line";
56
+ readonly return: "parens-new-line";
57
+ readonly arrow: "parens-new-line";
58
+ readonly condition: "parens-new-line";
59
+ readonly logical: "parens-new-line";
60
+ readonly prop: "parens-new-line";
61
+ }];
62
+ readonly "@stylistic/key-spacing": "warn";
63
+ readonly "@stylistic/keyword-spacing": "warn";
64
+ readonly "@stylistic/line-comment-position": "warn";
65
+ readonly "@stylistic/linebreak-style": "warn";
66
+ readonly "@stylistic/lines-around-comment": ["warn", {
67
+ readonly beforeBlockComment: true;
68
+ readonly afterBlockComment: false;
69
+ readonly beforeLineComment: true;
70
+ readonly afterLineComment: false;
71
+ readonly allowBlockStart: true;
72
+ readonly allowBlockEnd: true;
73
+ readonly allowObjectStart: true;
74
+ readonly allowObjectEnd: true;
75
+ readonly allowArrayStart: true;
76
+ readonly allowArrayEnd: true;
77
+ readonly allowClassStart: true;
78
+ readonly allowClassEnd: true;
79
+ readonly afterHashbangComment: true;
80
+ }];
81
+ readonly "@stylistic/lines-between-class-members": ["warn", {
82
+ readonly enforce: readonly [{
83
+ readonly blankLine: "always";
84
+ readonly prev: "*";
85
+ readonly next: "method";
86
+ }, {
87
+ readonly blankLine: "always";
88
+ readonly prev: "method";
89
+ readonly next: "*";
90
+ }];
91
+ }];
92
+ readonly "@stylistic/max-len": ["error", {
93
+ readonly code: 120;
94
+ readonly tabWidth: 2;
95
+ readonly comments: 120;
96
+ readonly ignoreComments: true;
97
+ readonly ignoreTrailingComments: true;
98
+ readonly ignoreUrls: true;
99
+ readonly ignoreStrings: true;
100
+ readonly ignoreTemplateLiterals: true;
101
+ readonly ignoreRegExpLiterals: true;
102
+ }];
103
+ readonly "@stylistic/max-statements-per-line": ["error"];
104
+ readonly "@stylistic/member-delimiter-style": ["warn"];
105
+ readonly "@stylistic/multiline-comment-style": ["off"];
106
+ readonly "@stylistic/multiline-ternary": ["warn", "always-multiline"];
107
+ readonly "@stylistic/new-parens": ["warn"];
108
+ readonly "@stylistic/newline-per-chained-call": ["warn"];
109
+ readonly "@stylistic/no-confusing-arrow": ["warn"];
110
+ readonly "@stylistic/no-extra-parens": ["warn"];
111
+ readonly "@stylistic/no-extra-semi": ["warn"];
112
+ readonly "@stylistic/no-floating-decimal": ["warn"];
113
+ readonly "@stylistic/no-mixed-operators": ["error"];
114
+ readonly "@stylistic/no-mixed-spaces-and-tabs": ["error"];
115
+ readonly "@stylistic/no-multi-spaces": ["warn"];
116
+ readonly "@stylistic/no-multiple-empty-lines": ["warn"];
117
+ readonly "@stylistic/no-tabs": ["error"];
118
+ readonly "@stylistic/no-trailing-spaces": ["warn"];
119
+ readonly "@stylistic/no-whitespace-before-property": ["warn"];
120
+ readonly "@stylistic/nonblock-statement-body-position": ["warn"];
121
+ readonly "@stylistic/object-curly-newline": ["warn", {
122
+ readonly consistent: true;
123
+ }];
124
+ readonly "@stylistic/object-curly-spacing": ["warn"];
125
+ readonly "@stylistic/object-property-newline": ["warn", {
126
+ readonly allowAllPropertiesOnSameLine: true;
127
+ }];
128
+ readonly "@stylistic/one-var-declaration-per-line": ["warn"];
129
+ readonly "@stylistic/operator-linebreak": ["warn"];
130
+ readonly "@stylistic/padded-blocks": ["warn", "never"];
131
+ readonly "@stylistic/padding-line-between-statements": ["warn", {
132
+ readonly blankLine: "always";
133
+ readonly prev: "*";
134
+ readonly next: "return";
135
+ }, {
136
+ readonly blankLine: "always";
137
+ readonly prev: "*";
138
+ readonly next: "block-like";
139
+ }, {
140
+ readonly blankLine: "always";
141
+ readonly prev: "block-like";
142
+ readonly next: "*";
143
+ }, {
144
+ readonly blankLine: "always";
145
+ readonly prev: "case";
146
+ readonly next: "case";
147
+ }, {
148
+ readonly blankLine: "never";
149
+ readonly prev: "*";
150
+ readonly next: "break";
151
+ }, {
152
+ readonly blankLine: "always";
153
+ readonly prev: "*";
154
+ readonly next: "export";
155
+ }, {
156
+ readonly blankLine: "always";
157
+ readonly prev: "*";
158
+ readonly next: "interface";
159
+ }, {
160
+ readonly blankLine: "always";
161
+ readonly prev: "interface";
162
+ readonly next: "*";
163
+ }, {
164
+ readonly blankLine: "always";
165
+ readonly prev: "*";
166
+ readonly next: "class";
167
+ }, {
168
+ readonly blankLine: "always";
169
+ readonly prev: "class";
170
+ readonly next: "*";
171
+ }];
172
+ readonly "@stylistic/quote-props": ["warn", "as-needed"];
173
+ readonly "@stylistic/quotes": ["warn"];
174
+ readonly "@stylistic/rest-spread-spacing": ["warn"];
175
+ readonly "@stylistic/semi": ["warn"];
176
+ readonly "@stylistic/semi-spacing": ["warn"];
177
+ readonly "@stylistic/semi-style": ["warn"];
178
+ readonly "@stylistic/space-before-blocks": ["warn"];
179
+ readonly "@stylistic/space-before-function-paren": ["warn", {
180
+ readonly anonymous: "always";
181
+ readonly named: "never";
182
+ readonly asyncArrow: "always";
183
+ }];
184
+ readonly "@stylistic/space-in-parens": ["warn"];
185
+ readonly "@stylistic/space-infix-ops": ["warn"];
186
+ readonly "@stylistic/space-unary-ops": ["warn"];
187
+ readonly "@stylistic/spaced-comment": ["warn"];
188
+ readonly "@stylistic/switch-colon-spacing": ["warn"];
189
+ readonly "@stylistic/template-curly-spacing": ["warn"];
190
+ readonly "@stylistic/template-tag-spacing": ["warn"];
191
+ readonly "@stylistic/type-annotation-spacing": ["warn"];
192
+ readonly "@stylistic/type-generic-spacing": ["warn"];
193
+ readonly "@stylistic/type-named-tuple-spacing": ["warn"];
194
+ readonly "@stylistic/wrap-iife": ["warn", "inside"];
195
+ readonly "@stylistic/wrap-regex": ["warn"];
196
+ readonly "@stylistic/yield-star-spacing": ["warn", "after"];
197
+ };
198
+ export default _default;