{"version":3,"file":"index.mjs","names":["rulesPerfectionist","rulesStylistic","config","rulesPerfectionist","config","rulesPerfectionist","rulesReact","config","rulesReact","eslintDefineConfig","configBase","configReact","configTestFiles","configConfigFiles"],"sources":["../src/config-base/eslint.ts","../src/config-config-files/eslint.ts","../src/config-react/eslint.ts","../src/config-test-files/eslint.ts","../src/define-config/index.ts"],"sourcesContent":["import type { LinterConfigEntry } from '../types/eslint.d.ts';\nimport pluginStylistic from '@stylistic/eslint-plugin';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\nimport rulesPerfectionist from './rules-perfectionist.ts';\nimport rulesStylistic from './rules-stylistic.ts';\n\n/**\n * Primary config entry.\n *\n * This config is intentionally limited to rules not supported by Oxlint\n * and stylistic rules outside of Prettier’s scope.\n */\nconst config: LinterConfigEntry = {\n\tname: 'Base Config',\n\tplugins: {\n\t\t'@stylistic': pluginStylistic,\n\t\t'perfectionist': pluginPerfectionist,\n\t},\n\tlinterOptions: {\n\t\treportUnusedDisableDirectives: 'error',\n\t\treportUnusedInlineConfigs: 'error',\n\t},\n\trules: {\n\t\t...rulesPerfectionist,\n\t\t...rulesStylistic,\n\t},\n};\n\n/* oxlint-disable-next-line typescript/consistent-type-imports */\nlet tseslint: typeof import('typescript-eslint') | undefined;\n\ntry {\n\ttseslint = await import('typescript-eslint');\n} catch {}\n\nif (tseslint && Object.hasOwn(tseslint, 'parser')) {\n\tconfig.languageOptions = {\n\t\tparser: tseslint.parser,\n\t\tparserOptions: {\n\t\t\tprojectService: true,\n\t\t\twarnOnUnsupportedTypeScriptVersion: false,\n\t\t},\n\t};\n}\n\nexport default config;\n","import type { LinterConfigEntry } from '../types/eslint.d.ts';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\nimport rulesPerfectionist from './rules-perfectionist.ts';\n\n/**\n * Optional config entry containing rules that target config files. Intended for\n * explicit overrides.\n *\n * This config is intentionally limited to rules not supported by Oxlint\n * and stylistic rules outside of Prettier’s scope.\n */\nconst config: LinterConfigEntry = {\n\tname: 'Config Files',\n\tplugins: {\n\t\tperfectionist: pluginPerfectionist,\n\t},\n\trules: {\n\t\t...rulesPerfectionist,\n\t},\n};\n\nexport default config;\n","import type { LinterConfigEntry } from '../types/eslint.d.ts';\nimport pluginReact from '@eslint-react/eslint-plugin';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\nimport rulesPerfectionist from './rules-perfectionist.ts';\nimport rulesReact from './rules-react.ts';\n\n/**\n * Optional config entry containing rules that target `*.tsx` files. Intended\n * for explicit overrides.\n *\n * This config is intentionally limited to rules not supported by Oxlint\n * and stylistic rules outside of Prettier’s scope.\n */\nconst config: LinterConfigEntry = {\n\tname: 'React',\n\tplugins: {\n\t\t'perfectionist': pluginPerfectionist,\n\t\t'react-x': pluginReact,\n\t},\n\tsettings: {\n\t\t'react-x': {\n\t\t\tversion: 'detect',\n\t\t},\n\t},\n\trules: {\n\t\t...rulesPerfectionist,\n\t\t...rulesReact,\n\t},\n};\n\nexport default config;\n","import type { LinterConfigEntry } from '../types/eslint.d.ts';\nimport pluginReact from '@eslint-react/eslint-plugin';\nimport rulesReact from './rules-react.ts';\n\n/**\n * Optional config entry containing rules that target test files. Intended for\n * explicit overrides.\n *\n * This config is intentionally limited to rules not supported by Oxlint\n * and stylistic rules outside of Prettier’s scope.\n */\nconst config: LinterConfigEntry = {\n\tname: 'Test Files',\n\tplugins: {\n\t\t'react-x': pluginReact,\n\t},\n\trules: {\n\t\t...rulesReact,\n\t},\n};\n\nexport default config;\n","import type { Config } from 'eslint/config';\nimport type { StandardConfigArray } from '../types/eslint.d.ts';\nimport { defineConfig as eslintDefineConfig } from 'eslint/config';\nimport configBase from '../config-base/eslint.ts';\nimport configConfigFiles from '../config-config-files/eslint.ts';\nimport configReact from '../config-react/eslint.ts';\nimport configTestFiles from '../config-test-files/eslint.ts';\n\n/**\n * Combine Standard Config with optional additional config.\n */\nexport default function defineConfig(\n\t...configs: StandardConfigArray\n): Config[] {\n\tconst { extensionConfigs, includeReactConfig } =\n\t\tnormalizeExtensionConfigs(configs);\n\n\treturn eslintDefineConfig([\n\t\t{\n\t\t\tname: 'Standard Config',\n\t\t\textends: [\n\t\t\t\t{\n\t\t\t\t\tfiles: [\n\t\t\t\t\t\t/* prettier-ignore */\n\t\t\t\t\t\t'**/*.{ts,tsx,cts,mts}',\n\t\t\t\t\t],\n\t\t\t\t\t...configBase,\n\t\t\t\t},\n\t\t\t\tincludeReactConfig\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tfiles: [\n\t\t\t\t\t\t\t\t/* prettier-ignore */\n\t\t\t\t\t\t\t\t'**/*.tsx',\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t...configReact,\n\t\t\t\t\t\t}\n\t\t\t\t\t: [],\n\t\t\t\t{\n\t\t\t\t\tfiles: [\n\t\t\t\t\t\t/* prettier-ignore */\n\t\t\t\t\t\t'**/*.test.{ts,tsx,cts,mts}',\n\t\t\t\t\t\t'**/*.test-d.{ts,cts,mts}',\n\t\t\t\t\t],\n\t\t\t\t\t...configTestFiles,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tfiles: [\n\t\t\t\t\t\t/* prettier-ignore */\n\t\t\t\t\t\t'**/*.config.{ts,cts,mts}',\n\t\t\t\t\t],\n\t\t\t\t\t...configConfigFiles,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\textensionConfigs.length > 0\n\t\t\t? {\n\t\t\t\t\tname: 'Standard Config Extensions',\n\t\t\t\t\tfiles: [\n\t\t\t\t\t\t/* prettier-ignore */\n\t\t\t\t\t\t'**/*.{ts,tsx,cts,mts}',\n\t\t\t\t\t],\n\t\t\t\t\textends: extensionConfigs,\n\t\t\t\t}\n\t\t\t: [],\n\t]);\n}\n\nfunction normalizeExtensionConfigs(configs: StandardConfigArray): {\n\textensionConfigs: Array<Config | Config[]>;\n\tincludeReactConfig: boolean;\n} {\n\tconst extensionConfigs: Array<Config | Config[]> = [];\n\tlet includeReactConfig = false;\n\n\tfor (const config of configs.flat()) {\n\t\tconst { react, ...otherConfig } = config;\n\n\t\tif (Object.keys(otherConfig).length > 0) {\n\t\t\textensionConfigs.push(eslintDefineConfig(otherConfig));\n\t\t}\n\n\t\tif (react !== undefined) {\n\t\t\tincludeReactConfig = react;\n\t\t}\n\t}\n\n\treturn {\n\t\textensionConfigs,\n\t\tincludeReactConfig,\n\t};\n}\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,SAA4B;CACjC,MAAM;CACN,SAAS;EACR,cAAc;EACd,iBAAiB;CAClB;CACA,eAAe;EACd,+BAA+B;EAC/B,2BAA2B;CAC5B;CACA,OAAO;EACN,GAAGA;EACH,GAAGC;CACJ;AACD;AAGA,IAAI;AAEJ,IAAI;CACH,WAAW,MAAM,OAAO;AACzB,QAAQ,CAAC;AAET,IAAI,YAAY,OAAO,OAAO,UAAU,QAAQ,GAC/C,OAAO,kBAAkB;CACxB,QAAQ,SAAS;CACjB,eAAe;EACd,gBAAgB;EAChB,oCAAoC;CACrC;AACD;;;;;;;;;;AC/BD,MAAMC,WAA4B;CACjC,MAAM;CACN,SAAS,EACR,eAAe,oBAChB;CACA,OAAO,EACN,GAAGC,QACJ;AACD;;;;;;;;;;ACNA,MAAMC,WAA4B;CACjC,MAAM;CACN,SAAS;EACR,iBAAiB;EACjB,WAAW;CACZ;CACA,UAAU,EACT,WAAW,EACV,SAAS,SACV,EACD;CACA,OAAO;EACN,GAAGC;EACH,GAAGC;CACJ;AACD;;;;;;;;;;ACjBA,MAAMC,WAA4B;CACjC,MAAM;CACN,SAAS,EACR,WAAW,YACZ;CACA,OAAO,EACN,GAAGC,QACJ;AACD;;;;;;ACRA,SAAwB,aACvB,GAAG,SACQ;CACX,MAAM,EAAE,kBAAkB,uBACzB,0BAA0B,OAAO;CAElC,OAAOC,eAAmB,CACzB;EACC,MAAM;EACN,SAAS;GACR;IACC,OAAO,CAEN,uBACD;IACA,GAAGC;GACJ;GACA,qBACG;IACA,OAAO,CAEN,UACD;IACA,GAAGC;GACJ,IACC,CAAC;GACJ;IACC,OAAO,CAEN,8BACA,0BACD;IACA,GAAGC;GACJ;GACA;IACC,OAAO,CAEN,0BACD;IACA,GAAGC;GACJ;EACD;CACD,GACA,iBAAiB,SAAS,IACvB;EACA,MAAM;EACN,OAAO,CAEN,uBACD;EACA,SAAS;CACV,IACC,CAAC,CACL,CAAC;AACF;AAEA,SAAS,0BAA0B,SAGjC;CACD,MAAM,mBAA6C,CAAC;CACpD,IAAI,qBAAqB;CAEzB,KAAK,MAAM,UAAU,QAAQ,KAAK,GAAG;EACpC,MAAM,EAAE,OAAO,GAAG,gBAAgB;EAElC,IAAI,OAAO,KAAK,WAAW,EAAE,SAAS,GACrC,iBAAiB,KAAKJ,eAAmB,WAAW,CAAC;EAGtD,IAAI,UAAU,KAAA,GACb,qBAAqB;CAEvB;CAEA,OAAO;EACN;EACA;CACD;AACD"}