@zayne-labs/eslint-config 0.9.11 → 0.9.13

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/dist/cli/index.js CHANGED
@@ -10,7 +10,7 @@ import parse from "parse-gitignore";
10
10
  import { execSync } from "node:child_process";
11
11
 
12
12
  //#region package.json
13
- var version = "0.9.11";
13
+ var version = "0.9.13";
14
14
 
15
15
  //#endregion
16
16
  //#region src/cli/constants.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["frameworkOptions: Array<PromItem<FrameworkOption>>","frameworks: FrameworkOption[]","extraOptions: Array<PromItem<ExtraLibrariesOption>>","extra: ExtraLibrariesOption[]","eslintIgnores: string[]","configLines: string[]","additionalConfig: string[]","eslintConfigContent: string","addedPackages: string[]","dotVscodePath: string","settingsPath: string","result: PromptResult"],"sources":["../../package.json","../../src/cli/constants.ts","../../src/cli/utils.ts","../../src/cli/stages/update-eslint-files.ts","../../src/cli/constants-generated.ts","../../src/cli/stages/update-package-json.ts","../../src/cli/stages/update-vscode-settings.ts","../../src/cli/run.ts","../../src/cli/index.ts"],"sourcesContent":["{\n\t\"name\": \"@zayne-labs/eslint-config\",\n\t\"type\": \"module\",\n\t\"version\": \"0.9.11\",\n\t\"description\": \"Zayne Labs' ESLint config preset\",\n\t\"author\": \"Ryan Zayne\",\n\t\"license\": \"MIT\",\n\t\"homepage\": \"https://github.com/zayne-labs/config#readme\",\n\t\"repository\": {\n\t\t\"type\": \"git\",\n\t\t\"url\": \"git+https://github.com/zayne-labs/config.git\"\n\t},\n\t\"bugs\": {\n\t\t\"url\": \"https://github.com/zayne-labs/config/issues\"\n\t},\n\t\"keywords\": [],\n\t\"sideEffects\": false,\n\t\"exports\": {\n\t\t\".\": \"./dist/index.js\"\n\t},\n\t\"bin\": \"./bin/index.js\",\n\t\"files\": [\n\t\t\"bin\",\n\t\t\"dist\"\n\t],\n\t\"engines\": {\n\t\t\"node\": \">=18.x\"\n\t},\n\t\"scripts\": {\n\t\t\"build\": \"pnpm typegen && tsdown\",\n\t\t\"build:dev\": \"pnpm typegen && cross-env NODE_ENV=development tsdown\",\n\t\t\"lint:attw\": \"attw --pack . --ignore-rules=cjs-resolves-to-esm\",\n\t\t\"lint:eslint\": \"eslint . --max-warnings 0\",\n\t\t\"lint:format\": \"prettier --cache --write .\",\n\t\t\"lint:packages\": \"pnpm dedupe --check\",\n\t\t\"lint:publint\": \"publint --strict .\",\n\t\t\"lint:type-check\": \"pnpm typegen && tsc --pretty -p tsconfig.json\",\n\t\t\"release\": \"pnpm publish --no-git-checks\",\n\t\t\"release:test\": \"pnpx pkg-pr-new publish\",\n\t\t\"typegen\": \"tsx scripts/typegen.ts\",\n\t\t\"version-package\": \"changeset version\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"@eslint-react/eslint-plugin\": \">=1.15.0\",\n\t\t\"@next/eslint-plugin-next\": \">=14.2.15\",\n\t\t\"@tanstack/eslint-plugin-query\": \">=5.59.7\",\n\t\t\"@tanstack/eslint-plugin-router\": \">=1.120.17\",\n\t\t\"astro-eslint-parser\": \">=1.0.2\",\n\t\t\"eslint\": \">=9.12.0\",\n\t\t\"eslint-config-expo\": \">=9.2.0\",\n\t\t\"eslint-plugin-astro\": \">=1.2.0\",\n\t\t\"eslint-plugin-better-tailwindcss\": \">=3.2.0\",\n\t\t\"eslint-plugin-depend\": \">=1.2.0\",\n\t\t\"eslint-plugin-pnpm\": \">=0.3.1\",\n\t\t\"eslint-plugin-react-hooks\": \">=5.0.0\",\n\t\t\"eslint-plugin-react-refresh\": \">=0.4.12\",\n\t\t\"eslint-plugin-solid\": \">=0.14.3\",\n\t\t\"eslint-plugin-svelte\": \">=2.35.1\",\n\t\t\"eslint-plugin-vue\": \">=9.28.0\",\n\t\t\"eslint-processor-vue-blocks\": \">=0.1.2\",\n\t\t\"vue-eslint-parser\": \">=9.4.3\"\n\t},\n\t\"peerDependenciesMeta\": {\n\t\t\"@eslint-react/eslint-plugin\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"@next/eslint-plugin-next\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"@tanstack/eslint-plugin-query\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"@tanstack/eslint-plugin-router\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"astro-eslint-parser\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-config-expo\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-astro\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-better-tailwindcss\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-depend\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-pnpm\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-react-hooks\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-react-refresh\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-solid\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-svelte\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-vue\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-processor-vue-blocks\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"vue-eslint-parser\": {\n\t\t\t\"optional\": true\n\t\t}\n\t},\n\t\"dependencies\": {\n\t\t\"@antfu/install-pkg\": \"1.1.0\",\n\t\t\"@clack/prompts\": \"0.11.0\",\n\t\t\"@eslint-community/eslint-plugin-eslint-comments\": \"4.5.0\",\n\t\t\"@eslint/compat\": \"1.3.2\",\n\t\t\"@eslint/js\": \"9.34.0\",\n\t\t\"@stylistic/eslint-plugin\": \"5.2.3\",\n\t\t\"@zayne-labs/toolkit-type-helpers\": \"0.10.9\",\n\t\t\"ansis\": \"4.1.0\",\n\t\t\"cac\": \"6.7.14\",\n\t\t\"eslint-config-flat-gitignore\": \"2.1.0\",\n\t\t\"eslint-flat-config-utils\": \"2.1.1\",\n\t\t\"eslint-import-resolver-typescript\": \"4.4.4\",\n\t\t\"eslint-merge-processors\": \"^2.0.0\",\n\t\t\"eslint-plugin-import-x\": \"4.16.1\",\n\t\t\"eslint-plugin-jsdoc\": \"54.1.1\",\n\t\t\"eslint-plugin-jsonc\": \"2.20.1\",\n\t\t\"eslint-plugin-n\": \"17.21.3\",\n\t\t\"eslint-plugin-perfectionist\": \"4.15.0\",\n\t\t\"eslint-plugin-security\": \"3.0.1\",\n\t\t\"eslint-plugin-toml\": \"^0.12.0\",\n\t\t\"eslint-plugin-unicorn\": \"60.0.0\",\n\t\t\"eslint-plugin-yml\": \"^1.17.0\",\n\t\t\"globals\": \"16.3.0\",\n\t\t\"jsonc-eslint-parser\": \"2.4.0\",\n\t\t\"local-pkg\": \"1.1.2\",\n\t\t\"parse-gitignore\": \"2.0.0\",\n\t\t\"toml-eslint-parser\": \"0.10.0\",\n\t\t\"typescript-eslint\": \"8.41.0\",\n\t\t\"yaml-eslint-parser\": \"1.3.0\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@arethetypeswrong/cli\": \"0.18.2\",\n\t\t\"@changesets/cli\": \"2.29.6\",\n\t\t\"@eslint-react/eslint-plugin\": \"1.52.7\",\n\t\t\"@next/eslint-plugin-next\": \"15.5.2\",\n\t\t\"@tanstack/eslint-plugin-query\": \"5.83.1\",\n\t\t\"@tanstack/eslint-plugin-router\": \"1.131.2\",\n\t\t\"@total-typescript/ts-reset\": \"0.6.1\",\n\t\t\"@types/eslint-plugin-security\": \"3.0.0\",\n\t\t\"@types/node\": \"24.3.0\",\n\t\t\"@zayne-labs/tsconfig\": \"workspace:*\",\n\t\t\"astro-eslint-parser\": \"1.2.2\",\n\t\t\"concurrently\": \"9.2.1\",\n\t\t\"cross-env\": \"10.0.0\",\n\t\t\"eslint\": \"9.34.0\",\n\t\t\"eslint-config-expo\": \"^9.2.0\",\n\t\t\"eslint-plugin-astro\": \"1.3.1\",\n\t\t\"eslint-plugin-better-tailwindcss\": \"3.7.6\",\n\t\t\"eslint-plugin-depend\": \"1.2.0\",\n\t\t\"eslint-plugin-pnpm\": \"1.1.1\",\n\t\t\"eslint-plugin-react-hooks\": \"5.2.0\",\n\t\t\"eslint-plugin-react-refresh\": \"0.4.20\",\n\t\t\"eslint-plugin-solid\": \"0.14.5\",\n\t\t\"eslint-plugin-svelte\": \"3.11.0\",\n\t\t\"eslint-plugin-vue\": \"10.4.0\",\n\t\t\"eslint-processor-vue-blocks\": \"2.0.0\",\n\t\t\"eslint-typegen\": \"2.3.0\",\n\t\t\"husky\": \"9.1.7\",\n\t\t\"lint-staged\": \"16.1.5\",\n\t\t\"pkg-pr-new\": \"0.0.58\",\n\t\t\"prettier\": \"3.6.2\",\n\t\t\"publint\": \"0.3.12\",\n\t\t\"tailwindcss\": \"^4.1.12\",\n\t\t\"tsdown\": \"^0.14.2\",\n\t\t\"tsx\": \"4.20.5\",\n\t\t\"typescript\": \"5.9.2\",\n\t\t\"vue-eslint-parser\": \"10.2.0\"\n\t},\n\t\"publishConfig\": {\n\t\t\"access\": \"public\",\n\t\t\"registry\": \"https://registry.npmjs.org/\",\n\t\t\"provenance\": true\n\t}\n}\n","import { defineEnumDeep } from \"@zayne-labs/toolkit-type-helpers\";\nimport c from \"ansis\";\nimport type { ExtraLibrariesOption, FrameworkOption, PromItem } from \"./types\";\n\nexport const vscodeSettingsString = `\n // Auto fix\n // \"editor.codeActionsOnSave\": {\n // \"source.fixAll.eslint\": \"explicit\",\n // },\n\n // Enable eslint for all supported languages\n \"eslint.validate\": [\n \"javascript\",\n \"javascriptreact\",\n \"typescript\",\n \"typescriptreact\",\n \"vue\",\n \"html\",\n \"markdown\",\n \"json\",\n \"json5\",\n \"jsonc\",\n \"yaml\",\n \"toml\",\n \"xml\",\n \"gql\",\n \"graphql\",\n \"astro\",\n \"svelte\",\n \"css\",\n \"less\",\n \"scss\",\n \"postcss\"\n ]\n`;\n\nexport const frameworkOptions: Array<PromItem<FrameworkOption>> = [\n\t{\n\t\tlabel: c.green(\"Vue\"),\n\t\tvalue: \"vue\",\n\t},\n\t{\n\t\tlabel: c.cyan(\"React\"),\n\t\tvalue: \"react\",\n\t},\n\t{\n\t\tlabel: c.red(\"Svelte\"),\n\t\tvalue: \"svelte\",\n\t},\n\t{\n\t\tlabel: c.magenta(\"Astro\"),\n\t\tvalue: \"astro\",\n\t},\n\t{\n\t\tlabel: c.cyan(\"Solid\"),\n\t\tvalue: \"solid\",\n\t},\n];\n\nexport const frameworks: FrameworkOption[] = frameworkOptions.map(({ value }) => value);\n\nexport const extraOptions: Array<PromItem<ExtraLibrariesOption>> = [\n\t{\n\t\tlabel: c.cyan(\"TailwindCSS\"),\n\t\tvalue: \"tailwindcss\",\n\t},\n];\n\nexport const extra: ExtraLibrariesOption[] = extraOptions.map(({ value }) => value);\n\nexport const dependenciesMap = defineEnumDeep({\n\tastro: [\"eslint-plugin-astro\", \"astro-eslint-parser\"],\n\treact: [\"@eslint-react/eslint-plugin\", \"eslint-plugin-react-hooks\", \"eslint-plugin-react-refresh\"],\n\tsolid: [\"eslint-plugin-solid\"],\n\tsvelte: [\"eslint-plugin-svelte\", \"svelte-eslint-parser\"],\n\tvue: [\"eslint-plugin-vue\", \"eslint-processor-vue-blocks\", \"vue-eslint-parser\"],\n});\n","import { execSync } from \"node:child_process\";\n\nexport function isGitClean(): boolean {\n\ttry {\n\t\texecSync(\"git diff-index --quiet HEAD --\");\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function getEslintConfigContent(mainConfig: string, additionalConfigs?: string[]): string {\n\tconst additionalConfigsStr = additionalConfigs?.map((config) => `,{\\n${config}\\n}`);\n\n\treturn `\nimport { zayne } from '@zayne-labs/eslint-config'\n\nexport default zayne({\n${mainConfig}\n}${additionalConfigsStr})\n`.trimStart();\n}\n","/* eslint-disable max-depth -- Allow */\nimport fs from \"node:fs\";\nimport fsp from \"node:fs/promises\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport c from \"ansis\";\n// @ts-expect-error missing types\nimport parse from \"parse-gitignore\";\nimport type { PromptResult } from \"../types\";\nimport { getEslintConfigContent } from \"../utils\";\n\nexport async function updateEslintFiles(result: PromptResult): Promise<void> {\n\tconst cwd = process.cwd();\n\tconst pathESLintIgnore = path.join(cwd, \".eslintignore\");\n\tconst pathPackageJSON = path.join(cwd, \"package.json\");\n\n\tconst pkgContent = await fsp.readFile(pathPackageJSON, \"utf8\");\n\tconst pkg = JSON.parse(pkgContent) as Record<string, unknown>;\n\n\tconst configFileName = pkg.type === \"module\" ? \"eslint.config.js\" : \"eslint.config.mjs\";\n\tconst pathFlatConfig = path.join(cwd, configFileName);\n\n\tconst eslintIgnores: string[] = [];\n\n\tif (fs.existsSync(pathESLintIgnore)) {\n\t\tp.log.step(c.cyan`Migrating existing .eslintignore`);\n\t\tconst content = await fsp.readFile(pathESLintIgnore, \"utf8\");\n\t\tconst parsed = parse(content);\n\t\tconst globs = parsed.globs();\n\n\t\tfor (const glob of globs) {\n\t\t\tif (glob.type === \"ignore\") {\n\t\t\t\teslintIgnores.push(...(glob.patterns as string[]));\n\t\t\t}\n\n\t\t\tif (glob.type === \"unignore\") {\n\t\t\t\teslintIgnores.push(...(glob.patterns.map((pattern: string) => `!${pattern}`) as string[]));\n\t\t\t}\n\t\t}\n\t}\n\n\tconst configLines: string[] = [];\n\n\tif (eslintIgnores.length > 0) {\n\t\tconfigLines.push(`ignores: ${JSON.stringify(eslintIgnores)},`);\n\t}\n\n\tfor (const framework of result.frameworks) {\n\t\tconfigLines.push(`${framework}: true,`);\n\t}\n\n\tconst mainConfig = configLines.map((line) => ` ${line}`).join(\"\\n\");\n\n\tconst additionalConfig: string[] = [];\n\n\tconst eslintConfigContent: string = getEslintConfigContent(mainConfig, additionalConfig);\n\n\tawait fsp.writeFile(pathFlatConfig, eslintConfigContent);\n\n\tp.log.success(c.green`Created ${configFileName}`);\n}\n","export const versionsMap = {\n\t\"@eslint-react/eslint-plugin\": \"^1.38.4\",\n\t\"astro-eslint-parser\": \"^1.2.2\",\n\teslint: \"^9.24.0\",\n\t\"eslint-plugin-astro\": \"^1.3.1\",\n\t\"eslint-plugin-react-hooks\": \"^5.2.0\",\n\t\"eslint-plugin-react-refresh\": \"^0.4.19\",\n\t\"eslint-plugin-solid\": \"^0.14.5\",\n\t\"eslint-plugin-svelte\": \"^3.3.3\",\n\t\"svelte-eslint-parser\": \"^1.1.0\",\n};\n","import fsp from \"node:fs/promises\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport c from \"ansis\";\nimport { version } from \"../../../package.json\";\nimport { dependenciesMap } from \"../constants\";\nimport { versionsMap } from \"../constants-generated\";\nimport type { PromptResult } from \"../types\";\n\nexport async function updatePackageJson(result: PromptResult): Promise<void> {\n\tconst cwd = process.cwd();\n\n\tconst pathPackageJSON = path.join(cwd, \"package.json\");\n\n\tp.log.step(c.cyan`Bumping @zayne-labs/eslint-config to v${version}`);\n\n\tconst pkgContent = await fsp.readFile(pathPackageJSON, \"utf8\");\n\tconst pkg = JSON.parse(pkgContent) as Record<string, Record<string, string | undefined> | undefined>;\n\n\tpkg.devDependencies ??= {};\n\tpkg.devDependencies[\"@zayne-labs/eslint-config\"] = `^${version}`;\n\tpkg.devDependencies.eslint ??= versionsMap.eslint;\n\n\tconst addedPackages: string[] = [];\n\n\tfor (const framework of result.frameworks) {\n\t\tconst dependencies = dependenciesMap[framework];\n\n\t\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition -- Allow\n\t\tif (!dependencies) continue;\n\n\t\tdependencies.forEach((dependency) => {\n\t\t\tif (!pkg.devDependencies) return;\n\n\t\t\tpkg.devDependencies[dependency] = versionsMap[dependency as keyof typeof versionsMap];\n\t\t\taddedPackages.push(dependency);\n\t\t});\n\t}\n\n\tif (addedPackages.length > 0) {\n\t\tp.note(c.dim(addedPackages.join(\", \")), \"Added packages\");\n\t}\n\n\tawait fsp.writeFile(pathPackageJSON, JSON.stringify(pkg, null, 2));\n\n\tp.log.success(c.green`Changes wrote to package.json`);\n}\n","import fs from \"node:fs\";\nimport fsp from \"node:fs/promises\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport { green } from \"ansis\";\nimport { vscodeSettingsString } from \"../constants\";\nimport type { PromptResult } from \"../types\";\n\nexport async function updateVscodeSettings(result: PromptResult): Promise<void> {\n\tconst cwd = process.cwd();\n\n\tif (!result.updateVscodeSettings) return;\n\n\tconst dotVscodePath: string = path.join(cwd, \".vscode\");\n\tconst settingsPath: string = path.join(dotVscodePath, \"settings.json\");\n\n\tif (!fs.existsSync(dotVscodePath)) await fsp.mkdir(dotVscodePath, { recursive: true });\n\n\tif (!fs.existsSync(settingsPath)) {\n\t\tawait fsp.writeFile(settingsPath, `{${vscodeSettingsString}}\\n`, \"utf8\");\n\t\tp.log.success(green`Created .vscode/settings.json`);\n\t} else {\n\t\tlet settingsContent = await fsp.readFile(settingsPath, \"utf8\");\n\n\t\tsettingsContent = settingsContent.trim().replace(/\\s*\\}$/, \"\");\n\t\tsettingsContent += settingsContent.endsWith(\",\") || settingsContent.endsWith(\"{\") ? \"\" : \",\";\n\t\tsettingsContent += `${vscodeSettingsString}}\\n`;\n\n\t\tawait fsp.writeFile(settingsPath, settingsContent, \"utf8\");\n\t\tp.log.success(green`Updated .vscode/settings.json`);\n\t}\n}\n","/* eslint-disable perfectionist/sort-objects -- Ignore */\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport c from \"ansis\";\nimport { extra, extraOptions, frameworkOptions, frameworks } from \"./constants\";\nimport { updateEslintFiles } from \"./stages/update-eslint-files\";\nimport { updatePackageJson } from \"./stages/update-package-json\";\nimport { updateVscodeSettings } from \"./stages/update-vscode-settings\";\nimport type { ExtraLibrariesOption, FrameworkOption, PromptResult } from \"./types\";\nimport { isGitClean } from \"./utils\";\n\nexport type CliRunOptions = {\n\t/**\n\t * Use the extra utils: formatter / perfectionist / unocss\n\t */\n\textra?: string[];\n\t/**\n\t * Use the framework template for optimal customization: vue / react / svelte / astro\n\t */\n\tframeworks?: string[];\n\t/**\n\t * Skip prompts and use default values\n\t */\n\tyes?: boolean;\n};\n\nexport async function run(options: CliRunOptions = {}): Promise<void> {\n\tconst argSkipPrompt = Boolean(process.env.SKIP_PROMPT) || options.yes;\n\tconst argTemplate = options.frameworks?.map((m) => m.trim()).filter(Boolean);\n\tconst argExtra = options.extra?.map((m) => m.trim()).filter(Boolean);\n\n\tif (fs.existsSync(path.join(process.cwd(), \"eslint.config.js\"))) {\n\t\tp.log.warn(c.yellow`eslint.config.js already exists, migration wizard exited.`);\n\n\t\treturn process.exit(1);\n\t}\n\n\t// Set default value for promptResult if `argSkipPrompt` is enabled\n\tlet result: PromptResult = {\n\t\textra: (argExtra ?? []) as ExtraLibrariesOption[],\n\t\tframeworks: (argTemplate ?? []) as FrameworkOption[],\n\t\tuncommittedConfirmed: false,\n\t\tupdateVscodeSettings: true,\n\t};\n\n\tif (!argSkipPrompt) {\n\t\tresult = (await p.group(\n\t\t\t{\n\t\t\t\tuncommittedConfirmed: () => {\n\t\t\t\t\tif (isGitClean()) {\n\t\t\t\t\t\treturn Promise.resolve(true);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn p.confirm({\n\t\t\t\t\t\tinitialValue: false,\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"There are uncommitted changes in the current repository, are you sure to continue?\",\n\t\t\t\t\t});\n\t\t\t\t},\n\n\t\t\t\tframeworks: ({ results }) => {\n\t\t\t\t\tconst isArgTemplateValid =\n\t\t\t\t\t\t(argTemplate?.length ?? 0) > 0\n\t\t\t\t\t\t&& (argTemplate ?? []).filter((element) => !frameworks.includes(element)).length === 0;\n\n\t\t\t\t\tif (!results.uncommittedConfirmed || isArgTemplateValid) return;\n\n\t\t\t\t\tconst message =\n\t\t\t\t\t\targTemplate ?\n\t\t\t\t\t\t\t`\"${argTemplate}\" isn't a valid template. Please choose from below: `\n\t\t\t\t\t\t:\t\"Select a framework:\";\n\n\t\t\t\t\treturn p.multiselect<FrameworkOption>({\n\t\t\t\t\t\tmessage: c.reset(message),\n\t\t\t\t\t\toptions: frameworkOptions,\n\t\t\t\t\t\trequired: false,\n\t\t\t\t\t});\n\t\t\t\t},\n\n\t\t\t\textra: ({ results }) => {\n\t\t\t\t\tconst isArgExtraValid =\n\t\t\t\t\t\t(argExtra?.length ?? 0) > 0\n\t\t\t\t\t\t&& (argExtra ?? []).filter((element) => !extra.includes(element)).length === 0;\n\n\t\t\t\t\tif (!results.uncommittedConfirmed || isArgExtraValid) return;\n\n\t\t\t\t\tconst message =\n\t\t\t\t\t\targExtra ?\n\t\t\t\t\t\t\t`\"${argExtra}\" isn't a valid extra util. Please choose from below: `\n\t\t\t\t\t\t:\t\"Select a extra utils:\";\n\n\t\t\t\t\treturn p.multiselect<ExtraLibrariesOption>({\n\t\t\t\t\t\tmessage: c.reset(message),\n\t\t\t\t\t\toptions: extraOptions,\n\t\t\t\t\t\trequired: false,\n\t\t\t\t\t});\n\t\t\t\t},\n\n\t\t\t\tupdateVscodeSettings: ({ results }) => {\n\t\t\t\t\tif (!results.uncommittedConfirmed) return;\n\n\t\t\t\t\treturn p.confirm({\n\t\t\t\t\t\tinitialValue: true,\n\t\t\t\t\t\tmessage: \"Update .vscode/settings.json for better VS Code experience?\",\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tonCancel: () => {\n\t\t\t\t\tp.cancel(\"Operation cancelled.\");\n\t\t\t\t\tprocess.exit(0);\n\t\t\t\t},\n\t\t\t}\n\t\t)) as PromptResult;\n\n\t\tif (!result.uncommittedConfirmed) {\n\t\t\treturn process.exit(1);\n\t\t}\n\t}\n\n\tawait updatePackageJson(result);\n\tawait updateEslintFiles(result);\n\tawait updateVscodeSettings(result);\n\n\tp.log.success(c.green`Setup completed`);\n\n\tp.outro(\n\t\t`Now you can update the dependencies by running ${c.blue(\"pnpm install\")} and also ${c.blue(\"eslint --fix\")}\\n`\n\t);\n}\n","import process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport c from \"ansis\";\nimport { cac } from \"cac\";\nimport { version } from \"../../package.json\";\nimport { type CliRunOptions, run } from \"./run\";\n\nfunction header(): void {\n\tp.intro(`${c.green`@zayne-labs/eslint-config `}${c.dim`v${version}`}`);\n}\n\nconst cli = cac(\"@zayne-labs/eslint-config\");\n\ncli.command(\"\", \"Run the initialization or migration\")\n\t.option(\"--yes, -y\", \"Skip prompts and use default values\", { default: false })\n\t.option(\n\t\t\"--template, -t <template>\",\n\t\t\"Use the framework template for optimal customization: vue / react / svelte / astro\",\n\t\t{ type: [] }\n\t)\n\t.option(\"--extra, -e <extra>\", \"Use the extra utils: perfectionist / tailwindcss\", { type: [] })\n\t.action(async (options: CliRunOptions) => {\n\t\theader();\n\t\ttry {\n\t\t\tawait run(options);\n\t\t} catch (error) {\n\t\t\tp.log.error(c.inverse.red(\" Failed to migrate \"));\n\t\t\tp.log.error(c.red`✘ ${String(error)}`);\n\t\t\tprocess.exit(1);\n\t\t}\n\t});\n\ncli.help();\ncli.version(version);\ncli.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["frameworkOptions: Array<PromItem<FrameworkOption>>","frameworks: FrameworkOption[]","extraOptions: Array<PromItem<ExtraLibrariesOption>>","extra: ExtraLibrariesOption[]","eslintIgnores: string[]","configLines: string[]","additionalConfig: string[]","eslintConfigContent: string","addedPackages: string[]","dotVscodePath: string","settingsPath: string","result: PromptResult"],"sources":["../../package.json","../../src/cli/constants.ts","../../src/cli/utils.ts","../../src/cli/stages/update-eslint-files.ts","../../src/cli/constants-generated.ts","../../src/cli/stages/update-package-json.ts","../../src/cli/stages/update-vscode-settings.ts","../../src/cli/run.ts","../../src/cli/index.ts"],"sourcesContent":["{\n\t\"name\": \"@zayne-labs/eslint-config\",\n\t\"type\": \"module\",\n\t\"version\": \"0.9.13\",\n\t\"description\": \"Zayne Labs' ESLint config preset\",\n\t\"author\": \"Ryan Zayne\",\n\t\"license\": \"MIT\",\n\t\"homepage\": \"https://github.com/zayne-labs/config#readme\",\n\t\"repository\": {\n\t\t\"type\": \"git\",\n\t\t\"url\": \"git+https://github.com/zayne-labs/config.git\"\n\t},\n\t\"bugs\": {\n\t\t\"url\": \"https://github.com/zayne-labs/config/issues\"\n\t},\n\t\"keywords\": [],\n\t\"sideEffects\": false,\n\t\"exports\": {\n\t\t\".\": \"./dist/index.js\"\n\t},\n\t\"bin\": \"./bin/index.js\",\n\t\"files\": [\n\t\t\"bin\",\n\t\t\"dist\"\n\t],\n\t\"engines\": {\n\t\t\"node\": \">=18.x\"\n\t},\n\t\"scripts\": {\n\t\t\"build\": \"pnpm typegen && tsdown\",\n\t\t\"build:dev\": \"pnpm typegen && cross-env NODE_ENV=development tsdown\",\n\t\t\"lint:attw\": \"attw --pack . --ignore-rules=cjs-resolves-to-esm\",\n\t\t\"lint:eslint\": \"eslint . --max-warnings 0\",\n\t\t\"lint:format\": \"prettier --cache --write .\",\n\t\t\"lint:packages\": \"pnpm dedupe --check\",\n\t\t\"lint:publint\": \"publint --strict .\",\n\t\t\"lint:type-check\": \"pnpm typegen && tsc --pretty -p tsconfig.json\",\n\t\t\"release\": \"pnpm publish --no-git-checks\",\n\t\t\"release:test\": \"pnpx pkg-pr-new publish\",\n\t\t\"typegen\": \"tsx scripts/typegen.ts\",\n\t\t\"version-package\": \"changeset version\"\n\t},\n\t\"peerDependencies\": {\n\t\t\"@eslint-react/eslint-plugin\": \">=1.15.0\",\n\t\t\"@next/eslint-plugin-next\": \">=14.2.15\",\n\t\t\"@tanstack/eslint-plugin-query\": \">=5.59.7\",\n\t\t\"@tanstack/eslint-plugin-router\": \">=1.120.17\",\n\t\t\"astro-eslint-parser\": \">=1.0.2\",\n\t\t\"eslint\": \">=9.12.0\",\n\t\t\"eslint-config-expo\": \">=9.2.0\",\n\t\t\"eslint-plugin-astro\": \">=1.2.0\",\n\t\t\"eslint-plugin-better-tailwindcss\": \">=3.2.0\",\n\t\t\"eslint-plugin-depend\": \">=1.2.0\",\n\t\t\"eslint-plugin-pnpm\": \">=0.3.1\",\n\t\t\"eslint-plugin-react-hooks\": \">=5.0.0\",\n\t\t\"eslint-plugin-react-refresh\": \">=0.4.12\",\n\t\t\"eslint-plugin-solid\": \">=0.14.3\",\n\t\t\"eslint-plugin-svelte\": \">=2.35.1\",\n\t\t\"eslint-plugin-vue\": \">=9.28.0\",\n\t\t\"eslint-processor-vue-blocks\": \">=0.1.2\",\n\t\t\"vue-eslint-parser\": \">=9.4.3\"\n\t},\n\t\"peerDependenciesMeta\": {\n\t\t\"@eslint-react/eslint-plugin\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"@next/eslint-plugin-next\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"@tanstack/eslint-plugin-query\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"@tanstack/eslint-plugin-router\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"astro-eslint-parser\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-config-expo\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-astro\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-better-tailwindcss\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-depend\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-pnpm\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-react-hooks\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-react-refresh\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-solid\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-svelte\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-plugin-vue\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"eslint-processor-vue-blocks\": {\n\t\t\t\"optional\": true\n\t\t},\n\t\t\"vue-eslint-parser\": {\n\t\t\t\"optional\": true\n\t\t}\n\t},\n\t\"dependencies\": {\n\t\t\"@antfu/install-pkg\": \"1.1.0\",\n\t\t\"@clack/prompts\": \"0.11.0\",\n\t\t\"@eslint-community/eslint-plugin-eslint-comments\": \"4.5.0\",\n\t\t\"@eslint/compat\": \"1.3.2\",\n\t\t\"@eslint/js\": \"9.34.0\",\n\t\t\"@stylistic/eslint-plugin\": \"5.2.3\",\n\t\t\"@zayne-labs/toolkit-type-helpers\": \"0.10.9\",\n\t\t\"ansis\": \"4.1.0\",\n\t\t\"cac\": \"6.7.14\",\n\t\t\"eslint-config-flat-gitignore\": \"2.1.0\",\n\t\t\"eslint-flat-config-utils\": \"2.1.1\",\n\t\t\"eslint-import-resolver-typescript\": \"4.4.4\",\n\t\t\"eslint-merge-processors\": \"^2.0.0\",\n\t\t\"eslint-plugin-import-x\": \"4.16.1\",\n\t\t\"eslint-plugin-jsdoc\": \"54.1.1\",\n\t\t\"eslint-plugin-jsonc\": \"2.20.1\",\n\t\t\"eslint-plugin-n\": \"17.21.3\",\n\t\t\"eslint-plugin-perfectionist\": \"4.15.0\",\n\t\t\"eslint-plugin-security\": \"3.0.1\",\n\t\t\"eslint-plugin-toml\": \"^0.12.0\",\n\t\t\"eslint-plugin-unicorn\": \"60.0.0\",\n\t\t\"eslint-plugin-yml\": \"^1.17.0\",\n\t\t\"globals\": \"16.3.0\",\n\t\t\"jsonc-eslint-parser\": \"2.4.0\",\n\t\t\"local-pkg\": \"1.1.2\",\n\t\t\"parse-gitignore\": \"2.0.0\",\n\t\t\"toml-eslint-parser\": \"0.10.0\",\n\t\t\"typescript-eslint\": \"8.41.0\",\n\t\t\"yaml-eslint-parser\": \"1.3.0\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@arethetypeswrong/cli\": \"0.18.2\",\n\t\t\"@changesets/cli\": \"2.29.6\",\n\t\t\"@eslint-react/eslint-plugin\": \"1.52.7\",\n\t\t\"@next/eslint-plugin-next\": \"15.5.2\",\n\t\t\"@tanstack/eslint-plugin-query\": \"5.83.1\",\n\t\t\"@tanstack/eslint-plugin-router\": \"1.131.2\",\n\t\t\"@total-typescript/ts-reset\": \"0.6.1\",\n\t\t\"@types/eslint-plugin-security\": \"3.0.0\",\n\t\t\"@types/node\": \"24.3.0\",\n\t\t\"@zayne-labs/tsconfig\": \"workspace:*\",\n\t\t\"astro-eslint-parser\": \"1.2.2\",\n\t\t\"concurrently\": \"9.2.1\",\n\t\t\"cross-env\": \"10.0.0\",\n\t\t\"eslint\": \"9.34.0\",\n\t\t\"eslint-config-expo\": \"^9.2.0\",\n\t\t\"eslint-plugin-astro\": \"1.3.1\",\n\t\t\"eslint-plugin-better-tailwindcss\": \"3.7.6\",\n\t\t\"eslint-plugin-depend\": \"1.2.0\",\n\t\t\"eslint-plugin-pnpm\": \"1.1.1\",\n\t\t\"eslint-plugin-react-hooks\": \"5.2.0\",\n\t\t\"eslint-plugin-react-refresh\": \"0.4.20\",\n\t\t\"eslint-plugin-solid\": \"0.14.5\",\n\t\t\"eslint-plugin-svelte\": \"3.11.0\",\n\t\t\"eslint-plugin-vue\": \"10.4.0\",\n\t\t\"eslint-processor-vue-blocks\": \"2.0.0\",\n\t\t\"eslint-typegen\": \"2.3.0\",\n\t\t\"husky\": \"9.1.7\",\n\t\t\"lint-staged\": \"16.1.5\",\n\t\t\"pkg-pr-new\": \"0.0.58\",\n\t\t\"prettier\": \"3.6.2\",\n\t\t\"publint\": \"0.3.12\",\n\t\t\"tailwindcss\": \"^4.1.12\",\n\t\t\"tsdown\": \"^0.14.2\",\n\t\t\"tsx\": \"4.20.5\",\n\t\t\"typescript\": \"5.9.2\",\n\t\t\"vue-eslint-parser\": \"10.2.0\"\n\t},\n\t\"publishConfig\": {\n\t\t\"access\": \"public\",\n\t\t\"registry\": \"https://registry.npmjs.org/\",\n\t\t\"provenance\": true\n\t}\n}\n","import { defineEnumDeep } from \"@zayne-labs/toolkit-type-helpers\";\nimport c from \"ansis\";\nimport type { ExtraLibrariesOption, FrameworkOption, PromItem } from \"./types\";\n\nexport const vscodeSettingsString = `\n // Auto fix\n // \"editor.codeActionsOnSave\": {\n // \"source.fixAll.eslint\": \"explicit\",\n // },\n\n // Enable eslint for all supported languages\n \"eslint.validate\": [\n \"javascript\",\n \"javascriptreact\",\n \"typescript\",\n \"typescriptreact\",\n \"vue\",\n \"html\",\n \"markdown\",\n \"json\",\n \"json5\",\n \"jsonc\",\n \"yaml\",\n \"toml\",\n \"xml\",\n \"gql\",\n \"graphql\",\n \"astro\",\n \"svelte\",\n \"css\",\n \"less\",\n \"scss\",\n \"postcss\"\n ]\n`;\n\nexport const frameworkOptions: Array<PromItem<FrameworkOption>> = [\n\t{\n\t\tlabel: c.green(\"Vue\"),\n\t\tvalue: \"vue\",\n\t},\n\t{\n\t\tlabel: c.cyan(\"React\"),\n\t\tvalue: \"react\",\n\t},\n\t{\n\t\tlabel: c.red(\"Svelte\"),\n\t\tvalue: \"svelte\",\n\t},\n\t{\n\t\tlabel: c.magenta(\"Astro\"),\n\t\tvalue: \"astro\",\n\t},\n\t{\n\t\tlabel: c.cyan(\"Solid\"),\n\t\tvalue: \"solid\",\n\t},\n];\n\nexport const frameworks: FrameworkOption[] = frameworkOptions.map(({ value }) => value);\n\nexport const extraOptions: Array<PromItem<ExtraLibrariesOption>> = [\n\t{\n\t\tlabel: c.cyan(\"TailwindCSS\"),\n\t\tvalue: \"tailwindcss\",\n\t},\n];\n\nexport const extra: ExtraLibrariesOption[] = extraOptions.map(({ value }) => value);\n\nexport const dependenciesMap = defineEnumDeep({\n\tastro: [\"eslint-plugin-astro\", \"astro-eslint-parser\"],\n\treact: [\"@eslint-react/eslint-plugin\", \"eslint-plugin-react-hooks\", \"eslint-plugin-react-refresh\"],\n\tsolid: [\"eslint-plugin-solid\"],\n\tsvelte: [\"eslint-plugin-svelte\", \"svelte-eslint-parser\"],\n\tvue: [\"eslint-plugin-vue\", \"eslint-processor-vue-blocks\", \"vue-eslint-parser\"],\n});\n","import { execSync } from \"node:child_process\";\n\nexport function isGitClean(): boolean {\n\ttry {\n\t\texecSync(\"git diff-index --quiet HEAD --\");\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function getEslintConfigContent(mainConfig: string, additionalConfigs?: string[]): string {\n\tconst additionalConfigsStr = additionalConfigs?.map((config) => `,{\\n${config}\\n}`);\n\n\treturn `\nimport { zayne } from '@zayne-labs/eslint-config'\n\nexport default zayne({\n${mainConfig}\n}${additionalConfigsStr})\n`.trimStart();\n}\n","/* eslint-disable max-depth -- Allow */\nimport fs from \"node:fs\";\nimport fsp from \"node:fs/promises\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport c from \"ansis\";\n// @ts-expect-error missing types\nimport parse from \"parse-gitignore\";\nimport type { PromptResult } from \"../types\";\nimport { getEslintConfigContent } from \"../utils\";\n\nexport async function updateEslintFiles(result: PromptResult): Promise<void> {\n\tconst cwd = process.cwd();\n\tconst pathESLintIgnore = path.join(cwd, \".eslintignore\");\n\tconst pathPackageJSON = path.join(cwd, \"package.json\");\n\n\tconst pkgContent = await fsp.readFile(pathPackageJSON, \"utf8\");\n\tconst pkg = JSON.parse(pkgContent) as Record<string, unknown>;\n\n\tconst configFileName = pkg.type === \"module\" ? \"eslint.config.js\" : \"eslint.config.mjs\";\n\tconst pathFlatConfig = path.join(cwd, configFileName);\n\n\tconst eslintIgnores: string[] = [];\n\n\tif (fs.existsSync(pathESLintIgnore)) {\n\t\tp.log.step(c.cyan`Migrating existing .eslintignore`);\n\t\tconst content = await fsp.readFile(pathESLintIgnore, \"utf8\");\n\t\tconst parsed = parse(content);\n\t\tconst globs = parsed.globs();\n\n\t\tfor (const glob of globs) {\n\t\t\tif (glob.type === \"ignore\") {\n\t\t\t\teslintIgnores.push(...(glob.patterns as string[]));\n\t\t\t}\n\n\t\t\tif (glob.type === \"unignore\") {\n\t\t\t\teslintIgnores.push(...(glob.patterns.map((pattern: string) => `!${pattern}`) as string[]));\n\t\t\t}\n\t\t}\n\t}\n\n\tconst configLines: string[] = [];\n\n\tif (eslintIgnores.length > 0) {\n\t\tconfigLines.push(`ignores: ${JSON.stringify(eslintIgnores)},`);\n\t}\n\n\tfor (const framework of result.frameworks) {\n\t\tconfigLines.push(`${framework}: true,`);\n\t}\n\n\tconst mainConfig = configLines.map((line) => ` ${line}`).join(\"\\n\");\n\n\tconst additionalConfig: string[] = [];\n\n\tconst eslintConfigContent: string = getEslintConfigContent(mainConfig, additionalConfig);\n\n\tawait fsp.writeFile(pathFlatConfig, eslintConfigContent);\n\n\tp.log.success(c.green`Created ${configFileName}`);\n}\n","export const versionsMap = {\n\t\"@eslint-react/eslint-plugin\": \"^1.38.4\",\n\t\"astro-eslint-parser\": \"^1.2.2\",\n\teslint: \"^9.24.0\",\n\t\"eslint-plugin-astro\": \"^1.3.1\",\n\t\"eslint-plugin-react-hooks\": \"^5.2.0\",\n\t\"eslint-plugin-react-refresh\": \"^0.4.19\",\n\t\"eslint-plugin-solid\": \"^0.14.5\",\n\t\"eslint-plugin-svelte\": \"^3.3.3\",\n\t\"svelte-eslint-parser\": \"^1.1.0\",\n};\n","import fsp from \"node:fs/promises\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport c from \"ansis\";\nimport { version } from \"../../../package.json\";\nimport { dependenciesMap } from \"../constants\";\nimport { versionsMap } from \"../constants-generated\";\nimport type { PromptResult } from \"../types\";\n\nexport async function updatePackageJson(result: PromptResult): Promise<void> {\n\tconst cwd = process.cwd();\n\n\tconst pathPackageJSON = path.join(cwd, \"package.json\");\n\n\tp.log.step(c.cyan`Bumping @zayne-labs/eslint-config to v${version}`);\n\n\tconst pkgContent = await fsp.readFile(pathPackageJSON, \"utf8\");\n\tconst pkg = JSON.parse(pkgContent) as Record<string, Record<string, string | undefined> | undefined>;\n\n\tpkg.devDependencies ??= {};\n\tpkg.devDependencies[\"@zayne-labs/eslint-config\"] = `^${version}`;\n\tpkg.devDependencies.eslint ??= versionsMap.eslint;\n\n\tconst addedPackages: string[] = [];\n\n\tfor (const framework of result.frameworks) {\n\t\tconst dependencies = dependenciesMap[framework];\n\n\t\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition -- Allow\n\t\tif (!dependencies) continue;\n\n\t\tdependencies.forEach((dependency) => {\n\t\t\tif (!pkg.devDependencies) return;\n\n\t\t\tpkg.devDependencies[dependency] = versionsMap[dependency as keyof typeof versionsMap];\n\t\t\taddedPackages.push(dependency);\n\t\t});\n\t}\n\n\tif (addedPackages.length > 0) {\n\t\tp.note(c.dim(addedPackages.join(\", \")), \"Added packages\");\n\t}\n\n\tawait fsp.writeFile(pathPackageJSON, JSON.stringify(pkg, null, 2));\n\n\tp.log.success(c.green`Changes wrote to package.json`);\n}\n","import fs from \"node:fs\";\nimport fsp from \"node:fs/promises\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport { green } from \"ansis\";\nimport { vscodeSettingsString } from \"../constants\";\nimport type { PromptResult } from \"../types\";\n\nexport async function updateVscodeSettings(result: PromptResult): Promise<void> {\n\tconst cwd = process.cwd();\n\n\tif (!result.updateVscodeSettings) return;\n\n\tconst dotVscodePath: string = path.join(cwd, \".vscode\");\n\tconst settingsPath: string = path.join(dotVscodePath, \"settings.json\");\n\n\tif (!fs.existsSync(dotVscodePath)) await fsp.mkdir(dotVscodePath, { recursive: true });\n\n\tif (!fs.existsSync(settingsPath)) {\n\t\tawait fsp.writeFile(settingsPath, `{${vscodeSettingsString}}\\n`, \"utf8\");\n\t\tp.log.success(green`Created .vscode/settings.json`);\n\t} else {\n\t\tlet settingsContent = await fsp.readFile(settingsPath, \"utf8\");\n\n\t\tsettingsContent = settingsContent.trim().replace(/\\s*\\}$/, \"\");\n\t\tsettingsContent += settingsContent.endsWith(\",\") || settingsContent.endsWith(\"{\") ? \"\" : \",\";\n\t\tsettingsContent += `${vscodeSettingsString}}\\n`;\n\n\t\tawait fsp.writeFile(settingsPath, settingsContent, \"utf8\");\n\t\tp.log.success(green`Updated .vscode/settings.json`);\n\t}\n}\n","/* eslint-disable perfectionist/sort-objects -- Ignore */\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport c from \"ansis\";\nimport { extra, extraOptions, frameworkOptions, frameworks } from \"./constants\";\nimport { updateEslintFiles } from \"./stages/update-eslint-files\";\nimport { updatePackageJson } from \"./stages/update-package-json\";\nimport { updateVscodeSettings } from \"./stages/update-vscode-settings\";\nimport type { ExtraLibrariesOption, FrameworkOption, PromptResult } from \"./types\";\nimport { isGitClean } from \"./utils\";\n\nexport type CliRunOptions = {\n\t/**\n\t * Use the extra utils: formatter / perfectionist / unocss\n\t */\n\textra?: string[];\n\t/**\n\t * Use the framework template for optimal customization: vue / react / svelte / astro\n\t */\n\tframeworks?: string[];\n\t/**\n\t * Skip prompts and use default values\n\t */\n\tyes?: boolean;\n};\n\nexport async function run(options: CliRunOptions = {}): Promise<void> {\n\tconst argSkipPrompt = Boolean(process.env.SKIP_PROMPT) || options.yes;\n\tconst argTemplate = options.frameworks?.map((m) => m.trim()).filter(Boolean);\n\tconst argExtra = options.extra?.map((m) => m.trim()).filter(Boolean);\n\n\tif (fs.existsSync(path.join(process.cwd(), \"eslint.config.js\"))) {\n\t\tp.log.warn(c.yellow`eslint.config.js already exists, migration wizard exited.`);\n\n\t\treturn process.exit(1);\n\t}\n\n\t// Set default value for promptResult if `argSkipPrompt` is enabled\n\tlet result: PromptResult = {\n\t\textra: (argExtra ?? []) as ExtraLibrariesOption[],\n\t\tframeworks: (argTemplate ?? []) as FrameworkOption[],\n\t\tuncommittedConfirmed: false,\n\t\tupdateVscodeSettings: true,\n\t};\n\n\tif (!argSkipPrompt) {\n\t\tresult = (await p.group(\n\t\t\t{\n\t\t\t\tuncommittedConfirmed: () => {\n\t\t\t\t\tif (isGitClean()) {\n\t\t\t\t\t\treturn Promise.resolve(true);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn p.confirm({\n\t\t\t\t\t\tinitialValue: false,\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"There are uncommitted changes in the current repository, are you sure to continue?\",\n\t\t\t\t\t});\n\t\t\t\t},\n\n\t\t\t\tframeworks: ({ results }) => {\n\t\t\t\t\tconst isArgTemplateValid =\n\t\t\t\t\t\t(argTemplate?.length ?? 0) > 0\n\t\t\t\t\t\t&& (argTemplate ?? []).filter((element) => !frameworks.includes(element)).length === 0;\n\n\t\t\t\t\tif (!results.uncommittedConfirmed || isArgTemplateValid) return;\n\n\t\t\t\t\tconst message =\n\t\t\t\t\t\targTemplate ?\n\t\t\t\t\t\t\t`\"${argTemplate}\" isn't a valid template. Please choose from below: `\n\t\t\t\t\t\t:\t\"Select a framework:\";\n\n\t\t\t\t\treturn p.multiselect<FrameworkOption>({\n\t\t\t\t\t\tmessage: c.reset(message),\n\t\t\t\t\t\toptions: frameworkOptions,\n\t\t\t\t\t\trequired: false,\n\t\t\t\t\t});\n\t\t\t\t},\n\n\t\t\t\textra: ({ results }) => {\n\t\t\t\t\tconst isArgExtraValid =\n\t\t\t\t\t\t(argExtra?.length ?? 0) > 0\n\t\t\t\t\t\t&& (argExtra ?? []).filter((element) => !extra.includes(element)).length === 0;\n\n\t\t\t\t\tif (!results.uncommittedConfirmed || isArgExtraValid) return;\n\n\t\t\t\t\tconst message =\n\t\t\t\t\t\targExtra ?\n\t\t\t\t\t\t\t`\"${argExtra}\" isn't a valid extra util. Please choose from below: `\n\t\t\t\t\t\t:\t\"Select a extra utils:\";\n\n\t\t\t\t\treturn p.multiselect<ExtraLibrariesOption>({\n\t\t\t\t\t\tmessage: c.reset(message),\n\t\t\t\t\t\toptions: extraOptions,\n\t\t\t\t\t\trequired: false,\n\t\t\t\t\t});\n\t\t\t\t},\n\n\t\t\t\tupdateVscodeSettings: ({ results }) => {\n\t\t\t\t\tif (!results.uncommittedConfirmed) return;\n\n\t\t\t\t\treturn p.confirm({\n\t\t\t\t\t\tinitialValue: true,\n\t\t\t\t\t\tmessage: \"Update .vscode/settings.json for better VS Code experience?\",\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tonCancel: () => {\n\t\t\t\t\tp.cancel(\"Operation cancelled.\");\n\t\t\t\t\tprocess.exit(0);\n\t\t\t\t},\n\t\t\t}\n\t\t)) as PromptResult;\n\n\t\tif (!result.uncommittedConfirmed) {\n\t\t\treturn process.exit(1);\n\t\t}\n\t}\n\n\tawait updatePackageJson(result);\n\tawait updateEslintFiles(result);\n\tawait updateVscodeSettings(result);\n\n\tp.log.success(c.green`Setup completed`);\n\n\tp.outro(\n\t\t`Now you can update the dependencies by running ${c.blue(\"pnpm install\")} and also ${c.blue(\"eslint --fix\")}\\n`\n\t);\n}\n","import process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport c from \"ansis\";\nimport { cac } from \"cac\";\nimport { version } from \"../../package.json\";\nimport { type CliRunOptions, run } from \"./run\";\n\nfunction header(): void {\n\tp.intro(`${c.green`@zayne-labs/eslint-config `}${c.dim`v${version}`}`);\n}\n\nconst cli = cac(\"@zayne-labs/eslint-config\");\n\ncli.command(\"\", \"Run the initialization or migration\")\n\t.option(\"--yes, -y\", \"Skip prompts and use default values\", { default: false })\n\t.option(\n\t\t\"--template, -t <template>\",\n\t\t\"Use the framework template for optimal customization: vue / react / svelte / astro\",\n\t\t{ type: [] }\n\t)\n\t.option(\"--extra, -e <extra>\", \"Use the extra utils: perfectionist / tailwindcss\", { type: [] })\n\t.action(async (options: CliRunOptions) => {\n\t\theader();\n\t\ttry {\n\t\t\tawait run(options);\n\t\t} catch (error) {\n\t\t\tp.log.error(c.inverse.red(\" Failed to migrate \"));\n\t\t\tp.log.error(c.red`✘ ${String(error)}`);\n\t\t\tprocess.exit(1);\n\t\t}\n\t});\n\ncli.help();\ncli.version(version);\ncli.parse();\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16388,7 +16388,7 @@ interface TypedFlatConfigItem extends FlatESLintConfigItem<Partial<Linter.RulesR
16388
16388
  interface OptionsOverrides {
16389
16389
  overrides?: TypedFlatConfigItem["rules"];
16390
16390
  }
16391
- interface MultipleOptionsOverrides<TArray extends string[]> {
16391
+ interface OptionsOverridesMultiple<TArray extends string[]> {
16392
16392
  overrides?: Record<TArray[number], OptionsOverrides["overrides"]>;
16393
16393
  }
16394
16394
  interface OptionsAppType {
@@ -16479,17 +16479,22 @@ interface OptionsReact {
16479
16479
  * Enable react compiler rules.
16480
16480
  * @default false
16481
16481
  */
16482
- compiler?: boolean;
16482
+ compiler?: boolean | OptionsOverrides;
16483
16483
  /**
16484
16484
  * Enable nextjs rules.
16485
16485
  * @default auto-detect-from-dependencies
16486
16486
  */
16487
- nextjs?: boolean;
16487
+ nextjs?: boolean | OptionsOverrides;
16488
+ /**
16489
+ * Enable react rules.
16490
+ * @default true
16491
+ */
16492
+ react?: boolean | OptionsOverrides;
16488
16493
  /**
16489
16494
  * Enable react-refresh(HMR) rules.
16490
16495
  * @default true
16491
16496
  */
16492
- refresh?: boolean;
16497
+ refresh?: boolean | OptionsOverrides;
16493
16498
  }
16494
16499
  interface OptionsStylistic {
16495
16500
  indent?: number;
@@ -16505,12 +16510,12 @@ interface OptionsTanstack {
16505
16510
  * Enable tanstack query linting
16506
16511
  * @default false
16507
16512
  */
16508
- query?: boolean;
16513
+ query?: boolean | OptionsOverrides;
16509
16514
  /**
16510
16515
  * Enable tanstack router linting
16511
16516
  * @default false
16512
16517
  */
16513
- router?: boolean;
16518
+ router?: boolean | OptionsOverrides;
16514
16519
  }
16515
16520
  interface OptionsHasJsx {
16516
16521
  jsx?: boolean;
@@ -16563,7 +16568,7 @@ interface OptionsNode {
16563
16568
  * Enable eslint-plugin-security
16564
16569
  * @default false
16565
16570
  */
16566
- security?: boolean;
16571
+ security?: boolean | OptionsOverrides;
16567
16572
  }
16568
16573
  interface OptionsConfig extends OptionsComponentExts {
16569
16574
  /**
@@ -16667,7 +16672,7 @@ interface OptionsConfig extends OptionsComponentExts {
16667
16672
  * @experimental
16668
16673
  * @default false
16669
16674
  */
16670
- pnpm?: boolean | MultipleOptionsOverrides<["json", "yaml"]>;
16675
+ pnpm?: boolean | OptionsOverridesMultiple<["json", "yaml"]>;
16671
16676
  /**
16672
16677
  * Enable react rules.
16673
16678
  *
@@ -16870,6 +16875,28 @@ declare const vue: (options?: ExtractOptions<OptionsConfig["vue"]>) => Promise<T
16870
16875
  //#region src/configs/yaml.d.ts
16871
16876
  declare const yaml: (options?: ExtractOptions<OptionsConfig["yaml"]>) => Promise<TypedFlatConfigItem[]>;
16872
16877
  //#endregion
16878
+ //#region src/constants.d.ts
16879
+ declare const defaultPluginRenameMap: {
16880
+ "@eslint-react/debug": "react-debug";
16881
+ "@eslint-react/dom": "react-dom";
16882
+ "@eslint-react/hooks-extra": "react-hooks-extra";
16883
+ "@eslint-react/naming-convention": "react-naming-convention";
16884
+ "@eslint-react/web-api": "react-web-api";
16885
+ "@eslint-react": "react";
16886
+ "@next/next": "nextjs-next";
16887
+ "@stylistic": "stylistic";
16888
+ "@tanstack/query": "tanstack-query";
16889
+ "@tanstack/router": "tanstack-router";
16890
+ "@typescript-eslint": "ts-eslint";
16891
+ "better-tailwindcss": "tailwindcss-better";
16892
+ "import-x": "import";
16893
+ n: "node";
16894
+ } & {
16895
+ $inferUnion: "@eslint-react/debug" | "@eslint-react/dom" | "@eslint-react/hooks-extra" | "@eslint-react/naming-convention" | "@eslint-react/web-api" | "@eslint-react" | "@next/next" | "@stylistic" | "@tanstack/query" | "@tanstack/router" | "@typescript-eslint" | "better-tailwindcss" | "import-x" | "n";
16896
+ };
16897
+ declare const allowedNextJsExportNames: string[];
16898
+ declare const allowedReactRouterExportNames: string[];
16899
+ //#endregion
16873
16900
  //#region src/factory.d.ts
16874
16901
  /**
16875
16902
  * @description Construct an array of ESLint flat config items.
@@ -16979,5 +17006,5 @@ declare const isPackageInScope: (name: string) => boolean;
16979
17006
  declare const ensurePackages: (packages: Array<string | undefined>) => Promise<void>;
16980
17007
  declare const resolveOptions: <TObject>(option: boolean | TObject | undefined) => TObject;
16981
17008
  //#endregion
16982
- export { Awaitable, type ConfigNames, ExtractOptions, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLES, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsAppType, OptionsComponentExts, OptionsConfig, OptionsFiles, OptionsHasJsx, OptionsHasTypeScript, OptionsNode, OptionsOverrides, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTailwindCSS, OptionsTailwindCSSBetter, OptionsTanstack, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsVue, Prettify, type Rules, TypedFlatConfigItem, astro, combine, comments, depend, ensurePackages, expo, gitIgnores, ignores, imports, interopDefault, isObject, isPackageInScope, javascript, jsdoc, jsonc, node, perfectionist, pnpm, react, renamePluginInConfigs, renamePlugins, renameRules, resolveOptions, solid, sortPackageJson, sortTsconfig, stylistic, tailwindcssBetter, tanstack, toml, typescript, unicorn, vue, yaml, zayne };
17009
+ export { Awaitable, type ConfigNames, ExtractOptions, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLES, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsAppType, OptionsComponentExts, OptionsConfig, OptionsFiles, OptionsHasJsx, OptionsHasTypeScript, OptionsNode, OptionsOverrides, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTailwindCSS, OptionsTailwindCSSBetter, OptionsTanstack, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsVue, Prettify, type Rules, TypedFlatConfigItem, allowedNextJsExportNames, allowedReactRouterExportNames, astro, combine, comments, defaultPluginRenameMap, depend, ensurePackages, expo, gitIgnores, ignores, imports, interopDefault, isObject, isPackageInScope, javascript, jsdoc, jsonc, node, perfectionist, pnpm, react, renamePluginInConfigs, renamePlugins, renameRules, resolveOptions, solid, sortPackageJson, sortTsconfig, stylistic, tailwindcssBetter, tanstack, toml, typescript, unicorn, vue, yaml, zayne };
16983
17010
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { assert, defineEnum } from "@zayne-labs/toolkit-type-helpers";
1
+ import { assert, defineEnum, isObject as isObject$1 } from "@zayne-labs/toolkit-type-helpers";
2
2
  import { fileURLToPath } from "node:url";
3
3
  import { isPackageExists } from "local-pkg";
4
4
  import { globalIgnores } from "eslint/config";
@@ -787,7 +787,11 @@ const node = async (options = {}) => {
787
787
  if (security && eslintPluginSecurity) config.push({
788
788
  name: "zayne/node/security/recommended",
789
789
  plugins: { security: eslintPluginSecurity },
790
- rules: eslintPluginSecurity.configs.recommended.rules
790
+ rules: {
791
+ ...eslintPluginSecurity.configs.recommended.rules,
792
+ ...overrides,
793
+ ...isObject(security) && security.overrides
794
+ }
791
795
  });
792
796
  return config;
793
797
  };
@@ -963,7 +967,7 @@ const isAllowConstantExport = ReactRefreshAllowConstantExportPackages.some((i) =
963
967
  const isUsingReactRouter = ReactRouterPackages.some((i) => isPackageExists(i));
964
968
  const isUsingNext = NextJsPackages.some((i) => isPackageExists(i));
965
969
  const react = async (options = {}) => {
966
- const { compiler = false, files = [GLOB_SRC], nextjs = isUsingNext, overrides, refresh = true, typescript: typescript$1 = true } = options;
970
+ const { compiler = false, files = [GLOB_SRC], nextjs = isUsingNext, overrides, react: enableReact = true, refresh = true, typescript: typescript$1 = true } = options;
967
971
  await ensurePackages([
968
972
  "@eslint-react/eslint-plugin",
969
973
  "eslint-plugin-react-hooks",
@@ -971,77 +975,82 @@ const react = async (options = {}) => {
971
975
  nextjs ? "@next/eslint-plugin-next" : void 0
972
976
  ]);
973
977
  const [eslintPluginReact, eslintReactHooks, eslintPluginReactRefresh, eslintPluginNextjs] = await Promise.all([
974
- interopDefault(import("@eslint-react/eslint-plugin")),
975
- interopDefault(import("eslint-plugin-react-hooks")),
978
+ enableReact ? interopDefault(import("@eslint-react/eslint-plugin")) : void 0,
979
+ enableReact ? interopDefault(import("eslint-plugin-react-hooks")) : void 0,
976
980
  refresh ? interopDefault(import("eslint-plugin-react-refresh")) : void 0,
977
981
  nextjs ? interopDefault(import("@next/eslint-plugin-next")) : void 0
978
982
  ]);
979
- const recommendedReactConfig = eslintPluginReact.configs[typescript$1 ? "recommended-type-checked" : "recommended"];
980
- const config = [
981
- {
982
- name: "zayne/react/setup",
983
- plugins: {
984
- ...renamePlugins(recommendedReactConfig.plugins, defaultPluginRenameMap),
985
- "react-hooks": eslintReactHooks
986
- },
987
- settings: recommendedReactConfig.settings
988
- },
989
- {
990
- files,
991
- languageOptions: { parserOptions: {
992
- ecmaFeatures: { jsx: true },
993
- sourceType: "module",
994
- ...typescript$1 && { parser: (await interopDefault(import("typescript-eslint"))).parser }
995
- } },
996
- name: "zayne/react/setup-processor"
997
- },
998
- {
999
- files,
1000
- name: "zayne/react/recommended",
1001
- rules: renameRules(recommendedReactConfig.rules, defaultPluginRenameMap)
983
+ const recommendedReactConfig = eslintPluginReact?.configs[typescript$1 ? "recommended-type-checked" : "recommended"];
984
+ const config = [];
985
+ if (enableReact && recommendedReactConfig && eslintReactHooks) config.push({
986
+ name: "zayne/react/setup",
987
+ plugins: {
988
+ ...renamePlugins(recommendedReactConfig.plugins, defaultPluginRenameMap),
989
+ "react-hooks": eslintReactHooks
1002
990
  },
1003
- {
1004
- files,
1005
- name: "zayne/react/rules",
1006
- rules: {
1007
- "react-hooks-extra/no-unnecessary-use-callback": "warn",
1008
- "react-hooks-extra/no-unnecessary-use-memo": "warn",
1009
- "react-hooks-extra/no-unnecessary-use-prefix": "error",
1010
- "react-hooks-extra/prefer-use-state-lazy-initialization": "error",
1011
- "react-hooks/exhaustive-deps": "warn",
1012
- "react-hooks/rules-of-hooks": "error",
1013
- "react-naming-convention/component-name": "warn",
1014
- "react-naming-convention/use-state": "off",
1015
- "react/avoid-shorthand-boolean": "error",
1016
- "react/function-component-definition": "off",
1017
- "react/no-array-index-key": "error",
1018
- "react/no-children-count": "off",
1019
- "react/no-children-only": "off",
1020
- "react/no-children-prop": "error",
1021
- "react/no-clone-element": "off",
1022
- "react/no-complex-conditional-rendering": "warn",
1023
- "react/no-missing-component-display-name": "error",
1024
- "react/no-useless-fragment": "error",
1025
- "react/prefer-destructuring-assignment": "error",
1026
- "react/prefer-read-only-props": "off",
1027
- "react/prefer-shorthand-fragment": "error",
1028
- ...overrides
1029
- }
991
+ settings: recommendedReactConfig.settings
992
+ }, {
993
+ files,
994
+ languageOptions: { parserOptions: {
995
+ ecmaFeatures: { jsx: true },
996
+ sourceType: "module",
997
+ ...typescript$1 && { parser: (await interopDefault(import("typescript-eslint"))).parser }
998
+ } },
999
+ name: "zayne/react/setup-processor"
1000
+ }, {
1001
+ files,
1002
+ name: "zayne/react/recommended",
1003
+ rules: renameRules(recommendedReactConfig.rules, defaultPluginRenameMap)
1004
+ }, {
1005
+ files,
1006
+ name: "zayne/react/rules",
1007
+ rules: {
1008
+ "react-hooks-extra/no-unnecessary-use-callback": "warn",
1009
+ "react-hooks-extra/no-unnecessary-use-memo": "warn",
1010
+ "react-hooks-extra/no-unnecessary-use-prefix": "error",
1011
+ "react-hooks-extra/prefer-use-state-lazy-initialization": "error",
1012
+ "react-hooks/exhaustive-deps": "warn",
1013
+ "react-hooks/rules-of-hooks": "error",
1014
+ "react-naming-convention/component-name": "warn",
1015
+ "react-naming-convention/use-state": "off",
1016
+ "react/avoid-shorthand-boolean": "error",
1017
+ "react/function-component-definition": "off",
1018
+ "react/no-array-index-key": "error",
1019
+ "react/no-children-count": "off",
1020
+ "react/no-children-only": "off",
1021
+ "react/no-children-prop": "error",
1022
+ "react/no-clone-element": "off",
1023
+ "react/no-complex-conditional-rendering": "warn",
1024
+ "react/no-missing-component-display-name": "error",
1025
+ "react/no-useless-fragment": "error",
1026
+ "react/prefer-destructuring-assignment": "error",
1027
+ "react/prefer-read-only-props": "off",
1028
+ "react/prefer-shorthand-fragment": "error",
1029
+ ...overrides,
1030
+ ...isObject$1(enableReact) && enableReact.overrides
1030
1031
  }
1031
- ];
1032
+ });
1032
1033
  if (refresh && eslintPluginReactRefresh) config.push({
1033
1034
  files,
1034
1035
  name: "zayne/react/refresh",
1035
1036
  plugins: { "react-refresh": eslintPluginReactRefresh },
1036
- rules: { "react-refresh/only-export-components": ["warn", {
1037
- allowConstantExport: isAllowConstantExport,
1038
- allowExportNames: [...isUsingNext ? allowedNextJsExportNames : [], ...isUsingReactRouter ? allowedReactRouterExportNames : []]
1039
- }] }
1037
+ rules: {
1038
+ "react-refresh/only-export-components": ["warn", {
1039
+ allowConstantExport: isAllowConstantExport,
1040
+ allowExportNames: [...isUsingNext ? allowedNextJsExportNames : [], ...isUsingReactRouter ? allowedReactRouterExportNames : []]
1041
+ }],
1042
+ ...overrides,
1043
+ ...isObject$1(refresh) && refresh.overrides
1044
+ }
1040
1045
  });
1041
1046
  if (compiler) config.push({
1042
1047
  files,
1043
1048
  name: "zayne/react/compiler",
1044
- rules: { "react-hooks/react-compiler": "error" }
1049
+ rules: {
1050
+ "react-hooks/react-compiler": "error",
1051
+ ...overrides,
1052
+ ...isObject$1(compiler) && compiler.overrides
1053
+ }
1045
1054
  });
1046
1055
  if (nextjs && eslintPluginNextjs) config.push({
1047
1056
  files,
@@ -1049,7 +1058,9 @@ const react = async (options = {}) => {
1049
1058
  plugins: { "nextjs-next": fixupPluginRules(eslintPluginNextjs) },
1050
1059
  rules: renameRules({
1051
1060
  ...eslintPluginNextjs.configs?.recommended?.rules,
1052
- ...eslintPluginNextjs.configs?.["core-web-vitals"]?.rules
1061
+ ...eslintPluginNextjs.configs?.["core-web-vitals"]?.rules,
1062
+ ...overrides,
1063
+ ...isObject$1(nextjs) && nextjs.overrides
1053
1064
  }, defaultPluginRenameMap)
1054
1065
  });
1055
1066
  return config;
@@ -1401,7 +1412,10 @@ const tanstack = async (options = {}) => {
1401
1412
  rules: renameRules(eslintPluginTanstackQuery.configs["flat/recommended"][0]?.rules, defaultPluginRenameMap)
1402
1413
  }, {
1403
1414
  name: "zayne/tanstack-query/rules",
1404
- rules: { ...overrides }
1415
+ rules: {
1416
+ ...overrides,
1417
+ ...isObject(query) && query.overrides
1418
+ }
1405
1419
  });
1406
1420
  if (router && eslintPluginTanstackRouter) config.push({
1407
1421
  name: "zayne/tanstack-router/recommended",
@@ -1409,7 +1423,10 @@ const tanstack = async (options = {}) => {
1409
1423
  rules: renameRules(eslintPluginTanstackRouter.configs["flat/recommended"][0]?.rules, defaultPluginRenameMap)
1410
1424
  }, {
1411
1425
  name: "zayne/tanstack-router/rules",
1412
- rules: { ...overrides }
1426
+ rules: {
1427
+ ...overrides,
1428
+ ...isObject(router) && router.overrides
1429
+ }
1413
1430
  });
1414
1431
  return config;
1415
1432
  };
@@ -1942,5 +1959,5 @@ const zayne = (options = {}, ...userConfigs) => {
1942
1959
  };
1943
1960
 
1944
1961
  //#endregion
1945
- export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLES, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, astro, combine, comments, depend, ensurePackages, expo, gitIgnores, ignores, imports, interopDefault, isObject, isPackageInScope, javascript, jsdoc, jsonc, node, perfectionist, pnpm, react, renamePluginInConfigs, renamePlugins, renameRules, resolveOptions, solid, sortPackageJson, sortTsconfig, stylistic, tailwindcssBetter, tanstack, toml, typescript, unicorn, vue, yaml, zayne };
1962
+ export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLES, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, allowedNextJsExportNames, allowedReactRouterExportNames, astro, combine, comments, defaultPluginRenameMap, depend, ensurePackages, expo, gitIgnores, ignores, imports, interopDefault, isObject, isPackageInScope, javascript, jsdoc, jsonc, node, perfectionist, pnpm, react, renamePluginInConfigs, renamePlugins, renameRules, resolveOptions, solid, sortPackageJson, sortTsconfig, stylistic, tailwindcssBetter, tanstack, toml, typescript, unicorn, vue, yaml, zayne };
1946
1963
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["typescript","typescript","stylistic","stylistic","stylistic","config: TypedFlatConfigItem[]","typescript","config: TypedFlatConfigItem[]","typescript","jsx","config: TypedFlatConfigItem[]","stylistic","ignores","stylistic","typescript","stylistic","stylistic","configs: Array<Awaitable<TypedFlatConfigItem[]>>"],"sources":["../src/globs.ts","../src/utils.ts","../src/configs/astro.ts","../src/configs/comments.ts","../src/configs/depend.ts","../src/configs/expo.ts","../src/configs/ignores.ts","../src/configs/imports.ts","../src/configs/javascript.ts","../src/configs/jsdoc.ts","../src/configs/jsonc.ts","../src/configs/node.ts","../src/configs/perfectionist.ts","../src/configs/pnpm.ts","../src/constants.ts","../src/configs/react.ts","../src/configs/solid.ts","../src/configs/sort.ts","../src/configs/stylistic.ts","../src/configs/tailwindcss.ts","../src/configs/tanstack.ts","../src/configs/toml.ts","../src/configs/typescript.ts","../src/configs/unicorn.ts","../src/configs/vue.ts","../src/configs/yaml.ts","../src/configs/jsx.ts","../src/factory.ts"],"sourcesContent":["import { defineEnum } from \"@zayne-labs/toolkit-type-helpers\";\n\nexport const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = \"**/*.?([cm])[jt]s?(x)\";\n\nexport const GLOB_JS = \"**/*.?([cm])js\";\nexport const GLOB_JSX = \"**/*.?([cm])jsx\";\n\nexport const GLOB_TS = \"**/*.?([cm])ts\";\nexport const GLOB_TSX = \"**/*.?([cm])tsx\";\n\nexport const GLOB_STYLES = \"**/*.{c,le,sc}ss\";\nexport const GLOB_CSS = \"**/*.css\";\nexport const GLOB_POSTCSS = \"**/*.{p,post}css\";\nexport const GLOB_LESS = \"**/*.less\";\nexport const GLOB_SCSS = \"**/*.scss\";\n\nexport const GLOB_JSON = \"**/*.json\";\nexport const GLOB_JSON5 = \"**/*.json5\";\nexport const GLOB_JSONC = \"**/*.jsonc\";\n\nexport const GLOB_MARKDOWN = \"**/*.md\";\nexport const GLOB_MARKDOWN_IN_MARKDOWN = \"**/*.md/*.md\";\nexport const GLOB_SVELTE = \"**/*.svelte\";\nexport const GLOB_VUE = \"**/*.vue\";\nexport const GLOB_YAML = \"**/*.y?(a)ml\";\nexport const GLOB_TOML = \"**/*.toml\";\nexport const GLOB_XML = \"**/*.xml\";\nexport const GLOB_SVG = \"**/*.svg\";\nexport const GLOB_HTML = \"**/*.htm?(l)\";\nexport const GLOB_ASTRO = \"**/*.astro\";\nexport const GLOB_ASTRO_TS = \"**/*.astro/*.ts\";\nexport const GLOB_GRAPHQL = \"**/*.{g,graph}ql\";\n\nexport const GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;\n\nexport const GLOB_TESTS = defineEnum([\n\t`**/__tests__/**/*.${GLOB_SRC_EXT}`,\n\t`**/*.spec.${GLOB_SRC_EXT}`,\n\t`**/*.test.${GLOB_SRC_EXT}`,\n\t`**/*.bench.${GLOB_SRC_EXT}`,\n\t`**/*.benchmark.${GLOB_SRC_EXT}`,\n]);\n\nexport const GLOB_ALL_SRC = [\n\tGLOB_SRC,\n\tGLOB_STYLES,\n\tGLOB_JSON,\n\tGLOB_JSON5,\n\tGLOB_MARKDOWN,\n\tGLOB_SVELTE,\n\tGLOB_VUE,\n\tGLOB_YAML,\n\tGLOB_XML,\n\tGLOB_HTML,\n];\n\nexport const GLOB_EXCLUDE = defineEnum([\n\t\"**/node_modules\",\n\t\"**/dist\",\n\t\"**/package-lock.json\",\n\t\"**/yarn.lock\",\n\t\"**/pnpm-lock.yaml\",\n\t\"**/bun.lockb\",\n\n\t\"**/output\",\n\t\"**/coverage\",\n\t\"**/temp\",\n\t\"**/.temp\",\n\t\"**/tmp\",\n\t\"**/.tmp\",\n\t\"**/.history\",\n\t\"**/.vitepress/cache\",\n\t\"**/.nuxt\",\n\t\"**/.next\",\n\t\"**/.svelte-kit\",\n\t\"**/.vercel\",\n\t\"**/.changeset\",\n\t\"**/.idea\",\n\t\"**/.cache\",\n\t\"**/.output\",\n\t\"**/.vite-inspect\",\n\t\"**/.yarn\",\n\t\"**/vite.config.*.timestamp-*\",\n\n\t\"**/CHANGELOG*.md\",\n\t\"**/*.min.*\",\n\t\"**/LICENSE*\",\n\t\"**/__snapshots__\",\n\t\"**/auto-import?(s).d.ts\",\n\t\"**/components.d.ts\",\n]);\n","import { fileURLToPath } from \"node:url\";\nimport type { ESLint } from \"eslint\";\nimport { isPackageExists } from \"local-pkg\";\nimport type { Awaitable, TypedFlatConfigItem } from \"./types\";\n\nexport const isObject = <TObject extends object>(value: unknown): value is TObject => {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\n/**\n * @description - Combine array and non-array configs into a single array.\n */\nexport const combine = async (\n\t...configs: Array<Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[]>>\n): Promise<TypedFlatConfigItem[]> => {\n\tconst resolved = await Promise.all(configs);\n\n\treturn resolved.flat();\n};\n\nexport const interopDefault = async <TModule>(\n\tmodule: Awaitable<TModule>\n): Promise<TModule extends { default: infer TDefaultExport } ? TDefaultExport : TModule> => {\n\tconst resolved = await module;\n\n\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition -- casting is necessary to prevent assignability ts issues at call-site\n\treturn (resolved as { default: never }).default ?? resolved;\n};\n\n/**\n * @description - Rename plugin prefixes in a rule object.\n * Accepts a map of prefixes to rename.\n *\n * @example\n * ```ts\n * import { renameRules } from '@zayne-labs/eslint-config'\n *\n * export default [{\n * rules: renameRules(\n * {\n * '@typescript-eslint/indent': 'error'\n * },\n * { '@typescript-eslint': 'ts' }\n * )\n * }]\n * ```\n */\nexport const renameRules = (\n\trules: Record<string, unknown> | undefined,\n\trenameMap: Record<string, string>\n): TypedFlatConfigItem[\"rules\"] | undefined => {\n\tif (!rules) return;\n\n\tconst renamedRulesEntries = Object.entries(rules).map(([ruleKey, ruleValue]) => {\n\t\tfor (const [oldRuleName, newRuleName] of Object.entries(renameMap)) {\n\t\t\tif (ruleKey.startsWith(`${oldRuleName}/`)) {\n\t\t\t\treturn [`${newRuleName}${ruleKey.slice(oldRuleName.length)}`, ruleValue];\n\t\t\t}\n\t\t}\n\n\t\treturn [ruleKey, ruleValue];\n\t});\n\n\treturn Object.fromEntries(renamedRulesEntries) as TypedFlatConfigItem[\"rules\"];\n};\n\nexport const renamePlugins = (\n\tplugins: Record<string, unknown> | undefined,\n\trenameMap: Record<string, string>\n): Record<string, ESLint.Plugin> | undefined => {\n\tif (!plugins) return;\n\n\tconst renamedPluginEntries = Object.entries(plugins).map(([pluginKey, pluginValue]) => {\n\t\tif (pluginKey in renameMap) {\n\t\t\treturn [renameMap[pluginKey], pluginValue];\n\t\t}\n\n\t\treturn [pluginKey, pluginValue];\n\t});\n\n\treturn Object.fromEntries(renamedPluginEntries) as Record<string, ESLint.Plugin>;\n};\n\n/**\n * @description - Rename plugin names a flat configs array\n *\n * @example\n * ```ts\n * import { renamePluginInConfigs } from '@zayne-labs/eslint-config'\n * import someConfigs from './some-configs'\n *\n * export default renamePluginInConfigs(someConfigs, {\n * '@typescript-eslint': 'ts',\n * 'import-x': 'import',\n * })\n * ```\n */\nexport const renamePluginInConfigs = (options: {\n\tconfigs: TypedFlatConfigItem[];\n\toverrides?: TypedFlatConfigItem;\n\trenameMap: Record<string, string>;\n}): TypedFlatConfigItem[] => {\n\tconst { configs, overrides, renameMap } = options;\n\n\tconst renamedConfigs = configs.map((config) => ({\n\t\t...config,\n\t\t...overrides,\n\n\t\t...(isObject(config.plugins) && {\n\t\t\tplugins: renamePlugins(config.plugins, renameMap),\n\t\t}),\n\t\t...(isObject(config.rules) && {\n\t\t\trules: renameRules(config.rules, renameMap),\n\t\t}),\n\t}));\n\n\treturn renamedConfigs;\n};\n\nconst scopeUrl = fileURLToPath(new URL(\".\", import.meta.url));\nconst isCwdInScope = isPackageExists(\"@zayne-labs/eslint-config\");\n\nexport const isPackageInScope = (name: string): boolean => isPackageExists(name, { paths: [scopeUrl] });\n\n/**\n * @description\n * - Ensures that packages are installed in the current scope.\n * - If they are not installed, and the user is in a TTY, and the user is not in a CI environment,\n * and the user is in the same scope as this package, then prompt the user to\n * install the packages.\n *\n * @param packages - The packages to ensure are installed.\n */\nexport const ensurePackages = async (packages: Array<string | undefined>): Promise<void> => {\n\tif (process.env.CI || !process.stdout.isTTY || !isCwdInScope) return;\n\n\tconst nonExistingPackages = packages.filter((pkg) => pkg && !isPackageInScope(pkg));\n\n\tif (nonExistingPackages.length === 0) return;\n\n\tconst clackPrompt = await import(\"@clack/prompts\");\n\n\tconst result = await clackPrompt.confirm({\n\t\tmessage: `${nonExistingPackages.length === 1 ? \"Package is\" : \"Packages are\"} required for this config: ${nonExistingPackages.join(\", \")}. Do you want to install them?`,\n\t});\n\n\tif (result) {\n\t\tconst antfuPkg = await import(\"@antfu/install-pkg\");\n\n\t\tawait antfuPkg.installPackage(nonExistingPackages as string[], { dev: true });\n\t}\n};\n\nexport const resolveOptions = <TObject>(option: boolean | TObject | undefined) =>\n\tisObject(option) ? option : ({} as TObject);\n\n// type OverrideOptions<TConfigName extends string> = UnionDiscriminator<\n// \t[{ name: TConfigName }, { configName: TConfigName }]\n// > & {\n// \t// files?: string[];\n// \toverrides: TypedFlatConfigItem[\"rules\"];\n// };\n\n// export const createOverrideRules = <TConfigName extends string>(options: OverrideOptions<TConfigName>) => {\n// \tconst { configName, name, overrides } = options;\n\n// \tif (!isObject(overrides)) {\n// \t\treturn {} as never;\n// \t}\n\n// \treturn defineEnum({\n// \t\t// ...(files && { files }),\n// \t\tname: name ? `zayne/${name}` : `zayne/${configName}/rules/overrides`,\n// \t\trules: overrides,\n// \t}) satisfies TypedFlatConfigItem;\n// };\n","import { GLOB_ASTRO } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\nimport { ensurePackages, interopDefault } from \"../utils\";\n\nexport const astro = async (\n\toptions: ExtractOptions<OptionsConfig[\"astro\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_ASTRO], overrides, typescript = true } = options;\n\n\tawait ensurePackages([\"eslint-plugin-astro\", \"astro-eslint-parser\"]);\n\n\tconst [pluginAstro, parserAstro] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-astro\")),\n\t\tinteropDefault(import(\"astro-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/astro/setup\",\n\n\t\t\tplugins: {\n\t\t\t\tastro: pluginAstro,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tglobals: pluginAstro.environments.astro.globals,\n\t\t\t\tparser: parserAstro,\n\t\t\t\tparserOptions: {\n\t\t\t\t\textraFileExtensions: [\".astro\"],\n\t\t\t\t\t// eslint-disable-next-line unicorn/no-await-expression-member -- ignore for now\n\t\t\t\t\t...(typescript && { parser: (await interopDefault(import(\"typescript-eslint\"))).parser }),\n\t\t\t\t},\n\t\t\t\tsourceType: \"module\",\n\t\t\t},\n\n\t\t\tname: \"zayne/astro/recommended\",\n\n\t\t\tprocessor: typescript ? \"astro/client-side-ts\" : \"astro/astro\",\n\n\t\t\trules: pluginAstro.configs.recommended.at(-1)?.rules,\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/astro/rules\",\n\n\t\t\trules: {\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { interopDefault } from \"@/utils\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\n\nexport const comments = async (\n\toptions: ExtractOptions<OptionsConfig[\"comments\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, type = \"app\" } = options;\n\n\tconst eslintPluginComments = await interopDefault(\n\t\timport(\"@eslint-community/eslint-plugin-eslint-comments\")\n\t);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/eslint-comments/rules\",\n\t\t\tplugins: {\n\t\t\t\t\"eslint-comments\": eslintPluginComments,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"eslint-comments/disable-enable-pair\": [\"error\", { allowWholeFile: true }],\n\t\t\t\t\"eslint-comments/no-aggregating-enable\": \"error\",\n\t\t\t\t\"eslint-comments/no-duplicate-disable\": \"error\",\n\t\t\t\t\"eslint-comments/no-unlimited-disable\": \"error\",\n\t\t\t\t\"eslint-comments/no-unused-enable\": \"error\",\n\n\t\t\t\t...(type !== \"app\" && {\n\t\t\t\t\t\"eslint-comments/require-description\": \"warn\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { GLOB_SRC } from \"@/globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault } from \"@/utils\";\n\nexport const depend = async (\n\toptions: ExtractOptions<OptionsConfig[\"depend\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_SRC], overrides } = options;\n\n\tawait ensurePackages([\"eslint-plugin-depend\"]);\n\n\tconst [eslintPluginDepend, jsoncParser] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-depend\")),\n\t\tinteropDefault(import(\"jsonc-eslint-parser\")),\n\t]);\n\n\ttype PossibleConfigShape = { \"flat/recommended\": TypedFlatConfigItem | undefined };\n\n\treturn [\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/depend/recommended\",\n\n\t\t\tplugins: {\n\t\t\t\tdepend: eslintPluginDepend,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t...(eslintPluginDepend.configs as PossibleConfigShape)[\"flat/recommended\"]?.rules,\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles: [\"package.json\", \"**/package.json\"],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: jsoncParser,\n\t\t\t},\n\n\t\t\tname: \"zayne/depend/recommended/package-json\",\n\n\t\t\tplugins: {\n\t\t\t\tdepend: eslintPluginDepend,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t...(eslintPluginDepend.configs as PossibleConfigShape)[\"flat/recommended\"]?.rules,\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault } from \"@/utils\";\n\nconst expo = async (\n\toptions: ExtractOptions<OptionsConfig[\"expo\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides } = options;\n\n\tawait ensurePackages([\"eslint-config-expo\"]);\n\n\tconst eslintConfigExpo = await interopDefault(import(\"eslint-config-expo/flat/default.js\"));\n\n\treturn [\n\t\teslintConfigExpo,\n\n\t\t{\n\t\t\tname: \"zayne/expo/rules\",\n\n\t\t\trules: { ...overrides },\n\t\t},\n\t];\n};\n\nexport { expo };\n","import { globalIgnores } from \"eslint/config\";\nimport { interopDefault } from \"@/utils\";\nimport { GLOB_EXCLUDE } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\n\nexport const ignores = (userIgnores: string[] = []): TypedFlatConfigItem[] => {\n\treturn [globalIgnores([...GLOB_EXCLUDE, ...userIgnores], \"zayne/defaults/ignores\")];\n};\n\nexport const gitIgnores = async (\n\toptions?: ExtractOptions<OptionsConfig[\"gitignore\"]>\n): Promise<TypedFlatConfigItem[]> => {\n\tconst antfuGitIgnore = await interopDefault(import(\"eslint-config-flat-gitignore\"));\n\n\tconst config = antfuGitIgnore({\n\t\tname: \"zayne/gitignore/setup\",\n\t\tstrict: false,\n\t\t...options,\n\t});\n\n\treturn [config];\n};\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst imports = async (\n\toptions: ExtractOptions<OptionsConfig[\"imports\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, stylistic = true, typescript = true } = options;\n\n\tconst eslintPluginImportX = await interopDefault(import(\"eslint-plugin-import-x\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/import/setup\",\n\n\t\t\tplugins: {\n\t\t\t\timport: eslintPluginImportX,\n\t\t\t},\n\n\t\t\t...(typescript && {\n\t\t\t\tsettings: eslintPluginImportX.flatConfigs.typescript.settings,\n\t\t\t}),\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/import/recommended\",\n\n\t\t\trules: {\n\t\t\t\t...eslintPluginImportX.flatConfigs.recommended.rules,\n\t\t\t\t...(typescript && eslintPluginImportX.flatConfigs.typescript.rules),\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/import/rules\",\n\n\t\t\trules: {\n\t\t\t\t// == This rules keeps giving issues, so off for now\n\t\t\t\t\"import/extensions\": \"off\",\n\t\t\t\t// \"import/extensions\": [\n\t\t\t\t// \t\"error\",\n\t\t\t\t// \t\"never\",\n\t\t\t\t// \t{ ignorePackages: true, pattern: { css: \"always\", png: \"always\", svg: \"always\" } },\n\t\t\t\t// ],\n\t\t\t\t\"import/first\": \"error\",\n\t\t\t\t\"import/no-absolute-path\": \"error\",\n\t\t\t\t// \"import/no-cycle\": [\"error\", { ignoreExternal: true, maxDepth: 3 }],\n\t\t\t\t\"import/no-duplicates\": \"error\",\n\t\t\t\t\"import/no-extraneous-dependencies\": [\"error\", { devDependencies: true }],\n\t\t\t\t\"import/no-mutable-exports\": \"error\",\n\t\t\t\t\"import/no-named-default\": \"error\",\n\t\t\t\t\"import/no-relative-packages\": \"error\",\n\t\t\t\t\"import/no-self-import\": \"error\",\n\n\t\t\t\t// == This rule keeps giving issues, so off for now\n\t\t\t\t\"import/no-unresolved\": \"off\",\n\n\t\t\t\t\"import/no-useless-path-segments\": \"error\",\n\n\t\t\t\t...(stylistic && { \"import/newline-after-import\": \"error\" }),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { imports };\n","import globals from \"globals\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst javascript = async (\n\toptions: ExtractOptions<OptionsConfig[\"javascript\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides } = options;\n\n\tconst eslintJs = await interopDefault(import(\"@eslint/js\"));\n\n\treturn [\n\t\t{\n\t\t\tlanguageOptions: {\n\t\t\t\tecmaVersion: \"latest\",\n\n\t\t\t\tglobals: {\n\t\t\t\t\t...globals.browser,\n\t\t\t\t\t...globals.node,\n\t\t\t\t\tdocument: \"readonly\",\n\t\t\t\t\tnavigator: \"readonly\",\n\t\t\t\t\twindow: \"readonly\",\n\t\t\t\t},\n\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaVersion: \"latest\",\n\t\t\t\t\tsourceType: \"module\",\n\t\t\t\t},\n\n\t\t\t\tsourceType: \"module\",\n\t\t\t},\n\n\t\t\tlinterOptions: {\n\t\t\t\treportUnusedDisableDirectives: true,\n\t\t\t},\n\n\t\t\tname: \"zayne/js-eslint/setup\",\n\t\t},\n\n\t\t{\n\t\t\t...eslintJs.configs.recommended,\n\n\t\t\tname: \"zayne/js-eslint/recommended\",\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/js-eslint/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"accessor-pairs\": [\"error\", { enforceForClassMembers: true, setWithoutGet: true }],\n\t\t\t\t\"array-callback-return\": [\"error\", { allowImplicit: true }],\n\t\t\t\t\"block-scoped-var\": \"error\",\n\t\t\t\t\"class-methods-use-this\": \"error\",\n\t\t\t\tcomplexity: [\"warn\", 50],\n\t\t\t\t\"constructor-super\": \"error\",\n\t\t\t\tcurly: [\"error\", \"multi-line\"],\n\t\t\t\t\"default-case\": [\"error\", { commentPattern: \"^no default$\" }],\n\t\t\t\t\"default-case-last\": \"error\",\n\t\t\t\t\"default-param-last\": \"error\",\n\t\t\t\t\"dot-notation\": [\"error\", { allowKeywords: true }],\n\t\t\t\teqeqeq: [\"error\", \"always\", { null: \"ignore\" }],\n\t\t\t\t\"grouped-accessor-pairs\": \"error\",\n\t\t\t\t\"logical-assignment-operators\": \"warn\",\n\t\t\t\t\"max-depth\": [\"error\", 2],\n\t\t\t\t\"new-cap\": [\"error\", { capIsNew: false, newIsCap: true, properties: true }],\n\t\t\t\t\"no-alert\": \"warn\",\n\t\t\t\t\"no-array-constructor\": \"error\",\n\t\t\t\t\"no-async-promise-executor\": \"error\",\n\t\t\t\t\"no-await-in-loop\": \"error\",\n\t\t\t\t\"no-caller\": \"error\",\n\t\t\t\t\"no-case-declarations\": \"error\",\n\t\t\t\t\"no-class-assign\": \"error\",\n\t\t\t\t\"no-compare-neg-zero\": \"error\",\n\t\t\t\t\"no-cond-assign\": [\"error\", \"always\"],\n\t\t\t\t\"no-console\": [\"error\", { allow: [\"warn\", \"error\", \"info\", \"trace\"] }],\n\t\t\t\t\"no-const-assign\": \"error\",\n\t\t\t\t\"no-constant-condition\": \"warn\",\n\t\t\t\t\"no-constructor-return\": \"error\",\n\t\t\t\t\"no-control-regex\": \"error\",\n\t\t\t\t\"no-debugger\": \"error\",\n\t\t\t\t\"no-delete-var\": \"error\",\n\t\t\t\t\"no-dupe-args\": \"error\",\n\t\t\t\t\"no-dupe-class-members\": \"error\",\n\t\t\t\t\"no-dupe-keys\": \"error\",\n\t\t\t\t\"no-duplicate-case\": \"error\",\n\t\t\t\t\"no-else-return\": [\"error\", { allowElseIf: false }],\n\t\t\t\t\"no-empty\": [\"error\", { allowEmptyCatch: true }],\n\t\t\t\t\"no-empty-character-class\": \"error\",\n\t\t\t\t\"no-empty-pattern\": \"error\",\n\t\t\t\t\"no-eval\": [\"error\", { allowIndirect: true }],\n\t\t\t\t\"no-ex-assign\": \"error\",\n\t\t\t\t\"no-extend-native\": \"error\",\n\t\t\t\t\"no-extra-bind\": \"error\",\n\t\t\t\t\"no-extra-boolean-cast\": \"error\",\n\t\t\t\t\"no-fallthrough\": \"error\",\n\t\t\t\t\"no-func-assign\": \"error\",\n\t\t\t\t\"no-global-assign\": \"error\",\n\t\t\t\t\"no-implicit-coercion\": \"warn\",\n\t\t\t\t\"no-implied-eval\": \"error\",\n\t\t\t\t\"no-import-assign\": \"error\",\n\t\t\t\t\"no-invalid-regexp\": \"error\",\n\t\t\t\t\"no-irregular-whitespace\": \"error\",\n\t\t\t\t\"no-iterator\": \"error\",\n\t\t\t\t\"no-labels\": [\"error\", { allowLoop: false, allowSwitch: false }],\n\t\t\t\t\"no-lone-blocks\": \"error\",\n\t\t\t\t\"no-loop-func\": \"error\",\n\t\t\t\t\"no-loss-of-precision\": \"error\",\n\t\t\t\t\"no-misleading-character-class\": \"error\",\n\t\t\t\t\"no-multi-str\": \"error\",\n\t\t\t\t\"no-new\": \"error\",\n\t\t\t\t\"no-new-func\": \"error\",\n\t\t\t\t\"no-new-native-nonconstructor\": \"error\",\n\t\t\t\t\"no-new-wrappers\": \"error\",\n\t\t\t\t\"no-obj-calls\": \"error\",\n\t\t\t\t\"no-octal\": \"error\",\n\t\t\t\t\"no-octal-escape\": \"error\",\n\t\t\t\t\"no-param-reassign\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tignorePropertyModificationsFor: [\n\t\t\t\t\t\t\t\"acc\", // for reduce accumulators\n\t\t\t\t\t\t\t\"accumulator\", // for reduce accumulators\n\t\t\t\t\t\t\t\"e\", // for e.returnvalue\n\t\t\t\t\t\t\t\"ctx\", // for Koa routing\n\t\t\t\t\t\t\t\"context\", // for Koa routing\n\t\t\t\t\t\t\t\"req\", // for Express requests\n\t\t\t\t\t\t\t\"request\", // for Express requests\n\t\t\t\t\t\t\t\"res\", // for Express responses\n\t\t\t\t\t\t\t\"response\", // for Express responses\n\t\t\t\t\t\t\t\"$scope\", // for Angular 1 scopes\n\t\t\t\t\t\t\t\"staticContext\", // for ReactRouter context\n\t\t\t\t\t\t],\n\t\t\t\t\t\tprops: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-proto\": \"error\",\n\t\t\t\t\"no-prototype-builtins\": \"error\",\n\t\t\t\t\"no-redeclare\": [\"error\", { builtinGlobals: false }],\n\t\t\t\t\"no-regex-spaces\": \"error\",\n\t\t\t\t\"no-restricted-exports\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\trestrictedNamedExports: [\n\t\t\t\t\t\t\t\"default\", // use `export default` to provide a default export\n\t\t\t\t\t\t\t\"then\", // this will cause tons of confusion when your module is dynamically `import()`ed, and will break in most node ESM versions\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-restricted-globals\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Use Number.isFinite instead https://github.com/airbnb/javascript#standard-library--isfinite\",\n\t\t\t\t\t\tname: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Use Number.isNaN instead https://github.com/airbnb/javascript#standard-library--isnan\",\n\t\t\t\t\t\tname: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{ message: \"Use `globalThis` instead.\", name: \"global\" },\n\t\t\t\t\t{ message: \"Use `globalThis` instead.\", name: \"self\" },\n\t\t\t\t],\n\t\t\t\t\"no-restricted-imports\": [\"off\", { paths: [], patterns: [] }],\n\t\t\t\t\"no-restricted-properties\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"arguments.callee is deprecated\",\n\t\t\t\t\t\tobject: \"arguments\",\n\t\t\t\t\t\tproperty: \"callee\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"global\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"self\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"window\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"global\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"self\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"window\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Use the exponentiation operator (**) instead.\",\n\t\t\t\t\t\tobject: \"Math\",\n\t\t\t\t\t\tproperty: \"pow\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.\",\n\t\t\t\t\t\tproperty: \"__proto__\",\n\t\t\t\t\t},\n\t\t\t\t\t{ message: \"Use `Object.defineProperty` instead.\", property: \"__defineGetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.defineProperty` instead.\", property: \"__defineSetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.getOwnPropertyDescriptor` instead.\", property: \"__lookupGetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.getOwnPropertyDescriptor` instead.\", property: \"__lookupSetter__\" },\n\t\t\t\t],\n\t\t\t\t\"no-restricted-syntax\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"ForInStatement\",\n\t\t\t\t\t\"LabeledStatement\",\n\t\t\t\t\t\"WithStatement\",\n\t\t\t\t\t\"TSEnumDeclaration[const=true]\",\n\t\t\t\t\t\"TSExportAssignment\",\n\t\t\t\t],\n\t\t\t\t\"no-return-assign\": [\"error\", \"except-parens\"],\n\t\t\t\t\"no-script-url\": \"error\",\n\t\t\t\t\"no-self-assign\": [\"error\", { props: true }],\n\t\t\t\t\"no-self-compare\": \"error\",\n\t\t\t\t\"no-sequences\": \"error\",\n\t\t\t\t\"no-shadow-restricted-names\": \"error\",\n\t\t\t\t\"no-sparse-arrays\": \"error\",\n\t\t\t\t\"no-template-curly-in-string\": \"error\",\n\t\t\t\t\"no-this-before-super\": \"error\",\n\t\t\t\t\"no-throw-literal\": \"error\",\n\t\t\t\t\"no-undef\": \"error\",\n\t\t\t\t\"no-undef-init\": \"error\",\n\t\t\t\t\"no-unexpected-multiline\": \"error\",\n\t\t\t\t\"no-unmodified-loop-condition\": \"error\",\n\t\t\t\t\"no-unneeded-ternary\": [\"warn\", { defaultAssignment: false }],\n\t\t\t\t\"no-unreachable\": \"error\",\n\t\t\t\t\"no-unreachable-loop\": \"error\",\n\t\t\t\t\"no-unsafe-finally\": \"error\",\n\t\t\t\t\"no-unsafe-negation\": \"error\",\n\t\t\t\t\"no-unused-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowShortCircuit: true,\n\t\t\t\t\t\tallowTaggedTemplates: true,\n\t\t\t\t\t\tallowTernary: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-unused-vars\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\targs: \"all\",\n\t\t\t\t\t\targsIgnorePattern: \"^_\",\n\t\t\t\t\t\tcaughtErrors: \"all\",\n\t\t\t\t\t\tdestructuredArrayIgnorePattern: \"^_\",\n\t\t\t\t\t\treportUsedIgnorePattern: true,\n\t\t\t\t\t\tvars: \"all\",\n\t\t\t\t\t\tvarsIgnorePattern: \"[iI]gnored\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-useless-backreference\": \"error\",\n\t\t\t\t\"no-useless-call\": \"error\",\n\t\t\t\t\"no-useless-catch\": \"error\",\n\t\t\t\t\"no-useless-computed-key\": \"error\",\n\t\t\t\t\"no-useless-concat\": \"error\",\n\t\t\t\t\"no-useless-constructor\": \"error\",\n\t\t\t\t\"no-useless-rename\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{ ignoreDestructuring: false, ignoreExport: false, ignoreImport: false },\n\t\t\t\t],\n\t\t\t\t\"no-useless-return\": \"error\",\n\t\t\t\t\"no-var\": \"error\",\n\t\t\t\t\"no-with\": \"error\",\n\t\t\t\t\"object-shorthand\": [\"error\", \"always\", { avoidQuotes: true, ignoreConstructors: false }],\n\t\t\t\t\"one-var\": [\"error\", { initialized: \"never\" }],\n\t\t\t\t\"operator-assignment\": \"warn\",\n\t\t\t\t\"prefer-arrow-callback\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowNamedFunctions: false,\n\t\t\t\t\t\tallowUnboundThis: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"prefer-const\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tdestructuring: \"all\",\n\t\t\t\t\t\tignoreReadBeforeAssign: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"prefer-exponentiation-operator\": \"error\",\n\t\t\t\t\"prefer-object-has-own\": \"error\",\n\t\t\t\t\"prefer-object-spread\": \"warn\",\n\t\t\t\t\"prefer-promise-reject-errors\": \"error\",\n\t\t\t\t\"prefer-regex-literals\": [\"error\", { disallowRedundantWrapping: true }],\n\t\t\t\t\"prefer-rest-params\": \"error\",\n\t\t\t\t\"prefer-spread\": \"error\",\n\t\t\t\t\"prefer-template\": \"error\",\n\t\t\t\tradix: \"error\",\n\t\t\t\t\"symbol-description\": \"error\",\n\t\t\t\t\"unicode-bom\": [\"error\", \"never\"],\n\t\t\t\t\"use-isnan\": [\"error\", { enforceForIndexOf: true, enforceForSwitchCase: true }],\n\t\t\t\t\"valid-typeof\": [\"error\", { requireStringLiterals: true }],\n\t\t\t\t\"vars-on-top\": \"error\",\n\t\t\t\tyoda: [\"error\", \"never\"],\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { javascript };\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst jsdoc = async (\n\toptions: ExtractOptions<OptionsConfig[\"jsdoc\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, stylistic = true } = options;\n\n\tconst eslintPluginJsdoc = await interopDefault(import(\"eslint-plugin-jsdoc\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/jsdoc/rules\",\n\n\t\t\tplugins: {\n\t\t\t\tjsdoc: eslintPluginJsdoc,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"jsdoc/check-access\": \"warn\",\n\t\t\t\t\"jsdoc/check-param-names\": \"warn\",\n\t\t\t\t\"jsdoc/check-property-names\": \"warn\",\n\t\t\t\t\"jsdoc/check-types\": \"warn\",\n\t\t\t\t\"jsdoc/empty-tags\": \"warn\",\n\t\t\t\t\"jsdoc/implements-on-classes\": \"warn\",\n\t\t\t\t\"jsdoc/no-defaults\": \"warn\",\n\t\t\t\t\"jsdoc/no-multi-asterisks\": \"warn\",\n\t\t\t\t\"jsdoc/require-description\": [\"warn\", { descriptionStyle: \"any\" }],\n\t\t\t\t\"jsdoc/require-param-name\": \"warn\",\n\t\t\t\t\"jsdoc/require-property\": \"warn\",\n\t\t\t\t\"jsdoc/require-property-description\": \"warn\",\n\t\t\t\t\"jsdoc/require-property-name\": \"warn\",\n\t\t\t\t\"jsdoc/require-returns-check\": \"warn\",\n\t\t\t\t\"jsdoc/require-returns-description\": \"warn\",\n\t\t\t\t\"jsdoc/require-yields-check\": \"warn\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"jsdoc/check-alignment\": \"warn\",\n\t\t\t\t\t\"jsdoc/multiline-blocks\": \"warn\",\n\t\t\t\t\t\"jsdoc/require-description\": [\"warn\", { descriptionStyle: \"tag\" }],\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { jsdoc };\n","import { GLOB_JSON, GLOB_JSON5, GLOB_JSONC } from \"@/globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst jsonc = async (\n\toptions: ExtractOptions<OptionsConfig[\"jsonc\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_JSON, GLOB_JSON5, GLOB_JSONC], overrides, stylistic = true } = options;\n\n\tconst [eslintPluginJsonc, jsoncParser] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-jsonc\")),\n\t\tinteropDefault(import(\"jsonc-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/jsonc/setup\",\n\n\t\t\tplugins: {\n\t\t\t\tjsonc: eslintPluginJsonc,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: jsoncParser,\n\t\t\t},\n\n\t\t\tname: \"zayne/jsonc/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"jsonc/no-bigint-literals\": \"error\",\n\t\t\t\t\"jsonc/no-binary-expression\": \"error\",\n\t\t\t\t\"jsonc/no-binary-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-dupe-keys\": \"error\",\n\t\t\t\t\"jsonc/no-escape-sequence-in-identifier\": \"error\",\n\t\t\t\t\"jsonc/no-floating-decimal\": \"error\",\n\t\t\t\t\"jsonc/no-hexadecimal-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-infinity\": \"error\",\n\t\t\t\t\"jsonc/no-multi-str\": \"error\",\n\t\t\t\t\"jsonc/no-nan\": \"error\",\n\t\t\t\t\"jsonc/no-number-props\": \"error\",\n\t\t\t\t\"jsonc/no-numeric-separators\": \"error\",\n\t\t\t\t\"jsonc/no-octal\": \"error\",\n\t\t\t\t\"jsonc/no-octal-escape\": \"error\",\n\t\t\t\t\"jsonc/no-octal-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-parenthesized\": \"error\",\n\t\t\t\t\"jsonc/no-plus-sign\": \"error\",\n\t\t\t\t\"jsonc/no-regexp-literals\": \"error\",\n\t\t\t\t\"jsonc/no-sparse-arrays\": \"error\",\n\t\t\t\t\"jsonc/no-template-literals\": \"error\",\n\t\t\t\t\"jsonc/no-undefined-value\": \"error\",\n\t\t\t\t\"jsonc/no-unicode-codepoint-escapes\": \"error\",\n\t\t\t\t\"jsonc/no-useless-escape\": \"error\",\n\t\t\t\t\"jsonc/space-unary-ops\": \"error\",\n\t\t\t\t\"jsonc/valid-json-number\": \"error\",\n\t\t\t\t\"jsonc/vue-custom-block/no-parsing-error\": \"error\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"jsonc/array-bracket-spacing\": [\"error\", \"never\"],\n\t\t\t\t\t\"jsonc/comma-dangle\": [\"error\", \"never\"],\n\t\t\t\t\t\"jsonc/comma-style\": [\"error\", \"last\"],\n\t\t\t\t\t\"jsonc/key-spacing\": [\"error\", { afterColon: true, beforeColon: false }],\n\t\t\t\t\t\"jsonc/object-curly-newline\": [\"error\", { consistent: true, multiline: true }],\n\t\t\t\t\t\"jsonc/object-curly-spacing\": [\"error\", \"always\"],\n\t\t\t\t\t\"jsonc/object-property-newline\": [\"error\", { allowMultiplePropertiesPerLine: true }],\n\t\t\t\t\t\"jsonc/quote-props\": \"error\",\n\t\t\t\t\t\"jsonc/quotes\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { jsonc };\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault, renameRules } from \"@/utils\";\n\nexport const node = async (\n\toptions: ExtractOptions<OptionsConfig[\"node\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, security = false, type = \"app\" } = options;\n\n\tconst [eslintPluginNode, eslintPluginSecurity] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-n\")),\n\t\tsecurity ? interopDefault(import(\"eslint-plugin-security\")) : undefined,\n\t]);\n\n\tconst config: TypedFlatConfigItem[] = [\n\t\t{\n\t\t\tname: \"zayne/node/recommended\",\n\n\t\t\tplugins: {\n\t\t\t\tnode: eslintPluginNode,\n\t\t\t},\n\n\t\t\trules: renameRules(eslintPluginNode.configs[\"flat/recommended-module\"].rules, {\n\t\t\t\tn: \"node\",\n\t\t\t}),\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/node/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"node/no-deprecated-api\": \"error\",\n\t\t\t\t\"node/no-exports-assign\": \"error\",\n\t\t\t\t\"node/no-extraneous-import\": \"off\", // `eslint-plugin-import-x` handles this\n\t\t\t\t\"node/no-missing-import\": \"off\",\n\t\t\t\t\"node/no-path-concat\": \"error\",\n\t\t\t\t\"node/no-unpublished-import\": \"off\",\n\t\t\t\t\"node/no-unsupported-features/es-syntax\": \"off\",\n\t\t\t\t\"node/no-unsupported-features/node-builtins\": \"off\",\n\t\t\t\t\"node/process-exit-as-throw\": \"error\",\n\n\t\t\t\t...(type === \"app-strict\" && {\n\t\t\t\t\t\"node/no-process-env\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...(type === \"lib-strict\" && {\n\t\t\t\t\t\"node/no-unsupported-features/es-syntax\": \"error\",\n\t\t\t\t\t\"node/no-unsupported-features/node-builtins\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n\n\tif (security && eslintPluginSecurity) {\n\t\tconfig.push({\n\t\t\tname: \"zayne/node/security/recommended\",\n\n\t\t\tplugins: {\n\t\t\t\tsecurity: eslintPluginSecurity,\n\t\t\t},\n\n\t\t\trules: eslintPluginSecurity.configs.recommended.rules,\n\t\t});\n\t}\n\n\treturn config;\n};\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst perfectionist = async (\n\toptions: ExtractOptions<OptionsConfig[\"perfectionist\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides } = options;\n\n\tconst eslintPluginPerfectionist = await interopDefault(import(\"eslint-plugin-perfectionist\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/perfectionist/rules\",\n\n\t\t\tplugins: {\n\t\t\t\tperfectionist: eslintPluginPerfectionist,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"perfectionist/sort-array-includes\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-classes\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-interfaces\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-intersection-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t\"conditional\",\n\t\t\t\t\t\t\t\"literal\",\n\t\t\t\t\t\t\t\"import\",\n\t\t\t\t\t\t\t\"intersection\",\n\t\t\t\t\t\t\t\"keyword\",\n\t\t\t\t\t\t\t\"tuple\",\n\t\t\t\t\t\t\t\"named\",\n\t\t\t\t\t\t\t\"object\",\n\t\t\t\t\t\t\t\"function\",\n\t\t\t\t\t\t\t\"operator\",\n\t\t\t\t\t\t\t\"union\",\n\t\t\t\t\t\t\t\"nullish\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-maps\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-object-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-objects\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-switch-case\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-union-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t\"conditional\",\n\t\t\t\t\t\t\t\"literal\",\n\t\t\t\t\t\t\t\"import\",\n\t\t\t\t\t\t\t\"intersection\",\n\t\t\t\t\t\t\t\"keyword\",\n\t\t\t\t\t\t\t\"tuple\",\n\t\t\t\t\t\t\t\"named\",\n\t\t\t\t\t\t\t\"object\",\n\t\t\t\t\t\t\t\"function\",\n\t\t\t\t\t\t\t\"operator\",\n\t\t\t\t\t\t\t\"union\",\n\t\t\t\t\t\t\t\"nullish\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"perfectionist/sort-variable-declarations\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t// \"perfectionist/sort-svelte-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-astro-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-vue-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-jsx-props\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\t// ignorePattern: [\"src\"],\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { perfectionist };\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault } from \"@/utils\";\n\nexport async function pnpm(\n\toptions: ExtractOptions<OptionsConfig[\"pnpm\"]> = {}\n): Promise<TypedFlatConfigItem[]> {\n\tconst { overrides } = options;\n\n\tawait ensurePackages([\"eslint-plugin-pnpm\"]);\n\n\tconst [eslintPluginPnpm, yamlParser, jsoncParser] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-pnpm\")),\n\t\tinteropDefault(import(\"yaml-eslint-parser\")),\n\t\tinteropDefault(import(\"jsonc-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tfiles: [\"package.json\", \"**/package.json\"],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: jsoncParser,\n\t\t\t},\n\n\t\t\tname: \"zayne/pnpm/rules/package-json\",\n\n\t\t\tplugins: {\n\t\t\t\tpnpm: eslintPluginPnpm,\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t\"pnpm/json-enforce-catalog\": \"error\",\n\t\t\t\t\"pnpm/json-prefer-workspace-settings\": \"error\",\n\t\t\t\t\"pnpm/json-valid-catalog\": \"error\",\n\n\t\t\t\t...overrides?.json,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles: [\"pnpm-workspace.yaml\"],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: yamlParser,\n\t\t\t},\n\n\t\t\tname: \"zayne/pnpm/rules/pnpm-workspace-yaml\",\n\n\t\t\tplugins: {\n\t\t\t\tpnpm: eslintPluginPnpm,\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t\"pnpm/yaml-no-duplicate-catalog-item\": \"error\",\n\t\t\t\t\"pnpm/yaml-no-unused-catalog-item\": \"error\",\n\n\t\t\t\t...overrides?.yaml,\n\t\t\t},\n\t\t},\n\t];\n}\n","import { defineEnum } from \"@zayne-labs/toolkit-type-helpers\";\n\nexport const defaultPluginRenameMap = defineEnum({\n\t\"@eslint-react/debug\": \"react-debug\",\n\t\"@eslint-react/dom\": \"react-dom\",\n\t\"@eslint-react/hooks-extra\": \"react-hooks-extra\",\n\t\"@eslint-react/naming-convention\": \"react-naming-convention\",\n\t\"@eslint-react/web-api\": \"react-web-api\",\n\t/* eslint-disable perfectionist/sort-objects -- @eslint-react has to be below the rest to avoid plugin rename issues */\n\t\"@eslint-react\": \"react\",\n\t/* eslint-enable perfectionist/sort-objects -- @eslint-react has to be below the rest to avoid plugin rename issues */\n\n\t\"@next/next\": \"nextjs-next\",\n\n\t\"@stylistic\": \"stylistic\",\n\n\t\"@tanstack/query\": \"tanstack-query\",\n\n\t\"@tanstack/router\": \"tanstack-router\",\n\n\t\"@typescript-eslint\": \"ts-eslint\",\n\n\t\"better-tailwindcss\": \"tailwindcss-better\",\n\n\t\"import-x\": \"import\",\n\n\tn: \"node\",\n});\n\nexport const allowedNextJsExportNames = [\n\t\"dynamic\",\n\t\"dynamicParams\",\n\t\"revalidate\",\n\t\"fetchCache\",\n\t\"runtime\",\n\t\"preferredRegion\",\n\t\"maxDuration\",\n\t\"config\",\n\t\"generateStaticParams\",\n\t\"metadata\",\n\t\"generateMetadata\",\n\t\"viewport\",\n\t\"generateViewport\",\n];\n\nexport const allowedReactRouterExportNames = [\"meta\", \"links\", \"headers\", \"loader\", \"action\"];\n","import { fixupPluginRules } from \"@eslint/compat\";\nimport { isPackageExists } from \"local-pkg\";\nimport {\n\tallowedNextJsExportNames,\n\tallowedReactRouterExportNames,\n\tdefaultPluginRenameMap,\n} from \"@/constants\";\nimport { GLOB_SRC } from \"@/globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault, renamePlugins, renameRules } from \"@/utils\";\n\n// React refresh\nconst ReactRefreshAllowConstantExportPackages = [\"vite\"];\nconst ReactRouterPackages = [\n\t\"@react-router/node\",\n\t\"@react-router/react\",\n\t\"@react-router/serve\",\n\t\"@react-router/dev\",\n];\nconst NextJsPackages = [\"next\"];\n\nconst isAllowConstantExport = ReactRefreshAllowConstantExportPackages.some((i) => isPackageExists(i));\nconst isUsingReactRouter = ReactRouterPackages.some((i) => isPackageExists(i));\nconst isUsingNext = NextJsPackages.some((i) => isPackageExists(i));\n\nconst react = async (\n\toptions: ExtractOptions<OptionsConfig[\"react\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst {\n\t\tcompiler = false,\n\t\tfiles = [GLOB_SRC],\n\t\tnextjs = isUsingNext,\n\t\toverrides,\n\t\trefresh = true,\n\t\ttypescript = true,\n\t} = options;\n\n\tawait ensurePackages([\n\t\t\"@eslint-react/eslint-plugin\",\n\t\t\"eslint-plugin-react-hooks\",\n\t\trefresh ? \"eslint-plugin-react-refresh\" : undefined,\n\t\tnextjs ? \"@next/eslint-plugin-next\" : undefined,\n\t]);\n\n\tconst [eslintPluginReact, eslintReactHooks, eslintPluginReactRefresh, eslintPluginNextjs] =\n\t\tawait Promise.all([\n\t\t\tinteropDefault(import(\"@eslint-react/eslint-plugin\")),\n\t\t\tinteropDefault(import(\"eslint-plugin-react-hooks\")),\n\t\t\trefresh ? interopDefault(import(\"eslint-plugin-react-refresh\")) : undefined,\n\t\t\tnextjs ? interopDefault(import(\"@next/eslint-plugin-next\")) : undefined,\n\t\t]);\n\n\t// prettier-ignore\n\tconst recommendedReactConfig = eslintPluginReact.configs[typescript ? \"recommended-type-checked\" : \"recommended\"];\n\n\tconst config: TypedFlatConfigItem[] = [\n\t\t{\n\t\t\tname: \"zayne/react/setup\",\n\n\t\t\tplugins: {\n\t\t\t\t...renamePlugins(recommendedReactConfig.plugins, defaultPluginRenameMap),\n\t\t\t\t\"react-hooks\": eslintReactHooks,\n\t\t\t},\n\n\t\t\tsettings: recommendedReactConfig.settings,\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjsx: true,\n\t\t\t\t\t},\n\n\t\t\t\t\tsourceType: \"module\",\n\n\t\t\t\t\t// eslint-disable-next-line unicorn/no-await-expression-member -- ignore for now\n\t\t\t\t\t...(typescript && { parser: (await interopDefault(import(\"typescript-eslint\"))).parser }),\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tname: \"zayne/react/setup-processor\",\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/react/recommended\",\n\n\t\t\trules: renameRules(recommendedReactConfig.rules, defaultPluginRenameMap),\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/react/rules\",\n\n\t\t\trules: {\n\t\t\t\t// Hook Extra rules\n\t\t\t\t\"react-hooks-extra/no-unnecessary-use-callback\": \"warn\",\n\t\t\t\t\"react-hooks-extra/no-unnecessary-use-memo\": \"warn\",\n\t\t\t\t\"react-hooks-extra/no-unnecessary-use-prefix\": \"error\",\n\t\t\t\t\"react-hooks-extra/prefer-use-state-lazy-initialization\": \"error\",\n\n\t\t\t\t// Hook rules\n\t\t\t\t\"react-hooks/exhaustive-deps\": \"warn\",\n\t\t\t\t\"react-hooks/rules-of-hooks\": \"error\",\n\n\t\t\t\t// Naming convention rules\n\t\t\t\t\"react-naming-convention/component-name\": \"warn\",\n\t\t\t\t\"react-naming-convention/use-state\": \"off\",\n\n\t\t\t\t// Regular React rules\n\t\t\t\t\"react/avoid-shorthand-boolean\": \"error\",\n\t\t\t\t\"react/function-component-definition\": \"off\",\n\t\t\t\t\"react/no-array-index-key\": \"error\",\n\t\t\t\t\"react/no-children-count\": \"off\",\n\t\t\t\t\"react/no-children-only\": \"off\",\n\t\t\t\t\"react/no-children-prop\": \"error\",\n\t\t\t\t\"react/no-clone-element\": \"off\",\n\t\t\t\t\"react/no-complex-conditional-rendering\": \"warn\",\n\t\t\t\t\"react/no-missing-component-display-name\": \"error\",\n\t\t\t\t\"react/no-useless-fragment\": \"error\",\n\t\t\t\t\"react/prefer-destructuring-assignment\": \"error\",\n\t\t\t\t\"react/prefer-read-only-props\": \"off\",\n\t\t\t\t\"react/prefer-shorthand-fragment\": \"error\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n\n\tif (refresh && eslintPluginReactRefresh) {\n\t\tconfig.push({\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/react/refresh\",\n\n\t\t\tplugins: {\n\t\t\t\t\"react-refresh\": eslintPluginReactRefresh,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"react-refresh/only-export-components\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowConstantExport: isAllowConstantExport,\n\t\t\t\t\t\tallowExportNames: [\n\t\t\t\t\t\t\t...(isUsingNext ? allowedNextJsExportNames : []),\n\t\t\t\t\t\t\t...(isUsingReactRouter ? allowedReactRouterExportNames : []),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\t}\n\n\tif (compiler) {\n\t\tconfig.push({\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/react/compiler\",\n\n\t\t\trules: {\n\t\t\t\t\"react-hooks/react-compiler\": \"error\",\n\t\t\t},\n\t\t});\n\t}\n\n\tif (nextjs && eslintPluginNextjs) {\n\t\tconfig.push({\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/react/nextjs\",\n\n\t\t\tplugins: {\n\t\t\t\t\"nextjs-next\": fixupPluginRules(eslintPluginNextjs),\n\t\t\t},\n\n\t\t\trules: renameRules(\n\t\t\t\t// eslint-disable-next-line ts-eslint/no-unsafe-argument -- missing types\n\t\t\t\t{\n\t\t\t\t\t// @ts-expect-error -- missing types\n\t\t\t\t\t// eslint-disable-next-line ts-eslint/no-unsafe-member-access -- missing types\n\t\t\t\t\t...eslintPluginNextjs.configs?.recommended?.rules,\n\n\t\t\t\t\t// @ts-expect-error -- missing types\n\t\t\t\t\t// eslint-disable-next-line ts-eslint/no-unsafe-member-access -- missing types\n\t\t\t\t\t...eslintPluginNextjs.configs?.[\"core-web-vitals\"]?.rules,\n\t\t\t\t},\n\t\t\t\tdefaultPluginRenameMap\n\t\t\t),\n\t\t});\n\t}\n\n\treturn config;\n};\n\nexport { react };\n","import { GLOB_SRC } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\nimport { ensurePackages, interopDefault } from \"../utils\";\n\nconst solid = async (\n\toptions: ExtractOptions<OptionsConfig[\"solid\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_SRC], overrides, typescript = true } = options;\n\n\tawait ensurePackages([\"eslint-plugin-solid\"]);\n\n\tconst eslintPluginSolid = await interopDefault(import(\"eslint-plugin-solid\"));\n\n\tconst recommendedSolidConfig =\n\t\teslintPluginSolid.configs[typescript ? \"flat/typescript\" : \"flat/recommended\"];\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/solid/setup\",\n\n\t\t\tplugins: {\n\t\t\t\tsolid: eslintPluginSolid,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/solid/recommended\",\n\n\t\t\trules: recommendedSolidConfig.rules,\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/solid/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"solid/no-innerhtml\": [\"error\", { allowStatic: true }],\n\t\t\t\t\"solid/style-prop\": [\"error\", { styleProps: [\"style\", \"css\"] }],\n\t\t\t},\n\n\t\t\t...overrides,\n\t\t},\n\t];\n};\n\nexport { solid };\n","import type { TypedFlatConfigItem } from \"@/types\";\n\n/**\n * @description - Sort package.json\n *\n * Requires `jsonc` config\n */\nexport const sortPackageJson = (): TypedFlatConfigItem[] => [\n\t{\n\t\tfiles: [\"**/package.json\"],\n\n\t\tname: \"zayne/sort/package.json\",\n\n\t\trules: {\n\t\t\t\"jsonc/sort-array-values\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^files$\",\n\t\t\t\t},\n\t\t\t],\n\t\t\t\"jsonc/sort-keys\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t\"publisher\",\n\t\t\t\t\t\t\"name\",\n\t\t\t\t\t\t\"displayName\",\n\t\t\t\t\t\t\"type\",\n\t\t\t\t\t\t\"version\",\n\t\t\t\t\t\t\"private\",\n\t\t\t\t\t\t\"packageManager\",\n\t\t\t\t\t\t\"description\",\n\t\t\t\t\t\t\"author\",\n\t\t\t\t\t\t\"contributors\",\n\t\t\t\t\t\t\"license\",\n\t\t\t\t\t\t\"funding\",\n\t\t\t\t\t\t\"homepage\",\n\t\t\t\t\t\t\"repository\",\n\t\t\t\t\t\t\"bugs\",\n\t\t\t\t\t\t\"keywords\",\n\t\t\t\t\t\t\"categories\",\n\t\t\t\t\t\t\"sideEffects\",\n\t\t\t\t\t\t\"exports\",\n\t\t\t\t\t\t\"main\",\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t\t\"unpkg\",\n\t\t\t\t\t\t\"jsdelivr\",\n\t\t\t\t\t\t\"types\",\n\t\t\t\t\t\t\"typesVersions\",\n\t\t\t\t\t\t\"bin\",\n\t\t\t\t\t\t\"icon\",\n\t\t\t\t\t\t\"files\",\n\t\t\t\t\t\t\"engines\",\n\t\t\t\t\t\t\"activationEvents\",\n\t\t\t\t\t\t\"contributes\",\n\t\t\t\t\t\t\"scripts\",\n\t\t\t\t\t\t\"peerDependencies\",\n\t\t\t\t\t\t\"peerDependenciesMeta\",\n\t\t\t\t\t\t\"dependencies\",\n\t\t\t\t\t\t\"optionalDependencies\",\n\t\t\t\t\t\t\"devDependencies\",\n\t\t\t\t\t\t\"pnpm\",\n\t\t\t\t\t\t\"overrides\",\n\t\t\t\t\t\t\"resolutions\",\n\t\t\t\t\t\t\"husky\",\n\t\t\t\t\t\t\"simple-git-hooks\",\n\t\t\t\t\t\t\"lint-staged\",\n\t\t\t\t\t\t\"eslintConfig\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"scripts\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^(?:resolutions|overrides|pnpm.overrides)$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\"types\", \"import\", \"require\", \"default\"],\n\t\t\t\t\tpathPattern: \"^exports.*$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t// client hooks only\n\t\t\t\t\t\t\"pre-commit\",\n\t\t\t\t\t\t\"prepare-commit-msg\",\n\t\t\t\t\t\t\"commit-msg\",\n\t\t\t\t\t\t\"post-commit\",\n\t\t\t\t\t\t\"pre-rebase\",\n\t\t\t\t\t\t\"post-rewrite\",\n\t\t\t\t\t\t\"post-checkout\",\n\t\t\t\t\t\t\"post-merge\",\n\t\t\t\t\t\t\"pre-push\",\n\t\t\t\t\t\t\"pre-auto-gc\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^(?:gitHooks|husky|simple-git-hooks)$\",\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n];\n\n/**\n * Sort tsconfig.json\n *\n * Requires `jsonc` config\n */\n\nexport const sortTsconfig = (): TypedFlatConfigItem[] => [\n\t{\n\t\tfiles: [\"**/tsconfig.json\", \"**/tsconfig.*.json\"],\n\n\t\tname: \"zayne/sort/tsconfig.json\",\n\n\t\trules: {\n\t\t\t\"jsonc/sort-keys\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: [\"extends\", \"compilerOptions\", \"references\", \"files\", \"include\", \"exclude\"],\n\t\t\t\t\tpathPattern: \"^$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t/* Projects */\n\t\t\t\t\t\t\"incremental\",\n\t\t\t\t\t\t\"composite\",\n\t\t\t\t\t\t\"tsBuildInfoFile\",\n\t\t\t\t\t\t\"disableSourceOfProjectReferenceRedirect\",\n\t\t\t\t\t\t\"disableSolutionSearching\",\n\t\t\t\t\t\t\"disableReferencedProjectLoad\",\n\t\t\t\t\t\t/* Language and Environment */\n\t\t\t\t\t\t\"target\",\n\t\t\t\t\t\t\"jsx\",\n\t\t\t\t\t\t\"jsxFactory\",\n\t\t\t\t\t\t\"jsxFragmentFactory\",\n\t\t\t\t\t\t\"jsxImportSource\",\n\t\t\t\t\t\t\"lib\",\n\t\t\t\t\t\t\"moduleDetection\",\n\t\t\t\t\t\t\"noLib\",\n\t\t\t\t\t\t\"reactNamespace\",\n\t\t\t\t\t\t\"useDefineForClassFields\",\n\t\t\t\t\t\t\"emitDecoratorMetadata\",\n\t\t\t\t\t\t\"experimentalDecorators\",\n\t\t\t\t\t\t/* Modules */\n\t\t\t\t\t\t\"baseUrl\",\n\t\t\t\t\t\t\"rootDir\",\n\t\t\t\t\t\t\"rootDirs\",\n\t\t\t\t\t\t\"customConditions\",\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t\t\"moduleResolution\",\n\t\t\t\t\t\t\"moduleSuffixes\",\n\t\t\t\t\t\t\"noResolve\",\n\t\t\t\t\t\t\"paths\",\n\t\t\t\t\t\t\"resolveJsonModule\",\n\t\t\t\t\t\t\"resolvePackageJsonExports\",\n\t\t\t\t\t\t\"resolvePackageJsonImports\",\n\t\t\t\t\t\t\"typeRoots\",\n\t\t\t\t\t\t\"types\",\n\t\t\t\t\t\t\"allowArbitraryExtensions\",\n\t\t\t\t\t\t\"allowImportingTsExtensions\",\n\t\t\t\t\t\t\"allowUmdGlobalAccess\",\n\t\t\t\t\t\t/* JavaScript Support */\n\t\t\t\t\t\t\"allowJs\",\n\t\t\t\t\t\t\"checkJs\",\n\t\t\t\t\t\t\"maxNodeModuleJsDepth\",\n\t\t\t\t\t\t/* Type Checking */\n\t\t\t\t\t\t\"strict\",\n\t\t\t\t\t\t\"strictBindCallApply\",\n\t\t\t\t\t\t\"strictFunctionTypes\",\n\t\t\t\t\t\t\"strictNullChecks\",\n\t\t\t\t\t\t\"strictPropertyInitialization\",\n\t\t\t\t\t\t\"allowUnreachableCode\",\n\t\t\t\t\t\t\"allowUnusedLabels\",\n\t\t\t\t\t\t\"alwaysStrict\",\n\t\t\t\t\t\t\"exactOptionalPropertyTypes\",\n\t\t\t\t\t\t\"noFallthroughCasesInSwitch\",\n\t\t\t\t\t\t\"noImplicitAny\",\n\t\t\t\t\t\t\"noImplicitOverride\",\n\t\t\t\t\t\t\"noImplicitReturns\",\n\t\t\t\t\t\t\"noImplicitThis\",\n\t\t\t\t\t\t\"noPropertyAccessFromIndexSignature\",\n\t\t\t\t\t\t\"noUncheckedIndexedAccess\",\n\t\t\t\t\t\t\"noUnusedLocals\",\n\t\t\t\t\t\t\"noUnusedParameters\",\n\t\t\t\t\t\t\"useUnknownInCatchVariables\",\n\t\t\t\t\t\t/* Emit */\n\t\t\t\t\t\t\"declaration\",\n\t\t\t\t\t\t\"declarationDir\",\n\t\t\t\t\t\t\"declarationMap\",\n\t\t\t\t\t\t\"downlevelIteration\",\n\t\t\t\t\t\t\"emitBOM\",\n\t\t\t\t\t\t\"emitDeclarationOnly\",\n\t\t\t\t\t\t\"importHelpers\",\n\t\t\t\t\t\t\"importsNotUsedAsValues\",\n\t\t\t\t\t\t\"inlineSourceMap\",\n\t\t\t\t\t\t\"inlineSources\",\n\t\t\t\t\t\t\"mapRoot\",\n\t\t\t\t\t\t\"newLine\",\n\t\t\t\t\t\t\"noEmit\",\n\t\t\t\t\t\t\"noEmitHelpers\",\n\t\t\t\t\t\t\"noEmitOnError\",\n\t\t\t\t\t\t\"outDir\",\n\t\t\t\t\t\t\"outFile\",\n\t\t\t\t\t\t\"preserveConstEnums\",\n\t\t\t\t\t\t\"preserveValueImports\",\n\t\t\t\t\t\t\"removeComments\",\n\t\t\t\t\t\t\"sourceMap\",\n\t\t\t\t\t\t\"sourceRoot\",\n\t\t\t\t\t\t\"stripInternal\",\n\t\t\t\t\t\t/* Interop Constraints */\n\t\t\t\t\t\t\"allowSyntheticDefaultImports\",\n\t\t\t\t\t\t\"esModuleInterop\",\n\t\t\t\t\t\t\"forceConsistentCasingInFileNames\",\n\t\t\t\t\t\t\"isolatedDeclarations\",\n\t\t\t\t\t\t\"isolatedModules\",\n\t\t\t\t\t\t\"preserveSymlinks\",\n\t\t\t\t\t\t\"verbatimModuleSyntax\",\n\t\t\t\t\t\t/* Completeness */\n\t\t\t\t\t\t\"skipDefaultLibCheck\",\n\t\t\t\t\t\t\"skipLibCheck\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^compilerOptions$\",\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n];\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst stylistic = async (\n\toptions: ExtractOptions<OptionsConfig[\"stylistic\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { jsx = true, overrides } = options;\n\n\tconst eslintPluginStylistic = await interopDefault(import(\"@stylistic/eslint-plugin\"));\n\n\treturn [\n\t\t// == Stylistic Rules (Optional)\n\t\t{\n\t\t\tname: \"zayne/stylistic/rules\",\n\n\t\t\tplugins: {\n\t\t\t\tstylistic: eslintPluginStylistic,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"stylistic/no-floating-decimal\": \"error\",\n\t\t\t\t\"stylistic/spaced-comment\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t\"always\",\n\t\t\t\t\t{\n\t\t\t\t\t\tblock: {\n\t\t\t\t\t\t\tbalanced: true,\n\t\t\t\t\t\t\texceptions: [\"*\"],\n\t\t\t\t\t\t\tmarkers: [\"!\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tline: {\n\t\t\t\t\t\t\texceptions: [\"/\", \"#\"],\n\t\t\t\t\t\t\tmarkers: [\"/\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t...(jsx && {\n\t\t\t\t\t\"stylistic/jsx-self-closing-comp\": \"warn\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { stylistic };\n","import { defaultPluginRenameMap } from \"@/constants\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault, renameRules } from \"@/utils\";\n\nexport const tailwindcssBetter = async (\n\toptions: ExtractOptions<OptionsConfig[\"tailwindcssBetter\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, settings: tailwindCssBetterSettings } = options;\n\n\tawait ensurePackages([\"eslint-plugin-better-tailwindcss\"]);\n\n\tconst [eslintPluginBetterTailwindCss, defaults] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-better-tailwindcss\")),\n\t\tinteropDefault(import(\"eslint-plugin-better-tailwindcss/api/defaults\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/tailwindcss-better/setup\",\n\n\t\t\tplugins: {\n\t\t\t\t\"tailwindcss-better\": eslintPluginBetterTailwindCss,\n\t\t\t},\n\n\t\t\tsettings: {\n\t\t\t\t\"better-tailwindcss\": {\n\t\t\t\t\t...tailwindCssBetterSettings,\n\n\t\t\t\t\tattributes: [\n\t\t\t\t\t\t...defaults.getDefaultAttributes(),\n\t\t\t\t\t\t\"^class(Name|Names)?$\",\n\t\t\t\t\t\ttailwindCssBetterSettings?.attributes,\n\t\t\t\t\t],\n\n\t\t\t\t\tcallees: [\n\t\t\t\t\t\t...defaults.getDefaultCallees(),\n\t\t\t\t\t\t\"cnMerge\",\n\t\t\t\t\t\t\"cnJoin\",\n\t\t\t\t\t\ttailwindCssBetterSettings?.callees,\n\t\t\t\t\t],\n\n\t\t\t\t\tentryPoint: tailwindCssBetterSettings?.entryPoint ?? `${process.cwd()}/tailwind.css`,\n\t\t\t\t} satisfies typeof tailwindCssBetterSettings,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/tailwindcss-better/recommended\",\n\n\t\t\trules: renameRules(\n\t\t\t\teslintPluginBetterTailwindCss.configs.recommended?.rules,\n\t\t\t\tdefaultPluginRenameMap\n\t\t\t),\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/tailwindcss-better/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"tailwindcss-better/enforce-consistent-important-position\": \"warn\",\n\n\t\t\t\t\"tailwindcss-better/enforce-consistent-line-wrapping\": \"off\",\n\n\t\t\t\t\"tailwindcss-better/enforce-consistent-variable-syntax\": \"warn\",\n\n\t\t\t\t\"tailwindcss-better/enforce-shorthand-classes\": \"warn\",\n\n\t\t\t\t/**\n\t\t\t\t * @deprecated To be removed in the next major release\n\t\t\t\t */\n\t\t\t\t\"tailwindcss-better/multiline\": \"off\",\n\n\t\t\t\t\"tailwindcss-better/no-conflicting-classes\": \"warn\",\n\n\t\t\t\t\"tailwindcss-better/no-deprecated-classes\": \"warn\",\n\t\t\t\t\"tailwindcss-better/no-unregistered-classes\": \"warn\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\n/**\n * @description tailwindcss v4 is not supported yet\n * @deprecated until `eslint-plugin-tailwindcss` supports tailwindcss v4\n */\n// export const tailwindcss = async (\n// \toptions: ExtractOptions<OptionsConfig[\"tailwindcss\"]> = {}\n// ): Promise<TypedFlatConfigItem[]> => {\n// \tconst { overrides, settings: tailwindCssSettings } = options;\n\n// \tawait ensurePackages([\"eslint-plugin-tailwindcss\"]);\n\n// \tconst eslintPluginTailwindCss = await interopDefault(import(\"eslint-plugin-tailwindcss\"));\n\n// \treturn [\n// \t\t{\n// \t\t\tname: \"zayne/tailwindcss/setup\",\n// \t\t\tplugins: {\n// \t\t\t\ttailwindcss: eslintPluginTailwindCss,\n// \t\t\t},\n// \t\t\tsettings: {\n// \t\t\t\ttailwindcss: {\n// \t\t\t\t\tcallees: [\"tv\", \"cnMerge\", \"cn\", \"cnJoin\", \"twMerge\", \"twJoin\"],\n// \t\t\t\t\tclassRegex: \"^class(Name|Names)?$\",\n// \t\t\t\t\tcssFiles: [],\n// \t\t\t\t\tremoveDuplicates: false, // Turned off cuz prettier already handles this via plugin\n// \t\t\t\t\t...tailwindCssSettings,\n// \t\t\t\t},\n// \t\t\t},\n// \t\t},\n\n// \t\t{\n// \t\t\tname: \"zayne/tailwindcss/recommended\",\n\n// \t\t\trules: eslintPluginTailwindCss.configs[\"flat/recommended\"][1]?.rules,\n// \t\t},\n\n// \t\t{\n// \t\t\tname: \"zayne/tailwindcss/rules\",\n\n// \t\t\trules: {\n// \t\t\t\t\"tailwindcss/no-contradicting-classname\": \"off\", // Turned off cuz tw intellisense already handles this\n// \t\t\t\t\"tailwindcss/no-custom-classname\": [\n// \t\t\t\t\t\"warn\",\n// \t\t\t\t\t{ ignoredKeys: [\"compoundVariants\", \"defaultVariants\", \"responsiveVariants\"] },\n// \t\t\t\t],\n\n// \t\t\t\t...overrides,\n// \t\t\t},\n// \t\t},\n// \t];\n// };\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault, renameRules } from \"@/utils\";\nimport { defaultPluginRenameMap } from \"../constants\";\n\nconst tanstack = async (\n\toptions: ExtractOptions<OptionsConfig[\"tanstack\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, query = true, router } = options;\n\n\tconst config: TypedFlatConfigItem[] = [];\n\n\tawait ensurePackages([\n\t\tquery ? \"@tanstack/eslint-plugin-query\" : undefined,\n\t\trouter ? \"@tanstack/eslint-plugin-router\" : undefined,\n\t]);\n\n\tconst [eslintPluginTanstackQuery, eslintPluginTanstackRouter] = await Promise.all([\n\t\tquery ? interopDefault(import(\"@tanstack/eslint-plugin-query\")) : undefined,\n\t\trouter ? interopDefault(import(\"@tanstack/eslint-plugin-router\")) : undefined,\n\t]);\n\n\tif (query && eslintPluginTanstackQuery) {\n\t\tconfig.push(\n\t\t\t{\n\t\t\t\tname: \"zayne/tanstack-query/recommended\",\n\n\t\t\t\tplugins: {\n\t\t\t\t\t\"tanstack-query\": eslintPluginTanstackQuery,\n\t\t\t\t},\n\n\t\t\t\trules: renameRules(\n\t\t\t\t\teslintPluginTanstackQuery.configs[\"flat/recommended\"][0]?.rules,\n\t\t\t\t\tdefaultPluginRenameMap\n\t\t\t\t),\n\t\t\t},\n\n\t\t\t{\n\t\t\t\tname: \"zayne/tanstack-query/rules\",\n\n\t\t\t\trules: {\n\t\t\t\t\t...overrides,\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n\n\tif (router && eslintPluginTanstackRouter) {\n\t\tconfig.push(\n\t\t\t{\n\t\t\t\tname: \"zayne/tanstack-router/recommended\",\n\n\t\t\t\tplugins: {\n\t\t\t\t\t\"tanstack-router\": eslintPluginTanstackRouter,\n\t\t\t\t},\n\n\t\t\t\trules: renameRules(\n\t\t\t\t\teslintPluginTanstackRouter.configs[\"flat/recommended\"][0]?.rules,\n\t\t\t\t\tdefaultPluginRenameMap\n\t\t\t\t),\n\t\t\t},\n\n\t\t\t{\n\t\t\t\tname: \"zayne/tanstack-router/rules\",\n\n\t\t\t\trules: {\n\t\t\t\t\t...overrides,\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n\n\treturn config;\n};\n\nexport { tanstack };\n","import { GLOB_TOML } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport const toml = async (\n\toptions: ExtractOptions<OptionsConfig[\"toml\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_TOML], overrides, stylistic = true } = options;\n\n\tconst [pluginToml, parserToml] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-toml\")),\n\t\tinteropDefault(import(\"toml-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/toml/setup\",\n\n\t\t\tplugins: {\n\t\t\t\ttoml: pluginToml,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: parserToml,\n\t\t\t},\n\n\t\t\tname: \"zayne/toml/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"style/spaced-comment\": \"off\",\n\n\t\t\t\t\"toml/comma-style\": \"error\",\n\t\t\t\t\"toml/keys-order\": \"error\",\n\t\t\t\t\"toml/no-space-dots\": \"error\",\n\t\t\t\t\"toml/no-unreadable-number-separator\": \"error\",\n\t\t\t\t\"toml/precision-of-fractional-seconds\": \"error\",\n\t\t\t\t\"toml/precision-of-integer\": \"error\",\n\t\t\t\t\"toml/tables-order\": \"error\",\n\n\t\t\t\t\"toml/vue-custom-block/no-parsing-error\": \"error\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"toml/array-bracket-newline\": \"error\",\n\t\t\t\t\t\"toml/array-bracket-spacing\": \"error\",\n\t\t\t\t\t\"toml/array-element-newline\": \"error\",\n\t\t\t\t\t// \"toml/indent\": [\"error\", indent],\n\t\t\t\t\t\"toml/inline-table-curly-spacing\": \"error\",\n\t\t\t\t\t\"toml/key-spacing\": \"error\",\n\t\t\t\t\t\"toml/padding-line-between-pairs\": \"error\",\n\t\t\t\t\t\"toml/padding-line-between-tables\": \"error\",\n\t\t\t\t\t\"toml/quoted-keys\": \"error\",\n\t\t\t\t\t\"toml/spaced-comment\": \"error\",\n\t\t\t\t\t\"toml/table-bracket-spacing\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { interopDefault, renamePluginInConfigs } from \"@/utils\";\nimport { GLOB_ASTRO_TS, GLOB_MARKDOWN, GLOB_TS, GLOB_TSX } from \"../globs\";\nimport type {\n\tExtractOptions,\n\tOptionsConfig,\n\tOptionsTypeScriptParserOptions,\n\tOptionsTypeScriptWithTypes,\n\tTypedFlatConfigItem,\n} from \"../types\";\n\nexport const typescript = async (\n\toptions: ExtractOptions<OptionsConfig[\"typescript\"]>\n\t\t& OptionsTypeScriptParserOptions\n\t\t& OptionsTypeScriptWithTypes = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst {\n\t\tallowDefaultProject,\n\t\tcomponentExts = [],\n\t\tfiles = [GLOB_TS, GLOB_TSX, ...componentExts.map((ext) => `**/*.${ext}`)],\n\t\tfilesTypeAware = [GLOB_TS, GLOB_TSX, ...componentExts.map((ext) => `**/*.${ext}`)],\n\t\tignoresTypeAware = [`${GLOB_MARKDOWN}/**`, GLOB_ASTRO_TS],\n\t\ttsconfigPath = true,\n\t\tisTypeAware = Boolean(tsconfigPath),\n\t\toverrides,\n\t\toverridesTypeAware,\n\t\tparserOptions,\n\t\tstylistic = true,\n\t} = options;\n\n\tconst tsEslint = await interopDefault(import(\"typescript-eslint\"));\n\n\tconst projectServiceObject =\n\t\tisTypeAware\n\t\t&& (allowDefaultProject ?\n\t\t\t{\n\t\t\t\tprojectService: {\n\t\t\t\t\tallowDefaultProject,\n\t\t\t\t\tdefaultProject: tsconfigPath,\n\t\t\t\t},\n\t\t\t\ttsconfigRootDir: process.cwd(),\n\t\t\t}\n\t\t:\t{\n\t\t\t\t/**\n\t\t\t\t * @default true for auto-discovery of project's tsconfig as fallback\n\t\t\t\t * @see https://typescript-eslint.io/blog/parser-options-project-true\n\t\t\t\t */\n\t\t\t\tproject: tsconfigPath,\n\t\t\t\ttsconfigRootDir: process.cwd(),\n\t\t\t});\n\n\tconst makeParser = (parsedFiles: string[], ignores?: string[]): TypedFlatConfigItem => ({\n\t\tfiles: parsedFiles,\n\n\t\t...(ignores && { ignores }),\n\n\t\tlanguageOptions: {\n\t\t\tparser: tsEslint.parser,\n\n\t\t\tparserOptions: {\n\t\t\t\tecmaFeatures: { globalReturn: true },\n\n\t\t\t\textraFileExtensions: componentExts.map((ext) => `.${ext}`),\n\n\t\t\t\tsourceType: \"module\",\n\n\t\t\t\t...parserOptions,\n\n\t\t\t\t...projectServiceObject,\n\t\t\t},\n\t\t},\n\t});\n\n\tconst selectedBaseRuleSet = isTypeAware ? \"strictTypeChecked\" : \"strict\";\n\tconst selectedStylisticRuleSet = isTypeAware ? \"stylisticTypeChecked\" : \"stylistic\";\n\n\tconst typeAwareRules = {\n\t\t\"ts-eslint/no-unnecessary-type-parameters\": \"off\",\n\t\t\"ts-eslint/non-nullable-type-assertion-style\": \"off\",\n\t\t\"ts-eslint/prefer-nullish-coalescing\": [\"error\", { ignoreConditionalTests: true }],\n\t\t\"ts-eslint/restrict-template-expressions\": [\n\t\t\t\"error\",\n\t\t\t{ allowBoolean: true, allowNullish: true, allowNumber: true },\n\t\t],\n\t\t\"ts-eslint/return-await\": [\"error\", \"in-try-catch\"],\n\t} satisfies TypedFlatConfigItem[\"rules\"];\n\n\treturn [\n\t\t{\n\t\t\tname: `zayne/ts-eslint/${isTypeAware ? \"type-aware-setup\" : \"setup\"}`,\n\n\t\t\t...makeParser(files),\n\t\t\t...(isTypeAware && makeParser(filesTypeAware, ignoresTypeAware)),\n\t\t},\n\n\t\t...renamePluginInConfigs({\n\t\t\tconfigs: tsEslint.configs[selectedBaseRuleSet],\n\t\t\toverrides: {\n\t\t\t\tfiles,\n\t\t\t\tname: `zayne/ts-eslint/${selectedBaseRuleSet}`,\n\t\t\t},\n\t\t\trenameMap: { \"@typescript-eslint\": \"ts-eslint\" },\n\t\t}),\n\n\t\t...(stylistic ?\n\t\t\trenamePluginInConfigs({\n\t\t\t\tconfigs: tsEslint.configs[selectedStylisticRuleSet],\n\t\t\t\toverrides: {\n\t\t\t\t\tfiles,\n\t\t\t\t\tname: `zayne/ts-eslint/${selectedStylisticRuleSet}`,\n\t\t\t\t},\n\t\t\t\trenameMap: { \"@typescript-eslint\": \"ts-eslint\" },\n\t\t\t})\n\t\t:\t[]),\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/ts-eslint/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"ts-eslint/array-type\": [\"error\", { default: \"array-simple\" }],\n\t\t\t\t\"ts-eslint/consistent-type-definitions\": [\"error\", \"type\"],\n\t\t\t\t\"ts-eslint/default-param-last\": \"error\",\n\t\t\t\t\"ts-eslint/member-ordering\": \"error\",\n\t\t\t\t\"ts-eslint/method-signature-style\": [\"error\", \"property\"],\n\t\t\t\t\"ts-eslint/no-confusing-void-expression\": \"off\",\n\t\t\t\t\"ts-eslint/no-empty-function\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{ allow: [\"arrowFunctions\", \"functions\", \"methods\"] },\n\t\t\t\t],\n\t\t\t\t\"ts-eslint/no-import-type-side-effects\": \"error\",\n\t\t\t\t\"ts-eslint/no-shadow\": \"error\",\n\t\t\t\t\"ts-eslint/no-unnecessary-type-conversion\": \"error\",\n\t\t\t\t\"ts-eslint/no-unused-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowShortCircuit: true,\n\t\t\t\t\t\tallowTernary: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"ts-eslint/no-unused-vars\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\targs: \"all\",\n\t\t\t\t\t\targsIgnorePattern: \"^_\",\n\t\t\t\t\t\tcaughtErrors: \"all\",\n\t\t\t\t\t\tdestructuredArrayIgnorePattern: \"^_\",\n\t\t\t\t\t\treportUsedIgnorePattern: true,\n\t\t\t\t\t\tvars: \"all\",\n\t\t\t\t\t\tvarsIgnorePattern: \"[iI]gnored\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"ts-eslint/no-use-before-define\": \"off\",\n\t\t\t\t\"ts-eslint/no-useless-constructor\": \"error\",\n\t\t\t\t\"ts-eslint/no-useless-empty-export\": \"error\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\n\t\tisTypeAware ?\n\t\t\t{\n\t\t\t\tfiles: filesTypeAware,\n\t\t\t\tignores: ignoresTypeAware,\n\t\t\t\tname: \"zayne/ts-eslint/rules-type-aware\",\n\t\t\t\trules: {\n\t\t\t\t\t...typeAwareRules,\n\t\t\t\t\t...overridesTypeAware,\n\t\t\t\t},\n\t\t\t}\n\t\t:\t{},\n\t];\n};\n","import { interopDefault } from \"@/utils\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\n\nexport const unicorn = async (\n\toptions: ExtractOptions<OptionsConfig[\"unicorn\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, type = \"app\" } = options;\n\n\tconst eslintPluginUnicorn = await interopDefault(import(\"eslint-plugin-unicorn\"));\n\n\treturn [\n\t\t{\n\t\t\t...eslintPluginUnicorn.configs.recommended,\n\n\t\t\tname: \"zayne/unicorn/recommended\",\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/unicorn/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"unicorn/filename-case\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{ cases: { camelCase: true, kebabCase: true, pascalCase: true } },\n\t\t\t\t],\n\t\t\t\t\"unicorn/new-for-builtins\": \"off\",\n\t\t\t\t\"unicorn/no-array-for-each\": \"off\",\n\t\t\t\t\"unicorn/no-array-reduce\": \"off\",\n\t\t\t\t\"unicorn/no-negated-condition\": \"off\",\n\t\t\t\t\"unicorn/no-null\": \"off\",\n\t\t\t\t\"unicorn/no-useless-undefined\": [\"error\", { checkArguments: true }],\n\t\t\t\t\"unicorn/numeric-separators-style\": \"off\",\n\n\t\t\t\t\"unicorn/prefer-global-this\": type === \"lib\" || type === \"lib-strict\" ? \"warn\" : \"off\",\n\n\t\t\t\t\"unicorn/prevent-abbreviations\": \"off\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import type { Linter } from \"eslint\";\nimport { mergeProcessors } from \"eslint-merge-processors\";\nimport { GLOB_VUE } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\nimport { ensurePackages, interopDefault, resolveOptions } from \"../utils\";\n\nexport const vue = async (\n\toptions: ExtractOptions<OptionsConfig[\"vue\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst {\n\t\tfiles = [GLOB_VUE],\n\t\toverrides,\n\t\tsfcBlocks = true,\n\t\tstylistic = true,\n\t\ttypescript = true,\n\t\tvueVersion = 3,\n\t} = options;\n\n\tawait ensurePackages([\n\t\t\"eslint-plugin-vue\",\n\t\t\"vue-eslint-parser\",\n\t\tsfcBlocks ? \"eslint-processor-vue-blocks\" : undefined,\n\t]);\n\n\tconst [pluginVue, parserVue, processorVueBlocks] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-vue\")),\n\t\tinteropDefault(import(\"vue-eslint-parser\")),\n\t\tsfcBlocks ? interopDefault(import(\"eslint-processor-vue-blocks\")) : undefined,\n\t]);\n\n\treturn [\n\t\t{\n\t\t\t/**\n\t\t\t * This allows Vue plugin to work with auto imports\n\t\t\t * @ see https://github.com/vuejs/eslint-plugin-vue/pull/2422\n\t\t\t */\n\t\t\tlanguageOptions: {\n\t\t\t\tglobals: {\n\t\t\t\t\tcomputed: \"readonly\",\n\t\t\t\t\tdefineEmits: \"readonly\",\n\t\t\t\t\tdefineExpose: \"readonly\",\n\t\t\t\t\tdefineProps: \"readonly\",\n\t\t\t\t\tonMounted: \"readonly\",\n\t\t\t\t\tonUnmounted: \"readonly\",\n\t\t\t\t\treactive: \"readonly\",\n\t\t\t\t\tref: \"readonly\",\n\t\t\t\t\tshallowReactive: \"readonly\",\n\t\t\t\t\tshallowRef: \"readonly\",\n\t\t\t\t\ttoRef: \"readonly\",\n\t\t\t\t\ttoRefs: \"readonly\",\n\t\t\t\t\twatch: \"readonly\",\n\t\t\t\t\twatchEffect: \"readonly\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tname: \"zayne/vue/setup\",\n\n\t\t\tplugins: {\n\t\t\t\tvue: pluginVue,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: parserVue,\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjsx: true,\n\t\t\t\t\t},\n\t\t\t\t\textraFileExtensions: [\".vue\"],\n\t\t\t\t\tsourceType: \"module\",\n\n\t\t\t\t\t// eslint-disable-next-line unicorn/no-await-expression-member -- ignore for now\n\t\t\t\t\t...(typescript && { parser: (await interopDefault(import(\"typescript-eslint\"))).parser }),\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tname: \"zayne/vue/setup/file-processor\",\n\n\t\t\tprocessor:\n\t\t\t\tsfcBlocks === false ?\n\t\t\t\t\t(pluginVue.processors[\".vue\"] as Linter.Processor)\n\t\t\t\t:\tmergeProcessors([\n\t\t\t\t\t\tpluginVue.processors[\".vue\"] as Linter.Processor,\n\t\t\t\t\t\tprocessorVueBlocks?.({\n\t\t\t\t\t\t\t...resolveOptions(sfcBlocks),\n\t\t\t\t\t\t\tblocks: {\n\t\t\t\t\t\t\t\tstyles: true,\n\t\t\t\t\t\t\t\t...resolveOptions(sfcBlocks).blocks,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}) ?? (pluginVue.processors[\".vue\"] as Linter.Processor),\n\t\t\t\t\t]),\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/vue/recommended\",\n\n\t\t\trules: {\n\t\t\t\t...pluginVue.configs.base.rules,\n\n\t\t\t\t...pluginVue.configs[`flat/${vueVersion === 2 ? \"vue2-\" : \"\"}essential`].at(-1)?.rules,\n\t\t\t\t...pluginVue.configs[`flat/${vueVersion === 2 ? \"vue2-\" : \"\"}strongly-recommended`].at(-1)\n\t\t\t\t\t?.rules,\n\t\t\t\t...pluginVue.configs[`flat/${vueVersion === 2 ? \"vue2-\" : \"\"}recommended`].at(-1)?.rules,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/vue/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"node/prefer-global/process\": \"off\",\n\n\t\t\t\t\"vue/block-order\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: [\"script\", \"template\", \"style\"],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"vue/component-name-in-template-casing\": [\"error\", \"PascalCase\"],\n\n\t\t\t\t\"vue/component-options-name-casing\": [\"error\", \"PascalCase\"],\n\n\t\t\t\t// == this is deprecated\n\t\t\t\t\"vue/component-tags-order\": \"off\",\n\n\t\t\t\t\"vue/custom-event-name-casing\": [\"error\", \"camelCase\"],\n\t\t\t\t\"vue/define-macros-order\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: [\"defineOptions\", \"defineProps\", \"defineEmits\", \"defineSlots\"],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"vue/dot-location\": [\"error\", \"property\"],\n\t\t\t\t\"vue/dot-notation\": [\"error\", { allowKeywords: true }],\n\t\t\t\t\"vue/eqeqeq\": [\"error\", \"smart\"],\n\t\t\t\t\"vue/html-indent\": \"off\",\n\t\t\t\t\"vue/html-quotes\": [\"error\", \"double\"],\n\t\t\t\t\"vue/max-attributes-per-line\": \"off\",\n\t\t\t\t\"vue/multi-word-component-names\": \"off\",\n\t\t\t\t\"vue/no-dupe-keys\": \"off\",\n\t\t\t\t\"vue/no-empty-pattern\": \"error\",\n\t\t\t\t\"vue/no-irregular-whitespace\": \"error\",\n\t\t\t\t\"vue/no-loss-of-precision\": \"error\",\n\t\t\t\t\"vue/no-restricted-syntax\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"DebuggerStatement\",\n\t\t\t\t\t\"LabeledStatement\",\n\t\t\t\t\t\"WithStatement\",\n\t\t\t\t],\n\t\t\t\t\"vue/no-restricted-v-bind\": [\"error\", \"/^v-/\"],\n\t\t\t\t\"vue/no-setup-props-reactivity-loss\": \"off\",\n\t\t\t\t\"vue/no-sparse-arrays\": \"error\",\n\t\t\t\t\"vue/no-unused-refs\": \"error\",\n\t\t\t\t\"vue/no-useless-v-bind\": \"error\",\n\t\t\t\t\"vue/no-v-html\": \"off\",\n\t\t\t\t\"vue/object-shorthand\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"always\",\n\t\t\t\t\t{\n\t\t\t\t\t\tavoidQuotes: true,\n\t\t\t\t\t\tignoreConstructors: false,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"vue/prefer-separate-static-class\": \"error\",\n\t\t\t\t\"vue/prefer-template\": \"error\",\n\t\t\t\t\"vue/prop-name-casing\": [\"error\", \"camelCase\"],\n\t\t\t\t\"vue/require-default-prop\": \"off\",\n\t\t\t\t\"vue/require-prop-types\": \"off\",\n\t\t\t\t\"vue/singleline-html-element-content-newline\": \"off\",\n\t\t\t\t\"vue/space-infix-ops\": \"error\",\n\t\t\t\t\"vue/space-unary-ops\": [\"error\", { nonwords: false, words: true }],\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"vue/array-bracket-spacing\": [\"error\", \"never\"],\n\t\t\t\t\t\"vue/arrow-spacing\": [\"error\", { after: true, before: true }],\n\t\t\t\t\t\"vue/block-spacing\": [\"error\", \"always\"],\n\t\t\t\t\t\"vue/block-tag-newline\": [\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmultiline: \"always\",\n\t\t\t\t\t\t\tsingleline: \"always\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t\"vue/brace-style\": [\"error\", \"stroustrup\", { allowSingleLine: true }],\n\t\t\t\t\t\"vue/comma-dangle\": [\"error\", \"always-multiline\"],\n\t\t\t\t\t\"vue/comma-spacing\": [\"error\", { after: true, before: false }],\n\t\t\t\t\t\"vue/comma-style\": [\"error\", \"last\"],\n\t\t\t\t\t\"vue/html-comment-content-spacing\": [\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t\t\"always\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\texceptions: [\"-\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t\"vue/key-spacing\": [\"error\", { afterColon: true, beforeColon: false }],\n\t\t\t\t\t\"vue/keyword-spacing\": [\"error\", { after: true, before: true }],\n\t\t\t\t\t\"vue/object-curly-newline\": \"off\",\n\t\t\t\t\t\"vue/object-curly-spacing\": [\"error\", \"always\"],\n\t\t\t\t\t\"vue/object-property-newline\": [\"error\", { allowMultiplePropertiesPerLine: true }],\n\t\t\t\t\t\"vue/operator-linebreak\": [\"error\", \"before\"],\n\t\t\t\t\t\"vue/padding-line-between-blocks\": [\"error\", \"always\"],\n\t\t\t\t\t\"vue/quote-props\": [\"error\", \"consistent-as-needed\"],\n\t\t\t\t\t\"vue/space-in-parens\": [\"error\", \"never\"],\n\t\t\t\t\t\"vue/template-curly-spacing\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t\"ts-eslint/no-unused-vars\": \"off\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { GLOB_YAML } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport const yaml = async (\n\toptions: ExtractOptions<OptionsConfig[\"yaml\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_YAML], overrides, stylistic = true } = options;\n\n\tconst [pluginYaml, parserYaml] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-yml\")),\n\t\tinteropDefault(import(\"yaml-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/yaml/setup\",\n\t\t\tplugins: {\n\t\t\t\tyaml: pluginYaml,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: parserYaml,\n\t\t\t},\n\n\t\t\tname: \"zayne/yaml/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"yaml/block-mapping\": \"error\",\n\t\t\t\t\"yaml/block-sequence\": \"error\",\n\t\t\t\t\"yaml/no-empty-key\": \"error\",\n\t\t\t\t\"yaml/no-empty-sequence-entry\": \"error\",\n\t\t\t\t\"yaml/no-irregular-whitespace\": \"error\",\n\t\t\t\t\"yaml/plain-scalar\": \"error\",\n\n\t\t\t\t\"yaml/vue-custom-block/no-parsing-error\": \"error\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"yaml/block-mapping-question-indicator-newline\": \"error\",\n\t\t\t\t\t\"yaml/block-sequence-hyphen-indicator-newline\": \"error\",\n\t\t\t\t\t\"yaml/flow-mapping-curly-newline\": \"error\",\n\t\t\t\t\t\"yaml/flow-mapping-curly-spacing\": \"error\",\n\t\t\t\t\t\"yaml/flow-sequence-bracket-newline\": \"error\",\n\t\t\t\t\t\"yaml/flow-sequence-bracket-spacing\": \"error\",\n\t\t\t\t\t// \"yaml/indent\": [\"error\", indent],\n\t\t\t\t\t\"yaml/key-spacing\": \"error\",\n\t\t\t\t\t\"yaml/no-tab-indent\": \"error\",\n\t\t\t\t\t// \"yaml/quotes\": [\n\t\t\t\t\t// \t\"error\",\n\t\t\t\t\t// \t{ avoidEscape: true, prefer: quotes === \"backtick\" ? \"double\" : quotes },\n\t\t\t\t\t// ],\n\t\t\t\t\t\"yaml/spaced-comment\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t\"stylistic/spaced-comment\": \"off\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { GLOB_JSX, GLOB_TSX } from \"@/globs\";\nimport type { TypedFlatConfigItem } from \"@/types\";\n\nconst jsx = (): TypedFlatConfigItem[] => {\n\treturn [\n\t\t{\n\t\t\tfiles: [GLOB_JSX, GLOB_TSX],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjsx: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tname: \"zayne/jsx/setup\",\n\t\t},\n\t];\n};\n\nexport { jsx };\n","import { assert } from \"@zayne-labs/toolkit-type-helpers\";\nimport type { Linter } from \"eslint\";\nimport { FlatConfigComposer } from \"eslint-flat-config-utils\";\nimport { isPackageExists } from \"local-pkg\";\nimport { isObject, resolveOptions } from \"@/utils\";\nimport {\n\tastro,\n\tcomments,\n\tdepend,\n\texpo,\n\tgitIgnores,\n\tignores,\n\timports,\n\tjavascript,\n\tjsdoc,\n\tjsonc,\n\tnode,\n\tperfectionist,\n\tpnpm,\n\treact,\n\tsolid,\n\tsortPackageJson,\n\tsortTsconfig,\n\tstylistic,\n\ttailwindcssBetter,\n\ttanstack,\n\ttoml,\n\ttypescript,\n\tunicorn,\n\tvue,\n\tyaml,\n} from \"./configs\";\nimport { jsx } from \"./configs/jsx\";\nimport { defaultPluginRenameMap } from \"./constants\";\nimport type { Awaitable, ConfigNames, OptionsConfig, Prettify, TypedFlatConfigItem } from \"./types\";\n\nconst ReactPackages = [\"react\", \"react-dom\"];\n\n/**\n * @description Construct an array of ESLint flat config items.\n * @param options\n * The options for generating the ESLint configurations.\n * @param userConfigs\n * The extra user configurations to be merged with the generated configurations.\n * @returns\n * The merged ESLint configurations.\n */\nexport const zayne = (\n\toptions: OptionsConfig & Prettify<Pick<TypedFlatConfigItem, \"ignores\">> = {},\n\t...userConfigs: Array<\n\t\tAwaitable<FlatConfigComposer | Linter.Config[] | TypedFlatConfigItem | TypedFlatConfigItem[]>\n\t>\n): FlatConfigComposer<TypedFlatConfigItem, ConfigNames> => {\n\tconst {\n\t\tautoRenamePlugins = true,\n\t\tcomponentExts = [],\n\t\ttype = \"app\",\n\t\twithDefaults = true,\n\t\t...restOfOptions\n\t} = options;\n\n\t// == These configs are too needful to be turned off with a single switch, plus won't harm things much\n\tconst enableGitignore = restOfOptions.gitignore ?? true;\n\tconst enableJsx = restOfOptions.jsx ?? true;\n\n\t// == These ones won't matter if they are all turned off at once\n\tconst enableComments = restOfOptions.comments ?? withDefaults;\n\tconst enableImports = restOfOptions.imports ?? withDefaults;\n\tconst enableJsdoc = restOfOptions.jsdoc ?? withDefaults;\n\tconst enablePnpmCatalogs = restOfOptions.pnpm;\n\tconst enableJsonc = restOfOptions.jsonc ?? withDefaults;\n\tconst enableNode = restOfOptions.node ?? withDefaults;\n\tconst enablePerfectionist = restOfOptions.perfectionist ?? withDefaults;\n\tconst enableReact =\n\t\trestOfOptions.react ?? (withDefaults && ReactPackages.some((pkg) => isPackageExists(pkg)));\n\tconst enableStylistic = restOfOptions.stylistic ?? withDefaults;\n\tconst enableToml = restOfOptions.toml ?? withDefaults;\n\tconst enableTypeScript = restOfOptions.typescript ?? (withDefaults && isPackageExists(\"typescript\"));\n\tconst enableUnicorn = restOfOptions.unicorn ?? withDefaults;\n\tconst enableYaml = restOfOptions.yaml ?? withDefaults;\n\n\tconst isStylistic = Boolean(enableStylistic);\n\n\tconst tsconfigPath =\n\t\tisObject(enableTypeScript) && \"tsconfigPath\" in enableTypeScript ? enableTypeScript.tsconfigPath\n\t\t\t// eslint-disable-next-line unicorn/no-nested-ternary -- Allow\n\t\t: restOfOptions.typescript === true ? true\n\t\t: null;\n\n\tconst isTypeAware = Boolean(tsconfigPath);\n\n\tconst configs: Array<Awaitable<TypedFlatConfigItem[]>> = [];\n\n\t// == Base configs\n\tconfigs.push(ignores(restOfOptions.ignores), javascript(restOfOptions.javascript));\n\n\tif (enableGitignore) {\n\t\tconfigs.push(gitIgnores(resolveOptions(enableGitignore)));\n\t}\n\n\t// == Other configs\n\tif (enableJsx) {\n\t\tconfigs.push(jsx());\n\t}\n\n\tif (restOfOptions.vue) {\n\t\tcomponentExts.push(\"vue\");\n\t}\n\n\tif (restOfOptions.astro) {\n\t\tcomponentExts.push(\"astro\");\n\t}\n\n\tif (enableTypeScript) {\n\t\tconfigs.push(\n\t\t\ttypescript({\n\t\t\t\tcomponentExts,\n\t\t\t\tisTypeAware,\n\t\t\t\tstylistic: isStylistic,\n\t\t\t\ttsconfigPath,\n\t\t\t\t...resolveOptions(enableTypeScript),\n\t\t\t})\n\t\t);\n\t}\n\n\tif (enableStylistic) {\n\t\tconfigs.push(stylistic({ jsx: enableJsx, ...resolveOptions(enableStylistic) }));\n\t}\n\n\tif (enableComments) {\n\t\tconfigs.push(comments({ type, ...resolveOptions(enableComments) }));\n\t}\n\n\tif (enableImports) {\n\t\tconfigs.push(\n\t\t\timports({ stylistic: isStylistic, typescript: isTypeAware, ...resolveOptions(enableImports) })\n\t\t);\n\t}\n\n\tif (enablePnpmCatalogs) {\n\t\tconfigs.push(pnpm(resolveOptions(enablePnpmCatalogs)));\n\t}\n\n\tif (enableNode) {\n\t\tconfigs.push(node({ type, ...resolveOptions(enableNode) }));\n\t}\n\n\tif (enablePerfectionist) {\n\t\tconfigs.push(perfectionist(resolveOptions(enablePerfectionist)));\n\t}\n\n\tif (enableUnicorn) {\n\t\tconfigs.push(unicorn({ type, ...resolveOptions(enableUnicorn) }));\n\t}\n\n\tif (enableJsonc) {\n\t\tconfigs.push(\n\t\t\tjsonc({ stylistic: isStylistic, ...resolveOptions(enableJsonc) }),\n\t\t\tsortPackageJson(),\n\t\t\tsortTsconfig()\n\t\t);\n\t}\n\n\tif (enableJsdoc) {\n\t\tconfigs.push(jsdoc({ stylistic: isStylistic, ...resolveOptions(enableJsdoc) }));\n\t}\n\n\tif (enableToml) {\n\t\tconfigs.push(\n\t\t\ttoml({\n\t\t\t\tstylistic: isStylistic,\n\t\t\t\t...resolveOptions(enableToml),\n\t\t\t})\n\t\t);\n\t}\n\n\tif (enableYaml) {\n\t\tconfigs.push(\n\t\t\tyaml({\n\t\t\t\tstylistic: isStylistic,\n\t\t\t\t...resolveOptions(enableYaml),\n\t\t\t})\n\t\t);\n\t}\n\n\tif (enableReact) {\n\t\tconfigs.push(react({ typescript: isTypeAware, ...resolveOptions(enableReact) }));\n\t}\n\n\tif (restOfOptions.vue) {\n\t\tconfigs.push(\n\t\t\tvue({ stylistic: isStylistic, typescript: isTypeAware, ...resolveOptions(restOfOptions.vue) })\n\t\t);\n\t}\n\n\tif (restOfOptions.solid) {\n\t\tconfigs.push(solid({ typescript: isTypeAware, ...resolveOptions(restOfOptions.solid) }));\n\t}\n\n\tif (restOfOptions.astro) {\n\t\tconfigs.push(astro({ typescript: isTypeAware, ...resolveOptions(restOfOptions.astro) }));\n\t}\n\n\tif (restOfOptions.expo) {\n\t\tconfigs.push(expo());\n\t}\n\n\t// if (restOfOptions.tailwindcss) {\n\t// \tconfigs.push(tailwindcss(resolveOptions(restOfOptions.tailwindcss)));\n\t// }\n\n\tif (restOfOptions.tailwindcssBetter) {\n\t\tconfigs.push(tailwindcssBetter(resolveOptions(restOfOptions.tailwindcssBetter)));\n\t}\n\n\tif (restOfOptions.tanstack) {\n\t\tconfigs.push(tanstack(resolveOptions(restOfOptions.tanstack)));\n\t}\n\n\tif (restOfOptions.depend) {\n\t\tconfigs.push(depend(resolveOptions(restOfOptions.depend)));\n\t}\n\n\tassert(\n\t\t!(\"files\" in restOfOptions),\n\t\t`[@zayne-labs/eslint-config] The first argument should not contain the \"files\" property as the options are supposed to be global. Place it in the second config array instead.`\n\t);\n\n\tlet composer = new FlatConfigComposer<TypedFlatConfigItem, ConfigNames>();\n\n\tcomposer = composer.append(...configs, ...(userConfigs as never[]));\n\n\tif (autoRenamePlugins) {\n\t\tcomposer = composer.renamePlugins(defaultPluginRenameMap);\n\t}\n\n\treturn composer;\n};\n"],"mappings":"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EAG/B;GACC,MAAM;GAEN,OAAO;IACN,sBAAsB,CAAC,SAAS,EAAE,aAAa;IAC/C,oBAAoB,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS;;GAGvD,GAAG;;;;;;;;;;;;AClCN,MAAa,wBAA+C,CAC3D;CACC,OAAO,CAAC;CAER,MAAM;CAEN,OAAO;EACN,2BAA2B,CAC1B,SACA;GACC,OAAO,EAAE,MAAM;GACf,aAAa;;EAGf,mBAAmB;GAClB;GACA;IACC,OAAO;KACN;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;;IAED,aAAa;;GAEd;IACC,OAAO,EAAE,MAAM;IACf,aAAa;;GAEd;IACC,OAAO,EAAE,MAAM;IACf,aAAa;;GAEd;IACC,OAAO,EAAE,MAAM;IACf,aAAa;;GAEd;IACC,OAAO;KAAC;KAAS;KAAU;KAAW;;IACtC,aAAa;;GAEd;IACC,OAAO;KAEN;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;;IAED,aAAa;;;;;;;;;;AAalB,MAAa,qBAA4C,CACxD;CACC,OAAO,CAAC,oBAAoB;CAE5B,MAAM;CAEN,OAAO,EACN,mBAAmB;EAClB;EACA;GACC,OAAO;IAAC;IAAW;IAAmB;IAAc;IAAS;IAAW;;GACxE,aAAa;;EAEd;GACC,OAAO;IAEN;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IAC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"}
1
+ {"version":3,"file":"index.js","names":["typescript","typescript","stylistic","stylistic","stylistic","config: TypedFlatConfigItem[]","typescript","config: TypedFlatConfigItem[]","isObject","typescript","jsx","config: TypedFlatConfigItem[]","stylistic","ignores","stylistic","typescript","stylistic","stylistic","configs: Array<Awaitable<TypedFlatConfigItem[]>>"],"sources":["../src/globs.ts","../src/utils.ts","../src/configs/astro.ts","../src/configs/comments.ts","../src/configs/depend.ts","../src/configs/expo.ts","../src/configs/ignores.ts","../src/configs/imports.ts","../src/configs/javascript.ts","../src/configs/jsdoc.ts","../src/configs/jsonc.ts","../src/configs/node.ts","../src/configs/perfectionist.ts","../src/configs/pnpm.ts","../src/constants.ts","../src/configs/react.ts","../src/configs/solid.ts","../src/configs/sort.ts","../src/configs/stylistic.ts","../src/configs/tailwindcss.ts","../src/configs/tanstack.ts","../src/configs/toml.ts","../src/configs/typescript.ts","../src/configs/unicorn.ts","../src/configs/vue.ts","../src/configs/yaml.ts","../src/configs/jsx.ts","../src/factory.ts"],"sourcesContent":["import { defineEnum } from \"@zayne-labs/toolkit-type-helpers\";\n\nexport const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = \"**/*.?([cm])[jt]s?(x)\";\n\nexport const GLOB_JS = \"**/*.?([cm])js\";\nexport const GLOB_JSX = \"**/*.?([cm])jsx\";\n\nexport const GLOB_TS = \"**/*.?([cm])ts\";\nexport const GLOB_TSX = \"**/*.?([cm])tsx\";\n\nexport const GLOB_STYLES = \"**/*.{c,le,sc}ss\";\nexport const GLOB_CSS = \"**/*.css\";\nexport const GLOB_POSTCSS = \"**/*.{p,post}css\";\nexport const GLOB_LESS = \"**/*.less\";\nexport const GLOB_SCSS = \"**/*.scss\";\n\nexport const GLOB_JSON = \"**/*.json\";\nexport const GLOB_JSON5 = \"**/*.json5\";\nexport const GLOB_JSONC = \"**/*.jsonc\";\n\nexport const GLOB_MARKDOWN = \"**/*.md\";\nexport const GLOB_MARKDOWN_IN_MARKDOWN = \"**/*.md/*.md\";\nexport const GLOB_SVELTE = \"**/*.svelte\";\nexport const GLOB_VUE = \"**/*.vue\";\nexport const GLOB_YAML = \"**/*.y?(a)ml\";\nexport const GLOB_TOML = \"**/*.toml\";\nexport const GLOB_XML = \"**/*.xml\";\nexport const GLOB_SVG = \"**/*.svg\";\nexport const GLOB_HTML = \"**/*.htm?(l)\";\nexport const GLOB_ASTRO = \"**/*.astro\";\nexport const GLOB_ASTRO_TS = \"**/*.astro/*.ts\";\nexport const GLOB_GRAPHQL = \"**/*.{g,graph}ql\";\n\nexport const GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;\n\nexport const GLOB_TESTS = defineEnum([\n\t`**/__tests__/**/*.${GLOB_SRC_EXT}`,\n\t`**/*.spec.${GLOB_SRC_EXT}`,\n\t`**/*.test.${GLOB_SRC_EXT}`,\n\t`**/*.bench.${GLOB_SRC_EXT}`,\n\t`**/*.benchmark.${GLOB_SRC_EXT}`,\n]);\n\nexport const GLOB_ALL_SRC = [\n\tGLOB_SRC,\n\tGLOB_STYLES,\n\tGLOB_JSON,\n\tGLOB_JSON5,\n\tGLOB_MARKDOWN,\n\tGLOB_SVELTE,\n\tGLOB_VUE,\n\tGLOB_YAML,\n\tGLOB_XML,\n\tGLOB_HTML,\n];\n\nexport const GLOB_EXCLUDE = defineEnum([\n\t\"**/node_modules\",\n\t\"**/dist\",\n\t\"**/package-lock.json\",\n\t\"**/yarn.lock\",\n\t\"**/pnpm-lock.yaml\",\n\t\"**/bun.lockb\",\n\n\t\"**/output\",\n\t\"**/coverage\",\n\t\"**/temp\",\n\t\"**/.temp\",\n\t\"**/tmp\",\n\t\"**/.tmp\",\n\t\"**/.history\",\n\t\"**/.vitepress/cache\",\n\t\"**/.nuxt\",\n\t\"**/.next\",\n\t\"**/.svelte-kit\",\n\t\"**/.vercel\",\n\t\"**/.changeset\",\n\t\"**/.idea\",\n\t\"**/.cache\",\n\t\"**/.output\",\n\t\"**/.vite-inspect\",\n\t\"**/.yarn\",\n\t\"**/vite.config.*.timestamp-*\",\n\n\t\"**/CHANGELOG*.md\",\n\t\"**/*.min.*\",\n\t\"**/LICENSE*\",\n\t\"**/__snapshots__\",\n\t\"**/auto-import?(s).d.ts\",\n\t\"**/components.d.ts\",\n]);\n","import { fileURLToPath } from \"node:url\";\nimport type { ESLint } from \"eslint\";\nimport { isPackageExists } from \"local-pkg\";\nimport type { Awaitable, TypedFlatConfigItem } from \"./types\";\n\nexport const isObject = <TObject extends object>(value: unknown): value is TObject => {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\n/**\n * @description - Combine array and non-array configs into a single array.\n */\nexport const combine = async (\n\t...configs: Array<Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[]>>\n): Promise<TypedFlatConfigItem[]> => {\n\tconst resolved = await Promise.all(configs);\n\n\treturn resolved.flat();\n};\n\nexport const interopDefault = async <TModule>(\n\tmodule: Awaitable<TModule>\n): Promise<TModule extends { default: infer TDefaultExport } ? TDefaultExport : TModule> => {\n\tconst resolved = await module;\n\n\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition -- casting is necessary to prevent assignability ts issues at call-site\n\treturn (resolved as { default: never }).default ?? resolved;\n};\n\n/**\n * @description - Rename plugin prefixes in a rule object.\n * Accepts a map of prefixes to rename.\n *\n * @example\n * ```ts\n * import { renameRules } from '@zayne-labs/eslint-config'\n *\n * export default [{\n * rules: renameRules(\n * {\n * '@typescript-eslint/indent': 'error'\n * },\n * { '@typescript-eslint': 'ts' }\n * )\n * }]\n * ```\n */\nexport const renameRules = (\n\trules: Record<string, unknown> | undefined,\n\trenameMap: Record<string, string>\n): TypedFlatConfigItem[\"rules\"] | undefined => {\n\tif (!rules) return;\n\n\tconst renamedRulesEntries = Object.entries(rules).map(([ruleKey, ruleValue]) => {\n\t\tfor (const [oldRuleName, newRuleName] of Object.entries(renameMap)) {\n\t\t\tif (ruleKey.startsWith(`${oldRuleName}/`)) {\n\t\t\t\treturn [`${newRuleName}${ruleKey.slice(oldRuleName.length)}`, ruleValue];\n\t\t\t}\n\t\t}\n\n\t\treturn [ruleKey, ruleValue];\n\t});\n\n\treturn Object.fromEntries(renamedRulesEntries) as TypedFlatConfigItem[\"rules\"];\n};\n\nexport const renamePlugins = (\n\tplugins: Record<string, unknown> | undefined,\n\trenameMap: Record<string, string>\n): Record<string, ESLint.Plugin> | undefined => {\n\tif (!plugins) return;\n\n\tconst renamedPluginEntries = Object.entries(plugins).map(([pluginKey, pluginValue]) => {\n\t\tif (pluginKey in renameMap) {\n\t\t\treturn [renameMap[pluginKey], pluginValue];\n\t\t}\n\n\t\treturn [pluginKey, pluginValue];\n\t});\n\n\treturn Object.fromEntries(renamedPluginEntries) as Record<string, ESLint.Plugin>;\n};\n\n/**\n * @description - Rename plugin names a flat configs array\n *\n * @example\n * ```ts\n * import { renamePluginInConfigs } from '@zayne-labs/eslint-config'\n * import someConfigs from './some-configs'\n *\n * export default renamePluginInConfigs(someConfigs, {\n * '@typescript-eslint': 'ts',\n * 'import-x': 'import',\n * })\n * ```\n */\nexport const renamePluginInConfigs = (options: {\n\tconfigs: TypedFlatConfigItem[];\n\toverrides?: TypedFlatConfigItem;\n\trenameMap: Record<string, string>;\n}): TypedFlatConfigItem[] => {\n\tconst { configs, overrides, renameMap } = options;\n\n\tconst renamedConfigs = configs.map((config) => ({\n\t\t...config,\n\t\t...overrides,\n\n\t\t...(isObject(config.plugins) && {\n\t\t\tplugins: renamePlugins(config.plugins, renameMap),\n\t\t}),\n\t\t...(isObject(config.rules) && {\n\t\t\trules: renameRules(config.rules, renameMap),\n\t\t}),\n\t}));\n\n\treturn renamedConfigs;\n};\n\nconst scopeUrl = fileURLToPath(new URL(\".\", import.meta.url));\nconst isCwdInScope = isPackageExists(\"@zayne-labs/eslint-config\");\n\nexport const isPackageInScope = (name: string): boolean => isPackageExists(name, { paths: [scopeUrl] });\n\n/**\n * @description\n * - Ensures that packages are installed in the current scope.\n * - If they are not installed, and the user is in a TTY, and the user is not in a CI environment,\n * and the user is in the same scope as this package, then prompt the user to\n * install the packages.\n *\n * @param packages - The packages to ensure are installed.\n */\nexport const ensurePackages = async (packages: Array<string | undefined>): Promise<void> => {\n\tif (process.env.CI || !process.stdout.isTTY || !isCwdInScope) return;\n\n\tconst nonExistingPackages = packages.filter((pkg) => pkg && !isPackageInScope(pkg));\n\n\tif (nonExistingPackages.length === 0) return;\n\n\tconst clackPrompt = await import(\"@clack/prompts\");\n\n\tconst result = await clackPrompt.confirm({\n\t\tmessage: `${nonExistingPackages.length === 1 ? \"Package is\" : \"Packages are\"} required for this config: ${nonExistingPackages.join(\", \")}. Do you want to install them?`,\n\t});\n\n\tif (result) {\n\t\tconst antfuPkg = await import(\"@antfu/install-pkg\");\n\n\t\tawait antfuPkg.installPackage(nonExistingPackages as string[], { dev: true });\n\t}\n};\n\nexport const resolveOptions = <TObject>(option: boolean | TObject | undefined) =>\n\tisObject(option) ? option : ({} as TObject);\n\n// type OverrideOptions<TConfigName extends string> = UnionDiscriminator<\n// \t[{ name: TConfigName }, { configName: TConfigName }]\n// > & {\n// \t// files?: string[];\n// \toverrides: TypedFlatConfigItem[\"rules\"];\n// };\n\n// export const createOverrideRules = <TConfigName extends string>(options: OverrideOptions<TConfigName>) => {\n// \tconst { configName, name, overrides } = options;\n\n// \tif (!isObject(overrides)) {\n// \t\treturn {} as never;\n// \t}\n\n// \treturn defineEnum({\n// \t\t// ...(files && { files }),\n// \t\tname: name ? `zayne/${name}` : `zayne/${configName}/rules/overrides`,\n// \t\trules: overrides,\n// \t}) satisfies TypedFlatConfigItem;\n// };\n","import { GLOB_ASTRO } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\nimport { ensurePackages, interopDefault } from \"../utils\";\n\nexport const astro = async (\n\toptions: ExtractOptions<OptionsConfig[\"astro\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_ASTRO], overrides, typescript = true } = options;\n\n\tawait ensurePackages([\"eslint-plugin-astro\", \"astro-eslint-parser\"]);\n\n\tconst [pluginAstro, parserAstro] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-astro\")),\n\t\tinteropDefault(import(\"astro-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/astro/setup\",\n\n\t\t\tplugins: {\n\t\t\t\tastro: pluginAstro,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tglobals: pluginAstro.environments.astro.globals,\n\t\t\t\tparser: parserAstro,\n\t\t\t\tparserOptions: {\n\t\t\t\t\textraFileExtensions: [\".astro\"],\n\t\t\t\t\t// eslint-disable-next-line unicorn/no-await-expression-member -- ignore for now\n\t\t\t\t\t...(typescript && { parser: (await interopDefault(import(\"typescript-eslint\"))).parser }),\n\t\t\t\t},\n\t\t\t\tsourceType: \"module\",\n\t\t\t},\n\n\t\t\tname: \"zayne/astro/recommended\",\n\n\t\t\tprocessor: typescript ? \"astro/client-side-ts\" : \"astro/astro\",\n\n\t\t\trules: pluginAstro.configs.recommended.at(-1)?.rules,\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/astro/rules\",\n\n\t\t\trules: {\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { interopDefault } from \"@/utils\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\n\nexport const comments = async (\n\toptions: ExtractOptions<OptionsConfig[\"comments\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, type = \"app\" } = options;\n\n\tconst eslintPluginComments = await interopDefault(\n\t\timport(\"@eslint-community/eslint-plugin-eslint-comments\")\n\t);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/eslint-comments/rules\",\n\t\t\tplugins: {\n\t\t\t\t\"eslint-comments\": eslintPluginComments,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"eslint-comments/disable-enable-pair\": [\"error\", { allowWholeFile: true }],\n\t\t\t\t\"eslint-comments/no-aggregating-enable\": \"error\",\n\t\t\t\t\"eslint-comments/no-duplicate-disable\": \"error\",\n\t\t\t\t\"eslint-comments/no-unlimited-disable\": \"error\",\n\t\t\t\t\"eslint-comments/no-unused-enable\": \"error\",\n\n\t\t\t\t...(type !== \"app\" && {\n\t\t\t\t\t\"eslint-comments/require-description\": \"warn\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { GLOB_SRC } from \"@/globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault } from \"@/utils\";\n\nexport const depend = async (\n\toptions: ExtractOptions<OptionsConfig[\"depend\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_SRC], overrides } = options;\n\n\tawait ensurePackages([\"eslint-plugin-depend\"]);\n\n\tconst [eslintPluginDepend, jsoncParser] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-depend\")),\n\t\tinteropDefault(import(\"jsonc-eslint-parser\")),\n\t]);\n\n\ttype PossibleConfigShape = { \"flat/recommended\": TypedFlatConfigItem | undefined };\n\n\treturn [\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/depend/recommended\",\n\n\t\t\tplugins: {\n\t\t\t\tdepend: eslintPluginDepend,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t...(eslintPluginDepend.configs as PossibleConfigShape)[\"flat/recommended\"]?.rules,\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles: [\"package.json\", \"**/package.json\"],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: jsoncParser,\n\t\t\t},\n\n\t\t\tname: \"zayne/depend/recommended/package-json\",\n\n\t\t\tplugins: {\n\t\t\t\tdepend: eslintPluginDepend,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t...(eslintPluginDepend.configs as PossibleConfigShape)[\"flat/recommended\"]?.rules,\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault } from \"@/utils\";\n\nconst expo = async (\n\toptions: ExtractOptions<OptionsConfig[\"expo\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides } = options;\n\n\tawait ensurePackages([\"eslint-config-expo\"]);\n\n\tconst eslintConfigExpo = await interopDefault(import(\"eslint-config-expo/flat/default.js\"));\n\n\treturn [\n\t\teslintConfigExpo,\n\n\t\t{\n\t\t\tname: \"zayne/expo/rules\",\n\n\t\t\trules: { ...overrides },\n\t\t},\n\t];\n};\n\nexport { expo };\n","import { globalIgnores } from \"eslint/config\";\nimport { interopDefault } from \"@/utils\";\nimport { GLOB_EXCLUDE } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\n\nexport const ignores = (userIgnores: string[] = []): TypedFlatConfigItem[] => {\n\treturn [globalIgnores([...GLOB_EXCLUDE, ...userIgnores], \"zayne/defaults/ignores\")];\n};\n\nexport const gitIgnores = async (\n\toptions?: ExtractOptions<OptionsConfig[\"gitignore\"]>\n): Promise<TypedFlatConfigItem[]> => {\n\tconst antfuGitIgnore = await interopDefault(import(\"eslint-config-flat-gitignore\"));\n\n\tconst config = antfuGitIgnore({\n\t\tname: \"zayne/gitignore/setup\",\n\t\tstrict: false,\n\t\t...options,\n\t});\n\n\treturn [config];\n};\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst imports = async (\n\toptions: ExtractOptions<OptionsConfig[\"imports\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, stylistic = true, typescript = true } = options;\n\n\tconst eslintPluginImportX = await interopDefault(import(\"eslint-plugin-import-x\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/import/setup\",\n\n\t\t\tplugins: {\n\t\t\t\timport: eslintPluginImportX,\n\t\t\t},\n\n\t\t\t...(typescript && {\n\t\t\t\tsettings: eslintPluginImportX.flatConfigs.typescript.settings,\n\t\t\t}),\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/import/recommended\",\n\n\t\t\trules: {\n\t\t\t\t...eslintPluginImportX.flatConfigs.recommended.rules,\n\t\t\t\t...(typescript && eslintPluginImportX.flatConfigs.typescript.rules),\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/import/rules\",\n\n\t\t\trules: {\n\t\t\t\t// == This rules keeps giving issues, so off for now\n\t\t\t\t\"import/extensions\": \"off\",\n\t\t\t\t// \"import/extensions\": [\n\t\t\t\t// \t\"error\",\n\t\t\t\t// \t\"never\",\n\t\t\t\t// \t{ ignorePackages: true, pattern: { css: \"always\", png: \"always\", svg: \"always\" } },\n\t\t\t\t// ],\n\t\t\t\t\"import/first\": \"error\",\n\t\t\t\t\"import/no-absolute-path\": \"error\",\n\t\t\t\t// \"import/no-cycle\": [\"error\", { ignoreExternal: true, maxDepth: 3 }],\n\t\t\t\t\"import/no-duplicates\": \"error\",\n\t\t\t\t\"import/no-extraneous-dependencies\": [\"error\", { devDependencies: true }],\n\t\t\t\t\"import/no-mutable-exports\": \"error\",\n\t\t\t\t\"import/no-named-default\": \"error\",\n\t\t\t\t\"import/no-relative-packages\": \"error\",\n\t\t\t\t\"import/no-self-import\": \"error\",\n\n\t\t\t\t// == This rule keeps giving issues, so off for now\n\t\t\t\t\"import/no-unresolved\": \"off\",\n\n\t\t\t\t\"import/no-useless-path-segments\": \"error\",\n\n\t\t\t\t...(stylistic && { \"import/newline-after-import\": \"error\" }),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { imports };\n","import globals from \"globals\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst javascript = async (\n\toptions: ExtractOptions<OptionsConfig[\"javascript\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides } = options;\n\n\tconst eslintJs = await interopDefault(import(\"@eslint/js\"));\n\n\treturn [\n\t\t{\n\t\t\tlanguageOptions: {\n\t\t\t\tecmaVersion: \"latest\",\n\n\t\t\t\tglobals: {\n\t\t\t\t\t...globals.browser,\n\t\t\t\t\t...globals.node,\n\t\t\t\t\tdocument: \"readonly\",\n\t\t\t\t\tnavigator: \"readonly\",\n\t\t\t\t\twindow: \"readonly\",\n\t\t\t\t},\n\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaVersion: \"latest\",\n\t\t\t\t\tsourceType: \"module\",\n\t\t\t\t},\n\n\t\t\t\tsourceType: \"module\",\n\t\t\t},\n\n\t\t\tlinterOptions: {\n\t\t\t\treportUnusedDisableDirectives: true,\n\t\t\t},\n\n\t\t\tname: \"zayne/js-eslint/setup\",\n\t\t},\n\n\t\t{\n\t\t\t...eslintJs.configs.recommended,\n\n\t\t\tname: \"zayne/js-eslint/recommended\",\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/js-eslint/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"accessor-pairs\": [\"error\", { enforceForClassMembers: true, setWithoutGet: true }],\n\t\t\t\t\"array-callback-return\": [\"error\", { allowImplicit: true }],\n\t\t\t\t\"block-scoped-var\": \"error\",\n\t\t\t\t\"class-methods-use-this\": \"error\",\n\t\t\t\tcomplexity: [\"warn\", 50],\n\t\t\t\t\"constructor-super\": \"error\",\n\t\t\t\tcurly: [\"error\", \"multi-line\"],\n\t\t\t\t\"default-case\": [\"error\", { commentPattern: \"^no default$\" }],\n\t\t\t\t\"default-case-last\": \"error\",\n\t\t\t\t\"default-param-last\": \"error\",\n\t\t\t\t\"dot-notation\": [\"error\", { allowKeywords: true }],\n\t\t\t\teqeqeq: [\"error\", \"always\", { null: \"ignore\" }],\n\t\t\t\t\"grouped-accessor-pairs\": \"error\",\n\t\t\t\t\"logical-assignment-operators\": \"warn\",\n\t\t\t\t\"max-depth\": [\"error\", 2],\n\t\t\t\t\"new-cap\": [\"error\", { capIsNew: false, newIsCap: true, properties: true }],\n\t\t\t\t\"no-alert\": \"warn\",\n\t\t\t\t\"no-array-constructor\": \"error\",\n\t\t\t\t\"no-async-promise-executor\": \"error\",\n\t\t\t\t\"no-await-in-loop\": \"error\",\n\t\t\t\t\"no-caller\": \"error\",\n\t\t\t\t\"no-case-declarations\": \"error\",\n\t\t\t\t\"no-class-assign\": \"error\",\n\t\t\t\t\"no-compare-neg-zero\": \"error\",\n\t\t\t\t\"no-cond-assign\": [\"error\", \"always\"],\n\t\t\t\t\"no-console\": [\"error\", { allow: [\"warn\", \"error\", \"info\", \"trace\"] }],\n\t\t\t\t\"no-const-assign\": \"error\",\n\t\t\t\t\"no-constant-condition\": \"warn\",\n\t\t\t\t\"no-constructor-return\": \"error\",\n\t\t\t\t\"no-control-regex\": \"error\",\n\t\t\t\t\"no-debugger\": \"error\",\n\t\t\t\t\"no-delete-var\": \"error\",\n\t\t\t\t\"no-dupe-args\": \"error\",\n\t\t\t\t\"no-dupe-class-members\": \"error\",\n\t\t\t\t\"no-dupe-keys\": \"error\",\n\t\t\t\t\"no-duplicate-case\": \"error\",\n\t\t\t\t\"no-else-return\": [\"error\", { allowElseIf: false }],\n\t\t\t\t\"no-empty\": [\"error\", { allowEmptyCatch: true }],\n\t\t\t\t\"no-empty-character-class\": \"error\",\n\t\t\t\t\"no-empty-pattern\": \"error\",\n\t\t\t\t\"no-eval\": [\"error\", { allowIndirect: true }],\n\t\t\t\t\"no-ex-assign\": \"error\",\n\t\t\t\t\"no-extend-native\": \"error\",\n\t\t\t\t\"no-extra-bind\": \"error\",\n\t\t\t\t\"no-extra-boolean-cast\": \"error\",\n\t\t\t\t\"no-fallthrough\": \"error\",\n\t\t\t\t\"no-func-assign\": \"error\",\n\t\t\t\t\"no-global-assign\": \"error\",\n\t\t\t\t\"no-implicit-coercion\": \"warn\",\n\t\t\t\t\"no-implied-eval\": \"error\",\n\t\t\t\t\"no-import-assign\": \"error\",\n\t\t\t\t\"no-invalid-regexp\": \"error\",\n\t\t\t\t\"no-irregular-whitespace\": \"error\",\n\t\t\t\t\"no-iterator\": \"error\",\n\t\t\t\t\"no-labels\": [\"error\", { allowLoop: false, allowSwitch: false }],\n\t\t\t\t\"no-lone-blocks\": \"error\",\n\t\t\t\t\"no-loop-func\": \"error\",\n\t\t\t\t\"no-loss-of-precision\": \"error\",\n\t\t\t\t\"no-misleading-character-class\": \"error\",\n\t\t\t\t\"no-multi-str\": \"error\",\n\t\t\t\t\"no-new\": \"error\",\n\t\t\t\t\"no-new-func\": \"error\",\n\t\t\t\t\"no-new-native-nonconstructor\": \"error\",\n\t\t\t\t\"no-new-wrappers\": \"error\",\n\t\t\t\t\"no-obj-calls\": \"error\",\n\t\t\t\t\"no-octal\": \"error\",\n\t\t\t\t\"no-octal-escape\": \"error\",\n\t\t\t\t\"no-param-reassign\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tignorePropertyModificationsFor: [\n\t\t\t\t\t\t\t\"acc\", // for reduce accumulators\n\t\t\t\t\t\t\t\"accumulator\", // for reduce accumulators\n\t\t\t\t\t\t\t\"e\", // for e.returnvalue\n\t\t\t\t\t\t\t\"ctx\", // for Koa routing\n\t\t\t\t\t\t\t\"context\", // for Koa routing\n\t\t\t\t\t\t\t\"req\", // for Express requests\n\t\t\t\t\t\t\t\"request\", // for Express requests\n\t\t\t\t\t\t\t\"res\", // for Express responses\n\t\t\t\t\t\t\t\"response\", // for Express responses\n\t\t\t\t\t\t\t\"$scope\", // for Angular 1 scopes\n\t\t\t\t\t\t\t\"staticContext\", // for ReactRouter context\n\t\t\t\t\t\t],\n\t\t\t\t\t\tprops: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-proto\": \"error\",\n\t\t\t\t\"no-prototype-builtins\": \"error\",\n\t\t\t\t\"no-redeclare\": [\"error\", { builtinGlobals: false }],\n\t\t\t\t\"no-regex-spaces\": \"error\",\n\t\t\t\t\"no-restricted-exports\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\trestrictedNamedExports: [\n\t\t\t\t\t\t\t\"default\", // use `export default` to provide a default export\n\t\t\t\t\t\t\t\"then\", // this will cause tons of confusion when your module is dynamically `import()`ed, and will break in most node ESM versions\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-restricted-globals\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Use Number.isFinite instead https://github.com/airbnb/javascript#standard-library--isfinite\",\n\t\t\t\t\t\tname: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Use Number.isNaN instead https://github.com/airbnb/javascript#standard-library--isnan\",\n\t\t\t\t\t\tname: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{ message: \"Use `globalThis` instead.\", name: \"global\" },\n\t\t\t\t\t{ message: \"Use `globalThis` instead.\", name: \"self\" },\n\t\t\t\t],\n\t\t\t\t\"no-restricted-imports\": [\"off\", { paths: [], patterns: [] }],\n\t\t\t\t\"no-restricted-properties\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"arguments.callee is deprecated\",\n\t\t\t\t\t\tobject: \"arguments\",\n\t\t\t\t\t\tproperty: \"callee\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"global\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"self\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"window\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"global\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"self\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"window\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Use the exponentiation operator (**) instead.\",\n\t\t\t\t\t\tobject: \"Math\",\n\t\t\t\t\t\tproperty: \"pow\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.\",\n\t\t\t\t\t\tproperty: \"__proto__\",\n\t\t\t\t\t},\n\t\t\t\t\t{ message: \"Use `Object.defineProperty` instead.\", property: \"__defineGetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.defineProperty` instead.\", property: \"__defineSetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.getOwnPropertyDescriptor` instead.\", property: \"__lookupGetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.getOwnPropertyDescriptor` instead.\", property: \"__lookupSetter__\" },\n\t\t\t\t],\n\t\t\t\t\"no-restricted-syntax\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"ForInStatement\",\n\t\t\t\t\t\"LabeledStatement\",\n\t\t\t\t\t\"WithStatement\",\n\t\t\t\t\t\"TSEnumDeclaration[const=true]\",\n\t\t\t\t\t\"TSExportAssignment\",\n\t\t\t\t],\n\t\t\t\t\"no-return-assign\": [\"error\", \"except-parens\"],\n\t\t\t\t\"no-script-url\": \"error\",\n\t\t\t\t\"no-self-assign\": [\"error\", { props: true }],\n\t\t\t\t\"no-self-compare\": \"error\",\n\t\t\t\t\"no-sequences\": \"error\",\n\t\t\t\t\"no-shadow-restricted-names\": \"error\",\n\t\t\t\t\"no-sparse-arrays\": \"error\",\n\t\t\t\t\"no-template-curly-in-string\": \"error\",\n\t\t\t\t\"no-this-before-super\": \"error\",\n\t\t\t\t\"no-throw-literal\": \"error\",\n\t\t\t\t\"no-undef\": \"error\",\n\t\t\t\t\"no-undef-init\": \"error\",\n\t\t\t\t\"no-unexpected-multiline\": \"error\",\n\t\t\t\t\"no-unmodified-loop-condition\": \"error\",\n\t\t\t\t\"no-unneeded-ternary\": [\"warn\", { defaultAssignment: false }],\n\t\t\t\t\"no-unreachable\": \"error\",\n\t\t\t\t\"no-unreachable-loop\": \"error\",\n\t\t\t\t\"no-unsafe-finally\": \"error\",\n\t\t\t\t\"no-unsafe-negation\": \"error\",\n\t\t\t\t\"no-unused-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowShortCircuit: true,\n\t\t\t\t\t\tallowTaggedTemplates: true,\n\t\t\t\t\t\tallowTernary: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-unused-vars\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\targs: \"all\",\n\t\t\t\t\t\targsIgnorePattern: \"^_\",\n\t\t\t\t\t\tcaughtErrors: \"all\",\n\t\t\t\t\t\tdestructuredArrayIgnorePattern: \"^_\",\n\t\t\t\t\t\treportUsedIgnorePattern: true,\n\t\t\t\t\t\tvars: \"all\",\n\t\t\t\t\t\tvarsIgnorePattern: \"[iI]gnored\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-useless-backreference\": \"error\",\n\t\t\t\t\"no-useless-call\": \"error\",\n\t\t\t\t\"no-useless-catch\": \"error\",\n\t\t\t\t\"no-useless-computed-key\": \"error\",\n\t\t\t\t\"no-useless-concat\": \"error\",\n\t\t\t\t\"no-useless-constructor\": \"error\",\n\t\t\t\t\"no-useless-rename\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{ ignoreDestructuring: false, ignoreExport: false, ignoreImport: false },\n\t\t\t\t],\n\t\t\t\t\"no-useless-return\": \"error\",\n\t\t\t\t\"no-var\": \"error\",\n\t\t\t\t\"no-with\": \"error\",\n\t\t\t\t\"object-shorthand\": [\"error\", \"always\", { avoidQuotes: true, ignoreConstructors: false }],\n\t\t\t\t\"one-var\": [\"error\", { initialized: \"never\" }],\n\t\t\t\t\"operator-assignment\": \"warn\",\n\t\t\t\t\"prefer-arrow-callback\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowNamedFunctions: false,\n\t\t\t\t\t\tallowUnboundThis: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"prefer-const\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tdestructuring: \"all\",\n\t\t\t\t\t\tignoreReadBeforeAssign: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"prefer-exponentiation-operator\": \"error\",\n\t\t\t\t\"prefer-object-has-own\": \"error\",\n\t\t\t\t\"prefer-object-spread\": \"warn\",\n\t\t\t\t\"prefer-promise-reject-errors\": \"error\",\n\t\t\t\t\"prefer-regex-literals\": [\"error\", { disallowRedundantWrapping: true }],\n\t\t\t\t\"prefer-rest-params\": \"error\",\n\t\t\t\t\"prefer-spread\": \"error\",\n\t\t\t\t\"prefer-template\": \"error\",\n\t\t\t\tradix: \"error\",\n\t\t\t\t\"symbol-description\": \"error\",\n\t\t\t\t\"unicode-bom\": [\"error\", \"never\"],\n\t\t\t\t\"use-isnan\": [\"error\", { enforceForIndexOf: true, enforceForSwitchCase: true }],\n\t\t\t\t\"valid-typeof\": [\"error\", { requireStringLiterals: true }],\n\t\t\t\t\"vars-on-top\": \"error\",\n\t\t\t\tyoda: [\"error\", \"never\"],\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { javascript };\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst jsdoc = async (\n\toptions: ExtractOptions<OptionsConfig[\"jsdoc\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, stylistic = true } = options;\n\n\tconst eslintPluginJsdoc = await interopDefault(import(\"eslint-plugin-jsdoc\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/jsdoc/rules\",\n\n\t\t\tplugins: {\n\t\t\t\tjsdoc: eslintPluginJsdoc,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"jsdoc/check-access\": \"warn\",\n\t\t\t\t\"jsdoc/check-param-names\": \"warn\",\n\t\t\t\t\"jsdoc/check-property-names\": \"warn\",\n\t\t\t\t\"jsdoc/check-types\": \"warn\",\n\t\t\t\t\"jsdoc/empty-tags\": \"warn\",\n\t\t\t\t\"jsdoc/implements-on-classes\": \"warn\",\n\t\t\t\t\"jsdoc/no-defaults\": \"warn\",\n\t\t\t\t\"jsdoc/no-multi-asterisks\": \"warn\",\n\t\t\t\t\"jsdoc/require-description\": [\"warn\", { descriptionStyle: \"any\" }],\n\t\t\t\t\"jsdoc/require-param-name\": \"warn\",\n\t\t\t\t\"jsdoc/require-property\": \"warn\",\n\t\t\t\t\"jsdoc/require-property-description\": \"warn\",\n\t\t\t\t\"jsdoc/require-property-name\": \"warn\",\n\t\t\t\t\"jsdoc/require-returns-check\": \"warn\",\n\t\t\t\t\"jsdoc/require-returns-description\": \"warn\",\n\t\t\t\t\"jsdoc/require-yields-check\": \"warn\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"jsdoc/check-alignment\": \"warn\",\n\t\t\t\t\t\"jsdoc/multiline-blocks\": \"warn\",\n\t\t\t\t\t\"jsdoc/require-description\": [\"warn\", { descriptionStyle: \"tag\" }],\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { jsdoc };\n","import { GLOB_JSON, GLOB_JSON5, GLOB_JSONC } from \"@/globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst jsonc = async (\n\toptions: ExtractOptions<OptionsConfig[\"jsonc\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_JSON, GLOB_JSON5, GLOB_JSONC], overrides, stylistic = true } = options;\n\n\tconst [eslintPluginJsonc, jsoncParser] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-jsonc\")),\n\t\tinteropDefault(import(\"jsonc-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/jsonc/setup\",\n\n\t\t\tplugins: {\n\t\t\t\tjsonc: eslintPluginJsonc,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: jsoncParser,\n\t\t\t},\n\n\t\t\tname: \"zayne/jsonc/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"jsonc/no-bigint-literals\": \"error\",\n\t\t\t\t\"jsonc/no-binary-expression\": \"error\",\n\t\t\t\t\"jsonc/no-binary-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-dupe-keys\": \"error\",\n\t\t\t\t\"jsonc/no-escape-sequence-in-identifier\": \"error\",\n\t\t\t\t\"jsonc/no-floating-decimal\": \"error\",\n\t\t\t\t\"jsonc/no-hexadecimal-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-infinity\": \"error\",\n\t\t\t\t\"jsonc/no-multi-str\": \"error\",\n\t\t\t\t\"jsonc/no-nan\": \"error\",\n\t\t\t\t\"jsonc/no-number-props\": \"error\",\n\t\t\t\t\"jsonc/no-numeric-separators\": \"error\",\n\t\t\t\t\"jsonc/no-octal\": \"error\",\n\t\t\t\t\"jsonc/no-octal-escape\": \"error\",\n\t\t\t\t\"jsonc/no-octal-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-parenthesized\": \"error\",\n\t\t\t\t\"jsonc/no-plus-sign\": \"error\",\n\t\t\t\t\"jsonc/no-regexp-literals\": \"error\",\n\t\t\t\t\"jsonc/no-sparse-arrays\": \"error\",\n\t\t\t\t\"jsonc/no-template-literals\": \"error\",\n\t\t\t\t\"jsonc/no-undefined-value\": \"error\",\n\t\t\t\t\"jsonc/no-unicode-codepoint-escapes\": \"error\",\n\t\t\t\t\"jsonc/no-useless-escape\": \"error\",\n\t\t\t\t\"jsonc/space-unary-ops\": \"error\",\n\t\t\t\t\"jsonc/valid-json-number\": \"error\",\n\t\t\t\t\"jsonc/vue-custom-block/no-parsing-error\": \"error\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"jsonc/array-bracket-spacing\": [\"error\", \"never\"],\n\t\t\t\t\t\"jsonc/comma-dangle\": [\"error\", \"never\"],\n\t\t\t\t\t\"jsonc/comma-style\": [\"error\", \"last\"],\n\t\t\t\t\t\"jsonc/key-spacing\": [\"error\", { afterColon: true, beforeColon: false }],\n\t\t\t\t\t\"jsonc/object-curly-newline\": [\"error\", { consistent: true, multiline: true }],\n\t\t\t\t\t\"jsonc/object-curly-spacing\": [\"error\", \"always\"],\n\t\t\t\t\t\"jsonc/object-property-newline\": [\"error\", { allowMultiplePropertiesPerLine: true }],\n\t\t\t\t\t\"jsonc/quote-props\": \"error\",\n\t\t\t\t\t\"jsonc/quotes\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { jsonc };\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault, isObject, renameRules } from \"@/utils\";\n\nexport const node = async (\n\toptions: ExtractOptions<OptionsConfig[\"node\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, security = false, type = \"app\" } = options;\n\n\tconst [eslintPluginNode, eslintPluginSecurity] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-n\")),\n\t\tsecurity ? interopDefault(import(\"eslint-plugin-security\")) : undefined,\n\t]);\n\n\tconst config: TypedFlatConfigItem[] = [\n\t\t{\n\t\t\tname: \"zayne/node/recommended\",\n\n\t\t\tplugins: {\n\t\t\t\tnode: eslintPluginNode,\n\t\t\t},\n\n\t\t\trules: renameRules(eslintPluginNode.configs[\"flat/recommended-module\"].rules, {\n\t\t\t\tn: \"node\",\n\t\t\t}),\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/node/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"node/no-deprecated-api\": \"error\",\n\t\t\t\t\"node/no-exports-assign\": \"error\",\n\t\t\t\t\"node/no-extraneous-import\": \"off\", // `eslint-plugin-import-x` handles this\n\t\t\t\t\"node/no-missing-import\": \"off\",\n\t\t\t\t\"node/no-path-concat\": \"error\",\n\t\t\t\t\"node/no-unpublished-import\": \"off\",\n\t\t\t\t\"node/no-unsupported-features/es-syntax\": \"off\",\n\t\t\t\t\"node/no-unsupported-features/node-builtins\": \"off\",\n\t\t\t\t\"node/process-exit-as-throw\": \"error\",\n\n\t\t\t\t...(type === \"app-strict\" && {\n\t\t\t\t\t\"node/no-process-env\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...(type === \"lib-strict\" && {\n\t\t\t\t\t\"node/no-unsupported-features/es-syntax\": \"error\",\n\t\t\t\t\t\"node/no-unsupported-features/node-builtins\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n\n\tif (security && eslintPluginSecurity) {\n\t\tconfig.push({\n\t\t\tname: \"zayne/node/security/recommended\",\n\n\t\t\tplugins: {\n\t\t\t\tsecurity: eslintPluginSecurity,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t...eslintPluginSecurity.configs.recommended.rules,\n\n\t\t\t\t...overrides,\n\t\t\t\t...(isObject(security) && security.overrides),\n\t\t\t},\n\t\t});\n\t}\n\n\treturn config;\n};\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst perfectionist = async (\n\toptions: ExtractOptions<OptionsConfig[\"perfectionist\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides } = options;\n\n\tconst eslintPluginPerfectionist = await interopDefault(import(\"eslint-plugin-perfectionist\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/perfectionist/rules\",\n\n\t\t\tplugins: {\n\t\t\t\tperfectionist: eslintPluginPerfectionist,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"perfectionist/sort-array-includes\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-classes\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-interfaces\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-intersection-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t\"conditional\",\n\t\t\t\t\t\t\t\"literal\",\n\t\t\t\t\t\t\t\"import\",\n\t\t\t\t\t\t\t\"intersection\",\n\t\t\t\t\t\t\t\"keyword\",\n\t\t\t\t\t\t\t\"tuple\",\n\t\t\t\t\t\t\t\"named\",\n\t\t\t\t\t\t\t\"object\",\n\t\t\t\t\t\t\t\"function\",\n\t\t\t\t\t\t\t\"operator\",\n\t\t\t\t\t\t\t\"union\",\n\t\t\t\t\t\t\t\"nullish\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-maps\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-object-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-objects\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-switch-case\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-union-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t\"conditional\",\n\t\t\t\t\t\t\t\"literal\",\n\t\t\t\t\t\t\t\"import\",\n\t\t\t\t\t\t\t\"intersection\",\n\t\t\t\t\t\t\t\"keyword\",\n\t\t\t\t\t\t\t\"tuple\",\n\t\t\t\t\t\t\t\"named\",\n\t\t\t\t\t\t\t\"object\",\n\t\t\t\t\t\t\t\"function\",\n\t\t\t\t\t\t\t\"operator\",\n\t\t\t\t\t\t\t\"union\",\n\t\t\t\t\t\t\t\"nullish\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"perfectionist/sort-variable-declarations\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t// \"perfectionist/sort-svelte-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-astro-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-vue-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-jsx-props\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\t// ignorePattern: [\"src\"],\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { perfectionist };\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault } from \"@/utils\";\n\nexport async function pnpm(\n\toptions: ExtractOptions<OptionsConfig[\"pnpm\"]> = {}\n): Promise<TypedFlatConfigItem[]> {\n\tconst { overrides } = options;\n\n\tawait ensurePackages([\"eslint-plugin-pnpm\"]);\n\n\tconst [eslintPluginPnpm, yamlParser, jsoncParser] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-pnpm\")),\n\t\tinteropDefault(import(\"yaml-eslint-parser\")),\n\t\tinteropDefault(import(\"jsonc-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tfiles: [\"package.json\", \"**/package.json\"],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: jsoncParser,\n\t\t\t},\n\n\t\t\tname: \"zayne/pnpm/rules/package-json\",\n\n\t\t\tplugins: {\n\t\t\t\tpnpm: eslintPluginPnpm,\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t\"pnpm/json-enforce-catalog\": \"error\",\n\t\t\t\t\"pnpm/json-prefer-workspace-settings\": \"error\",\n\t\t\t\t\"pnpm/json-valid-catalog\": \"error\",\n\n\t\t\t\t...overrides?.json,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles: [\"pnpm-workspace.yaml\"],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: yamlParser,\n\t\t\t},\n\n\t\t\tname: \"zayne/pnpm/rules/pnpm-workspace-yaml\",\n\n\t\t\tplugins: {\n\t\t\t\tpnpm: eslintPluginPnpm,\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t\"pnpm/yaml-no-duplicate-catalog-item\": \"error\",\n\t\t\t\t\"pnpm/yaml-no-unused-catalog-item\": \"error\",\n\n\t\t\t\t...overrides?.yaml,\n\t\t\t},\n\t\t},\n\t];\n}\n","import { defineEnum } from \"@zayne-labs/toolkit-type-helpers\";\n\nexport const defaultPluginRenameMap = defineEnum({\n\t\"@eslint-react/debug\": \"react-debug\",\n\t\"@eslint-react/dom\": \"react-dom\",\n\t\"@eslint-react/hooks-extra\": \"react-hooks-extra\",\n\t\"@eslint-react/naming-convention\": \"react-naming-convention\",\n\t\"@eslint-react/web-api\": \"react-web-api\",\n\t/* eslint-disable perfectionist/sort-objects -- @eslint-react has to be below the rest to avoid plugin rename issues */\n\t\"@eslint-react\": \"react\",\n\t/* eslint-enable perfectionist/sort-objects -- @eslint-react has to be below the rest to avoid plugin rename issues */\n\n\t\"@next/next\": \"nextjs-next\",\n\n\t\"@stylistic\": \"stylistic\",\n\n\t\"@tanstack/query\": \"tanstack-query\",\n\n\t\"@tanstack/router\": \"tanstack-router\",\n\n\t\"@typescript-eslint\": \"ts-eslint\",\n\n\t\"better-tailwindcss\": \"tailwindcss-better\",\n\n\t\"import-x\": \"import\",\n\n\tn: \"node\",\n});\n\nexport const allowedNextJsExportNames = [\n\t\"dynamic\",\n\t\"dynamicParams\",\n\t\"revalidate\",\n\t\"fetchCache\",\n\t\"runtime\",\n\t\"preferredRegion\",\n\t\"maxDuration\",\n\t\"config\",\n\t\"generateStaticParams\",\n\t\"metadata\",\n\t\"generateMetadata\",\n\t\"viewport\",\n\t\"generateViewport\",\n];\n\nexport const allowedReactRouterExportNames = [\"meta\", \"links\", \"headers\", \"loader\", \"action\"];\n","import { fixupPluginRules } from \"@eslint/compat\";\nimport { isObject } from \"@zayne-labs/toolkit-type-helpers\";\nimport { isPackageExists } from \"local-pkg\";\nimport {\n\tallowedNextJsExportNames,\n\tallowedReactRouterExportNames,\n\tdefaultPluginRenameMap,\n} from \"@/constants\";\nimport { GLOB_SRC } from \"@/globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault, renamePlugins, renameRules } from \"@/utils\";\n\n// React refresh\nconst ReactRefreshAllowConstantExportPackages = [\"vite\"];\nconst ReactRouterPackages = [\n\t\"@react-router/node\",\n\t\"@react-router/react\",\n\t\"@react-router/serve\",\n\t\"@react-router/dev\",\n];\nconst NextJsPackages = [\"next\"];\n\nconst isAllowConstantExport = ReactRefreshAllowConstantExportPackages.some((i) => isPackageExists(i));\nconst isUsingReactRouter = ReactRouterPackages.some((i) => isPackageExists(i));\nconst isUsingNext = NextJsPackages.some((i) => isPackageExists(i));\n\nconst react = async (\n\toptions: ExtractOptions<OptionsConfig[\"react\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst {\n\t\tcompiler = false,\n\t\tfiles = [GLOB_SRC],\n\t\tnextjs = isUsingNext,\n\t\toverrides,\n\t\treact: enableReact = true,\n\t\trefresh = true,\n\t\ttypescript = true,\n\t} = options;\n\n\tawait ensurePackages([\n\t\t\"@eslint-react/eslint-plugin\",\n\t\t\"eslint-plugin-react-hooks\",\n\t\trefresh ? \"eslint-plugin-react-refresh\" : undefined,\n\t\tnextjs ? \"@next/eslint-plugin-next\" : undefined,\n\t]);\n\n\tconst [eslintPluginReact, eslintReactHooks, eslintPluginReactRefresh, eslintPluginNextjs] =\n\t\tawait Promise.all([\n\t\t\tenableReact ? interopDefault(import(\"@eslint-react/eslint-plugin\")) : undefined,\n\t\t\tenableReact ? interopDefault(import(\"eslint-plugin-react-hooks\")) : undefined,\n\t\t\trefresh ? interopDefault(import(\"eslint-plugin-react-refresh\")) : undefined,\n\t\t\tnextjs ? interopDefault(import(\"@next/eslint-plugin-next\")) : undefined,\n\t\t]);\n\n\t// prettier-ignore\n\tconst recommendedReactConfig = eslintPluginReact?.configs[typescript ? \"recommended-type-checked\" : \"recommended\"];\n\n\tconst config: TypedFlatConfigItem[] = [];\n\n\tif (enableReact && recommendedReactConfig && eslintReactHooks) {\n\t\tconfig.push(\n\t\t\t{\n\t\t\t\tname: \"zayne/react/setup\",\n\n\t\t\t\tplugins: {\n\t\t\t\t\t...renamePlugins(recommendedReactConfig.plugins, defaultPluginRenameMap),\n\t\t\t\t\t\"react-hooks\": eslintReactHooks,\n\t\t\t\t},\n\n\t\t\t\tsettings: recommendedReactConfig.settings,\n\t\t\t},\n\n\t\t\t{\n\t\t\t\tfiles,\n\n\t\t\t\tlanguageOptions: {\n\t\t\t\t\tparserOptions: {\n\t\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\t\tjsx: true,\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tsourceType: \"module\",\n\n\t\t\t\t\t\t...(typescript && {\n\t\t\t\t\t\t\t// eslint-disable-next-line unicorn/no-await-expression-member -- ignore for now\n\t\t\t\t\t\t\tparser: (await interopDefault(import(\"typescript-eslint\"))).parser,\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\n\t\t\t\tname: \"zayne/react/setup-processor\",\n\t\t\t},\n\n\t\t\t{\n\t\t\t\tfiles,\n\n\t\t\t\tname: \"zayne/react/recommended\",\n\n\t\t\t\trules: renameRules(recommendedReactConfig.rules, defaultPluginRenameMap),\n\t\t\t},\n\n\t\t\t{\n\t\t\t\tfiles,\n\n\t\t\t\tname: \"zayne/react/rules\",\n\n\t\t\t\trules: {\n\t\t\t\t\t// Hook Extra rules\n\t\t\t\t\t\"react-hooks-extra/no-unnecessary-use-callback\": \"warn\",\n\t\t\t\t\t\"react-hooks-extra/no-unnecessary-use-memo\": \"warn\",\n\t\t\t\t\t\"react-hooks-extra/no-unnecessary-use-prefix\": \"error\",\n\t\t\t\t\t\"react-hooks-extra/prefer-use-state-lazy-initialization\": \"error\",\n\n\t\t\t\t\t// Hook rules\n\t\t\t\t\t\"react-hooks/exhaustive-deps\": \"warn\",\n\t\t\t\t\t\"react-hooks/rules-of-hooks\": \"error\",\n\n\t\t\t\t\t// Naming convention rules\n\t\t\t\t\t\"react-naming-convention/component-name\": \"warn\",\n\t\t\t\t\t\"react-naming-convention/use-state\": \"off\",\n\n\t\t\t\t\t// Regular React rules\n\t\t\t\t\t\"react/avoid-shorthand-boolean\": \"error\",\n\t\t\t\t\t\"react/function-component-definition\": \"off\",\n\t\t\t\t\t\"react/no-array-index-key\": \"error\",\n\t\t\t\t\t\"react/no-children-count\": \"off\",\n\t\t\t\t\t\"react/no-children-only\": \"off\",\n\t\t\t\t\t\"react/no-children-prop\": \"error\",\n\t\t\t\t\t\"react/no-clone-element\": \"off\",\n\t\t\t\t\t\"react/no-complex-conditional-rendering\": \"warn\",\n\t\t\t\t\t\"react/no-missing-component-display-name\": \"error\",\n\t\t\t\t\t\"react/no-useless-fragment\": \"error\",\n\t\t\t\t\t\"react/prefer-destructuring-assignment\": \"error\",\n\t\t\t\t\t\"react/prefer-read-only-props\": \"off\",\n\t\t\t\t\t\"react/prefer-shorthand-fragment\": \"error\",\n\n\t\t\t\t\t...overrides,\n\t\t\t\t\t...(isObject(enableReact) && enableReact.overrides),\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n\n\tif (refresh && eslintPluginReactRefresh) {\n\t\tconfig.push({\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/react/refresh\",\n\n\t\t\tplugins: {\n\t\t\t\t\"react-refresh\": eslintPluginReactRefresh,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"react-refresh/only-export-components\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowConstantExport: isAllowConstantExport,\n\t\t\t\t\t\tallowExportNames: [\n\t\t\t\t\t\t\t...(isUsingNext ? allowedNextJsExportNames : []),\n\t\t\t\t\t\t\t...(isUsingReactRouter ? allowedReactRouterExportNames : []),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t...overrides,\n\t\t\t\t...(isObject(refresh) && refresh.overrides),\n\t\t\t},\n\t\t});\n\t}\n\n\tif (compiler) {\n\t\tconfig.push({\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/react/compiler\",\n\n\t\t\trules: {\n\t\t\t\t\"react-hooks/react-compiler\": \"error\",\n\n\t\t\t\t...overrides,\n\t\t\t\t...(isObject(compiler) && compiler.overrides),\n\t\t\t},\n\t\t});\n\t}\n\n\tif (nextjs && eslintPluginNextjs) {\n\t\tconfig.push({\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/react/nextjs\",\n\n\t\t\tplugins: {\n\t\t\t\t\"nextjs-next\": fixupPluginRules(eslintPluginNextjs),\n\t\t\t},\n\n\t\t\trules: renameRules(\n\t\t\t\t// eslint-disable-next-line ts-eslint/no-unsafe-argument -- missing types\n\t\t\t\t{\n\t\t\t\t\t// @ts-expect-error -- missing types\n\t\t\t\t\t// eslint-disable-next-line ts-eslint/no-unsafe-member-access -- missing types\n\t\t\t\t\t...eslintPluginNextjs.configs?.recommended?.rules,\n\n\t\t\t\t\t// @ts-expect-error -- missing types\n\t\t\t\t\t// eslint-disable-next-line ts-eslint/no-unsafe-member-access -- missing types\n\t\t\t\t\t...eslintPluginNextjs.configs?.[\"core-web-vitals\"]?.rules,\n\n\t\t\t\t\t...overrides,\n\t\t\t\t\t...(isObject(nextjs) && nextjs.overrides),\n\t\t\t\t},\n\t\t\t\tdefaultPluginRenameMap\n\t\t\t),\n\t\t});\n\t}\n\n\treturn config;\n};\n\nexport { react };\n","import { GLOB_SRC } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\nimport { ensurePackages, interopDefault } from \"../utils\";\n\nconst solid = async (\n\toptions: ExtractOptions<OptionsConfig[\"solid\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_SRC], overrides, typescript = true } = options;\n\n\tawait ensurePackages([\"eslint-plugin-solid\"]);\n\n\tconst eslintPluginSolid = await interopDefault(import(\"eslint-plugin-solid\"));\n\n\tconst recommendedSolidConfig =\n\t\teslintPluginSolid.configs[typescript ? \"flat/typescript\" : \"flat/recommended\"];\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/solid/setup\",\n\n\t\t\tplugins: {\n\t\t\t\tsolid: eslintPluginSolid,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/solid/recommended\",\n\n\t\t\trules: recommendedSolidConfig.rules,\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/solid/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"solid/no-innerhtml\": [\"error\", { allowStatic: true }],\n\t\t\t\t\"solid/style-prop\": [\"error\", { styleProps: [\"style\", \"css\"] }],\n\t\t\t},\n\n\t\t\t...overrides,\n\t\t},\n\t];\n};\n\nexport { solid };\n","import type { TypedFlatConfigItem } from \"@/types\";\n\n/**\n * @description - Sort package.json\n *\n * Requires `jsonc` config\n */\nexport const sortPackageJson = (): TypedFlatConfigItem[] => [\n\t{\n\t\tfiles: [\"**/package.json\"],\n\n\t\tname: \"zayne/sort/package.json\",\n\n\t\trules: {\n\t\t\t\"jsonc/sort-array-values\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^files$\",\n\t\t\t\t},\n\t\t\t],\n\t\t\t\"jsonc/sort-keys\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t\"publisher\",\n\t\t\t\t\t\t\"name\",\n\t\t\t\t\t\t\"displayName\",\n\t\t\t\t\t\t\"type\",\n\t\t\t\t\t\t\"version\",\n\t\t\t\t\t\t\"private\",\n\t\t\t\t\t\t\"packageManager\",\n\t\t\t\t\t\t\"description\",\n\t\t\t\t\t\t\"author\",\n\t\t\t\t\t\t\"contributors\",\n\t\t\t\t\t\t\"license\",\n\t\t\t\t\t\t\"funding\",\n\t\t\t\t\t\t\"homepage\",\n\t\t\t\t\t\t\"repository\",\n\t\t\t\t\t\t\"bugs\",\n\t\t\t\t\t\t\"keywords\",\n\t\t\t\t\t\t\"categories\",\n\t\t\t\t\t\t\"sideEffects\",\n\t\t\t\t\t\t\"exports\",\n\t\t\t\t\t\t\"main\",\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t\t\"unpkg\",\n\t\t\t\t\t\t\"jsdelivr\",\n\t\t\t\t\t\t\"types\",\n\t\t\t\t\t\t\"typesVersions\",\n\t\t\t\t\t\t\"bin\",\n\t\t\t\t\t\t\"icon\",\n\t\t\t\t\t\t\"files\",\n\t\t\t\t\t\t\"engines\",\n\t\t\t\t\t\t\"activationEvents\",\n\t\t\t\t\t\t\"contributes\",\n\t\t\t\t\t\t\"scripts\",\n\t\t\t\t\t\t\"peerDependencies\",\n\t\t\t\t\t\t\"peerDependenciesMeta\",\n\t\t\t\t\t\t\"dependencies\",\n\t\t\t\t\t\t\"optionalDependencies\",\n\t\t\t\t\t\t\"devDependencies\",\n\t\t\t\t\t\t\"pnpm\",\n\t\t\t\t\t\t\"overrides\",\n\t\t\t\t\t\t\"resolutions\",\n\t\t\t\t\t\t\"husky\",\n\t\t\t\t\t\t\"simple-git-hooks\",\n\t\t\t\t\t\t\"lint-staged\",\n\t\t\t\t\t\t\"eslintConfig\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"scripts\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^(?:resolutions|overrides|pnpm.overrides)$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\"types\", \"import\", \"require\", \"default\"],\n\t\t\t\t\tpathPattern: \"^exports.*$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t// client hooks only\n\t\t\t\t\t\t\"pre-commit\",\n\t\t\t\t\t\t\"prepare-commit-msg\",\n\t\t\t\t\t\t\"commit-msg\",\n\t\t\t\t\t\t\"post-commit\",\n\t\t\t\t\t\t\"pre-rebase\",\n\t\t\t\t\t\t\"post-rewrite\",\n\t\t\t\t\t\t\"post-checkout\",\n\t\t\t\t\t\t\"post-merge\",\n\t\t\t\t\t\t\"pre-push\",\n\t\t\t\t\t\t\"pre-auto-gc\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^(?:gitHooks|husky|simple-git-hooks)$\",\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n];\n\n/**\n * Sort tsconfig.json\n *\n * Requires `jsonc` config\n */\n\nexport const sortTsconfig = (): TypedFlatConfigItem[] => [\n\t{\n\t\tfiles: [\"**/tsconfig.json\", \"**/tsconfig.*.json\"],\n\n\t\tname: \"zayne/sort/tsconfig.json\",\n\n\t\trules: {\n\t\t\t\"jsonc/sort-keys\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: [\"extends\", \"compilerOptions\", \"references\", \"files\", \"include\", \"exclude\"],\n\t\t\t\t\tpathPattern: \"^$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t/* Projects */\n\t\t\t\t\t\t\"incremental\",\n\t\t\t\t\t\t\"composite\",\n\t\t\t\t\t\t\"tsBuildInfoFile\",\n\t\t\t\t\t\t\"disableSourceOfProjectReferenceRedirect\",\n\t\t\t\t\t\t\"disableSolutionSearching\",\n\t\t\t\t\t\t\"disableReferencedProjectLoad\",\n\t\t\t\t\t\t/* Language and Environment */\n\t\t\t\t\t\t\"target\",\n\t\t\t\t\t\t\"jsx\",\n\t\t\t\t\t\t\"jsxFactory\",\n\t\t\t\t\t\t\"jsxFragmentFactory\",\n\t\t\t\t\t\t\"jsxImportSource\",\n\t\t\t\t\t\t\"lib\",\n\t\t\t\t\t\t\"moduleDetection\",\n\t\t\t\t\t\t\"noLib\",\n\t\t\t\t\t\t\"reactNamespace\",\n\t\t\t\t\t\t\"useDefineForClassFields\",\n\t\t\t\t\t\t\"emitDecoratorMetadata\",\n\t\t\t\t\t\t\"experimentalDecorators\",\n\t\t\t\t\t\t/* Modules */\n\t\t\t\t\t\t\"baseUrl\",\n\t\t\t\t\t\t\"rootDir\",\n\t\t\t\t\t\t\"rootDirs\",\n\t\t\t\t\t\t\"customConditions\",\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t\t\"moduleResolution\",\n\t\t\t\t\t\t\"moduleSuffixes\",\n\t\t\t\t\t\t\"noResolve\",\n\t\t\t\t\t\t\"paths\",\n\t\t\t\t\t\t\"resolveJsonModule\",\n\t\t\t\t\t\t\"resolvePackageJsonExports\",\n\t\t\t\t\t\t\"resolvePackageJsonImports\",\n\t\t\t\t\t\t\"typeRoots\",\n\t\t\t\t\t\t\"types\",\n\t\t\t\t\t\t\"allowArbitraryExtensions\",\n\t\t\t\t\t\t\"allowImportingTsExtensions\",\n\t\t\t\t\t\t\"allowUmdGlobalAccess\",\n\t\t\t\t\t\t/* JavaScript Support */\n\t\t\t\t\t\t\"allowJs\",\n\t\t\t\t\t\t\"checkJs\",\n\t\t\t\t\t\t\"maxNodeModuleJsDepth\",\n\t\t\t\t\t\t/* Type Checking */\n\t\t\t\t\t\t\"strict\",\n\t\t\t\t\t\t\"strictBindCallApply\",\n\t\t\t\t\t\t\"strictFunctionTypes\",\n\t\t\t\t\t\t\"strictNullChecks\",\n\t\t\t\t\t\t\"strictPropertyInitialization\",\n\t\t\t\t\t\t\"allowUnreachableCode\",\n\t\t\t\t\t\t\"allowUnusedLabels\",\n\t\t\t\t\t\t\"alwaysStrict\",\n\t\t\t\t\t\t\"exactOptionalPropertyTypes\",\n\t\t\t\t\t\t\"noFallthroughCasesInSwitch\",\n\t\t\t\t\t\t\"noImplicitAny\",\n\t\t\t\t\t\t\"noImplicitOverride\",\n\t\t\t\t\t\t\"noImplicitReturns\",\n\t\t\t\t\t\t\"noImplicitThis\",\n\t\t\t\t\t\t\"noPropertyAccessFromIndexSignature\",\n\t\t\t\t\t\t\"noUncheckedIndexedAccess\",\n\t\t\t\t\t\t\"noUnusedLocals\",\n\t\t\t\t\t\t\"noUnusedParameters\",\n\t\t\t\t\t\t\"useUnknownInCatchVariables\",\n\t\t\t\t\t\t/* Emit */\n\t\t\t\t\t\t\"declaration\",\n\t\t\t\t\t\t\"declarationDir\",\n\t\t\t\t\t\t\"declarationMap\",\n\t\t\t\t\t\t\"downlevelIteration\",\n\t\t\t\t\t\t\"emitBOM\",\n\t\t\t\t\t\t\"emitDeclarationOnly\",\n\t\t\t\t\t\t\"importHelpers\",\n\t\t\t\t\t\t\"importsNotUsedAsValues\",\n\t\t\t\t\t\t\"inlineSourceMap\",\n\t\t\t\t\t\t\"inlineSources\",\n\t\t\t\t\t\t\"mapRoot\",\n\t\t\t\t\t\t\"newLine\",\n\t\t\t\t\t\t\"noEmit\",\n\t\t\t\t\t\t\"noEmitHelpers\",\n\t\t\t\t\t\t\"noEmitOnError\",\n\t\t\t\t\t\t\"outDir\",\n\t\t\t\t\t\t\"outFile\",\n\t\t\t\t\t\t\"preserveConstEnums\",\n\t\t\t\t\t\t\"preserveValueImports\",\n\t\t\t\t\t\t\"removeComments\",\n\t\t\t\t\t\t\"sourceMap\",\n\t\t\t\t\t\t\"sourceRoot\",\n\t\t\t\t\t\t\"stripInternal\",\n\t\t\t\t\t\t/* Interop Constraints */\n\t\t\t\t\t\t\"allowSyntheticDefaultImports\",\n\t\t\t\t\t\t\"esModuleInterop\",\n\t\t\t\t\t\t\"forceConsistentCasingInFileNames\",\n\t\t\t\t\t\t\"isolatedDeclarations\",\n\t\t\t\t\t\t\"isolatedModules\",\n\t\t\t\t\t\t\"preserveSymlinks\",\n\t\t\t\t\t\t\"verbatimModuleSyntax\",\n\t\t\t\t\t\t/* Completeness */\n\t\t\t\t\t\t\"skipDefaultLibCheck\",\n\t\t\t\t\t\t\"skipLibCheck\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^compilerOptions$\",\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n];\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst stylistic = async (\n\toptions: ExtractOptions<OptionsConfig[\"stylistic\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { jsx = true, overrides } = options;\n\n\tconst eslintPluginStylistic = await interopDefault(import(\"@stylistic/eslint-plugin\"));\n\n\treturn [\n\t\t// == Stylistic Rules (Optional)\n\t\t{\n\t\t\tname: \"zayne/stylistic/rules\",\n\n\t\t\tplugins: {\n\t\t\t\tstylistic: eslintPluginStylistic,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"stylistic/no-floating-decimal\": \"error\",\n\t\t\t\t\"stylistic/spaced-comment\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t\"always\",\n\t\t\t\t\t{\n\t\t\t\t\t\tblock: {\n\t\t\t\t\t\t\tbalanced: true,\n\t\t\t\t\t\t\texceptions: [\"*\"],\n\t\t\t\t\t\t\tmarkers: [\"!\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tline: {\n\t\t\t\t\t\t\texceptions: [\"/\", \"#\"],\n\t\t\t\t\t\t\tmarkers: [\"/\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t...(jsx && {\n\t\t\t\t\t\"stylistic/jsx-self-closing-comp\": \"warn\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { stylistic };\n","import { defaultPluginRenameMap } from \"@/constants\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault, renameRules } from \"@/utils\";\n\nexport const tailwindcssBetter = async (\n\toptions: ExtractOptions<OptionsConfig[\"tailwindcssBetter\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, settings: tailwindCssBetterSettings } = options;\n\n\tawait ensurePackages([\"eslint-plugin-better-tailwindcss\"]);\n\n\tconst [eslintPluginBetterTailwindCss, defaults] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-better-tailwindcss\")),\n\t\tinteropDefault(import(\"eslint-plugin-better-tailwindcss/api/defaults\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/tailwindcss-better/setup\",\n\n\t\t\tplugins: {\n\t\t\t\t\"tailwindcss-better\": eslintPluginBetterTailwindCss,\n\t\t\t},\n\n\t\t\tsettings: {\n\t\t\t\t\"better-tailwindcss\": {\n\t\t\t\t\t...tailwindCssBetterSettings,\n\n\t\t\t\t\tattributes: [\n\t\t\t\t\t\t...defaults.getDefaultAttributes(),\n\t\t\t\t\t\t\"^class(Name|Names)?$\",\n\t\t\t\t\t\ttailwindCssBetterSettings?.attributes,\n\t\t\t\t\t],\n\n\t\t\t\t\tcallees: [\n\t\t\t\t\t\t...defaults.getDefaultCallees(),\n\t\t\t\t\t\t\"cnMerge\",\n\t\t\t\t\t\t\"cnJoin\",\n\t\t\t\t\t\ttailwindCssBetterSettings?.callees,\n\t\t\t\t\t],\n\n\t\t\t\t\tentryPoint: tailwindCssBetterSettings?.entryPoint ?? `${process.cwd()}/tailwind.css`,\n\t\t\t\t} satisfies typeof tailwindCssBetterSettings,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/tailwindcss-better/recommended\",\n\n\t\t\trules: renameRules(\n\t\t\t\teslintPluginBetterTailwindCss.configs.recommended?.rules,\n\t\t\t\tdefaultPluginRenameMap\n\t\t\t),\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/tailwindcss-better/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"tailwindcss-better/enforce-consistent-important-position\": \"warn\",\n\n\t\t\t\t\"tailwindcss-better/enforce-consistent-line-wrapping\": \"off\",\n\n\t\t\t\t\"tailwindcss-better/enforce-consistent-variable-syntax\": \"warn\",\n\n\t\t\t\t\"tailwindcss-better/enforce-shorthand-classes\": \"warn\",\n\n\t\t\t\t/**\n\t\t\t\t * @deprecated To be removed in the next major release\n\t\t\t\t */\n\t\t\t\t\"tailwindcss-better/multiline\": \"off\",\n\n\t\t\t\t\"tailwindcss-better/no-conflicting-classes\": \"warn\",\n\n\t\t\t\t\"tailwindcss-better/no-deprecated-classes\": \"warn\",\n\t\t\t\t\"tailwindcss-better/no-unregistered-classes\": \"warn\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\n/**\n * @description tailwindcss v4 is not supported yet\n * @deprecated until `eslint-plugin-tailwindcss` supports tailwindcss v4\n */\n// export const tailwindcss = async (\n// \toptions: ExtractOptions<OptionsConfig[\"tailwindcss\"]> = {}\n// ): Promise<TypedFlatConfigItem[]> => {\n// \tconst { overrides, settings: tailwindCssSettings } = options;\n\n// \tawait ensurePackages([\"eslint-plugin-tailwindcss\"]);\n\n// \tconst eslintPluginTailwindCss = await interopDefault(import(\"eslint-plugin-tailwindcss\"));\n\n// \treturn [\n// \t\t{\n// \t\t\tname: \"zayne/tailwindcss/setup\",\n// \t\t\tplugins: {\n// \t\t\t\ttailwindcss: eslintPluginTailwindCss,\n// \t\t\t},\n// \t\t\tsettings: {\n// \t\t\t\ttailwindcss: {\n// \t\t\t\t\tcallees: [\"tv\", \"cnMerge\", \"cn\", \"cnJoin\", \"twMerge\", \"twJoin\"],\n// \t\t\t\t\tclassRegex: \"^class(Name|Names)?$\",\n// \t\t\t\t\tcssFiles: [],\n// \t\t\t\t\tremoveDuplicates: false, // Turned off cuz prettier already handles this via plugin\n// \t\t\t\t\t...tailwindCssSettings,\n// \t\t\t\t},\n// \t\t\t},\n// \t\t},\n\n// \t\t{\n// \t\t\tname: \"zayne/tailwindcss/recommended\",\n\n// \t\t\trules: eslintPluginTailwindCss.configs[\"flat/recommended\"][1]?.rules,\n// \t\t},\n\n// \t\t{\n// \t\t\tname: \"zayne/tailwindcss/rules\",\n\n// \t\t\trules: {\n// \t\t\t\t\"tailwindcss/no-contradicting-classname\": \"off\", // Turned off cuz tw intellisense already handles this\n// \t\t\t\t\"tailwindcss/no-custom-classname\": [\n// \t\t\t\t\t\"warn\",\n// \t\t\t\t\t{ ignoredKeys: [\"compoundVariants\", \"defaultVariants\", \"responsiveVariants\"] },\n// \t\t\t\t],\n\n// \t\t\t\t...overrides,\n// \t\t\t},\n// \t\t},\n// \t];\n// };\n","import type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault, isObject, renameRules } from \"@/utils\";\nimport { defaultPluginRenameMap } from \"../constants\";\n\nconst tanstack = async (\n\toptions: ExtractOptions<OptionsConfig[\"tanstack\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, query = true, router } = options;\n\n\tconst config: TypedFlatConfigItem[] = [];\n\n\tawait ensurePackages([\n\t\tquery ? \"@tanstack/eslint-plugin-query\" : undefined,\n\t\trouter ? \"@tanstack/eslint-plugin-router\" : undefined,\n\t]);\n\n\tconst [eslintPluginTanstackQuery, eslintPluginTanstackRouter] = await Promise.all([\n\t\tquery ? interopDefault(import(\"@tanstack/eslint-plugin-query\")) : undefined,\n\t\trouter ? interopDefault(import(\"@tanstack/eslint-plugin-router\")) : undefined,\n\t]);\n\n\tif (query && eslintPluginTanstackQuery) {\n\t\tconfig.push(\n\t\t\t{\n\t\t\t\tname: \"zayne/tanstack-query/recommended\",\n\n\t\t\t\tplugins: {\n\t\t\t\t\t\"tanstack-query\": eslintPluginTanstackQuery,\n\t\t\t\t},\n\n\t\t\t\trules: renameRules(\n\t\t\t\t\teslintPluginTanstackQuery.configs[\"flat/recommended\"][0]?.rules,\n\t\t\t\t\tdefaultPluginRenameMap\n\t\t\t\t),\n\t\t\t},\n\n\t\t\t{\n\t\t\t\tname: \"zayne/tanstack-query/rules\",\n\n\t\t\t\trules: {\n\t\t\t\t\t...overrides,\n\t\t\t\t\t...(isObject(query) && query.overrides),\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n\n\tif (router && eslintPluginTanstackRouter) {\n\t\tconfig.push(\n\t\t\t{\n\t\t\t\tname: \"zayne/tanstack-router/recommended\",\n\n\t\t\t\tplugins: {\n\t\t\t\t\t\"tanstack-router\": eslintPluginTanstackRouter,\n\t\t\t\t},\n\n\t\t\t\trules: renameRules(\n\t\t\t\t\teslintPluginTanstackRouter.configs[\"flat/recommended\"][0]?.rules,\n\t\t\t\t\tdefaultPluginRenameMap\n\t\t\t\t),\n\t\t\t},\n\n\t\t\t{\n\t\t\t\tname: \"zayne/tanstack-router/rules\",\n\n\t\t\t\trules: {\n\t\t\t\t\t...overrides,\n\t\t\t\t\t...(isObject(router) && router.overrides),\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n\n\treturn config;\n};\n\nexport { tanstack };\n","import { GLOB_TOML } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport const toml = async (\n\toptions: ExtractOptions<OptionsConfig[\"toml\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_TOML], overrides, stylistic = true } = options;\n\n\tconst [pluginToml, parserToml] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-toml\")),\n\t\tinteropDefault(import(\"toml-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/toml/setup\",\n\n\t\t\tplugins: {\n\t\t\t\ttoml: pluginToml,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: parserToml,\n\t\t\t},\n\n\t\t\tname: \"zayne/toml/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"style/spaced-comment\": \"off\",\n\n\t\t\t\t\"toml/comma-style\": \"error\",\n\t\t\t\t\"toml/keys-order\": \"error\",\n\t\t\t\t\"toml/no-space-dots\": \"error\",\n\t\t\t\t\"toml/no-unreadable-number-separator\": \"error\",\n\t\t\t\t\"toml/precision-of-fractional-seconds\": \"error\",\n\t\t\t\t\"toml/precision-of-integer\": \"error\",\n\t\t\t\t\"toml/tables-order\": \"error\",\n\n\t\t\t\t\"toml/vue-custom-block/no-parsing-error\": \"error\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"toml/array-bracket-newline\": \"error\",\n\t\t\t\t\t\"toml/array-bracket-spacing\": \"error\",\n\t\t\t\t\t\"toml/array-element-newline\": \"error\",\n\t\t\t\t\t// \"toml/indent\": [\"error\", indent],\n\t\t\t\t\t\"toml/inline-table-curly-spacing\": \"error\",\n\t\t\t\t\t\"toml/key-spacing\": \"error\",\n\t\t\t\t\t\"toml/padding-line-between-pairs\": \"error\",\n\t\t\t\t\t\"toml/padding-line-between-tables\": \"error\",\n\t\t\t\t\t\"toml/quoted-keys\": \"error\",\n\t\t\t\t\t\"toml/spaced-comment\": \"error\",\n\t\t\t\t\t\"toml/table-bracket-spacing\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { interopDefault, renamePluginInConfigs } from \"@/utils\";\nimport { GLOB_ASTRO_TS, GLOB_MARKDOWN, GLOB_TS, GLOB_TSX } from \"../globs\";\nimport type {\n\tExtractOptions,\n\tOptionsConfig,\n\tOptionsTypeScriptParserOptions,\n\tOptionsTypeScriptWithTypes,\n\tTypedFlatConfigItem,\n} from \"../types\";\n\nexport const typescript = async (\n\toptions: ExtractOptions<OptionsConfig[\"typescript\"]>\n\t\t& OptionsTypeScriptParserOptions\n\t\t& OptionsTypeScriptWithTypes = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst {\n\t\tallowDefaultProject,\n\t\tcomponentExts = [],\n\t\tfiles = [GLOB_TS, GLOB_TSX, ...componentExts.map((ext) => `**/*.${ext}`)],\n\t\tfilesTypeAware = [GLOB_TS, GLOB_TSX, ...componentExts.map((ext) => `**/*.${ext}`)],\n\t\tignoresTypeAware = [`${GLOB_MARKDOWN}/**`, GLOB_ASTRO_TS],\n\t\ttsconfigPath = true,\n\t\tisTypeAware = Boolean(tsconfigPath),\n\t\toverrides,\n\t\toverridesTypeAware,\n\t\tparserOptions,\n\t\tstylistic = true,\n\t} = options;\n\n\tconst tsEslint = await interopDefault(import(\"typescript-eslint\"));\n\n\tconst projectServiceObject =\n\t\tisTypeAware\n\t\t&& (allowDefaultProject ?\n\t\t\t{\n\t\t\t\tprojectService: {\n\t\t\t\t\tallowDefaultProject,\n\t\t\t\t\tdefaultProject: tsconfigPath,\n\t\t\t\t},\n\t\t\t\ttsconfigRootDir: process.cwd(),\n\t\t\t}\n\t\t:\t{\n\t\t\t\t/**\n\t\t\t\t * @default true for auto-discovery of project's tsconfig as fallback\n\t\t\t\t * @see https://typescript-eslint.io/blog/parser-options-project-true\n\t\t\t\t */\n\t\t\t\tproject: tsconfigPath,\n\t\t\t\ttsconfigRootDir: process.cwd(),\n\t\t\t});\n\n\tconst makeParser = (parsedFiles: string[], ignores?: string[]): TypedFlatConfigItem => ({\n\t\tfiles: parsedFiles,\n\n\t\t...(ignores && { ignores }),\n\n\t\tlanguageOptions: {\n\t\t\tparser: tsEslint.parser,\n\n\t\t\tparserOptions: {\n\t\t\t\tecmaFeatures: { globalReturn: true },\n\n\t\t\t\textraFileExtensions: componentExts.map((ext) => `.${ext}`),\n\n\t\t\t\tsourceType: \"module\",\n\n\t\t\t\t...parserOptions,\n\n\t\t\t\t...projectServiceObject,\n\t\t\t},\n\t\t},\n\t});\n\n\tconst selectedBaseRuleSet = isTypeAware ? \"strictTypeChecked\" : \"strict\";\n\tconst selectedStylisticRuleSet = isTypeAware ? \"stylisticTypeChecked\" : \"stylistic\";\n\n\tconst typeAwareRules = {\n\t\t\"ts-eslint/no-unnecessary-type-parameters\": \"off\",\n\t\t\"ts-eslint/non-nullable-type-assertion-style\": \"off\",\n\t\t\"ts-eslint/prefer-nullish-coalescing\": [\"error\", { ignoreConditionalTests: true }],\n\t\t\"ts-eslint/restrict-template-expressions\": [\n\t\t\t\"error\",\n\t\t\t{ allowBoolean: true, allowNullish: true, allowNumber: true },\n\t\t],\n\t\t\"ts-eslint/return-await\": [\"error\", \"in-try-catch\"],\n\t} satisfies TypedFlatConfigItem[\"rules\"];\n\n\treturn [\n\t\t{\n\t\t\tname: `zayne/ts-eslint/${isTypeAware ? \"type-aware-setup\" : \"setup\"}`,\n\n\t\t\t...makeParser(files),\n\t\t\t...(isTypeAware && makeParser(filesTypeAware, ignoresTypeAware)),\n\t\t},\n\n\t\t...renamePluginInConfigs({\n\t\t\tconfigs: tsEslint.configs[selectedBaseRuleSet],\n\t\t\toverrides: {\n\t\t\t\tfiles,\n\t\t\t\tname: `zayne/ts-eslint/${selectedBaseRuleSet}`,\n\t\t\t},\n\t\t\trenameMap: { \"@typescript-eslint\": \"ts-eslint\" },\n\t\t}),\n\n\t\t...(stylistic ?\n\t\t\trenamePluginInConfigs({\n\t\t\t\tconfigs: tsEslint.configs[selectedStylisticRuleSet],\n\t\t\t\toverrides: {\n\t\t\t\t\tfiles,\n\t\t\t\t\tname: `zayne/ts-eslint/${selectedStylisticRuleSet}`,\n\t\t\t\t},\n\t\t\t\trenameMap: { \"@typescript-eslint\": \"ts-eslint\" },\n\t\t\t})\n\t\t:\t[]),\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/ts-eslint/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"ts-eslint/array-type\": [\"error\", { default: \"array-simple\" }],\n\t\t\t\t\"ts-eslint/consistent-type-definitions\": [\"error\", \"type\"],\n\t\t\t\t\"ts-eslint/default-param-last\": \"error\",\n\t\t\t\t\"ts-eslint/member-ordering\": \"error\",\n\t\t\t\t\"ts-eslint/method-signature-style\": [\"error\", \"property\"],\n\t\t\t\t\"ts-eslint/no-confusing-void-expression\": \"off\",\n\t\t\t\t\"ts-eslint/no-empty-function\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{ allow: [\"arrowFunctions\", \"functions\", \"methods\"] },\n\t\t\t\t],\n\t\t\t\t\"ts-eslint/no-import-type-side-effects\": \"error\",\n\t\t\t\t\"ts-eslint/no-shadow\": \"error\",\n\t\t\t\t\"ts-eslint/no-unnecessary-type-conversion\": \"error\",\n\t\t\t\t\"ts-eslint/no-unused-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowShortCircuit: true,\n\t\t\t\t\t\tallowTernary: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"ts-eslint/no-unused-vars\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\targs: \"all\",\n\t\t\t\t\t\targsIgnorePattern: \"^_\",\n\t\t\t\t\t\tcaughtErrors: \"all\",\n\t\t\t\t\t\tdestructuredArrayIgnorePattern: \"^_\",\n\t\t\t\t\t\treportUsedIgnorePattern: true,\n\t\t\t\t\t\tvars: \"all\",\n\t\t\t\t\t\tvarsIgnorePattern: \"[iI]gnored\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"ts-eslint/no-use-before-define\": \"off\",\n\t\t\t\t\"ts-eslint/no-useless-constructor\": \"error\",\n\t\t\t\t\"ts-eslint/no-useless-empty-export\": \"error\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\n\t\tisTypeAware ?\n\t\t\t{\n\t\t\t\tfiles: filesTypeAware,\n\t\t\t\tignores: ignoresTypeAware,\n\t\t\t\tname: \"zayne/ts-eslint/rules-type-aware\",\n\t\t\t\trules: {\n\t\t\t\t\t...typeAwareRules,\n\t\t\t\t\t...overridesTypeAware,\n\t\t\t\t},\n\t\t\t}\n\t\t:\t{},\n\t];\n};\n","import { interopDefault } from \"@/utils\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\n\nexport const unicorn = async (\n\toptions: ExtractOptions<OptionsConfig[\"unicorn\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, type = \"app\" } = options;\n\n\tconst eslintPluginUnicorn = await interopDefault(import(\"eslint-plugin-unicorn\"));\n\n\treturn [\n\t\t{\n\t\t\t...eslintPluginUnicorn.configs.recommended,\n\n\t\t\tname: \"zayne/unicorn/recommended\",\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/unicorn/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"unicorn/filename-case\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{ cases: { camelCase: true, kebabCase: true, pascalCase: true } },\n\t\t\t\t],\n\t\t\t\t\"unicorn/new-for-builtins\": \"off\",\n\t\t\t\t\"unicorn/no-array-for-each\": \"off\",\n\t\t\t\t\"unicorn/no-array-reduce\": \"off\",\n\t\t\t\t\"unicorn/no-negated-condition\": \"off\",\n\t\t\t\t\"unicorn/no-null\": \"off\",\n\t\t\t\t\"unicorn/no-useless-undefined\": [\"error\", { checkArguments: true }],\n\t\t\t\t\"unicorn/numeric-separators-style\": \"off\",\n\n\t\t\t\t\"unicorn/prefer-global-this\": type === \"lib\" || type === \"lib-strict\" ? \"warn\" : \"off\",\n\n\t\t\t\t\"unicorn/prevent-abbreviations\": \"off\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import type { Linter } from \"eslint\";\nimport { mergeProcessors } from \"eslint-merge-processors\";\nimport { GLOB_VUE } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\nimport { ensurePackages, interopDefault, resolveOptions } from \"../utils\";\n\nexport const vue = async (\n\toptions: ExtractOptions<OptionsConfig[\"vue\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst {\n\t\tfiles = [GLOB_VUE],\n\t\toverrides,\n\t\tsfcBlocks = true,\n\t\tstylistic = true,\n\t\ttypescript = true,\n\t\tvueVersion = 3,\n\t} = options;\n\n\tawait ensurePackages([\n\t\t\"eslint-plugin-vue\",\n\t\t\"vue-eslint-parser\",\n\t\tsfcBlocks ? \"eslint-processor-vue-blocks\" : undefined,\n\t]);\n\n\tconst [pluginVue, parserVue, processorVueBlocks] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-vue\")),\n\t\tinteropDefault(import(\"vue-eslint-parser\")),\n\t\tsfcBlocks ? interopDefault(import(\"eslint-processor-vue-blocks\")) : undefined,\n\t]);\n\n\treturn [\n\t\t{\n\t\t\t/**\n\t\t\t * This allows Vue plugin to work with auto imports\n\t\t\t * @ see https://github.com/vuejs/eslint-plugin-vue/pull/2422\n\t\t\t */\n\t\t\tlanguageOptions: {\n\t\t\t\tglobals: {\n\t\t\t\t\tcomputed: \"readonly\",\n\t\t\t\t\tdefineEmits: \"readonly\",\n\t\t\t\t\tdefineExpose: \"readonly\",\n\t\t\t\t\tdefineProps: \"readonly\",\n\t\t\t\t\tonMounted: \"readonly\",\n\t\t\t\t\tonUnmounted: \"readonly\",\n\t\t\t\t\treactive: \"readonly\",\n\t\t\t\t\tref: \"readonly\",\n\t\t\t\t\tshallowReactive: \"readonly\",\n\t\t\t\t\tshallowRef: \"readonly\",\n\t\t\t\t\ttoRef: \"readonly\",\n\t\t\t\t\ttoRefs: \"readonly\",\n\t\t\t\t\twatch: \"readonly\",\n\t\t\t\t\twatchEffect: \"readonly\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tname: \"zayne/vue/setup\",\n\n\t\t\tplugins: {\n\t\t\t\tvue: pluginVue,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: parserVue,\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjsx: true,\n\t\t\t\t\t},\n\t\t\t\t\textraFileExtensions: [\".vue\"],\n\t\t\t\t\tsourceType: \"module\",\n\n\t\t\t\t\t// eslint-disable-next-line unicorn/no-await-expression-member -- ignore for now\n\t\t\t\t\t...(typescript && { parser: (await interopDefault(import(\"typescript-eslint\"))).parser }),\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tname: \"zayne/vue/setup/file-processor\",\n\n\t\t\tprocessor:\n\t\t\t\tsfcBlocks === false ?\n\t\t\t\t\t(pluginVue.processors[\".vue\"] as Linter.Processor)\n\t\t\t\t:\tmergeProcessors([\n\t\t\t\t\t\tpluginVue.processors[\".vue\"] as Linter.Processor,\n\t\t\t\t\t\tprocessorVueBlocks?.({\n\t\t\t\t\t\t\t...resolveOptions(sfcBlocks),\n\t\t\t\t\t\t\tblocks: {\n\t\t\t\t\t\t\t\tstyles: true,\n\t\t\t\t\t\t\t\t...resolveOptions(sfcBlocks).blocks,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}) ?? (pluginVue.processors[\".vue\"] as Linter.Processor),\n\t\t\t\t\t]),\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/vue/recommended\",\n\n\t\t\trules: {\n\t\t\t\t...pluginVue.configs.base.rules,\n\n\t\t\t\t...pluginVue.configs[`flat/${vueVersion === 2 ? \"vue2-\" : \"\"}essential`].at(-1)?.rules,\n\t\t\t\t...pluginVue.configs[`flat/${vueVersion === 2 ? \"vue2-\" : \"\"}strongly-recommended`].at(-1)\n\t\t\t\t\t?.rules,\n\t\t\t\t...pluginVue.configs[`flat/${vueVersion === 2 ? \"vue2-\" : \"\"}recommended`].at(-1)?.rules,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/vue/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"node/prefer-global/process\": \"off\",\n\n\t\t\t\t\"vue/block-order\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: [\"script\", \"template\", \"style\"],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"vue/component-name-in-template-casing\": [\"error\", \"PascalCase\"],\n\n\t\t\t\t\"vue/component-options-name-casing\": [\"error\", \"PascalCase\"],\n\n\t\t\t\t// == this is deprecated\n\t\t\t\t\"vue/component-tags-order\": \"off\",\n\n\t\t\t\t\"vue/custom-event-name-casing\": [\"error\", \"camelCase\"],\n\t\t\t\t\"vue/define-macros-order\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: [\"defineOptions\", \"defineProps\", \"defineEmits\", \"defineSlots\"],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"vue/dot-location\": [\"error\", \"property\"],\n\t\t\t\t\"vue/dot-notation\": [\"error\", { allowKeywords: true }],\n\t\t\t\t\"vue/eqeqeq\": [\"error\", \"smart\"],\n\t\t\t\t\"vue/html-indent\": \"off\",\n\t\t\t\t\"vue/html-quotes\": [\"error\", \"double\"],\n\t\t\t\t\"vue/max-attributes-per-line\": \"off\",\n\t\t\t\t\"vue/multi-word-component-names\": \"off\",\n\t\t\t\t\"vue/no-dupe-keys\": \"off\",\n\t\t\t\t\"vue/no-empty-pattern\": \"error\",\n\t\t\t\t\"vue/no-irregular-whitespace\": \"error\",\n\t\t\t\t\"vue/no-loss-of-precision\": \"error\",\n\t\t\t\t\"vue/no-restricted-syntax\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"DebuggerStatement\",\n\t\t\t\t\t\"LabeledStatement\",\n\t\t\t\t\t\"WithStatement\",\n\t\t\t\t],\n\t\t\t\t\"vue/no-restricted-v-bind\": [\"error\", \"/^v-/\"],\n\t\t\t\t\"vue/no-setup-props-reactivity-loss\": \"off\",\n\t\t\t\t\"vue/no-sparse-arrays\": \"error\",\n\t\t\t\t\"vue/no-unused-refs\": \"error\",\n\t\t\t\t\"vue/no-useless-v-bind\": \"error\",\n\t\t\t\t\"vue/no-v-html\": \"off\",\n\t\t\t\t\"vue/object-shorthand\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"always\",\n\t\t\t\t\t{\n\t\t\t\t\t\tavoidQuotes: true,\n\t\t\t\t\t\tignoreConstructors: false,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"vue/prefer-separate-static-class\": \"error\",\n\t\t\t\t\"vue/prefer-template\": \"error\",\n\t\t\t\t\"vue/prop-name-casing\": [\"error\", \"camelCase\"],\n\t\t\t\t\"vue/require-default-prop\": \"off\",\n\t\t\t\t\"vue/require-prop-types\": \"off\",\n\t\t\t\t\"vue/singleline-html-element-content-newline\": \"off\",\n\t\t\t\t\"vue/space-infix-ops\": \"error\",\n\t\t\t\t\"vue/space-unary-ops\": [\"error\", { nonwords: false, words: true }],\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"vue/array-bracket-spacing\": [\"error\", \"never\"],\n\t\t\t\t\t\"vue/arrow-spacing\": [\"error\", { after: true, before: true }],\n\t\t\t\t\t\"vue/block-spacing\": [\"error\", \"always\"],\n\t\t\t\t\t\"vue/block-tag-newline\": [\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmultiline: \"always\",\n\t\t\t\t\t\t\tsingleline: \"always\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t\"vue/brace-style\": [\"error\", \"stroustrup\", { allowSingleLine: true }],\n\t\t\t\t\t\"vue/comma-dangle\": [\"error\", \"always-multiline\"],\n\t\t\t\t\t\"vue/comma-spacing\": [\"error\", { after: true, before: false }],\n\t\t\t\t\t\"vue/comma-style\": [\"error\", \"last\"],\n\t\t\t\t\t\"vue/html-comment-content-spacing\": [\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t\t\"always\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\texceptions: [\"-\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t\"vue/key-spacing\": [\"error\", { afterColon: true, beforeColon: false }],\n\t\t\t\t\t\"vue/keyword-spacing\": [\"error\", { after: true, before: true }],\n\t\t\t\t\t\"vue/object-curly-newline\": \"off\",\n\t\t\t\t\t\"vue/object-curly-spacing\": [\"error\", \"always\"],\n\t\t\t\t\t\"vue/object-property-newline\": [\"error\", { allowMultiplePropertiesPerLine: true }],\n\t\t\t\t\t\"vue/operator-linebreak\": [\"error\", \"before\"],\n\t\t\t\t\t\"vue/padding-line-between-blocks\": [\"error\", \"always\"],\n\t\t\t\t\t\"vue/quote-props\": [\"error\", \"consistent-as-needed\"],\n\t\t\t\t\t\"vue/space-in-parens\": [\"error\", \"never\"],\n\t\t\t\t\t\"vue/template-curly-spacing\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t\"ts-eslint/no-unused-vars\": \"off\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { GLOB_YAML } from \"../globs\";\nimport type { ExtractOptions, OptionsConfig, TypedFlatConfigItem } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport const yaml = async (\n\toptions: ExtractOptions<OptionsConfig[\"yaml\"]> = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files = [GLOB_YAML], overrides, stylistic = true } = options;\n\n\tconst [pluginYaml, parserYaml] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-yml\")),\n\t\tinteropDefault(import(\"yaml-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/yaml/setup\",\n\t\t\tplugins: {\n\t\t\t\tyaml: pluginYaml,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfiles,\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: parserYaml,\n\t\t\t},\n\n\t\t\tname: \"zayne/yaml/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"yaml/block-mapping\": \"error\",\n\t\t\t\t\"yaml/block-sequence\": \"error\",\n\t\t\t\t\"yaml/no-empty-key\": \"error\",\n\t\t\t\t\"yaml/no-empty-sequence-entry\": \"error\",\n\t\t\t\t\"yaml/no-irregular-whitespace\": \"error\",\n\t\t\t\t\"yaml/plain-scalar\": \"error\",\n\n\t\t\t\t\"yaml/vue-custom-block/no-parsing-error\": \"error\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"yaml/block-mapping-question-indicator-newline\": \"error\",\n\t\t\t\t\t\"yaml/block-sequence-hyphen-indicator-newline\": \"error\",\n\t\t\t\t\t\"yaml/flow-mapping-curly-newline\": \"error\",\n\t\t\t\t\t\"yaml/flow-mapping-curly-spacing\": \"error\",\n\t\t\t\t\t\"yaml/flow-sequence-bracket-newline\": \"error\",\n\t\t\t\t\t\"yaml/flow-sequence-bracket-spacing\": \"error\",\n\t\t\t\t\t// \"yaml/indent\": [\"error\", indent],\n\t\t\t\t\t\"yaml/key-spacing\": \"error\",\n\t\t\t\t\t\"yaml/no-tab-indent\": \"error\",\n\t\t\t\t\t// \"yaml/quotes\": [\n\t\t\t\t\t// \t\"error\",\n\t\t\t\t\t// \t{ avoidEscape: true, prefer: quotes === \"backtick\" ? \"double\" : quotes },\n\t\t\t\t\t// ],\n\t\t\t\t\t\"yaml/spaced-comment\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t\"stylistic/spaced-comment\": \"off\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { GLOB_JSX, GLOB_TSX } from \"@/globs\";\nimport type { TypedFlatConfigItem } from \"@/types\";\n\nconst jsx = (): TypedFlatConfigItem[] => {\n\treturn [\n\t\t{\n\t\t\tfiles: [GLOB_JSX, GLOB_TSX],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjsx: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tname: \"zayne/jsx/setup\",\n\t\t},\n\t];\n};\n\nexport { jsx };\n","import { assert } from \"@zayne-labs/toolkit-type-helpers\";\nimport type { Linter } from \"eslint\";\nimport { FlatConfigComposer } from \"eslint-flat-config-utils\";\nimport { isPackageExists } from \"local-pkg\";\nimport { isObject, resolveOptions } from \"@/utils\";\nimport {\n\tastro,\n\tcomments,\n\tdepend,\n\texpo,\n\tgitIgnores,\n\tignores,\n\timports,\n\tjavascript,\n\tjsdoc,\n\tjsonc,\n\tnode,\n\tperfectionist,\n\tpnpm,\n\treact,\n\tsolid,\n\tsortPackageJson,\n\tsortTsconfig,\n\tstylistic,\n\ttailwindcssBetter,\n\ttanstack,\n\ttoml,\n\ttypescript,\n\tunicorn,\n\tvue,\n\tyaml,\n} from \"./configs\";\nimport { jsx } from \"./configs/jsx\";\nimport { defaultPluginRenameMap } from \"./constants\";\nimport type { Awaitable, ConfigNames, OptionsConfig, Prettify, TypedFlatConfigItem } from \"./types\";\n\nconst ReactPackages = [\"react\", \"react-dom\"];\n\n/**\n * @description Construct an array of ESLint flat config items.\n * @param options\n * The options for generating the ESLint configurations.\n * @param userConfigs\n * The extra user configurations to be merged with the generated configurations.\n * @returns\n * The merged ESLint configurations.\n */\nexport const zayne = (\n\toptions: OptionsConfig & Prettify<Pick<TypedFlatConfigItem, \"ignores\">> = {},\n\t...userConfigs: Array<\n\t\tAwaitable<FlatConfigComposer | Linter.Config[] | TypedFlatConfigItem | TypedFlatConfigItem[]>\n\t>\n): FlatConfigComposer<TypedFlatConfigItem, ConfigNames> => {\n\tconst {\n\t\tautoRenamePlugins = true,\n\t\tcomponentExts = [],\n\t\ttype = \"app\",\n\t\twithDefaults = true,\n\t\t...restOfOptions\n\t} = options;\n\n\t// == These configs are too needful to be turned off with a single switch, plus won't harm things much\n\tconst enableGitignore = restOfOptions.gitignore ?? true;\n\tconst enableJsx = restOfOptions.jsx ?? true;\n\n\t// == These ones won't matter if they are all turned off at once\n\tconst enableComments = restOfOptions.comments ?? withDefaults;\n\tconst enableImports = restOfOptions.imports ?? withDefaults;\n\tconst enableJsdoc = restOfOptions.jsdoc ?? withDefaults;\n\tconst enablePnpmCatalogs = restOfOptions.pnpm;\n\tconst enableJsonc = restOfOptions.jsonc ?? withDefaults;\n\tconst enableNode = restOfOptions.node ?? withDefaults;\n\tconst enablePerfectionist = restOfOptions.perfectionist ?? withDefaults;\n\tconst enableReact =\n\t\trestOfOptions.react ?? (withDefaults && ReactPackages.some((pkg) => isPackageExists(pkg)));\n\tconst enableStylistic = restOfOptions.stylistic ?? withDefaults;\n\tconst enableToml = restOfOptions.toml ?? withDefaults;\n\tconst enableTypeScript = restOfOptions.typescript ?? (withDefaults && isPackageExists(\"typescript\"));\n\tconst enableUnicorn = restOfOptions.unicorn ?? withDefaults;\n\tconst enableYaml = restOfOptions.yaml ?? withDefaults;\n\n\tconst isStylistic = Boolean(enableStylistic);\n\n\tconst tsconfigPath =\n\t\tisObject(enableTypeScript) && \"tsconfigPath\" in enableTypeScript ? enableTypeScript.tsconfigPath\n\t\t\t// eslint-disable-next-line unicorn/no-nested-ternary -- Allow\n\t\t: restOfOptions.typescript === true ? true\n\t\t: null;\n\n\tconst isTypeAware = Boolean(tsconfigPath);\n\n\tconst configs: Array<Awaitable<TypedFlatConfigItem[]>> = [];\n\n\t// == Base configs\n\tconfigs.push(ignores(restOfOptions.ignores), javascript(restOfOptions.javascript));\n\n\tif (enableGitignore) {\n\t\tconfigs.push(gitIgnores(resolveOptions(enableGitignore)));\n\t}\n\n\t// == Other configs\n\tif (enableJsx) {\n\t\tconfigs.push(jsx());\n\t}\n\n\tif (restOfOptions.vue) {\n\t\tcomponentExts.push(\"vue\");\n\t}\n\n\tif (restOfOptions.astro) {\n\t\tcomponentExts.push(\"astro\");\n\t}\n\n\tif (enableTypeScript) {\n\t\tconfigs.push(\n\t\t\ttypescript({\n\t\t\t\tcomponentExts,\n\t\t\t\tisTypeAware,\n\t\t\t\tstylistic: isStylistic,\n\t\t\t\ttsconfigPath,\n\t\t\t\t...resolveOptions(enableTypeScript),\n\t\t\t})\n\t\t);\n\t}\n\n\tif (enableStylistic) {\n\t\tconfigs.push(stylistic({ jsx: enableJsx, ...resolveOptions(enableStylistic) }));\n\t}\n\n\tif (enableComments) {\n\t\tconfigs.push(comments({ type, ...resolveOptions(enableComments) }));\n\t}\n\n\tif (enableImports) {\n\t\tconfigs.push(\n\t\t\timports({ stylistic: isStylistic, typescript: isTypeAware, ...resolveOptions(enableImports) })\n\t\t);\n\t}\n\n\tif (enablePnpmCatalogs) {\n\t\tconfigs.push(pnpm(resolveOptions(enablePnpmCatalogs)));\n\t}\n\n\tif (enableNode) {\n\t\tconfigs.push(node({ type, ...resolveOptions(enableNode) }));\n\t}\n\n\tif (enablePerfectionist) {\n\t\tconfigs.push(perfectionist(resolveOptions(enablePerfectionist)));\n\t}\n\n\tif (enableUnicorn) {\n\t\tconfigs.push(unicorn({ type, ...resolveOptions(enableUnicorn) }));\n\t}\n\n\tif (enableJsonc) {\n\t\tconfigs.push(\n\t\t\tjsonc({ stylistic: isStylistic, ...resolveOptions(enableJsonc) }),\n\t\t\tsortPackageJson(),\n\t\t\tsortTsconfig()\n\t\t);\n\t}\n\n\tif (enableJsdoc) {\n\t\tconfigs.push(jsdoc({ stylistic: isStylistic, ...resolveOptions(enableJsdoc) }));\n\t}\n\n\tif (enableToml) {\n\t\tconfigs.push(\n\t\t\ttoml({\n\t\t\t\tstylistic: isStylistic,\n\t\t\t\t...resolveOptions(enableToml),\n\t\t\t})\n\t\t);\n\t}\n\n\tif (enableYaml) {\n\t\tconfigs.push(\n\t\t\tyaml({\n\t\t\t\tstylistic: isStylistic,\n\t\t\t\t...resolveOptions(enableYaml),\n\t\t\t})\n\t\t);\n\t}\n\n\tif (enableReact) {\n\t\tconfigs.push(react({ typescript: isTypeAware, ...resolveOptions(enableReact) }));\n\t}\n\n\tif (restOfOptions.vue) {\n\t\tconfigs.push(\n\t\t\tvue({ stylistic: isStylistic, typescript: isTypeAware, ...resolveOptions(restOfOptions.vue) })\n\t\t);\n\t}\n\n\tif (restOfOptions.solid) {\n\t\tconfigs.push(solid({ typescript: isTypeAware, ...resolveOptions(restOfOptions.solid) }));\n\t}\n\n\tif (restOfOptions.astro) {\n\t\tconfigs.push(astro({ typescript: isTypeAware, ...resolveOptions(restOfOptions.astro) }));\n\t}\n\n\tif (restOfOptions.expo) {\n\t\tconfigs.push(expo());\n\t}\n\n\t// if (restOfOptions.tailwindcss) {\n\t// \tconfigs.push(tailwindcss(resolveOptions(restOfOptions.tailwindcss)));\n\t// }\n\n\tif (restOfOptions.tailwindcssBetter) {\n\t\tconfigs.push(tailwindcssBetter(resolveOptions(restOfOptions.tailwindcssBetter)));\n\t}\n\n\tif (restOfOptions.tanstack) {\n\t\tconfigs.push(tanstack(resolveOptions(restOfOptions.tanstack)));\n\t}\n\n\tif (restOfOptions.depend) {\n\t\tconfigs.push(depend(resolveOptions(restOfOptions.depend)));\n\t}\n\n\tassert(\n\t\t!(\"files\" in restOfOptions),\n\t\t`[@zayne-labs/eslint-config] The first argument should not contain the \"files\" property as the options are supposed to be global. Place it in the second config array instead.`\n\t);\n\n\tlet composer = new FlatConfigComposer<TypedFlatConfigItem, ConfigNames>();\n\n\tcomposer = composer.append(...configs, ...(userConfigs as never[]));\n\n\tif (autoRenamePlugins) {\n\t\tcomposer = composer.renamePlugins(defaultPluginRenameMap);\n\t}\n\n\treturn composer;\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zayne-labs/eslint-config",
3
3
  "type": "module",
4
- "version": "0.9.11",
4
+ "version": "0.9.13",
5
5
  "description": "Zayne Labs' ESLint config preset",
6
6
  "author": "Ryan Zayne",
7
7
  "license": "MIT",
@@ -166,7 +166,7 @@
166
166
  "tsx": "4.20.5",
167
167
  "typescript": "5.9.2",
168
168
  "vue-eslint-parser": "10.2.0",
169
- "@zayne-labs/tsconfig": "0.9.11"
169
+ "@zayne-labs/tsconfig": "0.9.13"
170
170
  },
171
171
  "publishConfig": {
172
172
  "access": "public",