@zinkawaii/eslint-config 0.5.0 → 0.5.2

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.
Files changed (3) hide show
  1. package/dist/index.d.mts +248 -2
  2. package/dist/index.mjs +321 -197
  3. package/package.json +40 -39
package/dist/index.d.mts CHANGED
@@ -4,7 +4,7 @@ import { StylisticCustomizeOptions } from "@stylistic/eslint-plugin";
4
4
  import { ParserOptions } from "@typescript-eslint/parser";
5
5
  import { FlatGitignoreOptions } from "eslint-config-flat-gitignore";
6
6
  import { Options } from "eslint-processor-vue-blocks";
7
- //#region ../../node_modules/.pnpm/@antfu+eslint-config@9.2.0_patch_hash=69df02b36d793b2588fb6ed642c6c83986ef891c17d086eef_ccf078546068bd183db64d72ad1eaa00/node_modules/@antfu/eslint-config/dist/index.d.mts
7
+ //#region ../../node_modules/.pnpm/@antfu+eslint-config@9.2.0_patch_hash=69df02b36d793b2588fb6ed642c6c83986ef891c17d086eef_ded4dcd20d37bf56e1fcf68acf3c823d/node_modules/@antfu/eslint-config/dist/index.d.mts
8
8
  //#region src/typegen.d.ts
9
9
  interface RuleOptions {
10
10
  /**
@@ -21754,6 +21754,12 @@ type TypedFlatConfigItem = Omit<ConfigWithExtends, 'plugins' | 'rules'> & {
21754
21754
  */
21755
21755
  rules?: Rules;
21756
21756
  };
21757
+ interface OptionsFiles {
21758
+ /**
21759
+ * Override the `files` option to provide custom globs.
21760
+ */
21761
+ files?: string[];
21762
+ }
21757
21763
  interface OptionsVue extends OptionsOverrides {
21758
21764
  /**
21759
21765
  * Create virtual files for Vue SFC blocks to enable linting.
@@ -21933,6 +21939,12 @@ interface OptionsTypeScriptWithTypes {
21933
21939
  */
21934
21940
  overridesTypeAware?: TypedFlatConfigItem['rules'];
21935
21941
  }
21942
+ interface OptionsHasTypeScript {
21943
+ typescript?: boolean;
21944
+ }
21945
+ interface OptionsStylistic {
21946
+ stylistic?: boolean | StylisticConfig;
21947
+ }
21936
21948
  interface StylisticConfig extends Pick<StylisticCustomizeOptions, 'indent' | 'quotes' | 'jsx' | 'semi' | 'braceStyle' | 'experimental'> {}
21937
21949
  interface OptionsOverrides {
21938
21950
  overrides?: TypedFlatConfigItem['rules'];
@@ -22260,6 +22272,18 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
22260
22272
  svelte?: TypedFlatConfigItem['rules'];
22261
22273
  };
22262
22274
  }
22275
+ //#endregion
22276
+ //#region src/factory.d.ts
22277
+ declare const defaultPluginRenaming: {
22278
+ '@eslint-react': string;
22279
+ '@next/next': string;
22280
+ '@stylistic': string;
22281
+ '@typescript-eslint': string;
22282
+ 'import-lite': string;
22283
+ n: string;
22284
+ vitest: string;
22285
+ yml: string;
22286
+ };
22263
22287
  /**
22264
22288
  * Construct an array of ESLint flat config items.
22265
22289
  *
@@ -22271,8 +22295,230 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
22271
22295
  * The merged ESLint configurations.
22272
22296
  */
22273
22297
  declare function antfu(options?: OptionsConfig & Omit<TypedFlatConfigItem, 'files' | 'ignores'>, ...userConfigs: Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[] | FlatConfigComposer<any, any> | Linter.Config[]>[]): FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
22298
+ type ResolvedOptions<T> = T extends boolean ? never : NonNullable<T>;
22299
+ declare function resolveSubOptions<K extends keyof OptionsConfig>(options: OptionsConfig, key: K): ResolvedOptions<OptionsConfig[K]>;
22300
+ declare function getOverrides<K extends keyof OptionsConfig>(options: OptionsConfig, key: K): Partial<Linter.RulesRecord & RuleOptions>;
22301
+ //#endregion
22302
+ //#region src/config-presets.d.ts
22303
+ declare const CONFIG_PRESET_FULL_ON: OptionsConfig;
22304
+ declare const CONFIG_PRESET_FULL_OFF: OptionsConfig;
22305
+ //#endregion
22306
+ //#region src/configs/angular.d.ts
22307
+ declare function angular(options?: OptionsOverrides): Promise<TypedFlatConfigItem[]>;
22308
+ //#endregion
22309
+ //#region src/configs/astro.d.ts
22310
+ declare function astro(options?: OptionsOverrides & OptionsStylistic & OptionsFiles): Promise<TypedFlatConfigItem[]>;
22311
+ //#endregion
22312
+ //#region src/configs/command.d.ts
22313
+ declare function command(): Promise<TypedFlatConfigItem[]>;
22314
+ //#endregion
22315
+ //#region src/configs/comments.d.ts
22316
+ declare function comments(): Promise<TypedFlatConfigItem[]>;
22317
+ //#endregion
22318
+ //#region src/configs/disables.d.ts
22319
+ declare function disables(): Promise<TypedFlatConfigItem[]>;
22320
+ //#endregion
22321
+ //#region src/configs/formatters.d.ts
22322
+ declare function formatters(options?: OptionsFormatters | true, stylistic?: StylisticConfig): Promise<TypedFlatConfigItem[]>;
22323
+ //#endregion
22324
+ //#region src/configs/ignores.d.ts
22325
+ declare function ignores(userIgnores?: string[] | ((originals: string[]) => string[]), ignoreTypeScript?: boolean): Promise<TypedFlatConfigItem[]>;
22326
+ //#endregion
22327
+ //#region src/configs/imports.d.ts
22328
+ declare function imports(options?: OptionsOverrides & OptionsStylistic): Promise<TypedFlatConfigItem[]>;
22329
+ //#endregion
22330
+ //#region src/configs/javascript.d.ts
22331
+ declare function javascript(options?: OptionsIsInEditor & OptionsOverrides): Promise<TypedFlatConfigItem[]>;
22332
+ //#endregion
22333
+ //#region src/configs/jsdoc.d.ts
22334
+ declare function jsdoc(options?: OptionsStylistic): Promise<TypedFlatConfigItem[]>;
22335
+ //#endregion
22336
+ //#region src/configs/jsonc.d.ts
22337
+ declare function jsonc(options?: OptionsFiles & OptionsStylistic & OptionsOverrides): Promise<TypedFlatConfigItem[]>;
22338
+ //#endregion
22339
+ //#region src/configs/jsx.d.ts
22340
+ declare function jsx(options?: OptionsJSX): Promise<TypedFlatConfigItem[]>;
22341
+ //#endregion
22342
+ //#region src/configs/markdown.d.ts
22343
+ declare function markdown(options?: OptionsFiles & OptionsComponentExts & OptionsMarkdown): Promise<TypedFlatConfigItem[]>;
22344
+ //#endregion
22345
+ //#region src/configs/nextjs.d.ts
22346
+ declare function nextjs(options?: OptionsOverrides & OptionsFiles): Promise<TypedFlatConfigItem[]>;
22347
+ //#endregion
22348
+ //#region src/configs/node.d.ts
22349
+ declare function node(): Promise<TypedFlatConfigItem[]>;
22350
+ //#endregion
22351
+ //#region src/configs/perfectionist.d.ts
22352
+ /**
22353
+ * Perfectionist plugin for props and items sorting.
22354
+ *
22355
+ * @see https://github.com/azat-io/eslint-plugin-perfectionist
22356
+ */
22357
+ declare function perfectionist(options: OptionsOverrides): Promise<TypedFlatConfigItem[]>;
22358
+ //#endregion
22359
+ //#region src/configs/pnpm.d.ts
22360
+ declare function pnpm(options: OptionsPnpm): Promise<TypedFlatConfigItem[]>;
22361
+ //#endregion
22362
+ //#region src/configs/react.d.ts
22363
+ declare function react(options?: OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes & OptionsReact & OptionsFiles): Promise<TypedFlatConfigItem[]>;
22364
+ //#endregion
22365
+ //#region src/configs/regexp.d.ts
22366
+ declare function regexp(options?: OptionsRegExp & OptionsOverrides): Promise<TypedFlatConfigItem[]>;
22367
+ //#endregion
22368
+ //#region src/configs/solid.d.ts
22369
+ declare function solid(options?: OptionsHasTypeScript & OptionsOverrides & OptionsFiles & OptionsTypeScriptWithTypes): Promise<TypedFlatConfigItem[]>;
22370
+ //#endregion
22371
+ //#region src/configs/sort.d.ts
22372
+ /**
22373
+ * Sort package.json
22374
+ *
22375
+ * Requires `jsonc` config
22376
+ */
22377
+ declare function sortPackageJson(): Promise<TypedFlatConfigItem[]>;
22378
+ /**
22379
+ * Sort tsconfig.json
22380
+ *
22381
+ * Requires `jsonc` config
22382
+ */
22383
+ declare function sortTsconfig(): TypedFlatConfigItem[];
22384
+ //#endregion
22385
+ //#region src/configs/stylistic.d.ts
22386
+ declare const StylisticConfigDefaults: StylisticConfig;
22387
+ interface StylisticOptions extends StylisticConfig, OptionsOverrides {
22388
+ lessOpinionated?: boolean;
22389
+ }
22390
+ declare function stylistic(options?: StylisticOptions): Promise<TypedFlatConfigItem[]>;
22391
+ //#endregion
22392
+ //#region src/configs/svelte.d.ts
22393
+ declare function svelte(options?: OptionsHasTypeScript & OptionsOverrides & OptionsStylistic & OptionsFiles): Promise<TypedFlatConfigItem[]>;
22394
+ //#endregion
22395
+ //#region src/configs/test.d.ts
22396
+ declare function test(options?: OptionsFiles & OptionsIsInEditor & OptionsOverrides): Promise<TypedFlatConfigItem[]>;
22397
+ //#endregion
22398
+ //#region src/configs/toml.d.ts
22399
+ declare function toml(options?: OptionsOverrides & OptionsStylistic & OptionsFiles): Promise<TypedFlatConfigItem[]>;
22400
+ //#endregion
22401
+ //#region src/configs/typescript.d.ts
22402
+ declare function typescript(options?: OptionsFiles & OptionsComponentExts & OptionsOverrides & OptionsTypeScriptWithTypes & OptionsTypeScriptParserOptions & OptionsProjectType & OptionsTypeScriptErasableOnly): Promise<TypedFlatConfigItem[]>;
22403
+ //#endregion
22404
+ //#region src/configs/unicorn.d.ts
22405
+ declare function unicorn(options?: OptionsUnicorn): Promise<TypedFlatConfigItem[]>;
22406
+ //#endregion
22407
+ //#region src/configs/unocss.d.ts
22408
+ declare function unocss(options?: OptionsUnoCSS): Promise<TypedFlatConfigItem[]>;
22409
+ //#endregion
22410
+ //#region src/configs/vue.d.ts
22411
+ declare function vue(options?: OptionsVue & OptionsHasTypeScript & OptionsOverrides & OptionsStylistic & OptionsFiles): Promise<TypedFlatConfigItem[]>;
22412
+ //#endregion
22413
+ //#region src/configs/yaml.d.ts
22414
+ declare function yaml(options?: OptionsOverrides & OptionsStylistic & OptionsFiles): Promise<TypedFlatConfigItem[]>;
22415
+ //#endregion
22416
+ //#region src/globs.d.ts
22417
+ declare const GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
22418
+ declare const GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
22419
+ declare const GLOB_JS = "**/*.?([cm])js";
22420
+ declare const GLOB_JSX = "**/*.?([cm])jsx";
22421
+ declare const GLOB_TS = "**/*.?([cm])ts";
22422
+ declare const GLOB_TSX = "**/*.?([cm])tsx";
22423
+ declare const GLOB_STYLE = "**/*.{c,le,sc}ss";
22424
+ declare const GLOB_CSS = "**/*.css";
22425
+ declare const GLOB_POSTCSS = "**/*.{p,post}css";
22426
+ declare const GLOB_LESS = "**/*.less";
22427
+ declare const GLOB_SCSS = "**/*.scss";
22428
+ declare const GLOB_JSON = "**/*.json";
22429
+ declare const GLOB_JSON5 = "**/*.json5";
22430
+ declare const GLOB_JSONC = "**/*.jsonc";
22431
+ declare const GLOB_MARKDOWN = "**/*.md";
22432
+ declare const GLOB_MARKDOWN_IN_MARKDOWN = "**/*.md/*.md";
22433
+ declare const GLOB_SVELTE = "**/*.svelte?(.{js,ts})";
22434
+ declare const GLOB_VUE = "**/*.vue";
22435
+ declare const GLOB_YAML = "**/*.y?(a)ml";
22436
+ declare const GLOB_TOML = "**/*.toml";
22437
+ declare const GLOB_XML = "**/*.xml";
22438
+ declare const GLOB_SVG = "**/*.svg";
22439
+ declare const GLOB_HTML = "**/*.htm?(l)";
22440
+ declare const GLOB_ASTRO = "**/*.astro";
22441
+ declare const GLOB_ASTRO_TS = "**/*.astro/*.ts";
22442
+ declare const GLOB_GRAPHQL = "**/*.{g,graph}ql";
22443
+ declare const GLOB_MARKDOWN_CODE = "**/*.md/**/*.?([cm])[jt]s?(x)";
22444
+ declare const GLOB_TESTS: string[];
22445
+ declare const GLOB_ALL_SRC: string[];
22446
+ declare const GLOB_EXCLUDE: string[];
22447
+ //#endregion
22448
+ //#region src/utils.d.ts
22449
+ declare const parserPlain: {
22450
+ meta: {
22451
+ name: string;
22452
+ };
22453
+ parseForESLint: (code: string) => {
22454
+ ast: {
22455
+ body: never[];
22456
+ comments: never[];
22457
+ loc: {
22458
+ end: number;
22459
+ start: number;
22460
+ };
22461
+ range: number[];
22462
+ tokens: never[];
22463
+ type: string;
22464
+ };
22465
+ scopeManager: null;
22466
+ services: {
22467
+ isPlain: boolean;
22468
+ };
22469
+ visitorKeys: {
22470
+ Program: never[];
22471
+ };
22472
+ };
22473
+ };
22474
+ /**
22475
+ * Combine array and non-array configs into a single array.
22476
+ */
22477
+ declare function combine(...configs: Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[]>[]): Promise<TypedFlatConfigItem[]>;
22478
+ /**
22479
+ * Rename plugin prefixes in a rule object.
22480
+ * Accepts a map of prefixes to rename.
22481
+ *
22482
+ * @example
22483
+ * ```ts
22484
+ * import { renameRules } from '@antfu/eslint-config'
22485
+ *
22486
+ * export default [{
22487
+ * rules: renameRules(
22488
+ * {
22489
+ * '@typescript-eslint/indent': 'error'
22490
+ * },
22491
+ * { '@typescript-eslint': 'ts' }
22492
+ * )
22493
+ * }]
22494
+ * ```
22495
+ */
22496
+ declare function renameRules(rules: Record<string, any>, map: Record<string, string>): Record<string, any>;
22497
+ /**
22498
+ * Rename plugin names a flat configs array
22499
+ *
22500
+ * @example
22501
+ * ```ts
22502
+ * import { renamePluginInConfigs } from '@antfu/eslint-config'
22503
+ * import someConfigs from './some-configs'
22504
+ *
22505
+ * export default renamePluginInConfigs(someConfigs, {
22506
+ * '@typescript-eslint': 'ts',
22507
+ * '@stylistic': 'style',
22508
+ * })
22509
+ * ```
22510
+ */
22511
+ declare function renamePluginInConfigs(configs: TypedFlatConfigItem[], map: Record<string, string>): TypedFlatConfigItem[];
22512
+ declare function toArray<T>(value: T | T[]): T[];
22513
+ declare function interopDefault<T>(m: Awaitable<T>): Promise<T extends {
22514
+ default: infer U;
22515
+ } ? U : T>;
22516
+ declare function isPackageInScope(name: string): boolean;
22517
+ declare function ensurePackages(packages: (string | undefined)[]): Promise<void>;
22518
+ declare function isInEditorEnv(): boolean;
22519
+ declare function isInGitHooksOrLintStaged(): boolean;
22274
22520
  //#endregion
22275
22521
  //#region src/index.d.ts
22276
22522
  declare const zin: typeof antfu;
22277
22523
  //#endregion
22278
- export { zin as default, zin };
22524
+ export { Awaitable, CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, type ConfigNames, 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_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsE18e, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsJSX, OptionsJSXA11y, OptionsMarkdown, OptionsOverrides, OptionsPnpm, OptionsProjectType, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, OptionsVue, ResolvedOptions, type RuleOptions, Rules, StylisticConfig, StylisticConfigDefaults, StylisticOptions, TypedFlatConfigItem, angular, antfu, astro, combine, command, comments, zin as default, zin, defaultPluginRenaming, disables, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, nextjs, node, parserPlain, perfectionist, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, solid, sortPackageJson, sortTsconfig, stylistic, svelte, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };
package/dist/index.mjs CHANGED
@@ -16,7 +16,7 @@ import pluginUnusedImports from "eslint-plugin-unused-imports";
16
16
  import globals from "globals";
17
17
  import { mergeProcessors, processorPassThrough } from "eslint-merge-processors";
18
18
  import { configs } from "eslint-plugin-regexp";
19
- //#region ../../node_modules/.pnpm/@antfu+eslint-config@9.2.0_patch_hash=69df02b36d793b2588fb6ed642c6c83986ef891c17d086eef_ccf078546068bd183db64d72ad1eaa00/node_modules/@antfu/eslint-config/dist/index.mjs
19
+ //#region ../../node_modules/.pnpm/@antfu+eslint-config@9.2.0_patch_hash=69df02b36d793b2588fb6ed642c6c83986ef891c17d086eef_ded4dcd20d37bf56e1fcf68acf3c823d/node_modules/@antfu/eslint-config/dist/index.mjs
20
20
  const toPath = (urlOrPath) => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;
21
21
  async function findUp(name, { cwd = process.cwd(), type = "file", stopAt } = {}) {
22
22
  let directory = path.resolve(toPath(cwd) ?? "");
@@ -50,9 +50,11 @@ function findUpSync(name, { cwd = process.cwd(), type = "file", stopAt } = {}) {
50
50
  }
51
51
  const GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
52
52
  const GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
53
+ const GLOB_JS = "**/*.?([cm])js";
53
54
  const GLOB_JSX = "**/*.?([cm])jsx";
54
55
  const GLOB_TS = "**/*.?([cm])ts";
55
56
  const GLOB_TSX = "**/*.?([cm])tsx";
57
+ const GLOB_STYLE = "**/*.{c,le,sc}ss";
56
58
  const GLOB_CSS = "**/*.css";
57
59
  const GLOB_POSTCSS = "**/*.{p,post}css";
58
60
  const GLOB_LESS = "**/*.less";
@@ -80,6 +82,18 @@ const GLOB_TESTS = [
80
82
  `**/*.bench.${GLOB_SRC_EXT}`,
81
83
  `**/*.benchmark.${GLOB_SRC_EXT}`
82
84
  ];
85
+ const GLOB_ALL_SRC = [
86
+ GLOB_SRC,
87
+ GLOB_STYLE,
88
+ GLOB_JSON,
89
+ GLOB_JSON5,
90
+ GLOB_MARKDOWN,
91
+ GLOB_SVELTE,
92
+ GLOB_VUE,
93
+ GLOB_YAML,
94
+ GLOB_XML,
95
+ GLOB_HTML
96
+ ];
83
97
  const GLOB_EXCLUDE = [
84
98
  "**/node_modules",
85
99
  "**/dist",
@@ -139,6 +153,12 @@ const parserPlain = {
139
153
  })
140
154
  };
141
155
  /**
156
+ * Combine array and non-array configs into a single array.
157
+ */
158
+ async function combine(...configs) {
159
+ return (await Promise.all(configs)).flat();
160
+ }
161
+ /**
142
162
  * Rename plugin prefixes in a rule object.
143
163
  * Accepts a map of prefixes to rename.
144
164
  *
@@ -162,6 +182,31 @@ function renameRules(rules, map) {
162
182
  return [key, value];
163
183
  }));
164
184
  }
185
+ /**
186
+ * Rename plugin names a flat configs array
187
+ *
188
+ * @example
189
+ * ```ts
190
+ * import { renamePluginInConfigs } from '@antfu/eslint-config'
191
+ * import someConfigs from './some-configs'
192
+ *
193
+ * export default renamePluginInConfigs(someConfigs, {
194
+ * '@typescript-eslint': 'ts',
195
+ * '@stylistic': 'style',
196
+ * })
197
+ * ```
198
+ */
199
+ function renamePluginInConfigs(configs, map) {
200
+ return configs.map((i) => {
201
+ const clone = { ...i };
202
+ if (clone.rules) clone.rules = renameRules(clone.rules, map);
203
+ if (clone.plugins) clone.plugins = Object.fromEntries(Object.entries(clone.plugins).map(([key, value]) => {
204
+ if (key in map) return [map[key], value];
205
+ return [key, value];
206
+ }));
207
+ return clone;
208
+ });
209
+ }
165
210
  function toArray(value) {
166
211
  return Array.isArray(value) ? value : [value];
167
212
  }
@@ -1910,6 +1955,36 @@ async function typescript(options = {}) {
1910
1955
  }] : []
1911
1956
  ];
1912
1957
  }
1958
+ async function unicorn(options = {}) {
1959
+ const { allRecommended = false, overrides = {} } = options;
1960
+ return [{
1961
+ name: "antfu/unicorn/setup",
1962
+ plugins: { unicorn: pluginUnicorn }
1963
+ }, {
1964
+ files: [GLOB_SRC],
1965
+ name: "antfu/unicorn/rules",
1966
+ rules: {
1967
+ ...allRecommended ? pluginUnicorn.configs.recommended.rules : {
1968
+ "unicorn/consistent-empty-array-spread": "error",
1969
+ "unicorn/error-message": "error",
1970
+ "unicorn/escape-case": "error",
1971
+ "unicorn/new-for-builtins": "error",
1972
+ "unicorn/no-instanceof-builtins": "error",
1973
+ "unicorn/no-new-array": "error",
1974
+ "unicorn/no-new-buffer": "error",
1975
+ "unicorn/number-literal-case": "error",
1976
+ "unicorn/prefer-dom-node-text-content": "error",
1977
+ "unicorn/prefer-includes": "error",
1978
+ "unicorn/prefer-node-protocol": "error",
1979
+ "unicorn/prefer-number-properties": "error",
1980
+ "unicorn/prefer-string-starts-ends-with": "error",
1981
+ "unicorn/prefer-type-error": "error",
1982
+ "unicorn/throw-new-error": "error"
1983
+ },
1984
+ ...overrides
1985
+ }
1986
+ }];
1987
+ }
1913
1988
  async function unocss(options = {}) {
1914
1989
  const { attributify = true, strict = false } = options;
1915
1990
  await ensurePackages(["@unocss/eslint-plugin"]);
@@ -2362,191 +2437,239 @@ function getOverrides(options, key) {
2362
2437
  ..."overrides" in sub ? sub.overrides : {}
2363
2438
  };
2364
2439
  }
2440
+ const CONFIG_PRESET_FULL_ON = {
2441
+ angular: true,
2442
+ astro: true,
2443
+ formatters: true,
2444
+ gitignore: true,
2445
+ imports: true,
2446
+ jsdoc: true,
2447
+ jsonc: true,
2448
+ jsx: { a11y: true },
2449
+ markdown: true,
2450
+ nextjs: true,
2451
+ node: true,
2452
+ perfectionist: true,
2453
+ pnpm: true,
2454
+ react: true,
2455
+ regexp: true,
2456
+ solid: true,
2457
+ stylistic: { experimental: true },
2458
+ svelte: true,
2459
+ test: true,
2460
+ toml: true,
2461
+ typescript: {
2462
+ erasableOnly: true,
2463
+ tsconfigPath: "tsconfig.json"
2464
+ },
2465
+ unicorn: true,
2466
+ unocss: true,
2467
+ vue: { a11y: true },
2468
+ yaml: true
2469
+ };
2470
+ const CONFIG_PRESET_FULL_OFF = {
2471
+ angular: false,
2472
+ astro: false,
2473
+ formatters: false,
2474
+ gitignore: false,
2475
+ imports: false,
2476
+ jsdoc: false,
2477
+ jsonc: false,
2478
+ jsx: false,
2479
+ markdown: false,
2480
+ nextjs: false,
2481
+ node: false,
2482
+ perfectionist: false,
2483
+ pnpm: false,
2484
+ react: false,
2485
+ regexp: false,
2486
+ solid: false,
2487
+ stylistic: false,
2488
+ svelte: false,
2489
+ test: false,
2490
+ toml: false,
2491
+ typescript: false,
2492
+ unicorn: false,
2493
+ unocss: false,
2494
+ vue: false,
2495
+ yaml: false
2496
+ };
2365
2497
  var src_default = antfu;
2366
2498
  //#endregion
2367
- //#region src/configs/javascript.ts
2499
+ //#region src/rules/javascript.ts
2368
2500
  var javascript_default = {
2369
- name: "zin/javascript/rules",
2370
- rules: {
2371
- "no-cond-assign": "off",
2372
- "no-fallthrough": "off",
2373
- "require-yield": "error",
2374
- "curly": ["error", "multi-line"],
2375
- "default-param-last": "error",
2376
- "func-style": [
2377
- "error",
2378
- "declaration",
2379
- { allowArrowFunctions: true }
2380
- ],
2381
- "logical-assignment-operators": "error",
2382
- "no-console": "off",
2383
- "no-constructor-return": "error",
2384
- "no-labels": "off",
2385
- "no-lonely-if": "error",
2386
- "no-loop-func": "error",
2387
- "no-sequences": "off",
2388
- "no-undefined": "error",
2389
- "no-useless-concat": "error",
2390
- "operator-assignment": ["error", "always"],
2391
- "prefer-numeric-literals": "error",
2392
- "prefer-object-has-own": "error",
2393
- "prefer-object-spread": "error",
2394
- "prefer-template": "off",
2395
- "symbol-description": "off"
2396
- }
2501
+ "no-cond-assign": "off",
2502
+ "no-fallthrough": "off",
2503
+ "require-yield": "error",
2504
+ "curly": ["error", "multi-line"],
2505
+ "default-param-last": "error",
2506
+ "func-style": [
2507
+ "error",
2508
+ "declaration",
2509
+ { allowArrowFunctions: true }
2510
+ ],
2511
+ "logical-assignment-operators": "error",
2512
+ "no-console": "off",
2513
+ "no-constructor-return": "error",
2514
+ "no-labels": "off",
2515
+ "no-lonely-if": "error",
2516
+ "no-loop-func": "error",
2517
+ "no-sequences": "off",
2518
+ "no-undefined": "error",
2519
+ "no-useless-concat": "error",
2520
+ "operator-assignment": ["error", "always"],
2521
+ "prefer-numeric-literals": "error",
2522
+ "prefer-object-has-own": "error",
2523
+ "prefer-object-spread": "error",
2524
+ "prefer-template": "off",
2525
+ "symbol-description": "off"
2397
2526
  };
2398
2527
  //#endregion
2399
- //#region src/configs/misc.ts
2528
+ //#region src/rules/misc.ts
2400
2529
  var misc_default = {
2401
- name: "zin/misc/rules",
2402
- rules: {
2403
- "antfu/curly": "off",
2404
- "antfu/if-newline": "off",
2405
- "antfu/no-top-level-await": "off",
2406
- "antfu/top-level-function": "off",
2407
- "e18e/prefer-static-regex": "off",
2408
- "import/consistent-type-specifier-style": "off",
2409
- "node/prefer-global/process": "off",
2410
- "perfectionist/sort-imports": ["warn", {
2411
- groups: [
2412
- "builtin",
2413
- "external",
2414
- "type-external",
2415
- "internal",
2416
- "type-internal",
2417
- [
2418
- "parent",
2419
- "sibling",
2420
- "index"
2421
- ],
2422
- [
2423
- "type-parent",
2424
- "type-sibling",
2425
- "type-index"
2426
- ],
2427
- "style",
2428
- "unknown"
2530
+ "antfu/curly": "off",
2531
+ "antfu/if-newline": "off",
2532
+ "antfu/no-top-level-await": "off",
2533
+ "antfu/top-level-function": "off",
2534
+ "e18e/prefer-static-regex": "off",
2535
+ "import/consistent-type-specifier-style": "off",
2536
+ "node/prefer-global/process": "off",
2537
+ "perfectionist/sort-imports": ["warn", {
2538
+ groups: [
2539
+ "builtin",
2540
+ "external",
2541
+ "type-external",
2542
+ "internal",
2543
+ "type-internal",
2544
+ [
2545
+ "parent",
2546
+ "sibling",
2547
+ "index"
2429
2548
  ],
2430
- internalPattern: [
2431
- "#.*",
2432
- "@/.*",
2433
- "@@/.*",
2434
- "~/.*",
2435
- "~~/.*"
2549
+ [
2550
+ "type-parent",
2551
+ "type-sibling",
2552
+ "type-index"
2436
2553
  ],
2437
- newlinesBetween: 0
2438
- }],
2439
- "ts/no-empty-object-type": "off",
2440
- "ts/no-unsafe-declaration-merging": "off",
2441
- "yaml/quotes": ["warn", { prefer: "double" }]
2442
- }
2554
+ "style",
2555
+ "unknown"
2556
+ ],
2557
+ internalPattern: [
2558
+ "#.*",
2559
+ "@/.*",
2560
+ "@@/.*",
2561
+ "~/.*",
2562
+ "~~/.*"
2563
+ ],
2564
+ newlinesBetween: 0
2565
+ }],
2566
+ "ts/no-empty-object-type": "off",
2567
+ "ts/no-unsafe-declaration-merging": "off",
2568
+ "yaml/quotes": ["warn", { prefer: "double" }]
2443
2569
  };
2444
2570
  //#endregion
2445
- //#region src/configs/stylistic.ts
2571
+ //#region src/rules/stylistic.ts
2446
2572
  var stylistic_default = {
2447
- name: "zin/stylistic/rules",
2448
- rules: {
2449
- "style/array-bracket-newline": ["warn", "consistent"],
2450
- "style/array-bracket-spacing": "warn",
2451
- "style/array-element-newline": ["warn", "consistent"],
2452
- "style/arrow-parens": ["warn", "always"],
2453
- "style/arrow-spacing": "warn",
2454
- "style/block-spacing": "warn",
2455
- "style/brace-style": ["warn", "stroustrup"],
2456
- "style/comma-dangle": ["warn", "always-multiline"],
2457
- "style/comma-spacing": "warn",
2458
- "style/comma-style": "warn",
2459
- "style/computed-property-spacing": "warn",
2460
- "style/curly-newline": "off",
2461
- "style/dot-location": ["warn", "property"],
2462
- "style/eol-last": "warn",
2463
- "style/function-call-argument-newline": ["warn", "consistent"],
2464
- "style/function-call-spacing": "warn",
2465
- "style/function-paren-newline": ["warn", "consistent"],
2466
- "style/generator-star-spacing": ["warn", {
2467
- named: "after",
2468
- anonymous: "before",
2469
- method: "both"
2470
- }],
2471
- "style/implicit-arrow-linebreak": "warn",
2472
- "style/indent-binary-ops": "off",
2473
- "style/indent": [
2474
- "warn",
2475
- 2,
2476
- { SwitchCase: 1 }
2477
- ],
2478
- "style/key-spacing": "warn",
2479
- "style/keyword-spacing": "warn",
2480
- "style/line-comment-position": "off",
2481
- "style/linebreak-style": "warn",
2482
- "style/lines-around-comment": "off",
2483
- "style/lines-between-class-members": [
2484
- "warn",
2485
- "always",
2486
- { exceptAfterSingleLine: true }
2487
- ],
2488
- "style/max-len": "off",
2489
- "style/max-statements-per-line": "off",
2490
- "style/member-delimiter-style": ["warn", { multiline: {
2491
- delimiter: "semi",
2492
- requireLast: true
2493
- } }],
2494
- "style/multiline-comment-style": "off",
2495
- "style/multiline-ternary": "off",
2496
- "style/new-parens": "warn",
2497
- "style/newline-per-chained-call": "off",
2498
- "style/no-confusing-arrow": "warn",
2499
- "style/no-extra-parens": ["warn", "functions"],
2500
- "style/no-extra-semi": "warn",
2501
- "style/no-floating-decimal": "warn",
2502
- "style/no-mixed-operators": "off",
2503
- "style/no-mixed-spaces-and-tabs": "warn",
2504
- "style/no-multi-spaces": ["warn", { ignoreEOLComments: true }],
2505
- "style/no-multiple-empty-lines": ["warn", { max: 1 }],
2506
- "style/no-tabs": "warn",
2507
- "style/no-trailing-spaces": "warn",
2508
- "style/no-whitespace-before-property": "warn",
2509
- "style/nonblock-statement-body-position": "warn",
2510
- "style/object-curly-newline": "warn",
2511
- "style/object-curly-spacing": ["warn", "always"],
2512
- "style/object-property-newline": ["warn", { allowAllPropertiesOnSameLine: true }],
2513
- "style/one-var-declaration-per-line": "off",
2514
- "style/operator-linebreak": "off",
2515
- "style/padded-blocks": ["warn", "never"],
2516
- "style/padding-line-between-statements": "off",
2517
- "style/quote-props": ["warn", "as-needed"],
2518
- "style/quotes": [
2519
- "warn",
2520
- "double",
2521
- { allowTemplateLiterals: "always" }
2522
- ],
2523
- "style/rest-spread-spacing": "warn",
2524
- "style/semi-spacing": "warn",
2525
- "style/semi-style": "warn",
2526
- "style/semi": ["warn", "always"],
2527
- "style/space-before-blocks": "warn",
2528
- "style/space-before-function-paren": ["warn", {
2529
- named: "never",
2530
- anonymous: "never"
2531
- }],
2532
- "style/space-in-parens": "warn",
2533
- "style/space-infix-ops": "warn",
2534
- "style/space-unary-ops": "warn",
2535
- "style/spaced-comment": "off",
2536
- "style/switch-colon-spacing": "warn",
2537
- "style/template-curly-spacing": "warn",
2538
- "style/template-tag-spacing": "warn",
2539
- "style/type-annotation-spacing": "warn",
2540
- "style/type-generic-spacing": "warn",
2541
- "style/type-named-tuple-spacing": "warn",
2542
- "style/wrap-iife": [
2543
- "warn",
2544
- "inside",
2545
- { functionPrototypeMethods: true }
2546
- ],
2547
- "style/wrap-regex": "off",
2548
- "style/yield-star-spacing": "warn"
2549
- }
2573
+ "style/array-bracket-newline": ["warn", "consistent"],
2574
+ "style/array-bracket-spacing": "warn",
2575
+ "style/array-element-newline": ["warn", "consistent"],
2576
+ "style/arrow-parens": ["warn", "always"],
2577
+ "style/arrow-spacing": "warn",
2578
+ "style/block-spacing": "warn",
2579
+ "style/brace-style": ["warn", "stroustrup"],
2580
+ "style/comma-dangle": ["warn", "always-multiline"],
2581
+ "style/comma-spacing": "warn",
2582
+ "style/comma-style": "warn",
2583
+ "style/computed-property-spacing": "warn",
2584
+ "style/curly-newline": "off",
2585
+ "style/dot-location": ["warn", "property"],
2586
+ "style/eol-last": "warn",
2587
+ "style/function-call-argument-newline": ["warn", "consistent"],
2588
+ "style/function-call-spacing": "warn",
2589
+ "style/function-paren-newline": ["warn", "consistent"],
2590
+ "style/generator-star-spacing": ["warn", {
2591
+ named: "after",
2592
+ anonymous: "before",
2593
+ method: "both"
2594
+ }],
2595
+ "style/implicit-arrow-linebreak": "warn",
2596
+ "style/indent-binary-ops": "off",
2597
+ "style/indent": [
2598
+ "warn",
2599
+ 2,
2600
+ { SwitchCase: 1 }
2601
+ ],
2602
+ "style/key-spacing": "warn",
2603
+ "style/keyword-spacing": "warn",
2604
+ "style/line-comment-position": "off",
2605
+ "style/linebreak-style": "warn",
2606
+ "style/lines-around-comment": "off",
2607
+ "style/lines-between-class-members": [
2608
+ "warn",
2609
+ "always",
2610
+ { exceptAfterSingleLine: true }
2611
+ ],
2612
+ "style/max-len": "off",
2613
+ "style/max-statements-per-line": "off",
2614
+ "style/member-delimiter-style": ["warn", { multiline: {
2615
+ delimiter: "semi",
2616
+ requireLast: true
2617
+ } }],
2618
+ "style/multiline-comment-style": "off",
2619
+ "style/multiline-ternary": "off",
2620
+ "style/new-parens": "warn",
2621
+ "style/newline-per-chained-call": "off",
2622
+ "style/no-confusing-arrow": "warn",
2623
+ "style/no-extra-parens": ["warn", "functions"],
2624
+ "style/no-extra-semi": "warn",
2625
+ "style/no-floating-decimal": "warn",
2626
+ "style/no-mixed-operators": "off",
2627
+ "style/no-mixed-spaces-and-tabs": "warn",
2628
+ "style/no-multi-spaces": ["warn", { ignoreEOLComments: true }],
2629
+ "style/no-multiple-empty-lines": ["warn", { max: 1 }],
2630
+ "style/no-tabs": "warn",
2631
+ "style/no-trailing-spaces": "warn",
2632
+ "style/no-whitespace-before-property": "warn",
2633
+ "style/nonblock-statement-body-position": "warn",
2634
+ "style/object-curly-newline": "warn",
2635
+ "style/object-curly-spacing": ["warn", "always"],
2636
+ "style/object-property-newline": ["warn", { allowAllPropertiesOnSameLine: true }],
2637
+ "style/one-var-declaration-per-line": "off",
2638
+ "style/operator-linebreak": "off",
2639
+ "style/padded-blocks": ["warn", "never"],
2640
+ "style/padding-line-between-statements": "off",
2641
+ "style/quote-props": ["warn", "as-needed"],
2642
+ "style/quotes": [
2643
+ "warn",
2644
+ "double",
2645
+ { allowTemplateLiterals: "always" }
2646
+ ],
2647
+ "style/rest-spread-spacing": "warn",
2648
+ "style/semi-spacing": "warn",
2649
+ "style/semi-style": "warn",
2650
+ "style/semi": ["warn", "always"],
2651
+ "style/space-before-blocks": "warn",
2652
+ "style/space-before-function-paren": ["warn", {
2653
+ named: "never",
2654
+ anonymous: "never"
2655
+ }],
2656
+ "style/space-in-parens": "warn",
2657
+ "style/space-infix-ops": "warn",
2658
+ "style/space-unary-ops": "warn",
2659
+ "style/spaced-comment": "off",
2660
+ "style/switch-colon-spacing": "warn",
2661
+ "style/template-curly-spacing": "warn",
2662
+ "style/template-tag-spacing": "warn",
2663
+ "style/type-annotation-spacing": "warn",
2664
+ "style/type-generic-spacing": "warn",
2665
+ "style/type-named-tuple-spacing": "warn",
2666
+ "style/wrap-iife": [
2667
+ "warn",
2668
+ "inside",
2669
+ { functionPrototypeMethods: true }
2670
+ ],
2671
+ "style/wrap-regex": "off",
2672
+ "style/yield-star-spacing": "warn"
2550
2673
  };
2551
2674
  //#endregion
2552
2675
  //#region src/rules/vue.ts
@@ -2769,7 +2892,7 @@ var vue_default = {
2769
2892
  ],
2770
2893
  "vue/valid-define-options": "error",
2771
2894
  "vue/v-for-delimiter-style": ["error", "in"],
2772
- ...Object.fromEntries(["no-useless-concat", "prefer-template"].map((rule) => [`vue/${rule}`, javascript_default.rules[rule]])),
2895
+ ...Object.fromEntries(["no-useless-concat", "prefer-template"].map((rule) => [`vue/${rule}`, javascript_default[rule]])),
2773
2896
  ...Object.fromEntries([
2774
2897
  "array-bracket-newline",
2775
2898
  "array-bracket-spacing",
@@ -2795,7 +2918,7 @@ var vue_default = {
2795
2918
  "space-infix-ops",
2796
2919
  "space-unary-ops",
2797
2920
  "template-curly-spacing"
2798
- ].map((rule) => [`vue/${rule}`, stylistic_default.rules[`style/${rule}`]])),
2921
+ ].map((rule) => [`vue/${rule}`, stylistic_default[`style/${rule}`]])),
2799
2922
  "vue/no-undef-components": "off",
2800
2923
  "vue/require-name-property": "off",
2801
2924
  "vue/no-ref-object-reactivity-loss": "off",
@@ -2854,38 +2977,39 @@ var vue_default = {
2854
2977
  };
2855
2978
  //#endregion
2856
2979
  //#region src/index.ts
2857
- const fusedProps = [
2858
- "name",
2859
- "languageOptions",
2860
- "linterOptions",
2861
- "processor",
2862
- "plugins",
2863
- "rules",
2864
- "settings"
2865
- ];
2866
2980
  const zin = (options = {}, ...userConfigs) => {
2867
- const configFused = fusedProps.reduce((acc, key) => {
2868
- if (key in options) {
2869
- acc[key] = options[key];
2870
- delete options[key];
2871
- }
2872
- return acc;
2873
- }, {});
2981
+ const stylistic = options.stylistic === false || typeof options.stylistic === "object" ? options.stylistic : {};
2874
2982
  const vue = options.vue === false || typeof options.vue === "object" ? options.vue : {};
2875
2983
  return src_default({
2876
2984
  pnpm: true,
2877
2985
  ...options,
2986
+ javascript: {
2987
+ ...options.javascript,
2988
+ overrides: {
2989
+ ...javascript_default,
2990
+ ...options.javascript?.overrides
2991
+ }
2992
+ },
2993
+ stylistic: stylistic && {
2994
+ ...stylistic,
2995
+ overrides: {
2996
+ ...stylistic_default,
2997
+ ...stylistic.overrides
2998
+ }
2999
+ },
2878
3000
  vue: vue && {
2879
3001
  ...vue,
2880
3002
  overrides: {
3003
+ "style/indent": "off",
2881
3004
  ...vue_default,
2882
3005
  ...vue.overrides
2883
3006
  }
3007
+ },
3008
+ rules: {
3009
+ ...misc_default,
3010
+ ...options.rules
2884
3011
  }
2885
- }, javascript_default, misc_default, stylistic_default, configFused, {
2886
- files: ["**/*.vue"],
2887
- rules: { "style/indent": "off" }
2888
3012
  }, ...userConfigs);
2889
3013
  };
2890
3014
  //#endregion
2891
- export { zin as default, zin };
3015
+ export { CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, 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_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, angular, antfu, astro, combine, command, comments, zin as default, zin, defaultPluginRenaming, disables, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, nextjs, node, parserPlain, perfectionist, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, solid, sortPackageJson, sortTsconfig, stylistic, svelte, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zinkawaii/eslint-config",
3
3
  "type": "module",
4
- "version": "0.5.0",
4
+ "version": "0.5.2",
5
5
  "description": "Utakata na Shiawase",
6
6
  "author": "KazariEX",
7
7
  "license": "MIT",
@@ -17,43 +17,6 @@
17
17
  "files": [
18
18
  "dist"
19
19
  ],
20
- "dependencies": {
21
- "@antfu/install-pkg": "^1.1.0",
22
- "@clack/prompts": "^1.7.0",
23
- "@e18e/eslint-plugin": "^0.5.1",
24
- "@eslint-community/eslint-plugin-eslint-comments": "^4.7.2",
25
- "@eslint/markdown": "^8.0.3",
26
- "@stylistic/eslint-plugin": "^5.10.0",
27
- "@typescript-eslint/eslint-plugin": "^8.65.0",
28
- "@typescript-eslint/parser": "^8.65.0",
29
- "@vitest/eslint-plugin": "^1.6.23",
30
- "ansis": "^4.3.1",
31
- "cac": "^7.0.0",
32
- "eslint-config-flat-gitignore": "^2.3.0",
33
- "eslint-flat-config-utils": "^3.2.0",
34
- "eslint-merge-processors": "^2.0.0",
35
- "eslint-plugin-antfu": "^3.2.3",
36
- "eslint-plugin-command": "^3.5.3",
37
- "eslint-plugin-import-lite": "^0.6.0",
38
- "eslint-plugin-jsdoc": "^63.2.0",
39
- "eslint-plugin-jsonc": "^3.3.0",
40
- "eslint-plugin-n": "^18.2.2",
41
- "eslint-plugin-no-only-tests": "^3.4.0",
42
- "eslint-plugin-perfectionist": "^5.10.0",
43
- "eslint-plugin-pnpm": "^1.6.1",
44
- "eslint-plugin-regexp": "^3.1.1",
45
- "eslint-plugin-toml": "^1.4.0",
46
- "eslint-plugin-unused-imports": "^4.4.1",
47
- "eslint-plugin-vue": "^10.10.0",
48
- "eslint-plugin-yml": "^3.6.0",
49
- "eslint-processor-vue-blocks": "^2.0.0",
50
- "globals": "^17.7.0",
51
- "local-pkg": "^1.2.1",
52
- "parse-gitignore": "^2.0.0",
53
- "toml-eslint-parser": "^1.0.3",
54
- "vue-eslint-parser": "^10.4.1",
55
- "yaml-eslint-parser": "^2.1.0"
56
- },
57
20
  "peerDependencies": {
58
21
  "@angular-eslint/eslint-plugin": "^21.1.0",
59
22
  "@angular-eslint/eslint-plugin-template": "^21.1.0",
@@ -131,11 +94,49 @@
131
94
  "optional": true
132
95
  }
133
96
  },
97
+ "dependencies": {
98
+ "@antfu/install-pkg": "^2.0.1",
99
+ "@clack/prompts": "^1.7.0",
100
+ "@e18e/eslint-plugin": "^0.6.0",
101
+ "@eslint-community/eslint-plugin-eslint-comments": "^4.7.2",
102
+ "@eslint/markdown": "^8.0.3",
103
+ "@stylistic/eslint-plugin": "^5.10.0",
104
+ "@typescript-eslint/eslint-plugin": "^8.65.0",
105
+ "@typescript-eslint/parser": "^8.65.0",
106
+ "@vitest/eslint-plugin": "^1.6.24",
107
+ "ansis": "^4.3.1",
108
+ "cac": "^7.0.0",
109
+ "eslint-config-flat-gitignore": "^2.3.0",
110
+ "eslint-flat-config-utils": "^3.2.0",
111
+ "eslint-merge-processors": "^2.0.0",
112
+ "eslint-plugin-antfu": "^3.2.3",
113
+ "eslint-plugin-command": "^4.0.0",
114
+ "eslint-plugin-import-lite": "^0.6.0",
115
+ "eslint-plugin-jsdoc": "^63.3.2",
116
+ "eslint-plugin-jsonc": "^3.3.0",
117
+ "eslint-plugin-n": "^18.2.2",
118
+ "eslint-plugin-no-only-tests": "^3.4.0",
119
+ "eslint-plugin-perfectionist": "^5.10.0",
120
+ "eslint-plugin-pnpm": "^1.7.0",
121
+ "eslint-plugin-regexp": "^3.1.1",
122
+ "eslint-plugin-toml": "^1.5.0",
123
+ "eslint-plugin-unused-imports": "^4.4.1",
124
+ "eslint-plugin-vue": "^10.10.0",
125
+ "eslint-plugin-yml": "^3.7.0",
126
+ "eslint-processor-vue-blocks": "^2.0.0",
127
+ "globals": "^17.8.0",
128
+ "local-pkg": "^1.2.1",
129
+ "parse-gitignore": "^2.0.0",
130
+ "toml-eslint-parser": "^1.0.3",
131
+ "vue-eslint-parser": "^10.4.1",
132
+ "yaml-eslint-parser": "^2.1.0"
133
+ },
134
134
  "inlinedDependencies": {
135
135
  "@antfu/eslint-config": "9.2.0"
136
136
  },
137
137
  "scripts": {
138
138
  "build": "tsdown",
139
- "dev": "tsdown -w"
139
+ "dev": "tsdown -w",
140
+ "test": "vitest"
140
141
  }
141
142
  }