@whoj/eslint-config 2.2.1 → 2.3.0

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/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import { ParserOptions } from '@typescript-eslint/parser';
4
4
  import { FlatGitignoreOptions } from 'eslint-config-flat-gitignore';
5
5
  import { StylisticCustomizeOptions } from '@stylistic/eslint-plugin';
6
6
  import { Options } from 'eslint-processor-vue-blocks';
7
- import { NuxtESLintConfigOptions, NuxtESLintFeaturesOptions } from '@nuxt/eslint-config/flat';
7
+ import { NuxtESLintFeaturesOptions, NuxtESLintConfigOptions } from '@nuxt/eslint-config/flat';
8
8
 
9
9
  /* eslint-disable */
10
10
  /* prettier-ignore */
@@ -2527,6 +2527,16 @@ interface RuleOptions {
2527
2527
  * @deprecated
2528
2528
  */
2529
2529
  'nonblock-statement-body-position'?: Linter.RuleEntry<NonblockStatementBodyPosition>
2530
+ /**
2531
+ * Prefer recommended order of Nuxt config properties
2532
+ * @see https://eslint.nuxt.com/packages/plugin#nuxtnuxt-config-keys-order
2533
+ */
2534
+ 'nuxt/nuxt-config-keys-order'?: Linter.RuleEntry<[]>
2535
+ /**
2536
+ * Prefer using `import.meta.*` over `process.*`
2537
+ * @see https://eslint.nuxt.com/packages/plugin#nuxtprefer-import-meta
2538
+ */
2539
+ 'nuxt/prefer-import-meta'?: Linter.RuleEntry<[]>
2530
2540
  /**
2531
2541
  * Enforce consistent line breaks after opening and before closing braces
2532
2542
  * @see https://eslint.org/docs/latest/rules/object-curly-newline
@@ -16258,30 +16268,36 @@ type Yoda = []|[("always" | "never")]|[("always" | "never"), {
16258
16268
  onlyEquality?: boolean
16259
16269
  }]
16260
16270
  // Names of all the configs
16261
- type ConfigNames = 'whoj/astro/setup' | 'whoj/astro/rules' | 'whoj/eslint-comments/rules' | 'whoj/formatter/setup' | 'whoj/imports/rules' | 'whoj/javascript/setup' | 'whoj/javascript/rules' | 'whoj/jsx/setup' | 'whoj/jsdoc/rules' | 'whoj/jsonc/setup' | 'whoj/jsonc/rules' | 'whoj/markdown/setup' | 'whoj/markdown/processor' | 'whoj/markdown/parser' | 'whoj/markdown/disables' | 'whoj/node/rules' | 'whoj/perfectionist/setup' | 'whoj/react/setup' | 'whoj/react/rules' | 'whoj/solid/setup' | 'whoj/solid/rules' | 'whoj/sort/package-json' | 'whoj/stylistic/rules' | 'whoj/svelte/setup' | 'whoj/svelte/rules' | 'whoj/test/setup' | 'whoj/test/rules' | 'whoj/toml/setup' | 'whoj/toml/rules' | 'whoj/regexp/rules' | 'whoj/typescript/setup' | 'whoj/typescript/parser' | 'whoj/typescript/rules' | 'whoj/unicorn/rules' | 'whoj/unocss' | 'whoj/vue/setup' | 'whoj/vue/rules' | 'whoj/yaml/setup' | 'whoj/yaml/rules'
16271
+ type ConfigNames = 'whoj/astro/setup' | 'whoj/astro/rules' | 'whoj/eslint-comments/rules' | 'whoj/formatter/setup' | 'whoj/imports/rules' | 'whoj/javascript/setup' | 'whoj/javascript/rules' | 'whoj/jsx/setup' | 'whoj/jsdoc/rules' | 'whoj/jsonc/setup' | 'whoj/jsonc/rules' | 'whoj/markdown/setup' | 'whoj/markdown/processor' | 'whoj/markdown/parser' | 'whoj/markdown/disables' | 'whoj/node/rules' | 'nuxt/setup' | 'nuxt/vue/single-root' | 'nuxt/rules' | 'nuxt/disables/routes' | 'whoj/nuxt/rules' | 'whoj/perfectionist/setup' | 'whoj/react/setup' | 'whoj/react/rules' | 'whoj/solid/setup' | 'whoj/solid/rules' | 'whoj/sort/package-json' | 'whoj/stylistic/rules' | 'whoj/svelte/setup' | 'whoj/svelte/rules' | 'whoj/test/setup' | 'whoj/test/rules' | 'whoj/toml/setup' | 'whoj/toml/rules' | 'whoj/regexp/rules' | 'whoj/typescript/setup' | 'whoj/typescript/parser' | 'whoj/typescript/rules' | 'whoj/unicorn/rules' | 'whoj/unocss' | 'whoj/vue/setup' | 'whoj/vue/rules' | 'whoj/yaml/setup' | 'whoj/yaml/rules'
16262
16272
 
16263
- /**
16264
- * Vendor types from Prettier so we don't rely on the dependency.
16265
- */
16266
16273
  type VendoredPrettierOptions = Partial<VendoredPrettierOptionsRequired>;
16267
16274
  interface VendoredPrettierOptionsRequired {
16268
16275
  /**
16269
- * Specify the line length that the printer will wrap on.
16270
- * @default 120
16276
+ * Print semicolons at the ends of statements.
16271
16277
  */
16272
- printWidth: number;
16278
+ semi: boolean;
16273
16279
  /**
16274
16280
  * Specify the number of spaces per indentation-level.
16275
16281
  */
16276
16282
  tabWidth: number;
16283
+ /**
16284
+ * Format only a segment of a file.
16285
+ * @default Number.POSITIVE_INFINITY
16286
+ */
16287
+ rangeEnd: number;
16277
16288
  /**
16278
16289
  * Indent lines with tabs instead of spaces
16279
16290
  */
16280
16291
  useTabs?: boolean;
16281
16292
  /**
16282
- * Print semicolons at the ends of statements.
16293
+ * Specify the line length that the printer will wrap on.
16294
+ * @default 120
16283
16295
  */
16284
- semi: boolean;
16296
+ printWidth: number;
16297
+ /**
16298
+ * Format only a segment of a file.
16299
+ */
16300
+ rangeStart: number;
16285
16301
  /**
16286
16302
  * Use single quotes instead of double quotes.
16287
16303
  */
@@ -16290,10 +16306,6 @@ interface VendoredPrettierOptionsRequired {
16290
16306
  * Use single quotes in JSX.
16291
16307
  */
16292
16308
  jsxSingleQuote: boolean;
16293
- /**
16294
- * Print trailing commas wherever possible.
16295
- */
16296
- trailingComma: 'none' | 'es5' | 'all';
16297
16309
  /**
16298
16310
  * Print spaces between brackets in object literals.
16299
16311
  */
@@ -16309,69 +16321,64 @@ interface VendoredPrettierOptionsRequired {
16309
16321
  */
16310
16322
  jsxBracketSameLine: boolean;
16311
16323
  /**
16312
- * Format only a segment of a file.
16313
- */
16314
- rangeStart: number;
16315
- /**
16316
- * Format only a segment of a file.
16317
- * @default Number.POSITIVE_INFINITY
16324
+ * Provide ability to support new languages to prettier.
16318
16325
  */
16319
- rangeEnd: number;
16326
+ plugins: Array<any | string>;
16320
16327
  /**
16321
- * By default, Prettier will wrap markdown text as-is since some services use a linebreak-sensitive renderer.
16322
- * In some cases you may want to rely on editor/viewer soft wrapping instead, so this option allows you to opt out.
16323
- * @default "preserve"
16328
+ * Whether to put a space inside the brackets of self-closing XML elements.
16329
+ * @default true
16324
16330
  */
16325
- proseWrap: 'always' | 'never' | 'preserve';
16331
+ xmlSelfClosingSpace: boolean;
16326
16332
  /**
16327
16333
  * Include parentheses around a sole arrow function parameter.
16328
16334
  * @default "always"
16329
16335
  */
16330
16336
  arrowParens: 'avoid' | 'always';
16331
16337
  /**
16332
- * Provide ability to support new languages to prettier.
16338
+ * Enforce single attribute per line in HTML, XML, Vue and JSX.
16339
+ * @default false
16333
16340
  */
16334
- plugins: Array<string | any>;
16341
+ singleAttributePerLine: boolean;
16335
16342
  /**
16336
- * How to handle whitespaces in HTML.
16337
- * @default "css"
16343
+ * Whether to sort attributes by key in XML elements.
16344
+ * @default false
16338
16345
  */
16339
- htmlWhitespaceSensitivity: 'css' | 'strict' | 'ignore';
16346
+ xmlSortAttributesByKey: boolean;
16340
16347
  /**
16341
- * Which end of line characters to apply.
16342
- * @default "lf"
16348
+ * Whether or not to indent the code inside <script> and <style> tags in Vue files.
16349
+ * @default false
16343
16350
  */
16344
- endOfLine: 'auto' | 'lf' | 'crlf' | 'cr';
16351
+ vueIndentScriptAndStyle: boolean;
16345
16352
  /**
16346
- * Change when properties in objects are quoted.
16347
- * @default "as-needed"
16353
+ * Print trailing commas wherever possible.
16348
16354
  */
16349
- quoteProps: 'as-needed' | 'consistent' | 'preserve';
16355
+ trailingComma: 'es5' | 'all' | 'none';
16350
16356
  /**
16351
- * Whether or not to indent the code inside <script> and <style> tags in Vue files.
16352
- * @default false
16357
+ * Which end of line characters to apply.
16358
+ * @default "lf"
16353
16359
  */
16354
- vueIndentScriptAndStyle: boolean;
16360
+ endOfLine: 'lf' | 'cr' | 'auto' | 'crlf';
16355
16361
  /**
16356
- * Enforce single attribute per line in HTML, XML, Vue and JSX.
16357
- * @default false
16362
+ * By default, Prettier will wrap markdown text as-is since some services use a linebreak-sensitive renderer.
16363
+ * In some cases you may want to rely on editor/viewer soft wrapping instead, so this option allows you to opt out.
16364
+ * @default "preserve"
16358
16365
  */
16359
- singleAttributePerLine: boolean;
16366
+ proseWrap: 'never' | 'always' | 'preserve';
16367
+ /**
16368
+ * Change when properties in objects are quoted.
16369
+ * @default "as-needed"
16370
+ */
16371
+ quoteProps: 'preserve' | 'as-needed' | 'consistent';
16360
16372
  /**
16361
16373
  * How to handle whitespaces in XML.
16362
16374
  * @default "preserve"
16363
16375
  */
16364
16376
  xmlQuoteAttributes: 'single' | 'double' | 'preserve';
16365
16377
  /**
16366
- * Whether to put a space inside the brackets of self-closing XML elements.
16367
- * @default true
16368
- */
16369
- xmlSelfClosingSpace: boolean;
16370
- /**
16371
- * Whether to sort attributes by key in XML elements.
16372
- * @default false
16378
+ * How to handle whitespaces in HTML.
16379
+ * @default "css"
16373
16380
  */
16374
- xmlSortAttributesByKey: boolean;
16381
+ htmlWhitespaceSensitivity: 'css' | 'strict' | 'ignore';
16375
16382
  /**
16376
16383
  * How to handle whitespaces in XML.
16377
16384
  * @default "ignore"
@@ -16379,85 +16386,127 @@ interface VendoredPrettierOptionsRequired {
16379
16386
  xmlWhitespaceSensitivity: 'ignore' | 'strict' | 'preserve';
16380
16387
  }
16381
16388
 
16382
- type Awaitable<T> = T | Promise<T>;
16383
16389
  type Rules = RuleOptions;
16390
+ type Awaitable<T> = T | Promise<T>;
16384
16391
 
16385
- type TypedFlatConfigItem = Omit<Linter.Config<Linter.RulesRecord & Rules>, 'plugins'> & {
16392
+ interface OptionsIsInEditor {
16393
+ isInEditor?: boolean;
16394
+ }
16395
+ interface OptionsHasTypeScript {
16396
+ typescript?: boolean;
16397
+ }
16398
+ interface OptionsStylistic {
16399
+ stylistic?: boolean | StylisticConfig;
16400
+ }
16401
+ interface OptionsOverrides {
16402
+ overrides?: TypedFlatConfigItem['rules'];
16403
+ }
16404
+ interface OptionsRegExp {
16386
16405
  /**
16387
- * An object containing a name-value mapping of plugin names to plugin objects. When `files` is specified, these plugins are only available to the matching files.
16388
- *
16389
- * @see [Using plugins in your configuration](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration)
16406
+ * Override rulelevels
16390
16407
  */
16391
- plugins?: Record<string, any>;
16392
- };
16408
+ level?: 'warn' | 'error';
16409
+ }
16393
16410
  interface OptionsFiles {
16394
16411
  /**
16395
16412
  * Override the `files` option to provide custom globs.
16396
16413
  */
16397
16414
  files?: string[];
16398
16415
  }
16399
- interface OptionsNuxt extends Omit<NuxtESLintConfigOptions, 'features'> {
16400
- features?: Omit<NuxtESLintFeaturesOptions, 'standalone'>;
16416
+ interface StylisticConfig extends Pick<StylisticCustomizeOptions, 'jsx' | 'semi' | 'indent' | 'quotes' | 'commaDangle'> {
16401
16417
  }
16402
- interface OptionsVue extends OptionsOverrides {
16418
+ type OptionsTypescript = (OptionsOverrides & OptionsTypeScriptWithTypes) | (OptionsOverrides & OptionsTypeScriptParserOptions);
16419
+ interface OptionsComponentExts {
16403
16420
  /**
16404
- * Create virtual files for Vue SFC blocks to enable linting.
16421
+ * Additional extensions for components.
16405
16422
  *
16406
- * @see https://github.com/antfu/eslint-processor-vue-blocks
16407
- * @default true
16423
+ * @example ['vue']
16424
+ * @default []
16408
16425
  */
16409
- sfcBlocks?: boolean | Options;
16426
+ componentExts?: string[];
16427
+ }
16428
+ interface OptionsProjectType {
16410
16429
  /**
16411
- * Vue version. Apply different rules set from `eslint-plugin-vue`.
16430
+ * Type of the project. `lib` will enable more strict rules for libraries.
16412
16431
  *
16413
- * @default 3
16432
+ * @default 'app'
16414
16433
  */
16415
- vueVersion?: 2 | 3;
16434
+ type?: 'app' | 'lib';
16416
16435
  }
16417
- type OptionsTypescript = (OptionsTypeScriptWithTypes & OptionsOverrides) | (OptionsTypeScriptParserOptions & OptionsOverrides);
16418
- interface OptionsFormatters {
16436
+ interface OptionsUnicorn {
16419
16437
  /**
16420
- * Enable formatting support for CSS, Less, Sass, and SCSS.
16438
+ * Include all rules recommended by `eslint-plugin-unicorn`, instead of only ones picked by Anthony.
16421
16439
  *
16422
- * Currently only support Prettier.
16440
+ * @default false
16423
16441
  */
16424
- css?: 'prettier' | boolean;
16442
+ allRecommended?: boolean;
16443
+ }
16444
+ interface OptionsNuxt<Ex extends keyof NuxtESLintFeaturesOptions = 'stylistic' | 'standalone'> extends Omit<NuxtESLintConfigOptions, 'features'> {
16445
+ features?: Omit<NuxtESLintFeaturesOptions, Ex>;
16446
+ }
16447
+ interface OptionsUnoCSS extends OptionsOverrides {
16425
16448
  /**
16426
- * Enable formatting support for HTML.
16427
- *
16428
- * Currently only support Prettier.
16449
+ * Enable strict mode by throwing errors about blocklisted classes.
16450
+ * @default false
16429
16451
  */
16430
- html?: 'prettier' | boolean;
16452
+ strict?: boolean;
16431
16453
  /**
16432
- * Enable formatting support for XML.
16433
- *
16434
- * Currently only support Prettier.
16454
+ * Enable attributify support.
16455
+ * @default true
16435
16456
  */
16436
- xml?: 'prettier' | boolean;
16457
+ attributify?: boolean;
16458
+ }
16459
+ interface OptionsTypeScriptWithTypes {
16437
16460
  /**
16438
- * Enable formatting support for SVG.
16439
- *
16440
- * Currently only support Prettier.
16461
+ * When this options is provided, type aware rules will be enabled.
16462
+ * @see https://typescript-eslint.io/linting/typed-linting/
16441
16463
  */
16442
- svg?: 'prettier' | boolean;
16464
+ tsconfigPath?: string;
16443
16465
  /**
16444
- * Enable formatting support for Markdown.
16466
+ * Override type aware rules.
16467
+ */
16468
+ overridesTypeAware?: TypedFlatConfigItem['rules'];
16469
+ }
16470
+ interface OptionsVue extends OptionsOverrides {
16471
+ /**
16472
+ * Vue version. Apply different rules set from `eslint-plugin-vue`.
16445
16473
  *
16446
- * Support both Prettier and dprint.
16474
+ * @default 3
16475
+ */
16476
+ vueVersion?: 2 | 3;
16477
+ /**
16478
+ * Create virtual files for Vue SFC blocks to enable linting.
16447
16479
  *
16448
- * When set to `true`, it will use Prettier.
16480
+ * @see https://github.com/antfu/eslint-processor-vue-blocks
16481
+ * @default true
16449
16482
  */
16450
- markdown?: 'prettier' | 'dprint' | boolean;
16483
+ sfcBlocks?: boolean | Options;
16484
+ }
16485
+ interface OptionsTypeScriptParserOptions {
16451
16486
  /**
16452
- * Enable formatting support for GraphQL.
16487
+ * Glob patterns for files that should be type aware.
16488
+ * @default ['**\/*.{ts,tsx}']
16453
16489
  */
16454
- graphql?: 'prettier' | boolean;
16490
+ filesTypeAware?: string[];
16455
16491
  /**
16456
- * Custom options for Prettier.
16492
+ * Glob patterns for files that should not be type aware.
16493
+ * @default ['**\/*.md\/**', '**\/*.astro/*.ts']
16494
+ */
16495
+ ignoresTypeAware?: string[];
16496
+ /**
16497
+ * Additional parser options for TypeScript.
16498
+ */
16499
+ parserOptions?: Partial<ParserOptions>;
16500
+ }
16501
+ type TypedFlatConfigItem = Omit<Linter.Config<Rules & Linter.RulesRecord>, 'plugins'> & {
16502
+ /**
16503
+ * An object containing a name-value mapping of plugin names to plugin objects. When `files` is specified, these plugins are only available to the matching files.
16457
16504
  *
16458
- * By default it's controlled by our own config.
16505
+ * @see [Using plugins in your configuration](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration)
16459
16506
  */
16460
- prettierOptions?: VendoredPrettierOptions;
16507
+ plugins?: Record<string, any>;
16508
+ };
16509
+ interface OptionsFormatters {
16461
16510
  /**
16462
16511
  * Custom options for dprint.
16463
16512
  *
@@ -16465,114 +16514,85 @@ interface OptionsFormatters {
16465
16514
  */
16466
16515
  dprintOptions?: boolean;
16467
16516
  /**
16468
- * Install the prettier plugin for handle Slidev markdown
16517
+ * Enable formatting support for CSS, Less, Sass, and SCSS.
16469
16518
  *
16470
- * Only works when `markdown` is enabled with `prettier`.
16519
+ * Currently only support Prettier.
16471
16520
  */
16472
- slidev?: boolean | {
16473
- files?: string[];
16474
- };
16521
+ css?: boolean | 'prettier';
16475
16522
  /**
16476
- * Enable formatting support for Astro.
16523
+ * Enable formatting support for XML.
16477
16524
  *
16478
16525
  * Currently only support Prettier.
16479
16526
  */
16480
- astro?: 'prettier' | boolean;
16481
- }
16482
- interface OptionsComponentExts {
16527
+ xml?: boolean | 'prettier';
16483
16528
  /**
16484
- * Additional extensions for components.
16529
+ * Enable formatting support for SVG.
16485
16530
  *
16486
- * @example ['vue']
16487
- * @default []
16531
+ * Currently only support Prettier.
16488
16532
  */
16489
- componentExts?: string[];
16490
- }
16491
- interface OptionsUnicorn {
16533
+ svg?: boolean | 'prettier';
16492
16534
  /**
16493
- * Include all rules recommended by `eslint-plugin-unicorn`, instead of only ones picked by Anthony.
16535
+ * Enable formatting support for HTML.
16494
16536
  *
16495
- * @default false
16496
- */
16497
- allRecommended?: boolean;
16498
- }
16499
- interface OptionsTypeScriptParserOptions {
16500
- /**
16501
- * Additional parser options for TypeScript.
16502
- */
16503
- parserOptions?: Partial<ParserOptions>;
16504
- /**
16505
- * Glob patterns for files that should be type aware.
16506
- * @default ['**\/*.{ts,tsx}']
16537
+ * Currently only support Prettier.
16507
16538
  */
16508
- filesTypeAware?: string[];
16539
+ html?: boolean | 'prettier';
16509
16540
  /**
16510
- * Glob patterns for files that should not be type aware.
16511
- * @default ['**\/*.md\/**', '**\/*.astro/*.ts']
16541
+ * Enable formatting support for Astro.
16542
+ *
16543
+ * Currently only support Prettier.
16512
16544
  */
16513
- ignoresTypeAware?: string[];
16514
- }
16515
- interface OptionsTypeScriptWithTypes {
16545
+ astro?: boolean | 'prettier';
16516
16546
  /**
16517
- * When this options is provided, type aware rules will be enabled.
16518
- * @see https://typescript-eslint.io/linting/typed-linting/
16547
+ * Enable formatting support for GraphQL.
16519
16548
  */
16520
- tsconfigPath?: string;
16549
+ graphql?: boolean | 'prettier';
16521
16550
  /**
16522
- * Override type aware rules.
16551
+ * Custom options for Prettier.
16552
+ *
16553
+ * By default it's controlled by our own config.
16523
16554
  */
16524
- overridesTypeAware?: TypedFlatConfigItem['rules'];
16525
- }
16526
- interface OptionsHasTypeScript {
16527
- typescript?: boolean;
16528
- }
16529
- interface OptionsStylistic {
16530
- stylistic?: boolean | StylisticConfig;
16531
- }
16532
- interface StylisticConfig extends Pick<StylisticCustomizeOptions, 'indent' | 'quotes' | 'jsx' | 'semi' | 'commaDangle'> {
16533
- }
16534
- interface OptionsOverrides {
16535
- overrides?: TypedFlatConfigItem['rules'];
16536
- }
16537
- interface OptionsProjectType {
16555
+ prettierOptions?: VendoredPrettierOptions;
16538
16556
  /**
16539
- * Type of the project. `lib` will enable more strict rules for libraries.
16557
+ * Enable formatting support for Markdown.
16540
16558
  *
16541
- * @default 'app'
16559
+ * Support both Prettier and dprint.
16560
+ *
16561
+ * When set to `true`, it will use Prettier.
16542
16562
  */
16543
- type?: 'app' | 'lib';
16544
- }
16545
- interface OptionsRegExp {
16563
+ markdown?: boolean | 'dprint' | 'prettier';
16546
16564
  /**
16547
- * Override rulelevels
16565
+ * Install the prettier plugin for handle Slidev markdown
16566
+ *
16567
+ * Only works when `markdown` is enabled with `prettier`.
16548
16568
  */
16549
- level?: 'error' | 'warn';
16550
- }
16551
- interface OptionsIsInEditor {
16552
- isInEditor?: boolean;
16569
+ slidev?: boolean | {
16570
+ files?: string[];
16571
+ };
16553
16572
  }
16554
- interface OptionsUnoCSS extends OptionsOverrides {
16573
+ interface OptionsConfig extends OptionsProjectType, OptionsComponentExts {
16555
16574
  /**
16556
- * Enable attributify support.
16575
+ * Enable JSX related rules.
16576
+ *
16577
+ * Currently only stylistic rules are included.
16578
+ *
16557
16579
  * @default true
16558
16580
  */
16559
- attributify?: boolean;
16581
+ jsx?: boolean;
16560
16582
  /**
16561
- * Enable strict mode by throwing errors about blocklisted classes.
16583
+ * Enable svelte rules.
16584
+ *
16585
+ * Requires installing:
16586
+ * - `eslint-plugin-svelte`
16587
+ *
16562
16588
  * @default false
16563
16589
  */
16564
- strict?: boolean;
16565
- }
16566
- interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
16590
+ svelte?: boolean;
16567
16591
  /**
16568
- * Enable gitignore support.
16569
- *
16570
- * Passing an object to configure the options.
16571
- *
16572
- * @see https://github.com/antfu/eslint-config-flat-gitignore
16573
- * @default true
16592
+ * Control to disable some rules in editors.
16593
+ * @default auto-detect based on the process.env
16574
16594
  */
16575
- gitignore?: boolean | FlatGitignoreOptions;
16595
+ isInEditor?: boolean;
16576
16596
  /**
16577
16597
  * Disable some opinionated rules to Anthony's preference.
16578
16598
  *
@@ -16584,55 +16604,42 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
16584
16604
  */
16585
16605
  lessOpinionated?: boolean;
16586
16606
  /**
16587
- * Core rules. Can't be disabled.
16588
- */
16589
- javascript?: OptionsOverrides;
16590
- /**
16591
- * Enable TypeScript support.
16592
- *
16593
- * Passing an object to enable TypeScript Language Server support.
16607
+ * Enable Vue support.
16594
16608
  *
16595
16609
  * @default auto-detect based on the dependencies
16596
16610
  */
16597
- typescript?: boolean | OptionsTypescript;
16611
+ vue?: boolean | OptionsVue;
16598
16612
  /**
16599
- * Enable JSX related rules.
16600
- *
16601
- * Currently only stylistic rules are included.
16613
+ * Automatically rename plugins in the config.
16602
16614
  *
16603
16615
  * @default true
16604
16616
  */
16605
- jsx?: boolean;
16617
+ autoRenamePlugins?: boolean;
16606
16618
  /**
16607
- * Options for eslint-plugin-unicorn.
16619
+ * Enable Nuxt support.
16608
16620
  *
16609
- * @default true
16621
+ * @default auto-detect based on the dependencies
16610
16622
  */
16611
- unicorn?: boolean | OptionsUnicorn;
16623
+ nuxt?: boolean | OptionsNuxt;
16612
16624
  /**
16613
- * Enable test support.
16614
- *
16615
- * @default true
16625
+ * Core rules. Can't be disabled.
16616
16626
  */
16617
- test?: boolean | OptionsOverrides;
16627
+ javascript?: OptionsOverrides;
16618
16628
  /**
16619
- * Enable Vue support.
16629
+ * Enable unocss rules.
16620
16630
  *
16621
- * @default auto-detect based on the dependencies
16622
- */
16623
- vue?: boolean | OptionsVue;
16624
- /**
16625
- * Enable Nuxt support.
16631
+ * Requires installing:
16632
+ * - `@unocss/eslint-plugin`
16626
16633
  *
16627
- * @default auto-detect based on the dependencies
16634
+ * @default false
16628
16635
  */
16629
- nuxt?: boolean | OptionsNuxt;
16636
+ unocss?: boolean | OptionsUnoCSS;
16630
16637
  /**
16631
- * Enable JSONC support.
16638
+ * Enable test support.
16632
16639
  *
16633
16640
  * @default true
16634
16641
  */
16635
- jsonc?: boolean | OptionsOverrides;
16642
+ test?: boolean | OptionsOverrides;
16636
16643
  /**
16637
16644
  * Enable YAML support.
16638
16645
  *
@@ -16645,6 +16652,18 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
16645
16652
  * @default true
16646
16653
  */
16647
16654
  toml?: boolean | OptionsOverrides;
16655
+ /**
16656
+ * Options for eslint-plugin-unicorn.
16657
+ *
16658
+ * @default true
16659
+ */
16660
+ unicorn?: boolean | OptionsUnicorn;
16661
+ /**
16662
+ * Enable JSONC support.
16663
+ *
16664
+ * @default true
16665
+ */
16666
+ jsonc?: boolean | OptionsOverrides;
16648
16667
  /**
16649
16668
  * Enable ASTRO support.
16650
16669
  *
@@ -16657,28 +16676,6 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
16657
16676
  * @default false
16658
16677
  */
16659
16678
  astro?: boolean | OptionsOverrides;
16660
- /**
16661
- * Enable linting for **code snippets** in Markdown.
16662
- *
16663
- * For formatting Markdown content, enable also `formatters.markdown`.
16664
- *
16665
- * @default true
16666
- */
16667
- markdown?: boolean | OptionsOverrides;
16668
- /**
16669
- * Enable stylistic rules.
16670
- *
16671
- * @see https://eslint.style/
16672
- * @default true
16673
- */
16674
- stylistic?: boolean | (StylisticConfig & OptionsOverrides);
16675
- /**
16676
- * Enable regexp rules.
16677
- *
16678
- * @see https://ota-meshi.github.io/eslint-plugin-regexp/
16679
- * @default true
16680
- */
16681
- regexp?: boolean | (OptionsRegExp & OptionsOverrides);
16682
16679
  /**
16683
16680
  * Enable react rules.
16684
16681
  *
@@ -16700,23 +16697,21 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
16700
16697
  */
16701
16698
  solid?: boolean | OptionsOverrides;
16702
16699
  /**
16703
- * Enable svelte rules.
16700
+ * Enable linting for **code snippets** in Markdown.
16704
16701
  *
16705
- * Requires installing:
16706
- * - `eslint-plugin-svelte`
16702
+ * For formatting Markdown content, enable also `formatters.markdown`.
16707
16703
  *
16708
- * @default false
16704
+ * @default true
16709
16705
  */
16710
- svelte?: boolean;
16706
+ markdown?: boolean | OptionsOverrides;
16711
16707
  /**
16712
- * Enable unocss rules.
16708
+ * Enable TypeScript support.
16713
16709
  *
16714
- * Requires installing:
16715
- * - `@unocss/eslint-plugin`
16710
+ * Passing an object to enable TypeScript Language Server support.
16716
16711
  *
16717
- * @default false
16712
+ * @default auto-detect based on the dependencies
16718
16713
  */
16719
- unocss?: boolean | OptionsUnoCSS;
16714
+ typescript?: boolean | OptionsTypescript;
16720
16715
  /**
16721
16716
  * Use external formatters to format files.
16722
16717
  *
@@ -16729,48 +16724,63 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
16729
16724
  */
16730
16725
  formatters?: boolean | OptionsFormatters;
16731
16726
  /**
16732
- * Control to disable some rules in editors.
16733
- * @default auto-detect based on the process.env
16727
+ * Enable gitignore support.
16728
+ *
16729
+ * Passing an object to configure the options.
16730
+ *
16731
+ * @see https://github.com/antfu/eslint-config-flat-gitignore
16732
+ * @default true
16734
16733
  */
16735
- isInEditor?: boolean;
16734
+ gitignore?: boolean | FlatGitignoreOptions;
16736
16735
  /**
16737
- * Automatically rename plugins in the config.
16736
+ * Enable regexp rules.
16738
16737
  *
16738
+ * @see https://ota-meshi.github.io/eslint-plugin-regexp/
16739
16739
  * @default true
16740
16740
  */
16741
- autoRenamePlugins?: boolean;
16741
+ regexp?: boolean | (OptionsRegExp & OptionsOverrides);
16742
+ /**
16743
+ * Enable stylistic rules.
16744
+ *
16745
+ * @see https://eslint.style/
16746
+ * @default true
16747
+ */
16748
+ stylistic?: boolean | (StylisticConfig & OptionsOverrides);
16742
16749
  /**
16743
16750
  * Provide overrides for rules for each integration.
16744
16751
  *
16745
16752
  * @deprecated use `overrides` option in each integration key instead
16746
16753
  */
16747
16754
  overrides?: {
16748
- stylistic?: TypedFlatConfigItem['rules'];
16749
- javascript?: TypedFlatConfigItem['rules'];
16750
- typescript?: TypedFlatConfigItem['rules'];
16751
- test?: TypedFlatConfigItem['rules'];
16752
16755
  vue?: TypedFlatConfigItem['rules'];
16753
- jsonc?: TypedFlatConfigItem['rules'];
16754
- markdown?: TypedFlatConfigItem['rules'];
16756
+ test?: TypedFlatConfigItem['rules'];
16755
16757
  yaml?: TypedFlatConfigItem['rules'];
16756
16758
  toml?: TypedFlatConfigItem['rules'];
16759
+ jsonc?: TypedFlatConfigItem['rules'];
16757
16760
  react?: TypedFlatConfigItem['rules'];
16758
16761
  svelte?: TypedFlatConfigItem['rules'];
16762
+ markdown?: TypedFlatConfigItem['rules'];
16763
+ stylistic?: TypedFlatConfigItem['rules'];
16764
+ javascript?: TypedFlatConfigItem['rules'];
16765
+ typescript?: TypedFlatConfigItem['rules'];
16759
16766
  };
16760
16767
  }
16761
16768
 
16762
16769
  declare const defaultPluginRenaming: {
16770
+ n: string;
16771
+ yml: string;
16772
+ vitest: string;
16773
+ 'import-x': string;
16774
+ '@stylistic': string;
16763
16775
  '@eslint-react': string;
16776
+ '@typescript-eslint': string;
16764
16777
  '@eslint-react/dom': string;
16765
16778
  '@eslint-react/hooks-extra': string;
16766
16779
  '@eslint-react/naming-convention': string;
16767
- '@stylistic': string;
16768
- '@typescript-eslint': string;
16769
- 'import-x': string;
16770
- n: string;
16771
- vitest: string;
16772
- yml: string;
16773
16780
  };
16781
+ type ResolvedOptions<T> = T extends boolean ? never : NonNullable<T>;
16782
+ declare function resolveSubOptions<K extends keyof OptionsConfig>(options: OptionsConfig, key: K): ResolvedOptions<OptionsConfig[K]>;
16783
+ declare function getOverrides<K extends keyof OptionsConfig>(options: OptionsConfig, key: K): Partial<RuleOptions & Linter.RulesRecord>;
16774
16784
  /**
16775
16785
  * Construct an array of ESLint flat config items.
16776
16786
  *
@@ -16781,10 +16791,7 @@ declare const defaultPluginRenaming: {
16781
16791
  * @returns {Promise<TypedFlatConfigItem[]>}
16782
16792
  * The merged ESLint configurations.
16783
16793
  */
16784
- declare function whoj(options?: OptionsConfig & Omit<TypedFlatConfigItem, 'files'>, ...userConfigs: Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[] | FlatConfigComposer<any, any> | Linter.Config[]>[]): FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
16785
- type ResolvedOptions<T> = T extends boolean ? never : NonNullable<T>;
16786
- declare function resolveSubOptions<K extends keyof OptionsConfig>(options: OptionsConfig, key: K): ResolvedOptions<OptionsConfig[K]>;
16787
- declare function getOverrides<K extends keyof OptionsConfig>(options: OptionsConfig, key: K): Partial<Linter.RulesRecord & RuleOptions>;
16794
+ declare function whoj(options?: OptionsConfig & Omit<TypedFlatConfigItem, 'files'>, ...userConfigs: Awaitable<Linter.Config[] | TypedFlatConfigItem | TypedFlatConfigItem[] | FlatConfigComposer<any, any>>[]): FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
16788
16795
 
16789
16796
  declare const GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
16790
16797
  declare const GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
@@ -16822,17 +16829,6 @@ declare const parserPlain: {
16822
16829
  name: string;
16823
16830
  };
16824
16831
  parseForESLint: (code: string) => {
16825
- ast: {
16826
- body: never[];
16827
- comments: never[];
16828
- loc: {
16829
- end: number;
16830
- start: number;
16831
- };
16832
- range: number[];
16833
- tokens: never[];
16834
- type: string;
16835
- };
16836
16832
  scopeManager: null;
16837
16833
  services: {
16838
16834
  isPlain: boolean;
@@ -16840,12 +16836,30 @@ declare const parserPlain: {
16840
16836
  visitorKeys: {
16841
16837
  Program: never[];
16842
16838
  };
16839
+ ast: {
16840
+ body: never[];
16841
+ tokens: never[];
16842
+ comments: never[];
16843
+ type: string;
16844
+ range: number[];
16845
+ loc: {
16846
+ start: number;
16847
+ end: number;
16848
+ };
16849
+ };
16843
16850
  };
16844
16851
  };
16852
+ declare function toArray<T>(value: T | T[]): T[];
16853
+ declare function isPackageInScope(name: string): boolean;
16854
+ declare function interopDefault<T>(m: Awaitable<T>): Promise<T extends {
16855
+ default: infer U;
16856
+ } ? U : T>;
16857
+ declare function isInGitHooksOrLintStaged(): boolean;
16845
16858
  /**
16846
16859
  * Combine array and non-array configs into a single array.
16847
16860
  */
16848
16861
  declare function combine(...configs: Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[]>[]): Promise<TypedFlatConfigItem[]>;
16862
+ declare function isInEditorEnv(): boolean;
16849
16863
  /**
16850
16864
  * Rename plugin prefixes in a rule object.
16851
16865
  * Accepts a map of prefixes to rename.
@@ -16880,22 +16894,15 @@ declare function renameRules(rules: Record<string, any>, map: Record<string, str
16880
16894
  * ```
16881
16895
  */
16882
16896
  declare function renamePluginInConfigs(configs: TypedFlatConfigItem[], map: Record<string, string>): TypedFlatConfigItem[];
16883
- declare function toArray<T>(value: T | T[]): T[];
16884
- declare function interopDefault<T>(m: Awaitable<T>): Promise<T extends {
16885
- default: infer U;
16886
- } ? U : T>;
16887
- declare function isPackageInScope(name: string): boolean;
16888
16897
  declare function ensurePackages(packages: (string | undefined)[]): Promise<void>;
16889
- declare function isInEditorEnv(): boolean;
16890
- declare function isInGitHooksOrLintStaged(): boolean;
16891
16898
 
16892
16899
  declare function jsx(): Promise<TypedFlatConfigItem[]>;
16893
16900
 
16894
- declare function vue(options?: OptionsVue & OptionsHasTypeScript & OptionsOverrides & OptionsStylistic & OptionsFiles): Promise<TypedFlatConfigItem[]>;
16901
+ declare function vue(options?: OptionsVue & OptionsFiles & OptionsOverrides & OptionsStylistic & OptionsHasTypeScript): Promise<TypedFlatConfigItem[]>;
16895
16902
 
16896
16903
  declare function node(): Promise<TypedFlatConfigItem[]>;
16897
16904
 
16898
- declare function nuxt({ dirs, features }?: OptionsNuxt): Promise<TypedFlatConfigItem[]>;
16905
+ declare function nuxt({ dirs, features }?: OptionsNuxt<'standalone'>): Promise<TypedFlatConfigItem[]>;
16899
16906
 
16900
16907
  /**
16901
16908
  * Sort package.json
@@ -16910,25 +16917,25 @@ declare function sortPackageJson(): Promise<TypedFlatConfigItem[]>;
16910
16917
  */
16911
16918
  declare function sortTsconfig(): TypedFlatConfigItem[];
16912
16919
 
16913
- declare function test(options?: OptionsFiles & OptionsIsInEditor & OptionsOverrides): Promise<TypedFlatConfigItem[]>;
16920
+ declare function test(options?: OptionsFiles & OptionsOverrides & OptionsIsInEditor): Promise<TypedFlatConfigItem[]>;
16914
16921
 
16915
- declare function toml(options?: OptionsOverrides & OptionsStylistic & OptionsFiles): Promise<TypedFlatConfigItem[]>;
16922
+ declare function toml(options?: OptionsFiles & OptionsOverrides & OptionsStylistic): Promise<TypedFlatConfigItem[]>;
16916
16923
 
16917
- declare function yaml(options?: OptionsOverrides & OptionsStylistic & OptionsFiles): Promise<TypedFlatConfigItem[]>;
16924
+ declare function yaml(options?: OptionsFiles & OptionsOverrides & OptionsStylistic): Promise<TypedFlatConfigItem[]>;
16918
16925
 
16919
- declare function astro(options?: OptionsOverrides & OptionsStylistic & OptionsFiles): Promise<TypedFlatConfigItem[]>;
16926
+ declare function astro(options?: OptionsFiles & OptionsOverrides & OptionsStylistic): Promise<TypedFlatConfigItem[]>;
16920
16927
 
16921
16928
  declare function jsdoc(options?: OptionsStylistic): Promise<TypedFlatConfigItem[]>;
16922
16929
 
16923
- declare function jsonc(options?: OptionsFiles & OptionsStylistic & OptionsOverrides): Promise<TypedFlatConfigItem[]>;
16930
+ declare function jsonc(options?: OptionsFiles & OptionsOverrides & OptionsStylistic): Promise<TypedFlatConfigItem[]>;
16924
16931
 
16925
- declare function react(options?: OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes & OptionsOverrides & OptionsFiles): Promise<TypedFlatConfigItem[]>;
16932
+ declare function react(options?: OptionsFiles & OptionsOverrides & OptionsTypeScriptWithTypes & OptionsTypeScriptParserOptions): Promise<TypedFlatConfigItem[]>;
16926
16933
 
16927
- declare function solid(options?: OptionsHasTypeScript & OptionsOverrides & OptionsFiles & OptionsTypeScriptWithTypes): Promise<TypedFlatConfigItem[]>;
16934
+ declare function solid(options?: OptionsFiles & OptionsOverrides & OptionsHasTypeScript & OptionsTypeScriptWithTypes): Promise<TypedFlatConfigItem[]>;
16928
16935
 
16929
16936
  declare function regexp(options?: OptionsRegExp & OptionsOverrides): Promise<TypedFlatConfigItem[]>;
16930
16937
 
16931
- declare function svelte(options?: OptionsHasTypeScript & OptionsOverrides & OptionsStylistic & OptionsFiles): Promise<TypedFlatConfigItem[]>;
16938
+ declare function svelte(options?: OptionsFiles & OptionsOverrides & OptionsStylistic & OptionsHasTypeScript): Promise<TypedFlatConfigItem[]>;
16932
16939
 
16933
16940
  declare function unocss(options?: OptionsUnoCSS): Promise<TypedFlatConfigItem[]>;
16934
16941
 
@@ -16944,7 +16951,7 @@ declare function comments(): Promise<TypedFlatConfigItem[]>;
16944
16951
 
16945
16952
  declare function disables(): Promise<TypedFlatConfigItem[]>;
16946
16953
 
16947
- declare function markdown(options?: OptionsFiles & OptionsComponentExts & OptionsOverrides): Promise<TypedFlatConfigItem[]>;
16954
+ declare function markdown(options?: OptionsFiles & OptionsOverrides & OptionsComponentExts): Promise<TypedFlatConfigItem[]>;
16948
16955
 
16949
16956
  declare const StylisticConfigDefaults: StylisticConfig;
16950
16957
  interface StylisticOptions extends StylisticConfig, OptionsOverrides {
@@ -16952,11 +16959,11 @@ interface StylisticOptions extends StylisticConfig, OptionsOverrides {
16952
16959
  }
16953
16960
  declare function stylistic(options?: StylisticOptions): Promise<TypedFlatConfigItem[]>;
16954
16961
 
16955
- declare function formatters(options?: OptionsFormatters | true, stylistic?: StylisticConfig): Promise<TypedFlatConfigItem[]>;
16962
+ declare function formatters(options?: true | OptionsFormatters, stylistic?: StylisticConfig): Promise<TypedFlatConfigItem[]>;
16956
16963
 
16957
- declare function javascript(options?: OptionsIsInEditor & OptionsOverrides): Promise<TypedFlatConfigItem[]>;
16964
+ declare function javascript(options?: OptionsOverrides & OptionsIsInEditor): Promise<TypedFlatConfigItem[]>;
16958
16965
 
16959
- declare function typescript(options?: OptionsFiles & OptionsComponentExts & OptionsOverrides & OptionsTypeScriptWithTypes & OptionsTypeScriptParserOptions & OptionsProjectType): Promise<TypedFlatConfigItem[]>;
16966
+ declare function typescript(options?: OptionsFiles & OptionsOverrides & OptionsProjectType & OptionsComponentExts & OptionsTypeScriptWithTypes & OptionsTypeScriptParserOptions): Promise<TypedFlatConfigItem[]>;
16960
16967
 
16961
16968
  /**
16962
16969
  * Perfectionist plugin for props and items sorting.