@ariestools/eslint-config-flat 8.6.11
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.
- package/LICENSE +165 -0
- package/README.md +150 -0
- package/dist/neutral/core/index.d.ts +5 -0
- package/dist/neutral/core/index.d.ts.map +1 -0
- package/dist/neutral/ignores.d.ts +2 -0
- package/dist/neutral/ignores.d.ts.map +1 -0
- package/dist/neutral/import/index.d.ts +3 -0
- package/dist/neutral/import/index.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +20 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.mjs +1539 -0
- package/dist/neutral/index.mjs.map +7 -0
- package/dist/neutral/json/index.d.ts +5 -0
- package/dist/neutral/json/index.d.ts.map +1 -0
- package/dist/neutral/markdown/index.d.ts +3 -0
- package/dist/neutral/markdown/index.d.ts.map +1 -0
- package/dist/neutral/rules/consistency.d.ts +3 -0
- package/dist/neutral/rules/consistency.d.ts.map +1 -0
- package/dist/neutral/rules/correctness.d.ts +3 -0
- package/dist/neutral/rules/correctness.d.ts.map +1 -0
- package/dist/neutral/rules/index.d.ts +6 -0
- package/dist/neutral/rules/index.d.ts.map +1 -0
- package/dist/neutral/shared.d.ts +13 -0
- package/dist/neutral/shared.d.ts.map +1 -0
- package/dist/neutral/tiers/conflicts.d.ts +22 -0
- package/dist/neutral/tiers/conflicts.d.ts.map +1 -0
- package/dist/neutral/tiers/index.d.ts +48 -0
- package/dist/neutral/tiers/index.d.ts.map +1 -0
- package/dist/neutral/tiers/opinionated.d.ts +24 -0
- package/dist/neutral/tiers/opinionated.d.ts.map +1 -0
- package/dist/neutral/tiers/plugin-rules.d.ts +8 -0
- package/dist/neutral/tiers/plugin-rules.d.ts.map +1 -0
- package/dist/neutral/tiers/recommendedConfig.d.ts +16 -0
- package/dist/neutral/tiers/recommendedConfig.d.ts.map +1 -0
- package/dist/neutral/tiers/rule-catalog/index.d.ts +13 -0
- package/dist/neutral/tiers/rule-catalog/index.d.ts.map +1 -0
- package/dist/neutral/tiers/rule-catalog/managed-rules.d.ts +4 -0
- package/dist/neutral/tiers/rule-catalog/managed-rules.d.ts.map +1 -0
- package/dist/neutral/tiers/rule-catalog/type-checked-rules.d.ts +5 -0
- package/dist/neutral/tiers/rule-catalog/type-checked-rules.d.ts.map +1 -0
- package/dist/neutral/tiers/rule-catalog/types.d.ts +14 -0
- package/dist/neutral/tiers/rule-catalog/types.d.ts.map +1 -0
- package/dist/neutral/tiers/tier-builder.d.ts +6 -0
- package/dist/neutral/tiers/tier-builder.d.ts.map +1 -0
- package/dist/neutral/typescript/index.d.ts +9 -0
- package/dist/neutral/typescript/index.d.ts.map +1 -0
- package/dist/neutral/unicorn/index.d.ts +18 -0
- package/dist/neutral/unicorn/index.d.ts.map +1 -0
- package/dist/neutral/workspaces/index.d.ts +3 -0
- package/dist/neutral/workspaces/index.d.ts.map +1 -0
- package/dist/node/core/index.d.ts +5 -0
- package/dist/node/core/index.d.ts.map +1 -0
- package/dist/node/ignores.d.ts +2 -0
- package/dist/node/ignores.d.ts.map +1 -0
- package/dist/node/import/index.d.ts +3 -0
- package/dist/node/import/index.d.ts.map +1 -0
- package/dist/node/index.d.ts +20 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.mjs +1539 -0
- package/dist/node/index.mjs.map +7 -0
- package/dist/node/json/index.d.ts +5 -0
- package/dist/node/json/index.d.ts.map +1 -0
- package/dist/node/markdown/index.d.ts +3 -0
- package/dist/node/markdown/index.d.ts.map +1 -0
- package/dist/node/rules/consistency.d.ts +3 -0
- package/dist/node/rules/consistency.d.ts.map +1 -0
- package/dist/node/rules/correctness.d.ts +3 -0
- package/dist/node/rules/correctness.d.ts.map +1 -0
- package/dist/node/rules/index.d.ts +6 -0
- package/dist/node/rules/index.d.ts.map +1 -0
- package/dist/node/shared.d.ts +13 -0
- package/dist/node/shared.d.ts.map +1 -0
- package/dist/node/tiers/conflicts.d.ts +22 -0
- package/dist/node/tiers/conflicts.d.ts.map +1 -0
- package/dist/node/tiers/index.d.ts +48 -0
- package/dist/node/tiers/index.d.ts.map +1 -0
- package/dist/node/tiers/opinionated.d.ts +24 -0
- package/dist/node/tiers/opinionated.d.ts.map +1 -0
- package/dist/node/tiers/plugin-rules.d.ts +8 -0
- package/dist/node/tiers/plugin-rules.d.ts.map +1 -0
- package/dist/node/tiers/recommendedConfig.d.ts +16 -0
- package/dist/node/tiers/recommendedConfig.d.ts.map +1 -0
- package/dist/node/tiers/rule-catalog/index.d.ts +13 -0
- package/dist/node/tiers/rule-catalog/index.d.ts.map +1 -0
- package/dist/node/tiers/rule-catalog/managed-rules.d.ts +4 -0
- package/dist/node/tiers/rule-catalog/managed-rules.d.ts.map +1 -0
- package/dist/node/tiers/rule-catalog/type-checked-rules.d.ts +5 -0
- package/dist/node/tiers/rule-catalog/type-checked-rules.d.ts.map +1 -0
- package/dist/node/tiers/rule-catalog/types.d.ts +14 -0
- package/dist/node/tiers/rule-catalog/types.d.ts.map +1 -0
- package/dist/node/tiers/tier-builder.d.ts +6 -0
- package/dist/node/tiers/tier-builder.d.ts.map +1 -0
- package/dist/node/typescript/index.d.ts +9 -0
- package/dist/node/typescript/index.d.ts.map +1 -0
- package/dist/node/unicorn/index.d.ts +18 -0
- package/dist/node/unicorn/index.d.ts.map +1 -0
- package/dist/node/workspaces/index.d.ts +3 -0
- package/dist/node/workspaces/index.d.ts.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/json/index.ts", "../../src/ignores.ts", "../../src/markdown/index.ts", "../../src/shared.ts", "../../src/core/index.ts", "../../src/rules/consistency.ts", "../../src/rules/correctness.ts", "../../src/rules/index.ts", "../../src/unicorn/index.ts", "../../src/import/index.ts", "../../src/tiers/conflicts.ts", "../../src/typescript/index.ts", "../../src/workspaces/index.ts", "../../src/tiers/rule-catalog/managed-rules.ts", "../../src/tiers/opinionated.ts", "../../src/tiers/rule-catalog/type-checked-rules.ts", "../../src/tiers/rule-catalog/index.ts", "../../src/tiers/tier-builder.ts", "../../src/tiers/recommendedConfig.ts", "../../src/tiers/index.ts", "../../src/tiers/plugin-rules.ts", "../../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["import json from '@eslint/json'\nimport type { ESLint, Linter } from 'eslint'\n\nimport { ignores } from '../ignores.ts'\n\nexport const jsonConfig: Linter.Config = {\n ignores,\n files: ['**/*.json'],\n plugins: { json: json as unknown as ESLint.Plugin },\n language: 'json/json',\n rules: { 'json/no-duplicate-keys': ['error'] },\n}\n\nexport const jsoncConfig: Linter.Config = {\n ignores,\n files: ['**/*.jsonc'],\n plugins: { json: json as unknown as ESLint.Plugin },\n language: 'json/jsonc',\n rules: { 'json/no-duplicate-keys': ['error'] },\n}\n\nexport const json5Config: Linter.Config = {\n ignores,\n files: ['**/*.json5'],\n plugins: { json: json as unknown as ESLint.Plugin },\n language: 'json/json5',\n rules: { 'json/no-duplicate-keys': ['error'] },\n}\n", "export const ignores = [\n '.eslintcache',\n '.github',\n '.husky',\n '.jest',\n '.next',\n '.vscode',\n '.yarn',\n '**/dist',\n '**/docs',\n '**/node_modules',\n 'coverage',\n 'cypress',\n 'public',\n 'storybook-static',\n 'tmp',\n 'yarn-error.log',\n 'yarn.lock',\n]\n", "import markdown from '@eslint/markdown'\nimport type { Linter } from 'eslint'\n\nimport { scopeConfig, scopeConfigs } from '../shared.ts'\n\nconst markdownFiles = ['**/*.md']\n\nexport const markdownConfig: Linter.Config[] = [\n ...scopeConfigs(markdown.configs.recommended),\n scopeConfig({ rules: { 'markdown/fenced-code-language': 'off' } }, { files: markdownFiles }),\n]\n", "import tsParser from '@typescript-eslint/parser'\nimport type { Linter } from 'eslint'\n\nimport { ignores } from './ignores.ts'\n\nexport const scriptFiles = [\n '**/*.ts',\n '**/*.tsx',\n '**/*.mts',\n '**/*.cts',\n '**/*.js',\n '**/*.jsx',\n '**/*.cjs',\n '**/*.mjs',\n '**/*.d.ts',\n '**/*.d.tsx',\n '**/*.d.jsx',\n '**/*.d.mts',\n '**/*.d.cts',\n]\n\nexport const scriptLanguageOptions: Linter.LanguageOptions = {\n ecmaVersion: 'latest',\n parser: tsParser,\n parserOptions: { ecmaFeatures: { jsx: true } },\n sourceType: 'module',\n}\n\nfunction currentWorkingDirectory(): string | undefined {\n return (globalThis as { process?: { cwd?: () => string } }).process?.cwd?.()\n}\n\nconst tsconfigRootDir = currentWorkingDirectory()\nconst typeCheckedParserOptions: Record<string, unknown> = {\n ...scriptLanguageOptions.parserOptions,\n projectService: true,\n}\n\nif (tsconfigRootDir !== undefined) {\n typeCheckedParserOptions.tsconfigRootDir = tsconfigRootDir\n}\n\nexport const typeCheckedLanguageOptions: Linter.LanguageOptions = {\n ...scriptLanguageOptions,\n parserOptions: typeCheckedParserOptions,\n}\n\nfunction unique(values: (string | undefined)[]): string[] {\n return [...new Set(values.filter((value): value is string => value !== undefined))]\n}\n\nfunction mergeLanguageOptions(\n base: Linter.LanguageOptions | undefined,\n next: Linter.LanguageOptions | undefined,\n): Linter.LanguageOptions | undefined {\n if (!base) return next\n if (!next) return base\n\n return {\n ...base,\n ...next,\n globals: {\n ...base.globals,\n ...next.globals,\n },\n parserOptions: {\n ...base.parserOptions,\n ...next.parserOptions,\n },\n }\n}\n\nexport function scopeConfig(\n config: Linter.Config,\n {\n files,\n languageOptions,\n }: {\n files?: string[]\n languageOptions?: Linter.LanguageOptions\n } = {},\n): Linter.Config {\n const merged = mergeLanguageOptions(languageOptions, config.languageOptions)\n const result: Linter.Config = {\n ...config,\n files: files ?? config.files,\n ignores: unique([...(config.ignores ?? []), ...ignores]),\n }\n if (merged) {\n result.languageOptions = merged\n }\n return result\n}\n\nexport function scopeConfigs(\n configs: Linter.Config | Linter.Config[],\n options: {\n files?: string[]\n languageOptions?: Linter.LanguageOptions\n } = {},\n): Linter.Config[] {\n return (Array.isArray(configs) ? configs : [configs]).map(config => scopeConfig(config, options))\n}\n", "import js from '@eslint/js'\nimport type { Linter } from 'eslint'\n\nimport {\n consistencyRulesConfig,\n correctnessRulesConfig,\n srcImportsConfig,\n} from '../rules/index.ts'\nimport {\n scopeConfig, scriptFiles, scriptLanguageOptions,\n} from '../shared.ts'\nimport { unicornConfig } from '../unicorn/index.ts'\n\nexport const correctnessCoreConfig: Linter.Config[] = [\n scopeConfig(js.configs.recommended, { files: scriptFiles, languageOptions: scriptLanguageOptions }),\n correctnessRulesConfig,\n srcImportsConfig,\n]\n\nexport const bestPracticesCoreConfig: Linter.Config[] = [\n scopeConfig(unicornConfig, { files: scriptFiles }),\n]\n\nexport const coreConfig: Linter.Config[] = [\n ...correctnessCoreConfig,\n consistencyRulesConfig,\n ...bestPracticesCoreConfig,\n]\n", "import type { Linter } from 'eslint'\n\nimport { ignores } from '../ignores.ts'\n\nexport const consistencyRulesConfig: Linter.Config = {\n ignores,\n rules: {\n 'complexity': ['error', 18],\n 'max-depth': ['error', 6],\n 'max-lines': [\n 'error',\n {\n max: 512,\n skipBlankLines: true,\n },\n ],\n 'array-element-newline': ['warn', 'consistent'],\n // Owned by max-nested-callbacks \u2014 measures callback nesting, not call depth\n 'max-nested-callbacks': ['error', 6],\n 'max-statements': ['error', 32],\n 'no-tabs': ['error'],\n },\n}\n", "import type { Linter } from 'eslint'\n\nimport { ignores } from '../ignores.ts'\n\nconst restrictedImportPaths = [\n './index.ts',\n '../index.ts',\n '../../index.ts',\n '../../../index.ts',\n '../../../../index.ts',\n '../../../../../index.ts',\n '../../../../../../index.ts',\n '../../../../../../../index.ts',\n]\n\nexport const correctnessRulesConfig: Linter.Config = {\n ignores,\n rules: {\n // Owned by @typescript-eslint/no-unused-vars\n 'no-unused-vars': 'off',\n // Owned by unicorn/escape-case\n 'no-useless-escape': 'off',\n // Owned by unicorn/prefer-spread\n 'prefer-spread': 'off',\n 'no-restricted-imports': [\n 'error',\n { paths: restrictedImportPaths },\n ],\n },\n}\n", "import type { Linter } from 'eslint'\n\nimport { ignores } from '../ignores.ts'\nimport { scriptFiles } from '../shared.ts'\nimport { consistencyRulesConfig } from './consistency.ts'\nimport { correctnessRulesConfig } from './correctness.ts'\n\nconst restrictedImportPaths = [\n './index.ts',\n '../index.ts',\n '../../index.ts',\n '../../../index.ts',\n '../../../../index.ts',\n '../../../../../index.ts',\n '../../../../../../index.ts',\n '../../../../../../../index.ts',\n]\n\nconst restrictedSrcImportPatterns = [\n {\n group: [\n '**/src/**',\n '**/src',\n 'src/**',\n ],\n message: 'Do not import from another package\\'s src folder. Import the package by its public entry point instead.',\n },\n]\n\nexport { consistencyRulesConfig } from './consistency.ts'\nexport { correctnessRulesConfig } from './correctness.ts'\n\nexport const rulesConfig: Linter.Config = {\n ignores,\n rules: {\n ...correctnessRulesConfig.rules,\n ...consistencyRulesConfig.rules,\n },\n}\n\n// Source files (under src/) should never reference a src/ path \u2014 own-package files\n// are reached via ./ or ../, and other packages via their published name. Scoped to\n// src/ so test specs (which legitimately import their own ../../src/...) are unaffected.\nexport const srcImportsConfig: Linter.Config = {\n files: scriptFiles.map(pattern => `**/src/${pattern}`),\n ignores,\n rules: {\n 'no-restricted-imports': [\n 'error',\n {\n paths: restrictedImportPaths,\n patterns: restrictedSrcImportPatterns,\n },\n ],\n },\n}\n", "import type { ESLint, Linter } from 'eslint'\nimport unicornPlugin from 'eslint-plugin-unicorn'\n\nconst compareStrings = (left: string, right: string): number => left.localeCompare(right)\n\nconst unicornRecommendedRules = (unicornPlugin.configs.recommended as ESLint.ConfigData).rules ?? {}\nconst unicornUnopinionatedConfig = (unicornPlugin.configs as unknown as { unopinionated: ESLint.ConfigData }).unopinionated\nconst unicornUnopinionatedRules = unicornUnopinionatedConfig.rules ?? {}\n\n/** Rules enabled by unicorn/recommended but not unicorn/unopinionated (`meta.docs.recommended === true`). */\nexport const unicornOpinionatedRules = Object.entries(unicornRecommendedRules)\n .filter(([rule, severity]) => severity !== 'off' && unicornUnopinionatedRules[rule] === 'off')\n .map(([rule]) => rule)\n .toSorted(compareStrings)\n\n// New recommended rules in eslint-plugin-unicorn v66 \u2014 enabled as warnings at tier 3.\nexport const unicornV66MigrationQueue = [\n 'unicorn/class-reference-in-static-methods',\n 'unicorn/comment-content',\n 'unicorn/consistent-export-decorator-position',\n 'unicorn/consistent-optional-chaining',\n 'unicorn/explicit-timer-delay',\n 'unicorn/no-array-reverse',\n 'unicorn/no-array-sort',\n 'unicorn/no-break-in-nested-loop',\n 'unicorn/no-computed-property-existence-check',\n 'unicorn/no-confusing-array-with',\n 'unicorn/no-declarations-before-early-exit',\n 'unicorn/no-duplicate-loops',\n 'unicorn/no-error-property-assignment',\n 'unicorn/no-for-each',\n 'unicorn/no-global-object-property-assignment',\n 'unicorn/no-incorrect-template-string-interpolation',\n 'unicorn/no-invalid-argument-count',\n 'unicorn/no-mismatched-map-key',\n 'unicorn/no-negated-array-predicate',\n 'unicorn/no-negated-comparison',\n 'unicorn/no-object-methods-with-collections',\n 'unicorn/no-optional-chaining-on-undeclared-variable',\n 'unicorn/no-redundant-comparison',\n 'unicorn/no-return-array-push',\n 'unicorn/no-subtraction-comparison',\n 'unicorn/no-top-level-side-effects',\n 'unicorn/no-undeclared-class-members',\n 'unicorn/no-unnecessary-global-this',\n 'unicorn/no-unnecessary-splice',\n 'unicorn/no-unreadable-new-expression',\n 'unicorn/no-unreadable-object-destructuring',\n 'unicorn/no-unsafe-buffer-conversion',\n 'unicorn/no-unsafe-property-key',\n 'unicorn/no-unsafe-string-replacement',\n 'unicorn/no-useless-boolean-cast',\n 'unicorn/no-useless-concat',\n 'unicorn/no-useless-else',\n 'unicorn/no-useless-recursion',\n 'unicorn/no-useless-template-literals',\n 'unicorn/prefer-add-event-listener-options',\n 'unicorn/prefer-array-from-map',\n 'unicorn/prefer-await',\n 'unicorn/prefer-direct-iteration',\n 'unicorn/prefer-early-return',\n 'unicorn/prefer-global-number-constants',\n 'unicorn/prefer-identifier-import-export-specifiers',\n 'unicorn/prefer-iterable-in-constructor',\n 'unicorn/prefer-iterator-to-array',\n 'unicorn/prefer-location-assign',\n 'unicorn/prefer-minimal-ternary',\n 'unicorn/prefer-number-coercion',\n 'unicorn/prefer-number-is-safe-integer',\n 'unicorn/prefer-object-define-properties',\n 'unicorn/prefer-object-destructuring-defaults',\n 'unicorn/prefer-object-iterable-methods',\n 'unicorn/prefer-path2d',\n 'unicorn/prefer-private-class-fields',\n 'unicorn/prefer-scoped-selector',\n 'unicorn/prefer-short-arrow-method',\n 'unicorn/prefer-simple-sort-comparator',\n 'unicorn/prefer-single-array-predicate',\n 'unicorn/prefer-single-object-destructuring',\n 'unicorn/prefer-smaller-scope',\n 'unicorn/prefer-type-literal-last',\n 'unicorn/prefer-uint8array-base64',\n 'unicorn/prefer-unicode-code-point-escapes',\n 'unicorn/prefer-url-href',\n 'unicorn/require-proxy-trap-boolean-return',\n] as const\n\n/** Unicorn rules XY keeps disabled at every tier (including opinionated preset layers). */\nexport const unicornGloballyDisabledRules = [\n 'unicorn/consistent-boolean-name',\n 'unicorn/require-array-sort-compare',\n] as const\n\nconst unicornGloballyDisabledRuleSet = new Set<string>(unicornGloballyDisabledRules)\n\n// New recommended rules in eslint-plugin-unicorn v67 \u2014 enabled as warnings at tier 4.\nexport const unicornV67MigrationQueue = [\n 'unicorn/logical-assignment-operators',\n 'unicorn/no-array-splice',\n 'unicorn/no-non-function-verb-prefix',\n 'unicorn/no-top-level-assignment-in-function',\n 'unicorn/no-uncalled-method',\n 'unicorn/no-unreadable-for-of-expression',\n 'unicorn/no-useless-coercion',\n 'unicorn/no-useless-continue',\n 'unicorn/no-useless-override',\n 'unicorn/operator-assignment',\n 'unicorn/prefer-array-slice',\n 'unicorn/prefer-else-if',\n 'unicorn/prefer-has-check',\n 'unicorn/prefer-map-from-entries',\n] as const\n\n// New recommended rules in eslint-plugin-unicorn v69 \u2014 enabled as warnings at tier 4.\nexport const unicornV69MigrationQueue = [\n 'unicorn/consistent-conditional-object-spread',\n 'unicorn/consistent-tuple-labels',\n 'unicorn/default-export-style',\n 'unicorn/no-accidental-bitwise-operator',\n 'unicorn/no-array-concat-in-loop',\n 'unicorn/no-array-sort-for-min-max',\n 'unicorn/no-boolean-sort-comparator',\n 'unicorn/no-chained-comparison',\n 'unicorn/no-collection-bracket-access',\n 'unicorn/no-constant-zero-expression',\n 'unicorn/no-double-comparison',\n 'unicorn/no-duplicate-if-branches',\n 'unicorn/no-duplicate-logical-operands',\n 'unicorn/no-impossible-length-comparison',\n 'unicorn/no-invalid-character-comparison',\n 'unicorn/no-invalid-well-known-symbol-methods',\n 'unicorn/no-late-event-control',\n 'unicorn/no-loop-iterable-mutation',\n 'unicorn/no-misrefactored-assignment',\n 'unicorn/no-nonstandard-builtin-properties',\n 'unicorn/no-selector-as-dom-name',\n 'unicorn/no-unnecessary-boolean-comparison',\n 'unicorn/no-useless-compound-assignment',\n 'unicorn/no-useless-delete-check',\n 'unicorn/no-useless-logical-operand',\n 'unicorn/no-xor-as-exponentiation',\n 'unicorn/prefer-abort-signal-timeout',\n 'unicorn/prefer-aggregate-error',\n 'unicorn/prefer-array-from-async',\n 'unicorn/prefer-array-iterable-methods',\n 'unicorn/prefer-boolean-return',\n 'unicorn/prefer-continue',\n 'unicorn/prefer-dom-node-replace-children',\n 'unicorn/prefer-flat-math-min-max',\n 'unicorn/prefer-hoisting-branch-code',\n 'unicorn/prefer-math-constants',\n 'unicorn/prefer-observer-apis',\n 'unicorn/prefer-promise-try',\n 'unicorn/prefer-promise-with-resolvers',\n 'unicorn/prefer-set-methods',\n 'unicorn/prefer-single-replace',\n 'unicorn/prefer-toggle-attribute',\n 'unicorn/prefer-unary-minus',\n 'unicorn/prefer-url-can-parse',\n 'unicorn/prefer-url-search-parameters',\n 'unicorn/prefer-while-loop-condition',\n] as const\n\n// New recommended rules in eslint-plugin-unicorn v71 \u2014 enabled as warnings by default.\nexport const unicornV71MigrationQueue = [\n 'unicorn/no-async-promise-finally',\n 'unicorn/no-unnecessary-array-flat-map',\n 'unicorn/no-unnecessary-fetch-options',\n 'unicorn/no-unsafe-promise-all-settled-values',\n 'unicorn/prefer-abort-signal-any',\n 'unicorn/prefer-array-from-range',\n 'unicorn/prefer-block-statement-over-iife',\n 'unicorn/prefer-group-by',\n 'unicorn/prefer-iterator-helpers',\n 'unicorn/prefer-simplified-conditions',\n] as const\n\nconst unicornV71MigrationRuleSet = new Set<string>(unicornV71MigrationQueue)\n\nfunction isEnabledOpinionatedRule(rule: string, tier: 3 | 4): boolean {\n if (unicornGloballyDisabledRuleSet.has(rule) || unicornV71MigrationRuleSet.has(rule)) {\n return false\n }\n\n if (tier < 4) {\n return !unicornV67MigrationQueue.includes(rule as (typeof unicornV67MigrationQueue)[number])\n && !unicornV69MigrationQueue.includes(rule as (typeof unicornV69MigrationQueue)[number])\n }\n\n return true\n}\n\n/** Opinionated rules introduced at tier 3; v67/v69 migration rules stay tier 4. */\nexport function unicornOpinionatedRulesForTier(tier: 3 | 4): readonly string[] {\n return unicornOpinionatedRules.filter(rule => isEnabledOpinionatedRule(rule, tier))\n}\n\nexport function unicornOpinionatedRuleEntries(\n severity: 'error' | 'warn',\n tier: 3 | 4 = 4,\n): NonNullable<Linter.Config['rules']> {\n return Object.fromEntries(unicornOpinionatedRulesForTier(tier).map(rule => [rule, severity]))\n}\n\n/** @deprecated Use `unicornV67MigrationQueue` instead. */\nexport const unicornExperimentalMigrationQueue = unicornV67MigrationQueue\n\n/** @deprecated Use `unicornV66MigrationQueue` instead. */\nexport const unicornV66NewRules = unicornV66MigrationQueue\n\nfunction unicornQueueRules(\n queue: readonly string[],\n severity: 'off' | 'warn',\n): NonNullable<Linter.Config['rules']> {\n return Object.fromEntries(queue.map(rule => [rule, severity]))\n}\n\nexport const unicornConfig: Linter.Config = {\n ...(unicornUnopinionatedConfig as Linter.Config),\n plugins: { unicorn: unicornPlugin as ESLint.Plugin },\n rules: {\n ...unicornUnopinionatedRules,\n ...unicornQueueRules(unicornV66MigrationQueue, 'off'),\n ...unicornQueueRules(unicornV67MigrationQueue, 'off'),\n ...unicornQueueRules(unicornV69MigrationQueue, 'off'),\n ...unicornQueueRules(unicornV71MigrationQueue, 'warn'),\n // Owned by @typescript-eslint/member-ordering\n 'unicorn/consistent-class-member-order': ['off'],\n // Owned by max-nested-callbacks\n 'unicorn/max-nested-calls': ['off'],\n // Tier 3 opinionated \u2014 enabled in opinionatedConfig\n 'unicorn/new-for-builtins': ['off'],\n // Formatting \u2014 candidate for stylistic tier; overlaps @stylistic formatting\n 'unicorn/number-literal-case': ['off'],\n // Boolean naming is too disruptive for org-wide enforcement\n 'unicorn/consistent-boolean-name': ['off'],\n // Sort comparators are often intentional (locale, numeric, custom keys)\n 'unicorn/require-array-sort-compare': ['off'],\n 'unicorn/prefer-module': ['off'],\n 'unicorn/prefer-top-level-await': ['off'],\n 'unicorn/name-replacements': ['off'],\n 'unicorn/prefer-https': ['off'],\n 'unicorn/no-useless-undefined': 'warn',\n },\n}\n", "import type { ESLint, Linter } from 'eslint'\nimport importPlugin from 'eslint-plugin-import-x'\nimport simpleImportSort from 'eslint-plugin-simple-import-sort'\n\nimport {\n scopeConfig, scriptFiles, scriptLanguageOptions,\n} from '../shared.ts'\n\nconst importFlatConfigs = importPlugin.flatConfigs as {\n recommended: Linter.Config\n typescript: Linter.Config\n}\n\nexport const importConfig: Linter.Config[] = [\n scopeConfig(importFlatConfigs.recommended, { files: scriptFiles, languageOptions: scriptLanguageOptions }),\n scopeConfig(importFlatConfigs.typescript, { files: scriptFiles, languageOptions: scriptLanguageOptions }),\n {\n files: scriptFiles,\n languageOptions: scriptLanguageOptions,\n plugins: {\n 'import-x': importPlugin as unknown as ESLint.Plugin,\n 'simple-import-sort': simpleImportSort,\n },\n settings: { 'import-x/resolver': { typescript: { alwaysTryTypes: true, project: './tsconfig.json' } } },\n rules: {\n // Owned by simple-import-sort/imports\n 'simple-import-sort/imports': ['warn'],\n 'simple-import-sort/exports': ['warn'],\n // Type-aware resolution is slow and requires per-repo resolver setup\n 'import-x/default': ['off'],\n 'import-x/named': ['off'],\n 'import-x/namespace': ['off'],\n 'import-x/no-unresolved': ['off'],\n 'import-x/no-absolute-path': ['warn'],\n 'import-x/no-cycle': [\n 'warn',\n { maxDepth: 5 },\n ],\n 'import-x/no-deprecated': ['off'],\n 'import-x/no-named-as-default-member': ['off'],\n 'import-x/no-named-as-default': ['off'],\n 'import-x/no-restricted-paths': ['warn'],\n 'import-x/no-self-import': ['warn'],\n 'import-x/no-useless-path-segments': ['warn'],\n },\n },\n]\n", "import type { Linter } from 'eslint'\n\nexport interface RuleOwnershipGroup {\n readonly description: string\n readonly disabled: readonly string[]\n readonly owner: string\n}\n\nexport const RULE_OWNERSHIP_GROUPS: readonly RuleOwnershipGroup[] = [\n {\n description: 'Class member ordering with alphabetical within-group sorting',\n owner: '@typescript-eslint/member-ordering',\n disabled: ['unicorn/consistent-class-member-order'],\n },\n {\n description: 'Callback nesting depth limit',\n owner: 'max-nested-callbacks',\n disabled: ['unicorn/max-nested-calls'],\n },\n {\n description: 'Spread over Function.prototype.apply',\n owner: 'unicorn/prefer-spread',\n disabled: ['prefer-spread'],\n },\n {\n description: 'Semicolon style',\n owner: '@stylistic/semi',\n disabled: ['semi'],\n },\n {\n description: 'Quote style',\n owner: '@stylistic/quotes',\n disabled: ['quotes'],\n },\n {\n description: 'Unused variable detection with TypeScript support',\n owner: '@typescript-eslint/no-unused-vars',\n disabled: ['no-unused-vars'],\n },\n {\n description: 'Escape sequence casing in strings and regexes',\n owner: 'unicorn/escape-case',\n disabled: ['no-useless-escape'],\n },\n {\n description: 'Negated condition style',\n owner: 'unicorn/no-negated-condition',\n disabled: ['no-negated-condition'],\n },\n {\n description: 'Nested ternary restrictions',\n owner: 'unicorn/no-unnecessary-nested-ternary',\n disabled: ['no-nested-ternary', 'unicorn/no-nested-ternary'],\n },\n {\n description: 'Import statement ordering',\n owner: 'simple-import-sort/imports',\n disabled: ['import-x/order'],\n },\n {\n description: 'Explicit boolean coercion for non-boolean values',\n owner: '@typescript-eslint/strict-boolean-expressions',\n disabled: ['no-extra-boolean-cast', 'unicorn/no-useless-boolean-cast'],\n },\n] as const\n\ntype RuleSetting = Linter.RuleEntry<unknown[]> | undefined\n\nexport type RuleSeverity = 'error' | 'off' | 'warn'\n\nexport function getRuleSeverity(setting: RuleSetting): RuleSeverity | undefined {\n if (setting === undefined) {\n return undefined\n }\n\n const level = Array.isArray(setting) ? setting[0] : setting\n\n if (level === 'off' || level === 0) {\n return 'off'\n }\n\n if (level === 'warn' || level === 1) {\n return 'warn'\n }\n\n if (level === 'error' || level === 2) {\n return 'error'\n }\n\n return undefined\n}\n\nfunction isRuleEnabled(setting: RuleSetting): boolean {\n const severity = getRuleSeverity(setting)\n return severity !== undefined && severity !== 'off'\n}\n\nexport function mergeConfigRules(configs: readonly Linter.Config[]): Record<string, RuleSetting> {\n const merged: Record<string, RuleSetting> = {}\n\n for (const entry of configs) {\n if (!entry.rules) {\n continue\n }\n\n Object.assign(merged, entry.rules)\n }\n\n return merged\n}\n\nexport interface RuleOwnershipConflict {\n readonly conflictingRule: string\n readonly conflictingSetting: RuleSetting\n readonly description: string\n readonly owner: string\n readonly ownerSetting: RuleSetting\n}\n\nexport function findRuleOwnershipConflicts(\n rules: Record<string, RuleSetting>,\n): RuleOwnershipConflict[] {\n const conflicts: RuleOwnershipConflict[] = []\n\n for (const group of RULE_OWNERSHIP_GROUPS) {\n const ownerSetting = rules[group.owner]\n if (!isRuleEnabled(ownerSetting)) {\n continue\n }\n\n for (const conflictingRule of group.disabled) {\n if (isRuleEnabled(rules[conflictingRule])) {\n conflicts.push({\n description: group.description,\n owner: group.owner,\n conflictingRule,\n ownerSetting,\n conflictingSetting: rules[conflictingRule],\n })\n }\n }\n }\n\n return conflicts\n}\n\nexport function assertNoRuleOwnershipConflicts(configs: readonly Linter.Config[]): void {\n const conflicts = findRuleOwnershipConflicts(mergeConfigRules(configs))\n\n if (conflicts.length === 0) {\n return\n }\n\n const details = conflicts.map(conflict => (\n `${conflict.owner} conflicts with ${conflict.conflictingRule} (${conflict.description})`\n )).join('\\n')\n\n throw new Error(`ESLint rule ownership conflicts detected:\\n${details}`)\n}\n", "import esStylistic from '@stylistic/eslint-plugin'\nimport tsPlugin from '@typescript-eslint/eslint-plugin'\nimport type { ESLint, Linter } from 'eslint'\n\nimport {\n scopeConfigs,\n scriptFiles,\n scriptLanguageOptions,\n typeCheckedLanguageOptions,\n} from '../shared.ts'\n\nconst flatConfigs = tsPlugin.configs as Record<string, Linter.Config[]>\n\nconst memberOrderingRule: Linter.RuleEntry = [\n 'warn',\n {\n default: {\n memberTypes: [\n 'signature',\n 'call-signature',\n 'public-static-field',\n 'protected-static-field',\n 'private-static-field',\n 'public-decorated-field',\n 'protected-decorated-field',\n 'private-decorated-field',\n 'public-instance-field',\n 'protected-instance-field',\n 'private-instance-field',\n 'public-abstract-field',\n 'protected-abstract-field',\n 'public-field',\n 'protected-field',\n 'private-field',\n 'static-field',\n 'instance-field',\n 'abstract-field',\n 'decorated-field',\n 'field',\n 'public-constructor',\n 'protected-constructor',\n 'private-constructor',\n 'constructor',\n ['public-static-get', 'public-static-set'],\n ['protected-static-get', 'protected-static-set'],\n ['private-static-get', 'private-static-set'],\n ['public-decorated-get', 'public-decorated-set'],\n ['protected-decorated-get', 'protected-decorated-set'],\n ['private-decorated-get', 'private-decorated-set'],\n ['public-instance-get', 'public-instance-set'],\n ['protected-instance-get', 'protected-instance-set'],\n ['private-instance-get', 'private-instance-set'],\n ['public-abstract-get', 'public-abstract-set'],\n ['protected-abstract-get', 'protected-abstract-set'],\n ['public-get', 'public-set'],\n ['protected-get', 'protected-set'],\n ['private-get', 'private-set'],\n ['static-get', 'static-set'],\n ['instance-get', 'instance-set'],\n ['abstract-get', 'abstract-set'],\n ['decorated-get', 'decorated-set'],\n 'get',\n 'set',\n 'public-static-method',\n 'protected-static-method',\n 'private-static-method',\n 'public-decorated-method',\n 'protected-decorated-method',\n 'private-decorated-method',\n 'public-instance-method',\n 'protected-instance-method',\n 'private-instance-method',\n 'public-abstract-method',\n 'protected-abstract-method',\n 'public-method',\n 'protected-method',\n 'private-method',\n 'static-method',\n 'instance-method',\n 'abstract-method',\n 'decorated-method',\n 'method',\n ],\n order: 'alphabetically',\n },\n },\n]\n\nfunction createCorrectnessOverride(languageOptions: Linter.LanguageOptions): Linter.Config {\n return {\n files: scriptFiles,\n languageOptions,\n rules: {\n '@typescript-eslint/no-unused-vars': [\n 'warn',\n {\n argsIgnorePattern: '^_', varsIgnorePattern: '^_', ignoreRestSiblings: true,\n },\n ],\n '@typescript-eslint/require-await': 'off',\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n '@typescript-eslint/no-empty-object-type': ['off'],\n '@typescript-eslint/triple-slash-reference': ['off'],\n // Tier 3 opinionated \u2014 enabled in opinionatedConfig\n '@typescript-eslint/strict-boolean-expressions': ['off'],\n // Owned by @stylistic/quotes\n 'quotes': ['off'],\n // Owned by @stylistic/semi\n 'semi': ['off'],\n // Owned by unicorn/prefer-spread\n 'prefer-spread': ['off'],\n 'require-await': 'off',\n },\n }\n}\n\nfunction createConsistencyOverride(languageOptions: Linter.LanguageOptions): Linter.Config {\n return {\n files: scriptFiles,\n languageOptions,\n plugins: { '@stylistic': esStylistic as unknown as ESLint.Plugin },\n rules: {\n ...esStylistic.configs.recommended.rules,\n '@typescript-eslint/no-empty-function': 'warn',\n '@stylistic/eol-last': 'warn',\n '@typescript-eslint/explicit-member-accessibility': ['warn', { accessibility: 'no-public' }],\n '@stylistic/brace-style': ['warn', '1tbs', { allowSingleLine: true }],\n '@stylistic/quotes': ['warn', 'single', { avoidEscape: true }],\n '@typescript-eslint/consistent-type-imports': ['warn', { fixStyle: 'separate-type-imports', prefer: 'type-imports' }],\n '@stylistic/object-property-newline': ['warn', { allowAllPropertiesOnSameLine: true }],\n '@stylistic/function-call-argument-newline': ['warn', 'consistent'],\n '@stylistic/function-paren-newline': ['warn', 'multiline-arguments'],\n '@stylistic/member-delimiter-style': [\n 'error',\n {\n multiline: {\n delimiter: 'none',\n requireLast: true,\n },\n singleline: {\n delimiter: 'semi',\n requireLast: false,\n },\n },\n ],\n '@stylistic/object-curly-newline': ['warn', {\n ObjectExpression: {\n multiline: true, minProperties: 3, consistent: false,\n },\n ObjectPattern: {\n multiline: true, minProperties: 3, consistent: false,\n },\n ImportDeclaration: {\n multiline: true, minProperties: 3, consistent: false,\n },\n ExportDeclaration: {\n multiline: true, minProperties: 3, consistent: false,\n },\n }],\n '@stylistic/max-len': ['warn', { code: 200 }],\n 'no-restricted-syntax': [\n 'warn',\n {\n selector: 'TSEnumDeclaration',\n message: 'Enums are disallowed. Consider using a union of string literals or a `const` object instead.',\n },\n ],\n '@typescript-eslint/member-ordering': memberOrderingRule,\n },\n }\n}\n\nexport const typescriptDelegationConfig: Linter.Config = {\n files: scriptFiles,\n rules: {\n // Owned by unicorn/prefer-spread \u2014 stylistic presets may re-enable the core rule\n 'prefer-spread': 'off',\n // Owned by @stylistic/semi\n 'semi': 'off',\n // Owned by @stylistic/quotes\n 'quotes': 'off',\n },\n}\n\nexport const typescriptCorrectnessConfig: Linter.Config[] = [\n ...scopeConfigs(flatConfigs['flat/recommended'], { files: scriptFiles, languageOptions: scriptLanguageOptions }),\n createCorrectnessOverride(scriptLanguageOptions),\n]\n\nexport const typescriptConsistencyConfig: Linter.Config[] = [\n ...scopeConfigs(flatConfigs['flat/stylistic'], { files: scriptFiles, languageOptions: scriptLanguageOptions }),\n createConsistencyOverride(scriptLanguageOptions),\n]\n\nexport const typescriptTypeCheckedCorrectnessConfig: Linter.Config[] = [\n ...scopeConfigs(flatConfigs['flat/recommended-type-checked'], { files: scriptFiles, languageOptions: typeCheckedLanguageOptions }),\n createCorrectnessOverride(typeCheckedLanguageOptions),\n {\n files: scriptFiles,\n languageOptions: typeCheckedLanguageOptions,\n rules: { '@typescript-eslint/no-deprecated': 'warn' },\n },\n]\n\nexport const typescriptTypeCheckedConsistencyConfig: Linter.Config[] = [\n ...scopeConfigs(flatConfigs['flat/stylistic-type-checked'], { files: scriptFiles, languageOptions: typeCheckedLanguageOptions }),\n createConsistencyOverride(typeCheckedLanguageOptions),\n]\n\nexport const typescriptConfig: Linter.Config[] = [\n ...typescriptCorrectnessConfig,\n ...typescriptConsistencyConfig,\n typescriptDelegationConfig,\n]\n\nexport const typescriptTypeCheckedConfig: Linter.Config[] = [\n ...typescriptTypeCheckedCorrectnessConfig,\n ...typescriptTypeCheckedConsistencyConfig,\n typescriptDelegationConfig,\n]\n", "import type { ESLint, Linter } from 'eslint'\nimport workspacesPlugin from 'eslint-plugin-workspaces'\n\nexport const workspacesConfig: Linter.Config = {\n plugins: { workspaces: workspacesPlugin },\n rules: {\n ...((workspacesPlugin as unknown as { configs: { recommended: ESLint.ConfigData } }).configs.recommended).rules,\n // Tier 3 opinionated \u2014 enabled in opinionatedConfig\n 'workspaces/no-relative-imports': ['off'],\n 'workspaces/require-dependency': ['off'],\n },\n}\n", "import type { Linter } from 'eslint'\n\nimport type { LintTier } from '../recommendedConfig.ts'\nimport type { ManagedRuleDefinition } from './types.ts'\n\nconst filenameCaseRuleOptions = {\n cases: {\n camelCase: true,\n kebabCase: true,\n pascalCase: true,\n },\n}\n\nfunction filenameCaseRule(severity: 'error' | 'warn'): Linter.RuleEntry {\n return [severity, filenameCaseRuleOptions]\n}\n\nfunction rule(\n name: string,\n plugin: string,\n category: ManagedRuleDefinition['category'],\n introducedAtTier: LintTier,\n severityAtTier: ManagedRuleDefinition['severityAtTier'],\n options?: Linter.RuleEntry,\n isTypeCheckingRequired = false,\n): ManagedRuleDefinition {\n return {\n category,\n introducedAtTier,\n isTypeCheckingRequired,\n options,\n plugin,\n rule: name,\n severityAtTier,\n }\n}\n\n/** XY-managed rules with explicit tier and type-check metadata. */\nexport const MANAGED_RULES: readonly ManagedRuleDefinition[] = [\n // Tier 0 \u2014 correctness\n rule('no-unused-vars', 'eslint', 'correctness', 0, { 0: 'off' }),\n rule('no-useless-escape', 'eslint', 'correctness', 0, { 0: 'off' }),\n rule('prefer-spread', 'eslint', 'correctness', 0, { 0: 'off' }),\n rule('no-restricted-imports', 'eslint', 'correctness', 0, { 0: 'error' }),\n rule('@typescript-eslint/no-unused-vars', '@typescript-eslint', 'correctness', 0, { 0: 'warn' }, [\n 'warn',\n {\n argsIgnorePattern: '^_', ignoreRestSiblings: true, varsIgnorePattern: '^_',\n },\n ]),\n rule('@typescript-eslint/require-await', '@typescript-eslint', 'correctness', 0, { 0: 'off' }),\n rule('@typescript-eslint/explicit-module-boundary-types', '@typescript-eslint', 'correctness', 0, { 0: 'off' }),\n rule('@typescript-eslint/no-empty-object-type', '@typescript-eslint', 'correctness', 0, { 0: 'off' }),\n rule('@typescript-eslint/triple-slash-reference', '@typescript-eslint', 'correctness', 0, { 0: 'off' }),\n rule('@typescript-eslint/strict-boolean-expressions', '@typescript-eslint', 'correctness', 0, { 0: 'off', 3: 'error' }, undefined, true),\n rule('@typescript-eslint/no-deprecated', '@typescript-eslint', 'correctness', 0, { 0: 'warn', 3: 'error' }, undefined, true),\n rule('quotes', 'eslint', 'correctness', 0, { 0: 'off' }),\n rule('semi', 'eslint', 'correctness', 0, { 0: 'off' }),\n rule('require-await', 'eslint', 'correctness', 0, { 0: 'off' }),\n\n // Tier 1 \u2014 consistency\n rule('complexity', 'eslint', 'consistency', 1, { 1: 'error' }, ['error', 18]),\n rule('max-depth', 'eslint', 'consistency', 1, { 1: 'error' }, ['error', 6]),\n rule('max-lines', 'eslint', 'consistency', 1, { 1: 'error' }, ['error', { max: 512, skipBlankLines: true }]),\n rule('array-element-newline', 'eslint', 'consistency', 1, { 1: 'warn', 3: 'error' }, ['warn', 'consistent']),\n rule('max-nested-callbacks', 'eslint', 'consistency', 1, { 1: 'error' }),\n rule('max-statements', 'eslint', 'consistency', 1, { 1: 'error' }, ['error', 32]),\n rule('no-tabs', 'eslint', 'consistency', 1, { 1: 'error' }),\n rule('@typescript-eslint/no-empty-function', '@typescript-eslint', 'consistency', 1, { 1: 'warn', 3: 'error' }),\n rule('@stylistic/eol-last', '@stylistic', 'consistency', 1, { 1: 'warn', 3: 'error' }),\n rule('@typescript-eslint/explicit-member-accessibility', '@typescript-eslint', 'consistency', 1, { 1: 'warn', 3: 'error' }, [\n 'warn',\n { accessibility: 'no-public' },\n ]),\n rule('@stylistic/brace-style', '@stylistic', 'consistency', 1, { 1: 'warn', 3: 'error' }, ['warn', '1tbs', { allowSingleLine: true }]),\n rule('@stylistic/quotes', '@stylistic', 'consistency', 1, { 1: 'warn', 3: 'error' }, ['warn', 'single', { avoidEscape: true }]),\n rule('@typescript-eslint/consistent-type-imports', '@typescript-eslint', 'consistency', 1, { 1: 'warn', 3: 'error' }, [\n 'warn',\n { fixStyle: 'separate-type-imports', prefer: 'type-imports' },\n ]),\n rule('@stylistic/object-property-newline', '@stylistic', 'consistency', 1, { 1: 'warn', 3: 'error' }, [\n 'warn',\n { allowAllPropertiesOnSameLine: true },\n ]),\n rule('@stylistic/function-call-argument-newline', '@stylistic', 'consistency', 1, { 1: 'warn', 3: 'error' }, ['warn', 'consistent']),\n rule('@stylistic/function-paren-newline', '@stylistic', 'consistency', 1, { 1: 'warn', 3: 'error' }, ['warn', 'multiline-arguments']),\n rule('@stylistic/member-delimiter-style', '@stylistic', 'consistency', 1, { 1: 'error' }, [\n 'error',\n {\n multiline: { delimiter: 'none', requireLast: true },\n singleline: { delimiter: 'semi', requireLast: false },\n },\n ]),\n rule('@stylistic/object-curly-newline', '@stylistic', 'consistency', 1, { 1: 'warn', 3: 'error' }, [\n 'warn',\n {\n ExportDeclaration: {\n consistent: false, minProperties: 3, multiline: true,\n },\n ImportDeclaration: {\n consistent: false, minProperties: 3, multiline: true,\n },\n ObjectExpression: {\n consistent: false, minProperties: 3, multiline: true,\n },\n ObjectPattern: {\n consistent: false, minProperties: 3, multiline: true,\n },\n },\n ]),\n rule('@stylistic/max-len', '@stylistic', 'consistency', 1, { 1: 'warn', 3: 'error' }, ['warn', { code: 200 }]),\n rule('no-restricted-syntax', 'eslint', 'consistency', 1, { 1: 'warn', 3: 'error' }, [\n 'warn',\n {\n message: 'Enums are disallowed. Consider using a union of string literals or a `const` object instead.',\n selector: 'TSEnumDeclaration',\n },\n ]),\n rule('@typescript-eslint/member-ordering', '@typescript-eslint', 'consistency', 1, { 1: 'warn', 3: 'error' }),\n\n // Tier 2 \u2014 best practices (workspaces moved here from tier 0)\n rule('workspaces/no-relative-imports', 'workspaces', 'best-practices', 2, { 2: 'off', 3: 'error' }),\n rule('workspaces/require-dependency', 'workspaces', 'best-practices', 2, { 2: 'off', 3: 'error' }),\n rule('simple-import-sort/imports', 'simple-import-sort', 'best-practices', 2, { 2: 'warn', 3: 'error' }, ['warn']),\n rule('simple-import-sort/exports', 'simple-import-sort', 'best-practices', 2, { 2: 'warn', 3: 'error' }, ['warn']),\n rule('import-x/default', 'import-x', 'best-practices', 2, { 2: 'off' }),\n rule('import-x/named', 'import-x', 'best-practices', 2, { 2: 'off' }),\n rule('import-x/namespace', 'import-x', 'best-practices', 2, { 2: 'off' }),\n rule('import-x/no-unresolved', 'import-x', 'best-practices', 2, { 2: 'off' }),\n rule('import-x/no-absolute-path', 'import-x', 'best-practices', 2, { 2: 'warn', 3: 'error' }),\n rule('import-x/no-cycle', 'import-x', 'best-practices', 2, { 2: 'warn', 3: 'error' }, ['warn', { maxDepth: 5 }]),\n rule('import-x/no-deprecated', 'import-x', 'best-practices', 2, { 2: 'off' }),\n rule('import-x/no-named-as-default-member', 'import-x', 'best-practices', 2, { 2: 'off' }),\n rule('import-x/no-named-as-default', 'import-x', 'best-practices', 2, { 2: 'off' }),\n rule('import-x/no-restricted-paths', 'import-x', 'best-practices', 2, { 2: 'warn', 3: 'error' }),\n rule('import-x/no-self-import', 'import-x', 'best-practices', 2, { 2: 'warn', 3: 'error' }),\n rule('import-x/no-useless-path-segments', 'import-x', 'best-practices', 2, { 2: 'warn', 3: 'error' }),\n rule('unicorn/consistent-class-member-order', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/max-nested-calls', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/catch-error-name', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/consistent-function-scoping', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/filename-case', 'unicorn', 'best-practices', 2, { 2: 'off', 3: 'error' }, filenameCaseRule('error')),\n rule('unicorn/new-for-builtins', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/no-array-callback-reference', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/no-await-expression-member', 'unicorn', 'best-practices', 2, { 2: 'off', 3: 'error' }),\n rule('unicorn/no-nested-ternary', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/no-null', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/number-literal-case', 'unicorn', 'best-practices', 2, { 2: 'off', 3: 'error' }),\n rule('unicorn/prefer-module', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/prefer-top-level-await', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/prevent-abbreviations', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/name-replacements', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/prefer-https', 'unicorn', 'best-practices', 2, { 2: 'off' }),\n rule('unicorn/no-useless-undefined', 'unicorn', 'best-practices', 2, { 2: 'warn', 3: 'error' }),\n\n // Tier 3 \u2014 opinionated ownership delegations\n rule('no-extra-boolean-cast', 'eslint', 'opinionated', 3, { 3: 'off' }),\n rule('unicorn/no-useless-boolean-cast', 'unicorn', 'opinionated', 3, { 3: 'off' }),\n]\n", "import type { Linter } from 'eslint'\n\nimport { scriptFiles } from '../shared.ts'\nimport {\n unicornOpinionatedRuleEntries,\n unicornV66MigrationQueue,\n unicornV67MigrationQueue,\n unicornV69MigrationQueue,\n} from '../unicorn/index.ts'\nimport { MANAGED_RULES } from './rule-catalog/managed-rules.ts'\n\nexport {\n unicornOpinionatedRules,\n unicornOpinionatedRulesForTier,\n} from '../unicorn/index.ts'\n\nconst filenameCaseRuleOptions = {\n cases: {\n camelCase: true,\n kebabCase: true,\n pascalCase: true,\n },\n}\n\nfunction filenameCaseRule(severity: 'error' | 'warn'): Linter.RuleEntry {\n return [severity, filenameCaseRuleOptions]\n}\n\nfunction unicornQueueRules(\n queue: readonly string[],\n severity: 'off' | 'warn',\n): NonNullable<Linter.Config['rules']> {\n return Object.fromEntries(queue.map(rule => [rule, severity]))\n}\n\nfunction managedPromotionRules(tier: 3): NonNullable<Linter.Config['rules']> {\n const rules: NonNullable<Linter.Config['rules']> = {}\n\n for (const definition of MANAGED_RULES) {\n const severity = definition.severityAtTier[tier]\n if (severity !== 'error') {\n continue\n }\n\n const priorSeverity = definition.severityAtTier[(tier - 1) as 2]\n if (priorSeverity === severity) {\n continue\n }\n\n rules[definition.rule] = definition.options ?? severity\n }\n\n rules['unicorn/filename-case'] = filenameCaseRule('error')\n rules['no-extra-boolean-cast'] = 'off'\n rules['unicorn/no-useless-boolean-cast'] = 'off'\n return rules\n}\n\n/** Optional rules at warning severity before tier 3 promotion. */\nexport const opinionatedLayerConfig: Linter.Config = {\n files: scriptFiles,\n rules: {\n '@typescript-eslint/strict-boolean-expressions': 'warn',\n 'no-extra-boolean-cast': 'off',\n 'unicorn/filename-case': filenameCaseRule('warn'),\n 'unicorn/no-await-expression-member': 'warn',\n 'unicorn/no-useless-boolean-cast': 'off',\n 'unicorn/number-literal-case': 'warn',\n 'workspaces/no-relative-imports': 'warn',\n 'workspaces/require-dependency': 'warn',\n },\n}\n\nexport function opinionatedUnicornPresetLayerConfigForTier(tier: 3 | 4): Linter.Config {\n return {\n files: scriptFiles,\n rules: unicornOpinionatedRuleEntries('error', tier),\n }\n}\n\n/** Tier 3 \u2014 unicorn/recommended opinionated rules (`meta.docs.recommended === true`). */\nexport const opinionatedUnicornPresetLayerConfig: Linter.Config = opinionatedUnicornPresetLayerConfigForTier(3)\n\n/** Tier 3 \u2014 eslint-plugin-unicorn v66 rules introduced as warnings. */\nexport const opinionatedUnicornV66LayerConfig: Linter.Config = {\n files: scriptFiles,\n rules: unicornQueueRules(unicornV66MigrationQueue, 'warn'),\n}\n\nexport const opinionatedPromotionRules: Linter.Config['rules'] = managedPromotionRules(3)\n\nexport const opinionatedPromotionLayerConfig: Linter.Config = {\n files: scriptFiles,\n rules: opinionatedPromotionRules,\n}\n\n/** @deprecated Use `opinionatedPromotionRules` instead. */\nexport const strictPromotionRules: Linter.Config['rules'] = opinionatedPromotionRules\n\n/** @deprecated Use `opinionatedPromotionLayerConfig` instead. */\nexport const strictLayerConfig: Linter.Config = opinionatedPromotionLayerConfig\n\n/** Tier 4 \u2014 eslint-plugin-unicorn v67 rules introduced as warnings (v66 inherited from tier 3). */\nexport const experimentalUnicornLayerConfig: Linter.Config = {\n files: scriptFiles,\n rules: unicornQueueRules(unicornV67MigrationQueue, 'warn'),\n}\n\n/** Tier 4 \u2014 eslint-plugin-unicorn v69 rules introduced as warnings (v66/v67 inherited from lower tiers). */\nexport const experimentalUnicornV69LayerConfig: Linter.Config = {\n files: scriptFiles,\n rules: unicornQueueRules(unicornV69MigrationQueue, 'warn'),\n}\n\n/** @deprecated Use `experimentalUnicornLayerConfig` instead. */\nexport const experimentalLayerConfig: Linter.Config = experimentalUnicornLayerConfig\n\n/** @deprecated Use `experimentalUnicornLayerConfig` instead. */\nexport const experimentalPromotionRules: Linter.Config['rules'] = experimentalUnicornLayerConfig.rules\n", "import tsPlugin from '@typescript-eslint/eslint-plugin'\nimport type { Linter } from 'eslint'\n\nimport { mergeConfigRules } from '../conflicts.ts'\n\nfunction ruleNamesFromConfigs(configs: Linter.Config | Linter.Config[] | undefined): Set<string> {\n if (!configs) return new Set()\n return new Set(Object.keys(mergeConfigRules(Array.isArray(configs) ? configs : [configs])))\n}\n\nfunction ruleNamesFromPreset(preset: Linter.Config | Linter.Config[] | undefined): Set<string> {\n return ruleNamesFromConfigs(preset)\n}\n\nfunction diffRuleSets(typeChecked: Set<string>, untyped: Set<string>): Set<string> {\n const onlyTypeChecked = new Set<string>()\n for (const rule of typeChecked) {\n if (!untyped.has(rule)) {\n onlyTypeChecked.add(rule)\n }\n }\n return onlyTypeChecked\n}\n\nfunction typescriptPresetRuleDiff(): Set<string> {\n const flatConfigs = tsPlugin.configs as Record<string, Linter.Config[]>\n const recommendedTypeChecked = ruleNamesFromPreset(flatConfigs['flat/recommended-type-checked'])\n const recommended = ruleNamesFromPreset(flatConfigs['flat/recommended'])\n const stylisticTypeChecked = ruleNamesFromPreset(flatConfigs['flat/stylistic-type-checked'])\n const stylistic = ruleNamesFromPreset(flatConfigs['flat/stylistic'])\n\n return new Set([\n ...diffRuleSets(recommendedTypeChecked, recommended),\n ...diffRuleSets(stylisticTypeChecked, stylistic),\n ])\n}\n\n/** Rules enabled by XY layers that always require parser type information. */\nconst EXPLICIT_TYPE_CHECKED_RULES = [\n '@typescript-eslint/no-deprecated',\n '@typescript-eslint/strict-boolean-expressions',\n] as const\n\nconst typeCheckedRuleNamesCache: { names?: ReadonlySet<string> } = {}\n\nexport function collectTypeCheckedRuleNames(): ReadonlySet<string> {\n if (typeCheckedRuleNamesCache.names === undefined) {\n typeCheckedRuleNamesCache.names = new Set([\n ...typescriptPresetRuleDiff(),\n ...EXPLICIT_TYPE_CHECKED_RULES,\n ])\n }\n\n return typeCheckedRuleNamesCache.names\n}\n\nexport function buildTypeCheckGateRules(): NonNullable<Linter.Config['rules']> {\n return Object.fromEntries(\n [...collectTypeCheckedRuleNames()].map(rule => [rule, 'off' as const]),\n )\n}\n\nexport function resetTypeCheckedRuleNamesCache(): void {\n typeCheckedRuleNamesCache.names = undefined\n}\n", "import type { Linter } from 'eslint'\n\nimport { scriptFiles } from '../../shared.ts'\nimport { getRuleSeverity } from '../conflicts.ts'\nimport type { LintTier } from '../recommendedConfig.ts'\nimport { MANAGED_RULES } from './managed-rules.ts'\nimport {\n buildTypeCheckGateRules,\n collectTypeCheckedRuleNames,\n} from './type-checked-rules.ts'\nimport type {\n ManagedRuleDefinition,\n ManagedRuleSeverity,\n RuleCategory,\n} from './types.ts'\n\nexport { MANAGED_RULES, MANAGED_RULES as RULE_CATALOG } from './managed-rules.ts'\nexport {\n buildTypeCheckGateRules,\n collectTypeCheckedRuleNames,\n resetTypeCheckedRuleNamesCache,\n} from './type-checked-rules.ts'\nexport type { ManagedRuleDefinition, RuleCategory } from './types.ts'\n\nfunction severityForTier(\n definition: ManagedRuleDefinition,\n tier: LintTier,\n): ManagedRuleSeverity | undefined {\n let resolved: ManagedRuleSeverity | undefined\n for (let current = 0 as LintTier; current <= tier; current = (current + 1) as LintTier) {\n const severity = definition.severityAtTier[current]\n if (severity !== undefined) {\n resolved = severity\n }\n }\n return resolved\n}\n\nexport function managedRulesForTier(\n tier: LintTier,\n isTypeChecked: boolean,\n): ManagedRuleDefinition[] {\n return MANAGED_RULES.filter(definition => (\n definition.introducedAtTier <= tier\n && (!definition.isTypeCheckingRequired || isTypeChecked)\n ))\n}\n\nexport function buildManagedRulesMap(\n tier: LintTier,\n isTypeChecked: boolean,\n): NonNullable<Linter.Config['rules']> {\n const rules: NonNullable<Linter.Config['rules']> = {}\n\n for (const definition of managedRulesForTier(tier, isTypeChecked)) {\n const severity = severityForTier(definition, tier)\n if (severity === undefined) {\n continue\n }\n\n rules[definition.rule] = severity === 'off' ? 'off' : (definition.options ?? severity)\n }\n\n return rules\n}\n\nexport function buildManagedRulesLayer(\n tier: LintTier,\n isTypeChecked: boolean,\n): Linter.Config {\n return {\n files: scriptFiles,\n rules: buildManagedRulesMap(tier, isTypeChecked),\n }\n}\n\nexport function buildTypeCheckGateLayer(): Linter.Config {\n return {\n files: scriptFiles,\n rules: buildTypeCheckGateRules(),\n }\n}\n\nexport function findEnabledTypeCheckedRules(\n rules: Record<string, Linter.RuleEntry | undefined>,\n): string[] {\n const typeCheckedRuleNames = collectTypeCheckedRuleNames()\n return [...typeCheckedRuleNames]\n .filter((rule) => {\n const severity = getRuleSeverity(rules[rule])\n return severity !== undefined && severity !== 'off'\n })\n .toSorted()\n}\n\nexport function categoryForTier(tier: LintTier): RuleCategory {\n switch (tier) {\n case 0: { return 'correctness'\n }\n case 1: { return 'consistency'\n }\n case 2: { return 'best-practices'\n }\n case 3: { return 'opinionated'\n }\n case 4: { return 'experimental'\n }\n default: {\n const unsupported: never = tier\n throw new Error(`Unsupported lint tier ${unsupported as number}`)\n }\n }\n}\n", "import type { Linter } from 'eslint'\n\nimport {\n bestPracticesCoreConfig,\n correctnessCoreConfig,\n} from '../core/index.ts'\nimport { ignores } from '../ignores.ts'\nimport { importConfig } from '../import/index.ts'\nimport { markdownConfig } from '../markdown/index.ts'\nimport { consistencyRulesConfig } from '../rules/index.ts'\nimport {\n typescriptConsistencyConfig,\n typescriptCorrectnessConfig,\n typescriptDelegationConfig,\n typescriptTypeCheckedConsistencyConfig,\n typescriptTypeCheckedCorrectnessConfig,\n} from '../typescript/index.ts'\nimport { workspacesConfig } from '../workspaces/index.ts'\nimport {\n experimentalUnicornLayerConfig,\n experimentalUnicornV69LayerConfig,\n opinionatedUnicornPresetLayerConfigForTier,\n opinionatedUnicornV66LayerConfig,\n} from './opinionated.ts'\nimport type { LintTier } from './recommendedConfig.ts'\nimport {\n buildManagedRulesLayer,\n buildTypeCheckGateLayer,\n} from './rule-catalog/index.ts'\n\nfunction mergeTierConfigs(...parts: readonly Linter.Config[][]): Linter.Config[] {\n return parts.flat()\n}\n\nfunction structuralTier0(isTypeChecked: boolean): Linter.Config[] {\n return mergeTierConfigs(\n markdownConfig,\n correctnessCoreConfig,\n isTypeChecked ? typescriptTypeCheckedCorrectnessConfig : typescriptCorrectnessConfig,\n )\n}\n\nfunction structuralTier1(isTypeChecked: boolean): Linter.Config[] {\n return mergeTierConfigs(\n structuralTier0(isTypeChecked),\n [consistencyRulesConfig],\n isTypeChecked ? typescriptTypeCheckedConsistencyConfig : typescriptConsistencyConfig,\n [typescriptDelegationConfig],\n )\n}\n\nfunction structuralTier2(isTypeChecked: boolean): Linter.Config[] {\n return mergeTierConfigs(\n structuralTier1(isTypeChecked),\n bestPracticesCoreConfig,\n importConfig,\n [workspacesConfig],\n )\n}\n\nfunction structuralLayersForTier(tier: LintTier, isTypeChecked: boolean): Linter.Config[] {\n switch (tier) {\n case 0: {\n return structuralTier0(isTypeChecked)\n }\n case 1: {\n return structuralTier1(isTypeChecked)\n }\n case 2:\n case 3:\n case 4: {\n return structuralTier2(isTypeChecked)\n }\n default: {\n const unsupported: never = tier\n throw new Error(`Unsupported lint tier ${unsupported as number}`)\n }\n }\n}\n\nfunction appendTypeCheckGate(configs: Linter.Config[], isTypeChecked: boolean): Linter.Config[] {\n if (isTypeChecked) {\n return configs\n }\n\n return [...configs, buildTypeCheckGateLayer()]\n}\n\nfunction opinionatedLayersForTier(tier: LintTier): Linter.Config[] {\n if (tier < 3) {\n return []\n }\n\n const layers: Linter.Config[] = [\n opinionatedUnicornPresetLayerConfigForTier(tier as 3 | 4),\n opinionatedUnicornV66LayerConfig,\n ]\n\n if (tier >= 4) {\n layers.push(experimentalUnicornLayerConfig, experimentalUnicornV69LayerConfig)\n }\n\n return layers\n}\n\n/** ESLint only treats `ignores` as global when no other keys are present on the config object. */\nexport const globalIgnoresConfig: Linter.Config = { ignores }\n\nexport function buildTierConfig(tier: LintTier, isTypeChecked: boolean): Linter.Config[] {\n const configs = mergeTierConfigs(\n [globalIgnoresConfig],\n structuralLayersForTier(tier, isTypeChecked),\n opinionatedLayersForTier(tier),\n [buildManagedRulesLayer(tier, isTypeChecked)],\n )\n\n return appendTypeCheckGate(configs, isTypeChecked)\n}\n", "import type { Linter } from 'eslint'\n\nimport { buildTierConfig } from './tier-builder.ts'\n\nexport type LintTier = 0 | 1 | 2 | 3 | 4\n\nexport interface RecommendedConfigOptions {\n isTypeChecked?: boolean\n tier?: LintTier\n}\n\nexport const DEFAULT_RECOMMENDED_CONFIG_OPTIONS: Required<RecommendedConfigOptions> = {\n isTypeChecked: true,\n tier: 3,\n}\n\nconst composedConfigModules = [\n 'bestPracticesCoreConfig',\n 'consistencyRulesConfig',\n 'correctnessCoreConfig',\n 'importConfig',\n 'rulesConfig',\n 'typescriptConfig',\n 'typescriptConsistencyConfig',\n 'typescriptCorrectnessConfig',\n 'typescriptTypeCheckedConfig',\n 'typescriptTypeCheckedConsistencyConfig',\n 'typescriptTypeCheckedCorrectnessConfig',\n 'unicornConfig',\n 'workspacesConfig',\n] as const\n\nexport function resolveRecommendedConfigOptions(\n options?: RecommendedConfigOptions,\n): Required<RecommendedConfigOptions> {\n return {\n isTypeChecked: options?.isTypeChecked ?? DEFAULT_RECOMMENDED_CONFIG_OPTIONS.isTypeChecked,\n tier: options?.tier ?? DEFAULT_RECOMMENDED_CONFIG_OPTIONS.tier,\n }\n}\n\nexport function recommendedConfig(options?: RecommendedConfigOptions): Linter.Config[] {\n const resolved = resolveRecommendedConfigOptions(options)\n return buildTierConfig(resolved.tier, resolved.isTypeChecked)\n}\n\nexport function formatRecommendedConfigCall(options: RecommendedConfigOptions): string {\n const resolved = resolveRecommendedConfigOptions(options)\n return `recommendedConfig({ tier: ${resolved.tier}, isTypeChecked: ${String(resolved.isTypeChecked)} })`\n}\n\nfunction hasComposedConfigModules(source: string): boolean {\n return composedConfigModules.some(module => source.includes(module))\n}\n\nfunction parseRecommendedConfigOptionsLiteral(literal: string | undefined): Required<RecommendedConfigOptions> {\n const resolved = { ...DEFAULT_RECOMMENDED_CONFIG_OPTIONS }\n if (literal === undefined || literal.trim().length === 0) return resolved\n\n const tierMatch = /tier:\\s*([0-4])\\b/.exec(literal)\n if (tierMatch !== null) {\n resolved.tier = Number(tierMatch[1]) as LintTier\n }\n\n const isTypeCheckedMatch = /isTypeChecked:\\s*(true|false)\\b/.exec(literal)\n if (isTypeCheckedMatch === null) {\n const legacyTypeCheckedMatch = /typeChecked:\\s*(true|false)\\b/.exec(literal)\n if (legacyTypeCheckedMatch !== null) {\n resolved.isTypeChecked = legacyTypeCheckedMatch[1] === 'true'\n }\n } else {\n resolved.isTypeChecked = isTypeCheckedMatch[1] === 'true'\n }\n\n return resolved\n}\n\nexport function parseRecommendedConfigSource(\n source: string,\n): { configKind: 'custom' | 'preset'; options: Required<RecommendedConfigOptions> } | undefined {\n const callPattern = /recommendedConfig\\s*\\(\\s*(?:\\{([^}]*)\\})?\\s*\\)/g\n const match = callPattern.exec(source)\n if (match === null) return undefined\n\n const options = parseRecommendedConfigOptionsLiteral(match[1])\n const configKind = hasComposedConfigModules(source) ? 'custom' : 'preset'\n return { configKind, options }\n}\n\nexport function applyRecommendedConfigTypeChecked(\n source: string,\n isEnabled: boolean,\n): string {\n const callPattern = /recommendedConfig\\s*\\(\\s*(?:\\{([^}]*)\\})?\\s*\\)/g\n return source.replaceAll(callPattern, (_match, literal: string | undefined) => {\n const options = parseRecommendedConfigOptionsLiteral(literal)\n options.isTypeChecked = isEnabled\n return formatRecommendedConfigCall(options)\n })\n}\n", "import type { Linter } from 'eslint'\n\nexport {\n applyRecommendedConfigTypeChecked,\n DEFAULT_RECOMMENDED_CONFIG_OPTIONS,\n formatRecommendedConfigCall,\n type LintTier,\n parseRecommendedConfigSource,\n recommendedConfig,\n type RecommendedConfigOptions,\n resolveRecommendedConfigOptions,\n} from './recommendedConfig.ts'\n\nimport { recommendedConfig } from './recommendedConfig.ts'\n\n/**\n * Tier 0 \u2014 correctness: type safety, bug prevention, import restrictions.\n * Each subsequent tier is a superset of the previous tier.\n *\n * @deprecated Use `recommendedConfig({ tier: 0, isTypeChecked: false })` instead.\n */\nexport const configTier0Correctness: Linter.Config[] = recommendedConfig({ tier: 0, isTypeChecked: false })\n\n/** @deprecated Use `recommendedConfig({ tier: 0, isTypeChecked: true })` instead. */\nexport const configTier0CorrectnessTypeChecked: Linter.Config[] = recommendedConfig({ tier: 0, isTypeChecked: true })\n\n/**\n * Tier 1 \u2014 consistency: Tier 0 plus formatting, member ordering, and complexity limits.\n *\n * @deprecated Use `recommendedConfig({ tier: 1, isTypeChecked: false })` instead.\n */\nexport const configTier1Consistency: Linter.Config[] = recommendedConfig({ tier: 1, isTypeChecked: false })\n\n/** @deprecated Use `recommendedConfig({ tier: 1, isTypeChecked: true })` instead. */\nexport const configTier1ConsistencyTypeChecked: Linter.Config[] = recommendedConfig({ tier: 1, isTypeChecked: true })\n\n/**\n * Tier 2 \u2014 best practices: Tier 1 plus unicorn and import validation.\n *\n * @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: false })` instead.\n */\nexport const configTier2BestPractices: Linter.Config[] = recommendedConfig({ tier: 2, isTypeChecked: false })\n\n/** @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: true })` instead. */\nexport const configTier2BestPracticesTypeChecked: Linter.Config[] = recommendedConfig({ tier: 2, isTypeChecked: true })\n\n/**\n * Tier 3 \u2014 opinionated: Tier 2 plus unicorn v66 warnings and promotion of optional rules to errors.\n *\n * @deprecated Use `recommendedConfig({ tier: 3, isTypeChecked: false })` instead.\n */\nexport const configTier3Opinionated: Linter.Config[] = recommendedConfig({ tier: 3, isTypeChecked: false })\n\n/** @deprecated Use `recommendedConfig({ tier: 3, isTypeChecked: true })` instead. */\nexport const configTier3OpinionatedTypeChecked: Linter.Config[] = recommendedConfig({ tier: 3, isTypeChecked: true })\n\n/**\n * Tier 4 \u2014 experimental: Tier 3 plus unicorn v67 and v69 warnings (v66 remain warnings).\n *\n * @deprecated Use `recommendedConfig({ tier: 4, isTypeChecked: false })` instead.\n */\nexport const configTier4Experimental: Linter.Config[] = recommendedConfig({ tier: 4, isTypeChecked: false })\n\n/** @deprecated Use `recommendedConfig({ tier: 4, isTypeChecked: true })` instead. */\nexport const configTier4ExperimentalTypeChecked: Linter.Config[] = recommendedConfig({ tier: 4, isTypeChecked: true })\n\n/** @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: false })` instead. */\nexport const recommendedTypeCheckedConfig: Linter.Config[] = recommendedConfig({ tier: 2, isTypeChecked: true })\n\n/** @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: true })` instead. */\nexport const config: Linter.Config[] = recommendedConfig({ tier: 2, isTypeChecked: true })\n", "import js from '@eslint/js'\nimport json from '@eslint/json'\nimport markdown from '@eslint/markdown'\nimport esStylistic from '@stylistic/eslint-plugin'\nimport tsPlugin from '@typescript-eslint/eslint-plugin'\nimport type { ESLint } from 'eslint'\nimport importPlugin from 'eslint-plugin-import-x'\nimport simpleImportSort from 'eslint-plugin-simple-import-sort'\nimport unicornPlugin from 'eslint-plugin-unicorn'\nimport workspacesPlugin from 'eslint-plugin-workspaces'\n\nconst compareStrings = (left: string, right: string): number => left.localeCompare(right)\n\nexport interface PluginRuleSnapshot {\n readonly plugin: string\n readonly rules: readonly string[]\n readonly source: string\n}\n\nfunction sortedRuleNames(rules: Record<string, unknown> | undefined): string[] {\n if (!rules) {\n return []\n }\n\n return Object.keys(rules).toSorted(compareStrings)\n}\n\nfunction sortedRuleNamesFromConfigs(\n configs: { rules?: Record<string, unknown> }[] | undefined,\n): string[] {\n if (!configs) {\n return []\n }\n\n const merged: Record<string, unknown> = {}\n for (const entry of configs) {\n if (entry.rules) {\n Object.assign(merged, entry.rules)\n }\n }\n\n return sortedRuleNames(merged)\n}\n\nfunction pluginRuleNames(plugin: ESLint.Plugin): string[] {\n if (!plugin.rules) {\n return []\n }\n\n const prefix = typeof plugin.meta?.name === 'string'\n ? plugin.meta.name.replace(/^eslint-plugin-/, '').replace(/^@eslint\\//, '')\n : 'unknown'\n\n return Object.keys(plugin.rules)\n .toSorted(compareStrings)\n .map(ruleName => `${prefix}/${ruleName}`)\n}\n\nexport function collectPluginRuleSnapshots(): PluginRuleSnapshot[] {\n const unicornRecommended = unicornPlugin.configs['flat/recommended'] as undefined | { rules?: Record<string, unknown> }\n const importRecommended = importPlugin.flatConfigs.recommended as { rules?: Record<string, unknown> }\n const flatConfigs = tsPlugin.configs as Record<string, { rules?: Record<string, unknown> }[]>\n const workspacesRecommended = (\n workspacesPlugin as { configs: { recommended: { rules?: Record<string, unknown> } } }\n ).configs.recommended\n\n return [\n {\n plugin: '@eslint/js',\n rules: sortedRuleNames(js.configs.recommended.rules),\n source: 'configs.recommended',\n },\n {\n plugin: '@eslint/json',\n rules: pluginRuleNames(json),\n source: 'plugin.rules',\n },\n {\n plugin: '@eslint/markdown',\n rules: sortedRuleNames(\n (markdown.configs.recommended as { rules?: Record<string, unknown> }[])[0]?.rules,\n ),\n source: 'configs.recommended',\n },\n {\n plugin: '@stylistic/eslint-plugin',\n rules: sortedRuleNames(esStylistic.configs.recommended.rules),\n source: 'configs.recommended',\n },\n {\n plugin: '@typescript-eslint/eslint-plugin',\n rules: sortedRuleNamesFromConfigs(flatConfigs['flat/recommended']),\n source: 'configs.flat/recommended',\n },\n {\n plugin: '@typescript-eslint/eslint-plugin',\n rules: sortedRuleNamesFromConfigs(flatConfigs['flat/stylistic']),\n source: 'configs.flat/stylistic',\n },\n {\n plugin: '@typescript-eslint/eslint-plugin',\n rules: sortedRuleNamesFromConfigs(flatConfigs['flat/recommended-type-checked']),\n source: 'configs.flat/recommended-type-checked',\n },\n {\n plugin: '@typescript-eslint/eslint-plugin',\n rules: sortedRuleNamesFromConfigs(flatConfigs['flat/stylistic-type-checked']),\n source: 'configs.flat/stylistic-type-checked',\n },\n {\n plugin: 'eslint-plugin-import-x',\n rules: sortedRuleNames(importRecommended.rules),\n source: 'flatConfigs.recommended',\n },\n {\n plugin: 'eslint-plugin-import-x',\n rules: sortedRuleNames(importPlugin.flatConfigs.typescript.rules),\n source: 'flatConfigs.typescript',\n },\n {\n plugin: 'eslint-plugin-simple-import-sort',\n rules: pluginRuleNames(simpleImportSort),\n source: 'plugin.rules',\n },\n {\n plugin: 'eslint-plugin-unicorn',\n rules: sortedRuleNames(unicornRecommended?.rules),\n source: 'configs.flat/recommended',\n },\n {\n plugin: 'eslint-plugin-workspaces',\n rules: sortedRuleNames(workspacesRecommended.rules),\n source: 'configs.recommended',\n },\n ]\n}\n\nexport function serializePluginRuleSnapshots(snapshots: readonly PluginRuleSnapshot[]): string {\n return `${JSON.stringify(snapshots, null, 2)}\\n`\n}\n", "import type { Linter } from 'eslint'\n\nimport {\n json5Config, jsoncConfig,\n jsonConfig,\n} from './json/index.ts'\nimport { markdownConfig } from './markdown/index.ts'\n\nexport const docsConfig: Linter.Config[] = [\n ...markdownConfig,\n jsonConfig,\n jsoncConfig,\n json5Config,\n]\n\nexport {\n bestPracticesCoreConfig,\n coreConfig,\n correctnessCoreConfig,\n} from './core/index.ts'\nexport { ignores } from './ignores.ts'\nexport { importConfig } from './import/index.ts'\nexport {\n json5Config, jsoncConfig,\n jsonConfig,\n} from './json/index.ts'\nexport { markdownConfig } from './markdown/index.ts'\nexport {\n consistencyRulesConfig,\n correctnessRulesConfig,\n rulesConfig,\n srcImportsConfig,\n} from './rules/index.ts'\nexport type { RuleSeverity } from './tiers/conflicts.ts'\nexport {\n assertNoRuleOwnershipConflicts,\n findRuleOwnershipConflicts,\n getRuleSeverity,\n mergeConfigRules,\n RULE_OWNERSHIP_GROUPS,\n} from './tiers/conflicts.ts'\nexport * from './tiers/index.ts'\nexport {\n experimentalLayerConfig,\n experimentalPromotionRules,\n experimentalUnicornLayerConfig,\n experimentalUnicornV69LayerConfig,\n opinionatedLayerConfig,\n opinionatedPromotionLayerConfig,\n opinionatedPromotionRules,\n opinionatedUnicornPresetLayerConfig,\n opinionatedUnicornV66LayerConfig,\n strictLayerConfig,\n strictPromotionRules,\n} from './tiers/opinionated.ts'\nexport {\n collectPluginRuleSnapshots,\n serializePluginRuleSnapshots,\n} from './tiers/plugin-rules.ts'\nexport type { ManagedRuleDefinition, RuleCategory } from './tiers/rule-catalog/index.ts'\nexport {\n buildManagedRulesLayer,\n buildTypeCheckGateLayer,\n categoryForTier,\n collectTypeCheckedRuleNames,\n findEnabledTypeCheckedRules,\n managedRulesForTier,\n RULE_CATALOG,\n} from './tiers/rule-catalog/index.ts'\nexport { buildTierConfig, globalIgnoresConfig } from './tiers/tier-builder.ts'\nexport {\n typescriptConfig,\n typescriptConsistencyConfig,\n typescriptCorrectnessConfig,\n typescriptDelegationConfig,\n typescriptTypeCheckedConfig,\n typescriptTypeCheckedConsistencyConfig,\n typescriptTypeCheckedCorrectnessConfig,\n} from './typescript/index.ts'\nexport {\n unicornConfig,\n unicornExperimentalMigrationQueue,\n unicornGloballyDisabledRules,\n unicornOpinionatedRules,\n unicornOpinionatedRulesForTier,\n unicornV66MigrationQueue,\n unicornV66NewRules,\n unicornV67MigrationQueue,\n unicornV69MigrationQueue,\n unicornV71MigrationQueue,\n} from './unicorn/index.ts'\nexport { workspacesConfig } from './workspaces/index.ts'\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["config", "restrictedImportPaths", "rule", "filenameCaseRuleOptions", "filenameCaseRule", "unicornQueueRules", "rule", "tsPlugin", "rule", "flatConfigs", "tsPlugin", "rule", "js", "json", "markdown", "esStylistic", "tsPlugin", "importPlugin", "simpleImportSort", "unicornPlugin", "workspacesPlugin", "compareStrings", "flatConfigs"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/json/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI5C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAM/B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAMhC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAMhC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/markdown/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAMpC,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAGzC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consistency.d.ts","sourceRoot":"","sources":["../../../src/rules/consistency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIpC,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAkB3C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correctness.d.ts","sourceRoot":"","sources":["../../../src/rules/correctness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAepC,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAc3C,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
export { consistencyRulesConfig } from './consistency.ts';
|
|
3
|
+
export { correctnessRulesConfig } from './correctness.ts';
|
|
4
|
+
export declare const rulesConfig: Linter.Config;
|
|
5
|
+
export declare const srcImportsConfig: Linter.Config;
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AA6BpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAMhC,CAAA;AAKD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAYrC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
export declare const scriptFiles: string[];
|
|
3
|
+
export declare const scriptLanguageOptions: Linter.LanguageOptions;
|
|
4
|
+
export declare const typeCheckedLanguageOptions: Linter.LanguageOptions;
|
|
5
|
+
export declare function scopeConfig(config: Linter.Config, { files, languageOptions, }?: {
|
|
6
|
+
files?: string[];
|
|
7
|
+
languageOptions?: Linter.LanguageOptions;
|
|
8
|
+
}): Linter.Config;
|
|
9
|
+
export declare function scopeConfigs(configs: Linter.Config | Linter.Config[], options?: {
|
|
10
|
+
files?: string[];
|
|
11
|
+
languageOptions?: Linter.LanguageOptions;
|
|
12
|
+
}): Linter.Config[];
|
|
13
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIpC,eAAO,MAAM,WAAW,UAcvB,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,eAK1C,CAAA;AAgBD,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,eAG/C,CAAA;AA2BD,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,EACE,KAAK,EACL,eAAe,GAChB,GAAE;IACD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;CACpC,GACL,MAAM,CAAC,MAAM,CAWf;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,EACxC,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAA;CACpC,GACL,MAAM,CAAC,MAAM,EAAE,CAEjB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
export interface RuleOwnershipGroup {
|
|
3
|
+
readonly description: string;
|
|
4
|
+
readonly disabled: readonly string[];
|
|
5
|
+
readonly owner: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const RULE_OWNERSHIP_GROUPS: readonly RuleOwnershipGroup[];
|
|
8
|
+
type RuleSetting = Linter.RuleEntry<unknown[]> | undefined;
|
|
9
|
+
export type RuleSeverity = 'error' | 'off' | 'warn';
|
|
10
|
+
export declare function getRuleSeverity(setting: RuleSetting): RuleSeverity | undefined;
|
|
11
|
+
export declare function mergeConfigRules(configs: readonly Linter.Config[]): Record<string, RuleSetting>;
|
|
12
|
+
export interface RuleOwnershipConflict {
|
|
13
|
+
readonly conflictingRule: string;
|
|
14
|
+
readonly conflictingSetting: RuleSetting;
|
|
15
|
+
readonly description: string;
|
|
16
|
+
readonly owner: string;
|
|
17
|
+
readonly ownerSetting: RuleSetting;
|
|
18
|
+
}
|
|
19
|
+
export declare function findRuleOwnershipConflicts(rules: Record<string, RuleSetting>): RuleOwnershipConflict[];
|
|
20
|
+
export declare function assertNoRuleOwnershipConflicts(configs: readonly Linter.Config[]): void;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=conflicts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflicts.d.ts","sourceRoot":"","sources":["../../../src/tiers/conflicts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAwDrD,CAAA;AAEV,KAAK,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAAA;AAE1D,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;AAEnD,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS,CAoB9E;AAOD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAY/F;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAA;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAA;CACnC;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACjC,qBAAqB,EAAE,CAuBzB;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAYtF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
export { applyRecommendedConfigTypeChecked, DEFAULT_RECOMMENDED_CONFIG_OPTIONS, formatRecommendedConfigCall, type LintTier, parseRecommendedConfigSource, recommendedConfig, type RecommendedConfigOptions, resolveRecommendedConfigOptions, } from './recommendedConfig.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Tier 0 — correctness: type safety, bug prevention, import restrictions.
|
|
5
|
+
* Each subsequent tier is a superset of the previous tier.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Use `recommendedConfig({ tier: 0, isTypeChecked: false })` instead.
|
|
8
|
+
*/
|
|
9
|
+
export declare const configTier0Correctness: Linter.Config[];
|
|
10
|
+
/** @deprecated Use `recommendedConfig({ tier: 0, isTypeChecked: true })` instead. */
|
|
11
|
+
export declare const configTier0CorrectnessTypeChecked: Linter.Config[];
|
|
12
|
+
/**
|
|
13
|
+
* Tier 1 — consistency: Tier 0 plus formatting, member ordering, and complexity limits.
|
|
14
|
+
*
|
|
15
|
+
* @deprecated Use `recommendedConfig({ tier: 1, isTypeChecked: false })` instead.
|
|
16
|
+
*/
|
|
17
|
+
export declare const configTier1Consistency: Linter.Config[];
|
|
18
|
+
/** @deprecated Use `recommendedConfig({ tier: 1, isTypeChecked: true })` instead. */
|
|
19
|
+
export declare const configTier1ConsistencyTypeChecked: Linter.Config[];
|
|
20
|
+
/**
|
|
21
|
+
* Tier 2 — best practices: Tier 1 plus unicorn and import validation.
|
|
22
|
+
*
|
|
23
|
+
* @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: false })` instead.
|
|
24
|
+
*/
|
|
25
|
+
export declare const configTier2BestPractices: Linter.Config[];
|
|
26
|
+
/** @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: true })` instead. */
|
|
27
|
+
export declare const configTier2BestPracticesTypeChecked: Linter.Config[];
|
|
28
|
+
/**
|
|
29
|
+
* Tier 3 — opinionated: Tier 2 plus unicorn v66 warnings and promotion of optional rules to errors.
|
|
30
|
+
*
|
|
31
|
+
* @deprecated Use `recommendedConfig({ tier: 3, isTypeChecked: false })` instead.
|
|
32
|
+
*/
|
|
33
|
+
export declare const configTier3Opinionated: Linter.Config[];
|
|
34
|
+
/** @deprecated Use `recommendedConfig({ tier: 3, isTypeChecked: true })` instead. */
|
|
35
|
+
export declare const configTier3OpinionatedTypeChecked: Linter.Config[];
|
|
36
|
+
/**
|
|
37
|
+
* Tier 4 — experimental: Tier 3 plus unicorn v67 and v69 warnings (v66 remain warnings).
|
|
38
|
+
*
|
|
39
|
+
* @deprecated Use `recommendedConfig({ tier: 4, isTypeChecked: false })` instead.
|
|
40
|
+
*/
|
|
41
|
+
export declare const configTier4Experimental: Linter.Config[];
|
|
42
|
+
/** @deprecated Use `recommendedConfig({ tier: 4, isTypeChecked: true })` instead. */
|
|
43
|
+
export declare const configTier4ExperimentalTypeChecked: Linter.Config[];
|
|
44
|
+
/** @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: false })` instead. */
|
|
45
|
+
export declare const recommendedTypeCheckedConfig: Linter.Config[];
|
|
46
|
+
/** @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: true })` instead. */
|
|
47
|
+
export declare const config: Linter.Config[];
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tiers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,2BAA2B,EAC3B,KAAK,QAAQ,EACb,4BAA4B,EAC5B,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,+BAA+B,GAChC,MAAM,wBAAwB,CAAA;AAI/B;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAyD,CAAA;AAE3G,qFAAqF;AACrF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAErH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAyD,CAAA;AAE3G,qFAAqF;AACrF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAErH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAyD,CAAA;AAE7G,qFAAqF;AACrF,eAAO,MAAM,mCAAmC,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAEvH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAyD,CAAA;AAE3G,qFAAqF;AACrF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAErH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAyD,CAAA;AAE5G,qFAAqF;AACrF,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAEtH,sFAAsF;AACtF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAEhH,qFAAqF;AACrF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
export { unicornOpinionatedRules, unicornOpinionatedRulesForTier, } from '../unicorn/index.ts';
|
|
3
|
+
/** Optional rules at warning severity before tier 3 promotion. */
|
|
4
|
+
export declare const opinionatedLayerConfig: Linter.Config;
|
|
5
|
+
export declare function opinionatedUnicornPresetLayerConfigForTier(tier: 3 | 4): Linter.Config;
|
|
6
|
+
/** Tier 3 — unicorn/recommended opinionated rules (`meta.docs.recommended === true`). */
|
|
7
|
+
export declare const opinionatedUnicornPresetLayerConfig: Linter.Config;
|
|
8
|
+
/** Tier 3 — eslint-plugin-unicorn v66 rules introduced as warnings. */
|
|
9
|
+
export declare const opinionatedUnicornV66LayerConfig: Linter.Config;
|
|
10
|
+
export declare const opinionatedPromotionRules: Linter.Config['rules'];
|
|
11
|
+
export declare const opinionatedPromotionLayerConfig: Linter.Config;
|
|
12
|
+
/** @deprecated Use `opinionatedPromotionRules` instead. */
|
|
13
|
+
export declare const strictPromotionRules: Linter.Config['rules'];
|
|
14
|
+
/** @deprecated Use `opinionatedPromotionLayerConfig` instead. */
|
|
15
|
+
export declare const strictLayerConfig: Linter.Config;
|
|
16
|
+
/** Tier 4 — eslint-plugin-unicorn v67 rules introduced as warnings (v66 inherited from tier 3). */
|
|
17
|
+
export declare const experimentalUnicornLayerConfig: Linter.Config;
|
|
18
|
+
/** Tier 4 — eslint-plugin-unicorn v69 rules introduced as warnings (v66/v67 inherited from lower tiers). */
|
|
19
|
+
export declare const experimentalUnicornV69LayerConfig: Linter.Config;
|
|
20
|
+
/** @deprecated Use `experimentalUnicornLayerConfig` instead. */
|
|
21
|
+
export declare const experimentalLayerConfig: Linter.Config;
|
|
22
|
+
/** @deprecated Use `experimentalUnicornLayerConfig` instead. */
|
|
23
|
+
export declare const experimentalPromotionRules: Linter.Config['rules'];
|
|
24
|
+
//# sourceMappingURL=opinionated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opinionated.d.ts","sourceRoot":"","sources":["../../../src/tiers/opinionated.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAWpC,OAAO,EACL,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAA;AA4C5B,kEAAkE;AAClE,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAY3C,CAAA;AAED,wBAAgB,0CAA0C,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAKrF;AAED,yFAAyF;AACzF,eAAO,MAAM,mCAAmC,EAAE,MAAM,CAAC,MAAsD,CAAA;AAE/G,uEAAuE;AACvE,eAAO,MAAM,gCAAgC,EAAE,MAAM,CAAC,MAGrD,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAA4B,CAAA;AAEzF,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,MAGpD,CAAA;AAED,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAA6B,CAAA;AAErF,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAwC,CAAA;AAE/E,mGAAmG;AACnG,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAGnD,CAAA;AAED,4GAA4G;AAC5G,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAGtD,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAuC,CAAA;AAEpF,gEAAgE;AAChE,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAwC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface PluginRuleSnapshot {
|
|
2
|
+
readonly plugin: string;
|
|
3
|
+
readonly rules: readonly string[];
|
|
4
|
+
readonly source: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function collectPluginRuleSnapshots(): PluginRuleSnapshot[];
|
|
7
|
+
export declare function serializePluginRuleSnapshots(snapshots: readonly PluginRuleSnapshot[]): string;
|
|
8
|
+
//# sourceMappingURL=plugin-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-rules.d.ts","sourceRoot":"","sources":["../../../src/tiers/plugin-rules.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAyCD,wBAAgB,0BAA0B,IAAI,kBAAkB,EAAE,CA6EjE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,CAE7F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
export type LintTier = 0 | 1 | 2 | 3 | 4;
|
|
3
|
+
export interface RecommendedConfigOptions {
|
|
4
|
+
isTypeChecked?: boolean;
|
|
5
|
+
tier?: LintTier;
|
|
6
|
+
}
|
|
7
|
+
export declare const DEFAULT_RECOMMENDED_CONFIG_OPTIONS: Required<RecommendedConfigOptions>;
|
|
8
|
+
export declare function resolveRecommendedConfigOptions(options?: RecommendedConfigOptions): Required<RecommendedConfigOptions>;
|
|
9
|
+
export declare function recommendedConfig(options?: RecommendedConfigOptions): Linter.Config[];
|
|
10
|
+
export declare function formatRecommendedConfigCall(options: RecommendedConfigOptions): string;
|
|
11
|
+
export declare function parseRecommendedConfigSource(source: string): {
|
|
12
|
+
configKind: 'custom' | 'preset';
|
|
13
|
+
options: Required<RecommendedConfigOptions>;
|
|
14
|
+
} | undefined;
|
|
15
|
+
export declare function applyRecommendedConfigTypeChecked(source: string, isEnabled: boolean): string;
|
|
16
|
+
//# sourceMappingURL=recommendedConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recommendedConfig.d.ts","sourceRoot":"","sources":["../../../src/tiers/recommendedConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIpC,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAExC,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB;AAED,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CAAC,wBAAwB,CAGjF,CAAA;AAkBD,wBAAgB,+BAA+B,CAC7C,OAAO,CAAC,EAAE,wBAAwB,GACjC,QAAQ,CAAC,wBAAwB,CAAC,CAKpC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,CAGrF;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAGrF;AA4BD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GACb;IAAE,UAAU,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAA;CAAE,GAAG,SAAS,CAQ9F;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,GACjB,MAAM,CAOR"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
import type { LintTier } from '../recommendedConfig.ts';
|
|
3
|
+
import type { ManagedRuleDefinition, RuleCategory } from './types.ts';
|
|
4
|
+
export { MANAGED_RULES, MANAGED_RULES as RULE_CATALOG } from './managed-rules.ts';
|
|
5
|
+
export { buildTypeCheckGateRules, collectTypeCheckedRuleNames, resetTypeCheckedRuleNamesCache, } from './type-checked-rules.ts';
|
|
6
|
+
export type { ManagedRuleDefinition, RuleCategory } from './types.ts';
|
|
7
|
+
export declare function managedRulesForTier(tier: LintTier, isTypeChecked: boolean): ManagedRuleDefinition[];
|
|
8
|
+
export declare function buildManagedRulesMap(tier: LintTier, isTypeChecked: boolean): NonNullable<Linter.Config['rules']>;
|
|
9
|
+
export declare function buildManagedRulesLayer(tier: LintTier, isTypeChecked: boolean): Linter.Config;
|
|
10
|
+
export declare function buildTypeCheckGateLayer(): Linter.Config;
|
|
11
|
+
export declare function findEnabledTypeCheckedRules(rules: Record<string, Linter.RuleEntry | undefined>): string[];
|
|
12
|
+
export declare function categoryForTier(tier: LintTier): RuleCategory;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tiers/rule-catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAMvD,OAAO,KAAK,EACV,qBAAqB,EAErB,YAAY,EACb,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,aAAa,EAAE,aAAa,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAgBrE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,OAAO,GACrB,qBAAqB,EAAE,CAKzB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,OAAO,GACrB,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAarC;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,OAAO,GACrB,MAAM,CAAC,MAAM,CAKf;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,CAKvD;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,GAClD,MAAM,EAAE,CAQV;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAiB5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-rules.d.ts","sourceRoot":"","sources":["../../../../src/tiers/rule-catalog/managed-rules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAkCvD,mEAAmE;AACnE,eAAO,MAAM,aAAa,EAAE,SAAS,qBAAqB,EAwHzD,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
export declare function collectTypeCheckedRuleNames(): ReadonlySet<string>;
|
|
3
|
+
export declare function buildTypeCheckGateRules(): NonNullable<Linter.Config['rules']>;
|
|
4
|
+
export declare function resetTypeCheckedRuleNamesCache(): void;
|
|
5
|
+
//# sourceMappingURL=type-checked-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-checked-rules.d.ts","sourceRoot":"","sources":["../../../../src/tiers/rule-catalog/type-checked-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AA4CpC,wBAAgB,2BAA2B,IAAI,WAAW,CAAC,MAAM,CAAC,CASjE;AAED,wBAAgB,uBAAuB,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAI7E;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
import type { LintTier } from '../recommendedConfig.ts';
|
|
3
|
+
export type RuleCategory = 'correctness' | 'consistency' | 'best-practices' | 'opinionated' | 'experimental';
|
|
4
|
+
export type ManagedRuleSeverity = 'error' | 'off' | 'warn';
|
|
5
|
+
export interface ManagedRuleDefinition {
|
|
6
|
+
readonly category: RuleCategory;
|
|
7
|
+
readonly introducedAtTier: LintTier;
|
|
8
|
+
readonly isTypeCheckingRequired: boolean;
|
|
9
|
+
readonly options?: Linter.RuleEntry;
|
|
10
|
+
readonly plugin: string;
|
|
11
|
+
readonly rule: string;
|
|
12
|
+
readonly severityAtTier: Partial<Record<LintTier, ManagedRuleSeverity>>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/tiers/rule-catalog/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD,MAAM,MAAM,YAAY,GAClB,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,aAAa,GACb,cAAc,CAAA;AAEpB,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;AAE1D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAA;IACnC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAA;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAA;CACxE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
import type { LintTier } from './recommendedConfig.ts';
|
|
3
|
+
/** ESLint only treats `ignores` as global when no other keys are present on the config object. */
|
|
4
|
+
export declare const globalIgnoresConfig: Linter.Config;
|
|
5
|
+
export declare function buildTierConfig(tier: LintTier, isTypeChecked: boolean): Linter.Config[];
|
|
6
|
+
//# sourceMappingURL=tier-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier-builder.d.ts","sourceRoot":"","sources":["../../../src/tiers/tier-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAwBpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAiFtD,kGAAkG;AAClG,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAoB,CAAA;AAE7D,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CASvF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
export declare const typescriptDelegationConfig: Linter.Config;
|
|
3
|
+
export declare const typescriptCorrectnessConfig: Linter.Config[];
|
|
4
|
+
export declare const typescriptConsistencyConfig: Linter.Config[];
|
|
5
|
+
export declare const typescriptTypeCheckedCorrectnessConfig: Linter.Config[];
|
|
6
|
+
export declare const typescriptTypeCheckedConsistencyConfig: Linter.Config[];
|
|
7
|
+
export declare const typescriptConfig: Linter.Config[];
|
|
8
|
+
export declare const typescriptTypeCheckedConfig: Linter.Config[];
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/typescript/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AA0K5C,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAU/C,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAGtD,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAGtD,CAAA;AAED,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAQjE,CAAA;AAED,eAAO,MAAM,sCAAsC,EAAE,MAAM,CAAC,MAAM,EAGjE,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAI3C,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAItD,CAAA"}
|