{"version":3,"file":"index.cjs","names":["javascriptConfig","typescriptConfig","mergeWithDefaults","testConfig","unocssConfig","vueConfig","stylisticConfig","formatterConfig","applyUniappVueConfig","strictTypescriptConfig","plugin","baseRulesPreset","dtsRulesPreset","typescriptRulesPreset"],"sources":["../src/index.ts"],"sourcesContent":["import type {OptionsTypeScriptParserOptions} from '@antfu/eslint-config'\nimport type {Linter} from 'eslint'\nimport type {AntFuStrictTsConfig, AntFuTsConfig, AntFuVueConfig, ConfigOptions} from './types'\nimport {antfu} from '@antfu/eslint-config'\nimport {applyUniappVueConfig, formatterConfig, javascriptConfig, strictTypescriptConfig, stylisticConfig, testConfig, typescriptConfig, unocssConfig, vueConfig} from './configs'\nimport {plugin} from './plugin'\nimport {baseRulesPreset, dtsRulesPreset, typescriptRulesPreset} from './presets'\nimport {mergeWithDefaults} from './utils'\n\nconst defaultIgnores = [\n  '**/dist/**',\n  '**/node_modules/**',\n\n  '**/.agent/**',\n  '**/.claude/**',\n  '**/.factory/**',\n  '**/.qoder/**',\n  '**/.trae/**',\n  '**/.kiro/**',\n  'AGENTS.md',\n  'README.md',\n  'GEMINI.md',\n  'CLAUDE.md',\n  'WARP.md'\n]\n\nexport {\n  plugin\n} from './plugin'\nexport * from './rules'\nexport type {\n  ConfigOptions\n} from './types'\n\n/**\n * 创建 ESLint 配置\n *\n * @param options - 配置选项\n * @returns ESLint 配置数组\n */\nexport async function defineConfig(options: ConfigOptions = {}): Promise<Awaited<ReturnType<typeof antfu>>> {\n  const {\n    type = 'lib',\n    ignores = [],\n    test = true,\n    nextjs = false,\n    react = false,\n    unocss = false,\n    vue = false,\n    uniapp = false,\n    jsx = false,\n    pnpm = false,\n    stylistic = true,\n    javascript = javascriptConfig,\n    typescript = typescriptConfig,\n    formatters = false,\n    ...restOptions\n  } = options\n\n  const resolvedIgnores = typeof ignores === 'function'\n    ? (originals: string[]) => [...new Set([...defaultIgnores, ...ignores(originals)])]\n    : [...new Set([...defaultIgnores, ...ignores])]\n  const _test = mergeWithDefaults(test, testConfig)\n  const _unocss = mergeWithDefaults(unocss, unocssConfig)\n  let _vue = mergeWithDefaults(vue, vueConfig) as boolean | AntFuVueConfig\n  const _javascript = mergeWithDefaults(javascript, javascriptConfig)\n  const _stylistic = mergeWithDefaults(stylistic, stylisticConfig)\n  const _formatters = mergeWithDefaults(formatters, formatterConfig)\n\n  if (uniapp) {\n    const resolvedVue = _vue === false || _vue === true ? vueConfig : _vue\n    _vue = applyUniappVueConfig(resolvedVue)\n  }\n\n  let _typescript = typescript\n  const _pnpm = type === 'app' ? false : pnpm\n\n  if (isStrictTsConfig(_typescript)) {\n    const merged = mergeWithDefaults(_typescript as AntFuTsConfig, strictTypescriptConfig)\n    if (typeof merged === 'object' && 'tsconfigPath' in merged) {\n      const opts = merged as OptionsTypeScriptParserOptions\n      if (opts.parserOptions?.projectService === void 0) {\n        opts.parserOptions = {\n          ...opts.parserOptions,\n          projectService: true\n        }\n      }\n    }\n    _typescript = merged\n  }\n\n  return antfu(\n    {\n      ...restOptions,\n      markdown: true,\n      type,\n      ignores: resolvedIgnores,\n      pnpm: _pnpm,\n      test: _test,\n      unocss: _unocss,\n      vue: _vue,\n      nextjs,\n      react,\n      jsx,\n      typescript: _typescript,\n      javascript: _javascript,\n      stylistic: _stylistic,\n      formatters: _formatters\n    },\n    {name: '@truenine/eslint-plugin', plugins: {'@truenine': plugin}, rules: baseRulesPreset} as Linter.Config,\n    {name: '@truenine/dts-rules', files: ['**/*.d.ts'], rules: dtsRulesPreset} as Linter.Config,\n    {name: '@truenine/typescript-rules', files: ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'], ignores: ['**/*.md/**'], rules: typescriptRulesPreset} as Linter.Config\n  )\n}\n\nfunction isStrictTsConfig(config: unknown): config is AntFuStrictTsConfig {\n  return config !== null && typeof config === 'object' && 'strictTypescriptEslint' in config && (config as AntFuStrictTsConfig).strictTypescriptEslint\n}\n\nexport default defineConfig\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,iBAAiB;CACrB;CACA;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;;;;AAgBD,eAAsB,aAAa,UAAyB,EAAE,EAA8C;CAC1G,MAAM,EACJ,OAAO,OACP,UAAU,EAAE,EACZ,OAAO,MACP,SAAS,OACT,QAAQ,OACR,SAAS,OACT,MAAM,OACN,SAAS,OACT,MAAM,OACN,OAAO,OACP,YAAY,MACZ,aAAaA,6CACb,aAAaC,6CACb,aAAa,OACb,GAAG,gBACD;CAEJ,MAAM,kBAAkB,OAAO,YAAY,cACtC,cAAwB,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,gBAAgB,GAAG,QAAQ,UAAU,CAAC,CAAC,CAAC,GACjF,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,gBAAgB,GAAG,QAAQ,CAAC,CAAC;CACjD,MAAM,QAAQC,sCAAkB,MAAMC,gCAAW;CACjD,MAAM,UAAUD,sCAAkB,QAAQE,kCAAa;CACvD,IAAI,OAAOF,sCAAkB,KAAKG,8BAAU;CAC5C,MAAM,cAAcH,sCAAkB,YAAYF,4CAAiB;CACnE,MAAM,aAAaE,sCAAkB,WAAWI,0CAAgB;CAChE,MAAM,cAAcJ,sCAAkB,YAAYK,0CAAgB;AAElE,KAAI,OAEF,QAAOC,yCADa,SAAS,SAAS,SAAS,OAAOH,gCAAY,KAC1B;CAG1C,IAAI,cAAc;CAClB,MAAM,QAAQ,SAAS,QAAQ,QAAQ;AAEvC,KAAI,iBAAiB,YAAY,EAAE;EACjC,MAAM,SAASH,sCAAkB,aAA8BO,kDAAuB;AACtF,MAAI,OAAO,WAAW,YAAY,kBAAkB,QAAQ;GAC1D,MAAM,OAAO;AACb,OAAI,KAAK,eAAe,mBAAmB,KAAK,EAC9C,MAAK,gBAAgB;IACnB,GAAG,KAAK;IACR,gBAAgB;IACjB;;AAGL,gBAAc;;AAGhB,wCACE;EACE,GAAG;EACH,UAAU;EACV;EACA,SAAS;EACT,MAAM;EACN,MAAM;EACN,QAAQ;EACR,KAAK;EACL;EACA;EACA;EACA,YAAY;EACZ,YAAY;EACZ,WAAW;EACX,YAAY;EACb,EACD;EAAC,MAAM;EAA2B,SAAS,EAAC,aAAaC,wBAAO;EAAE,OAAOC;EAAgB,EACzF;EAAC,MAAM;EAAuB,OAAO,CAAC,YAAY;EAAE,OAAOC;EAAe,EAC1E;EAAC,MAAM;EAA8B,OAAO;GAAC;GAAW;GAAY;GAAY;GAAW;EAAE,SAAS,CAAC,aAAa;EAAE,OAAOC;EAAsB,CACpJ;;AAGH,SAAS,iBAAiB,QAAgD;AACxE,QAAO,WAAW,QAAQ,OAAO,WAAW,YAAY,4BAA4B,UAAW,OAA+B"}