@luxass/eslint-config 5.2.5 → 5.3.1

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.ts +164 -52
  2. package/dist/index.js +13 -2
  3. package/package.json +23 -22
package/dist/index.d.ts CHANGED
@@ -43,6 +43,9 @@ interface AstroOptions {
43
43
  }
44
44
  declare function astro(options?: AstroOptions): Promise<TypedFlatConfigItem[]>;
45
45
  //#endregion
46
+ //#region src/configs/command.d.ts
47
+ declare function command(): Promise<TypedFlatConfigItem[]>;
48
+ //#endregion
46
49
  //#region src/configs/comments.d.ts
47
50
  declare function comments(): Promise<TypedFlatConfigItem[]>;
48
51
  //#endregion
@@ -988,6 +991,11 @@ interface RuleOptions {
988
991
  * @deprecated
989
992
  */
990
993
  'comma-style'?: Linter.RuleEntry<CommaStyle>;
994
+ /**
995
+ * Comment-as-command for one-off codemod with ESLint
996
+ * @see https://github.com/antfu/eslint-plugin-command
997
+ */
998
+ 'command/command'?: Linter.RuleEntry<[]>;
991
999
  /**
992
1000
  * Enforce a maximum cyclomatic complexity allowed in a program
993
1001
  * @see https://eslint.org/docs/latest/rules/complexity
@@ -1826,7 +1834,7 @@ interface RuleOptions {
1826
1834
  * Enforce heading levels increment by one
1827
1835
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/heading-increment.md
1828
1836
  */
1829
- 'markdown/heading-increment'?: Linter.RuleEntry<[]>;
1837
+ 'markdown/heading-increment'?: Linter.RuleEntry<MarkdownHeadingIncrement>;
1830
1838
  /**
1831
1839
  * Disallow bare URLs
1832
1840
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-bare-urls.md
@@ -1871,7 +1879,7 @@ interface RuleOptions {
1871
1879
  * Disallow headings without a space after the hash characters
1872
1880
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-missing-atx-heading-space.md
1873
1881
  */
1874
- 'markdown/no-missing-atx-heading-space'?: Linter.RuleEntry<[]>;
1882
+ 'markdown/no-missing-atx-heading-space'?: Linter.RuleEntry<MarkdownNoMissingAtxHeadingSpace>;
1875
1883
  /**
1876
1884
  * Disallow missing label references
1877
1885
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-missing-label-refs.md
@@ -1892,6 +1900,11 @@ interface RuleOptions {
1892
1900
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-reversed-media-syntax.md
1893
1901
  */
1894
1902
  'markdown/no-reversed-media-syntax'?: Linter.RuleEntry<[]>;
1903
+ /**
1904
+ * Disallow spaces around emphasis markers
1905
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-space-in-emphasis.md
1906
+ */
1907
+ 'markdown/no-space-in-emphasis'?: Linter.RuleEntry<MarkdownNoSpaceInEmphasis>;
1895
1908
  /**
1896
1909
  * Disallow unused definitions
1897
1910
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-unused-definitions.md
@@ -3171,6 +3184,31 @@ interface RuleOptions {
3171
3184
  * @see https://perfectionist.dev/rules/sort-variable-declarations
3172
3185
  */
3173
3186
  'perfectionist/sort-variable-declarations'?: Linter.RuleEntry<PerfectionistSortVariableDeclarations>;
3187
+ /**
3188
+ * Enforce using "catalog:" in `package.json`
3189
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/json/json-enforce-catalog.test.ts
3190
+ */
3191
+ 'pnpm/json-enforce-catalog'?: Linter.RuleEntry<PnpmJsonEnforceCatalog>;
3192
+ /**
3193
+ * Prefer having pnpm settings in `pnpm-workspace.yaml` instead of `package.json`. This requires pnpm v10.6+, see https://github.com/orgs/pnpm/discussions/9037.
3194
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/json/json-prefer-workspace-settings.test.ts
3195
+ */
3196
+ 'pnpm/json-prefer-workspace-settings'?: Linter.RuleEntry<PnpmJsonPreferWorkspaceSettings>;
3197
+ /**
3198
+ * Enforce using valid catalog in `package.json`
3199
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/json/json-valid-catalog.test.ts
3200
+ */
3201
+ 'pnpm/json-valid-catalog'?: Linter.RuleEntry<PnpmJsonValidCatalog>;
3202
+ /**
3203
+ * Disallow duplicate catalog items in `pnpm-workspace.yaml`
3204
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-no-duplicate-catalog-item.test.ts
3205
+ */
3206
+ 'pnpm/yaml-no-duplicate-catalog-item'?: Linter.RuleEntry<PnpmYamlNoDuplicateCatalogItem>;
3207
+ /**
3208
+ * Disallow unused catalogs in `pnpm-workspace.yaml`
3209
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-no-unused-catalog-item.test.ts
3210
+ */
3211
+ 'pnpm/yaml-no-unused-catalog-item'?: Linter.RuleEntry<[]>;
3174
3212
  /**
3175
3213
  * Require using arrow functions for callbacks
3176
3214
  * @see https://eslint.org/docs/latest/rules/prefer-arrow-callback
@@ -3657,7 +3695,7 @@ interface RuleOptions {
3657
3695
  'react/no-nested-components'?: Linter.RuleEntry<[]>;
3658
3696
  /**
3659
3697
  * Disallow nesting lazy component declarations inside other components.
3660
- * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
3698
+ * @see https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
3661
3699
  */
3662
3700
  'react/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>;
3663
3701
  /**
@@ -4462,8 +4500,9 @@ interface RuleOptions {
4462
4500
  */
4463
4501
  'style/jsx-pascal-case'?: Linter.RuleEntry<StyleJsxPascalCase>;
4464
4502
  /**
4465
- * Disallow multiple spaces between inline JSX props
4503
+ * Disallow multiple spaces between inline JSX props. Deprecated, use `no-multi-spaces` rule instead.
4466
4504
  * @see https://eslint.style/rules/jsx-props-no-multi-spaces
4505
+ * @deprecated
4467
4506
  */
4468
4507
  'style/jsx-props-no-multi-spaces'?: Linter.RuleEntry<[]>;
4469
4508
  /**
@@ -4839,6 +4878,11 @@ interface RuleOptions {
4839
4878
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/expect-expect.md
4840
4879
  */
4841
4880
  'test/expect-expect'?: Linter.RuleEntry<TestExpectExpect>;
4881
+ /**
4882
+ * enforce hoisted APIs to be on top of the file
4883
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/hoisted-apis-on-top.md
4884
+ */
4885
+ 'test/hoisted-apis-on-top'?: Linter.RuleEntry<[]>;
4842
4886
  /**
4843
4887
  * enforce a maximum number of expect per test
4844
4888
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/max-expects.md
@@ -5040,6 +5084,11 @@ interface RuleOptions {
5040
5084
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-resolves.md
5041
5085
  */
5042
5086
  'test/prefer-expect-resolves'?: Linter.RuleEntry<[]>;
5087
+ /**
5088
+ * enforce using `expectTypeOf` instead of `expect(typeof ...)`
5089
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-type-of.md
5090
+ */
5091
+ 'test/prefer-expect-type-of'?: Linter.RuleEntry<[]>;
5043
5092
  /**
5044
5093
  * enforce having hooks in consistent order
5045
5094
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-in-order.md
@@ -6655,7 +6704,7 @@ interface RuleOptions {
6655
6704
  * Order of UnoCSS utilities in class attribute
6656
6705
  * @see https://unocss.dev/integrations/eslint#rules
6657
6706
  */
6658
- 'unocss/order'?: Linter.RuleEntry<[]>;
6707
+ 'unocss/order'?: Linter.RuleEntry<UnocssOrder>;
6659
6708
  /**
6660
6709
  * Order of UnoCSS attributes
6661
6710
  * @see https://unocss.dev/integrations/eslint#rules
@@ -8861,6 +8910,7 @@ type JsdocRequireReturnsType = [] | [{
8861
8910
  }];
8862
8911
  // ----- jsdoc/require-template -----
8863
8912
  type JsdocRequireTemplate = [] | [{
8913
+ exemptedBy?: string[];
8864
8914
  requireSeparateTemplates?: boolean;
8865
8915
  }];
8866
8916
  // ----- jsdoc/require-throws -----
@@ -9582,6 +9632,10 @@ type LogicalAssignmentOperators = (([] | ["always"] | ["always", {
9582
9632
  type MarkdownFencedCodeLanguage = [] | [{
9583
9633
  required?: string[];
9584
9634
  }];
9635
+ // ----- markdown/heading-increment -----
9636
+ type MarkdownHeadingIncrement = [] | [{
9637
+ frontmatterTitle?: string;
9638
+ }];
9585
9639
  // ----- markdown/no-duplicate-definitions -----
9586
9640
  type MarkdownNoDuplicateDefinitions = [] | [{
9587
9641
  allowDefinitions?: string[];
@@ -9600,6 +9654,11 @@ type MarkdownNoEmptyDefinitions = [] | [{
9600
9654
  // ----- markdown/no-html -----
9601
9655
  type MarkdownNoHtml = [] | [{
9602
9656
  allowed?: string[];
9657
+ allowedIgnoreCase?: boolean;
9658
+ }];
9659
+ // ----- markdown/no-missing-atx-heading-space -----
9660
+ type MarkdownNoMissingAtxHeadingSpace = [] | [{
9661
+ checkClosedHeadings?: boolean;
9603
9662
  }];
9604
9663
  // ----- markdown/no-missing-link-fragments -----
9605
9664
  type MarkdownNoMissingLinkFragments = [] | [{
@@ -9610,6 +9669,10 @@ type MarkdownNoMissingLinkFragments = [] | [{
9610
9669
  type MarkdownNoMultipleH1 = [] | [{
9611
9670
  frontmatterTitle?: string;
9612
9671
  }];
9672
+ // ----- markdown/no-space-in-emphasis -----
9673
+ type MarkdownNoSpaceInEmphasis = [] | [{
9674
+ checkStrikethrough?: boolean;
9675
+ }];
9613
9676
  // ----- markdown/no-unused-definitions -----
9614
9677
  type MarkdownNoUnusedDefinitions = [] | [{
9615
9678
  allowDefinitions?: string[];
@@ -9964,10 +10027,17 @@ type NoRestrictedExports = [] | [({
9964
10027
  };
9965
10028
  })];
9966
10029
  // ----- no-restricted-globals -----
9967
- type NoRestrictedGlobals = (string | {
10030
+ type NoRestrictedGlobals = ((string | {
9968
10031
  name: string;
9969
10032
  message?: string;
9970
- })[];
10033
+ })[] | [] | [{
10034
+ globals: (string | {
10035
+ name: string;
10036
+ message?: string;
10037
+ })[];
10038
+ checkGlobalObject?: boolean;
10039
+ globalObjects?: string[];
10040
+ }]);
9971
10041
  // ----- no-restricted-imports -----
9972
10042
  type NoRestrictedImports = ((string | {
9973
10043
  name: string;
@@ -10462,6 +10532,8 @@ type OneVar = [] | [(("always" | "never" | "consecutive") | {
10462
10532
  var?: ("always" | "never" | "consecutive");
10463
10533
  let?: ("always" | "never" | "consecutive");
10464
10534
  const?: ("always" | "never" | "consecutive");
10535
+ using?: ("always" | "never" | "consecutive");
10536
+ awaitUsing?: ("always" | "never" | "consecutive");
10465
10537
  } | {
10466
10538
  initialized?: ("always" | "never" | "consecutive");
10467
10539
  uninitialized?: ("always" | "never" | "consecutive");
@@ -12209,6 +12281,31 @@ type PerfectionistSortVariableDeclarations = [] | [{
12209
12281
  commentAbove?: string;
12210
12282
  })[];
12211
12283
  }];
12284
+ // ----- pnpm/json-enforce-catalog -----
12285
+ type PnpmJsonEnforceCatalog = [] | [{
12286
+ allowedProtocols?: string[];
12287
+ autofix?: boolean;
12288
+ defaultCatalog?: string;
12289
+ reuseExistingCatalog?: boolean;
12290
+ conflicts?: ("new-catalog" | "overrides" | "error");
12291
+ fields?: string[];
12292
+ }];
12293
+ // ----- pnpm/json-prefer-workspace-settings -----
12294
+ type PnpmJsonPreferWorkspaceSettings = [] | [{
12295
+ autofix?: boolean;
12296
+ }];
12297
+ // ----- pnpm/json-valid-catalog -----
12298
+ type PnpmJsonValidCatalog = [] | [{
12299
+ autoInsert?: boolean;
12300
+ autoInsertDefaultSpecifier?: string;
12301
+ autofix?: boolean;
12302
+ enforceNoConflict?: boolean;
12303
+ fields?: unknown[];
12304
+ }];
12305
+ // ----- pnpm/yaml-no-duplicate-catalog-item -----
12306
+ type PnpmYamlNoDuplicateCatalogItem = [] | [{
12307
+ allow?: string[];
12308
+ }];
12212
12309
  // ----- prefer-arrow-callback -----
12213
12310
  type PreferArrowCallback = [] | [{
12214
12311
  allowNamedFunctions?: boolean;
@@ -12745,6 +12842,7 @@ type StyleIndent = [] | [("tab" | number)] | [("tab" | number), {
12745
12842
  const?: (number | ("first" | "off"));
12746
12843
  using?: (number | ("first" | "off"));
12747
12844
  });
12845
+ assignmentOperator?: (number | "off");
12748
12846
  outerIIFEBody?: (number | "off");
12749
12847
  MemberExpression?: (number | "off");
12750
12848
  FunctionDeclaration?: {
@@ -12977,6 +13075,22 @@ type StyleKeywordSpacing = [] | [{
12977
13075
  before?: boolean;
12978
13076
  after?: boolean;
12979
13077
  };
13078
+ arguments?: {
13079
+ before?: boolean;
13080
+ after?: boolean;
13081
+ };
13082
+ as?: {
13083
+ before?: boolean;
13084
+ after?: boolean;
13085
+ };
13086
+ async?: {
13087
+ before?: boolean;
13088
+ after?: boolean;
13089
+ };
13090
+ await?: {
13091
+ before?: boolean;
13092
+ after?: boolean;
13093
+ };
12980
13094
  boolean?: {
12981
13095
  before?: boolean;
12982
13096
  after?: boolean;
@@ -13041,6 +13155,10 @@ type StyleKeywordSpacing = [] | [{
13041
13155
  before?: boolean;
13042
13156
  after?: boolean;
13043
13157
  };
13158
+ eval?: {
13159
+ before?: boolean;
13160
+ after?: boolean;
13161
+ };
13044
13162
  export?: {
13045
13163
  before?: boolean;
13046
13164
  after?: boolean;
@@ -13069,10 +13187,18 @@ type StyleKeywordSpacing = [] | [{
13069
13187
  before?: boolean;
13070
13188
  after?: boolean;
13071
13189
  };
13190
+ from?: {
13191
+ before?: boolean;
13192
+ after?: boolean;
13193
+ };
13072
13194
  function?: {
13073
13195
  before?: boolean;
13074
13196
  after?: boolean;
13075
13197
  };
13198
+ get?: {
13199
+ before?: boolean;
13200
+ after?: boolean;
13201
+ };
13076
13202
  goto?: {
13077
13203
  before?: boolean;
13078
13204
  after?: boolean;
@@ -13105,6 +13231,10 @@ type StyleKeywordSpacing = [] | [{
13105
13231
  before?: boolean;
13106
13232
  after?: boolean;
13107
13233
  };
13234
+ let?: {
13235
+ before?: boolean;
13236
+ after?: boolean;
13237
+ };
13108
13238
  long?: {
13109
13239
  before?: boolean;
13110
13240
  after?: boolean;
@@ -13121,6 +13251,10 @@ type StyleKeywordSpacing = [] | [{
13121
13251
  before?: boolean;
13122
13252
  after?: boolean;
13123
13253
  };
13254
+ of?: {
13255
+ before?: boolean;
13256
+ after?: boolean;
13257
+ };
13124
13258
  package?: {
13125
13259
  before?: boolean;
13126
13260
  after?: boolean;
@@ -13141,6 +13275,10 @@ type StyleKeywordSpacing = [] | [{
13141
13275
  before?: boolean;
13142
13276
  after?: boolean;
13143
13277
  };
13278
+ set?: {
13279
+ before?: boolean;
13280
+ after?: boolean;
13281
+ };
13144
13282
  short?: {
13145
13283
  before?: boolean;
13146
13284
  after?: boolean;
@@ -13185,59 +13323,43 @@ type StyleKeywordSpacing = [] | [{
13185
13323
  before?: boolean;
13186
13324
  after?: boolean;
13187
13325
  };
13188
- typeof?: {
13189
- before?: boolean;
13190
- after?: boolean;
13191
- };
13192
- var?: {
13193
- before?: boolean;
13194
- after?: boolean;
13195
- };
13196
- void?: {
13197
- before?: boolean;
13198
- after?: boolean;
13199
- };
13200
- volatile?: {
13201
- before?: boolean;
13202
- after?: boolean;
13203
- };
13204
- while?: {
13326
+ type?: {
13205
13327
  before?: boolean;
13206
13328
  after?: boolean;
13207
13329
  };
13208
- with?: {
13330
+ typeof?: {
13209
13331
  before?: boolean;
13210
13332
  after?: boolean;
13211
13333
  };
13212
- accessor?: {
13334
+ using?: {
13213
13335
  before?: boolean;
13214
13336
  after?: boolean;
13215
13337
  };
13216
- as?: {
13338
+ var?: {
13217
13339
  before?: boolean;
13218
13340
  after?: boolean;
13219
13341
  };
13220
- async?: {
13342
+ void?: {
13221
13343
  before?: boolean;
13222
13344
  after?: boolean;
13223
13345
  };
13224
- await?: {
13346
+ volatile?: {
13225
13347
  before?: boolean;
13226
13348
  after?: boolean;
13227
13349
  };
13228
- from?: {
13350
+ while?: {
13229
13351
  before?: boolean;
13230
13352
  after?: boolean;
13231
13353
  };
13232
- get?: {
13354
+ with?: {
13233
13355
  before?: boolean;
13234
13356
  after?: boolean;
13235
13357
  };
13236
- let?: {
13358
+ yield?: {
13237
13359
  before?: boolean;
13238
13360
  after?: boolean;
13239
13361
  };
13240
- of?: {
13362
+ accessor?: {
13241
13363
  before?: boolean;
13242
13364
  after?: boolean;
13243
13365
  };
@@ -13245,22 +13367,6 @@ type StyleKeywordSpacing = [] | [{
13245
13367
  before?: boolean;
13246
13368
  after?: boolean;
13247
13369
  };
13248
- set?: {
13249
- before?: boolean;
13250
- after?: boolean;
13251
- };
13252
- using?: {
13253
- before?: boolean;
13254
- after?: boolean;
13255
- };
13256
- yield?: {
13257
- before?: boolean;
13258
- after?: boolean;
13259
- };
13260
- type?: {
13261
- before?: boolean;
13262
- after?: boolean;
13263
- };
13264
13370
  };
13265
13371
  }];
13266
13372
  // ----- style/line-comment-position -----
@@ -13460,6 +13566,7 @@ type StyleNoExtraParens = ([] | ["functions"] | [] | ["all"] | ["all", {
13460
13566
  LogicalExpression?: boolean;
13461
13567
  AwaitExpression?: boolean;
13462
13568
  };
13569
+ ignoredNodes?: string[];
13463
13570
  }]);
13464
13571
  // ----- style/no-mixed-operators -----
13465
13572
  type StyleNoMixedOperators = [] | [{
@@ -13575,7 +13682,7 @@ type StylePaddedBlocks = [] | [(("always" | "never" | "start" | "end") | {
13575
13682
  // ----- style/padding-line-between-statements -----
13576
13683
  type _StylePaddingLineBetweenStatementsPaddingType = ("any" | "never" | "always");
13577
13684
  type _StylePaddingLineBetweenStatementsStatementOption = (_StylePaddingLineBetweenStatementsStatementType | [_StylePaddingLineBetweenStatementsStatementType, ...(_StylePaddingLineBetweenStatementsStatementType)[]]);
13578
- type _StylePaddingLineBetweenStatementsStatementType = ("*" | "exports" | "require" | "directive" | "iife" | "block" | "empty" | "function" | "ts-method" | "break" | "case" | "class" | "continue" | "debugger" | "default" | "do" | "for" | "if" | "import" | "return" | "switch" | "throw" | "try" | "while" | "with" | "cjs-export" | "cjs-import" | "enum" | "interface" | "type" | "function-overload" | "block-like" | "singleline-block-like" | "multiline-block-like" | "expression" | "singleline-expression" | "multiline-expression" | "export" | "singleline-export" | "multiline-export" | "var" | "singleline-var" | "multiline-var" | "let" | "singleline-let" | "multiline-let" | "const" | "singleline-const" | "multiline-const" | "using" | "singleline-using" | "multiline-using");
13685
+ type _StylePaddingLineBetweenStatementsStatementType = ("*" | "exports" | "require" | "directive" | "iife" | "block" | "empty" | "function" | "ts-method" | "break" | "case" | "class" | "continue" | "debugger" | "default" | "do" | "for" | "if" | "import" | "switch" | "throw" | "try" | "while" | "with" | "cjs-export" | "cjs-import" | "enum" | "interface" | "function-overload" | "block-like" | "singleline-block-like" | "multiline-block-like" | "expression" | "singleline-expression" | "multiline-expression" | "return" | "singleline-return" | "multiline-return" | "export" | "singleline-export" | "multiline-export" | "var" | "singleline-var" | "multiline-var" | "let" | "singleline-let" | "multiline-let" | "const" | "singleline-const" | "multiline-const" | "using" | "singleline-using" | "multiline-using" | "type" | "singleline-type" | "multiline-type");
13579
13686
  type StylePaddingLineBetweenStatements = {
13580
13687
  blankLine: _StylePaddingLineBetweenStatementsPaddingType;
13581
13688
  prev: _StylePaddingLineBetweenStatementsStatementOption;
@@ -15169,6 +15276,11 @@ type UnocssEnforceClassCompile = [] | [{
15169
15276
  prefix?: string;
15170
15277
  enableFix?: boolean;
15171
15278
  }];
15279
+ // ----- unocss/order -----
15280
+ type UnocssOrder = [] | [{
15281
+ unoFunctions?: string[];
15282
+ unoVariables?: string[];
15283
+ }];
15172
15284
  // ----- unused-imports/no-unused-imports -----
15173
15285
  type UnusedImportsNoUnusedImports = [] | [(("all" | "local") | {
15174
15286
  args?: ("all" | "after-used" | "none");
@@ -16604,7 +16716,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
16604
16716
  onlyEquality?: boolean;
16605
16717
  }];
16606
16718
  // Names of all the configs
16607
- type ConfigNames = 'luxass/astro/setup' | 'luxass/astro/rules' | 'luxass/eslint-comments' | 'luxass/formatter/setup' | 'luxass/imports' | 'luxass/javascript/setup' | 'luxass/javascript/rules' | 'luxass/disables/cli' | 'luxass/jsdoc/rules' | 'luxass/jsonc/setup' | 'luxass/jsonc/rules' | 'luxass/markdown/setup' | 'luxass/markdown/processor' | 'luxass/markdown/parser' | 'luxass/markdown/disables' | 'luxass/node' | 'luxass/react/setup' | 'luxass/react/rules' | 'luxass/sort/package-json' | 'luxass/perfectionist/setup' | 'luxass/stylistic' | 'luxass/tailwindcss' | 'luxass/sort/tsconfig' | 'luxass/ignores' | 'luxass/test/setup' | 'luxass/test/rules' | 'luxass/toml/setup' | 'luxass/toml/rules' | 'luxass/typescript/setup' | 'luxass/typescript/parser' | 'luxass/typescript/rules' | 'luxass/unicorn/rules' | 'luxass/unocss' | 'luxass/vue/setup' | 'luxass/vue/rules' | 'luxass/yaml/setup' | 'luxass/yaml/rules' | 'luxass/yaml/pnpm-workspace' | 'luxass/disables/scripts' | 'luxass/disables/cli' | 'luxass/disables/bin' | 'luxass/disables/dts' | 'luxass/disables/cjs' | 'luxass/disables/github-actions' | 'luxass/disables/config-files' | 'luxass/jsx/setup' | 'luxass/regexp/rules';
16719
+ type ConfigNames = 'luxass/astro/setup' | 'luxass/astro/rules' | 'command' | 'luxass/eslint-comments' | 'luxass/disables/scripts' | 'luxass/disables/cli' | 'luxass/disables/bin' | 'luxass/disables/dts' | 'luxass/disables/cjs' | 'luxass/disables/github-actions' | 'luxass/disables/config-files' | 'luxass/formatter/setup' | 'luxass/ignores' | 'luxass/imports' | 'luxass/javascript/setup' | 'luxass/javascript/rules' | 'luxass/disables/cli' | 'luxass/jsdoc/rules' | 'luxass/jsonc/setup' | 'luxass/jsonc/rules' | 'luxass/jsx/setup' | 'luxass/markdown/setup' | 'luxass/markdown/processor' | 'luxass/markdown/parser' | 'luxass/markdown/disables' | 'luxass/node' | 'luxass/perfectionist/setup' | 'luxass/pnpm/package-json' | 'luxass/pnpm/pnpm-workspace-yaml' | 'luxass/react/setup' | 'luxass/react/rules' | 'luxass/regexp/rules' | 'luxass/sort/package-json' | 'luxass/sort/tsconfig' | 'luxass/stylistic' | 'luxass/tailwindcss' | 'luxass/test/setup' | 'luxass/test/rules' | 'luxass/toml/setup' | 'luxass/toml/rules' | 'luxass/typescript/setup' | 'luxass/typescript/parser' | 'luxass/typescript/rules' | 'luxass/unicorn/rules' | 'luxass/unocss' | 'luxass/vue/setup' | 'luxass/vue/rules' | 'luxass/yaml/setup' | 'luxass/yaml/rules' | 'luxass/yaml/pnpm-workspace';
16608
16720
  //#endregion
16609
16721
  //#region src/types.d.ts
16610
16722
  type Awaitable<T> = T | Promise<T>;
@@ -17017,4 +17129,4 @@ declare function isPackageInScope(name: string): boolean;
17017
17129
  declare function isInEditorEnv(): boolean;
17018
17130
  declare function isInGitHooksOrLintStaged(): boolean;
17019
17131
  //#endregion
17020
- export { AstroOptions, Awaitable, type ConfigNames, ConfigOptions, FormattersOptions, 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_NEXTJS_OG, GLOB_NEXTJS_ROUTES, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, ImportsOptions, JSDOCOptions, JSONOptions, JavaScriptOptions, MarkdownOptions, ProjectType, ReactOptions, RegExpOptions, ResolvedOptions, Rules, StylisticConfig, StylisticOptions, TOMLOptions, TailwindCSSOptions, TestOptions, TypeScriptOptions, TypedFlatConfigItem, UnicornOptions, UnoCSSOptions, UserConfigItem, VueOptions, YAMLOptions, astro, combine, comments, luxass as default, luxass, disables, ensure, formatters, getOverrides, ignores, imports, interop, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, node, parserPlain, perfectionist, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, sortPackageJson, sortTsconfig, stylistic, tailwindcss, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };
17132
+ export { AstroOptions, Awaitable, type ConfigNames, ConfigOptions, FormattersOptions, 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_NEXTJS_OG, GLOB_NEXTJS_ROUTES, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, ImportsOptions, JSDOCOptions, JSONOptions, JavaScriptOptions, MarkdownOptions, ProjectType, ReactOptions, RegExpOptions, ResolvedOptions, Rules, StylisticConfig, StylisticOptions, TOMLOptions, TailwindCSSOptions, TestOptions, TypeScriptOptions, TypedFlatConfigItem, UnicornOptions, UnoCSSOptions, UserConfigItem, VueOptions, YAMLOptions, astro, combine, command, comments, luxass as default, luxass, disables, ensure, formatters, getOverrides, ignores, imports, interop, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, node, parserPlain, perfectionist, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, sortPackageJson, sortTsconfig, stylistic, tailwindcss, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ import { FlatConfigComposer } from "eslint-flat-config-utils";
2
2
  import { isPackageExists } from "local-pkg";
3
3
  import process from "node:process";
4
4
  import { fileURLToPath } from "node:url";
5
+ import createCommand from "eslint-plugin-command/config";
5
6
  import eslintCommentsPlugin from "@eslint-community/eslint-plugin-eslint-comments";
6
7
  import pluginAntfu from "eslint-plugin-antfu";
7
8
  import pluginImportLite from "eslint-plugin-import-lite";
@@ -349,6 +350,15 @@ async function astro(options = {}) {
349
350
  }];
350
351
  }
351
352
 
353
+ //#endregion
354
+ //#region src/configs/command.ts
355
+ async function command() {
356
+ return [{
357
+ name: "luxass/command/rules",
358
+ ...createCommand()
359
+ }];
360
+ }
361
+
352
362
  //#endregion
353
363
  //#region src/configs/comments.ts
354
364
  async function comments() {
@@ -2123,7 +2133,8 @@ function luxass(options = {}, ...userConfigs) {
2123
2133
  configs$1.push(ignores(), javascript({
2124
2134
  isInEditor,
2125
2135
  overrides: getOverrides(options, "javascript")
2126
- }), comments(), node(), jsdoc({ stylistic: stylisticOptions }), imports({ stylistic: stylisticOptions }), perfectionist());
2136
+ }), comments());
2137
+ configs$1.push(node(), jsdoc({ stylistic: stylisticOptions }), imports({ stylistic: stylisticOptions }), command(), perfectionist());
2127
2138
  if (enableImports) configs$1.push(imports(enableImports === true ? { stylistic: stylisticOptions } : {
2128
2139
  stylistic: stylisticOptions,
2129
2140
  ...enableImports
@@ -2208,4 +2219,4 @@ function luxass(options = {}, ...userConfigs) {
2208
2219
  var src_default = luxass;
2209
2220
 
2210
2221
  //#endregion
2211
- export { 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_NEXTJS_OG, GLOB_NEXTJS_ROUTES, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, astro, combine, comments, src_default as default, disables, ensure, formatters, getOverrides, ignores, imports, interop, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, luxass, markdown, node, parserPlain, perfectionist, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, sortPackageJson, sortTsconfig, stylistic, tailwindcss, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };
2222
+ export { 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_NEXTJS_OG, GLOB_NEXTJS_ROUTES, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, astro, combine, command, comments, src_default as default, disables, ensure, formatters, getOverrides, ignores, imports, interop, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, luxass, markdown, node, parserPlain, perfectionist, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, sortPackageJson, sortTsconfig, stylistic, tailwindcss, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luxass/eslint-config",
3
- "version": "5.2.5",
3
+ "version": "5.3.1",
4
4
  "description": "ESLint config for @luxass",
5
5
  "type": "module",
6
6
  "author": {
@@ -83,44 +83,45 @@
83
83
  "@antfu/install-pkg": "^1.1.0",
84
84
  "@clack/prompts": "^0.11.0",
85
85
  "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
86
- "@eslint/markdown": "^7.1.0",
87
- "@stylistic/eslint-plugin": "^5.2.2",
88
- "@typescript-eslint/eslint-plugin": "^8.38.0",
89
- "@typescript-eslint/parser": "^8.38.0",
90
- "@vitest/eslint-plugin": "^1.3.4",
86
+ "@eslint/markdown": "^7.2.0",
87
+ "@stylistic/eslint-plugin": "^5.3.1",
88
+ "@typescript-eslint/eslint-plugin": "^8.42.0",
89
+ "@typescript-eslint/parser": "^8.42.0",
90
+ "@vitest/eslint-plugin": "^1.3.8",
91
91
  "eslint-config-flat-gitignore": "^2.1.0",
92
92
  "eslint-flat-config-utils": "^2.1.1",
93
93
  "eslint-merge-processors": "^2.0.0",
94
94
  "eslint-plugin-antfu": "^3.1.1",
95
+ "eslint-plugin-command": "^3.3.1",
95
96
  "eslint-plugin-import-lite": "^0.3.0",
96
- "eslint-plugin-jsdoc": "^52.0.1",
97
+ "eslint-plugin-jsdoc": "^54.3.1",
97
98
  "eslint-plugin-jsonc": "^2.20.1",
98
99
  "eslint-plugin-n": "^17.21.3",
99
100
  "eslint-plugin-perfectionist": "^4.15.0",
100
- "eslint-plugin-pnpm": "^1.1.0",
101
- "eslint-plugin-regexp": "^2.9.0",
101
+ "eslint-plugin-pnpm": "^1.1.1",
102
+ "eslint-plugin-regexp": "^2.10.0",
102
103
  "eslint-plugin-toml": "^0.12.0",
103
104
  "eslint-plugin-unicorn": "^60.0.0",
104
- "eslint-plugin-unused-imports": "^4.1.4",
105
+ "eslint-plugin-unused-imports": "^4.2.0",
105
106
  "eslint-plugin-vue": "^10.4.0",
106
107
  "eslint-plugin-yml": "^1.18.0",
107
108
  "eslint-processor-vue-blocks": "^2.0.0",
108
109
  "globals": "^16.3.0",
109
110
  "jsonc-eslint-parser": "^2.4.0",
110
- "local-pkg": "^1.1.1",
111
+ "local-pkg": "^1.1.2",
111
112
  "parse-gitignore": "^2.0.0",
112
113
  "toml-eslint-parser": "^0.10.0",
113
114
  "vue-eslint-parser": "^10.2.0",
114
115
  "yaml-eslint-parser": "^1.3.0"
115
116
  },
116
117
  "devDependencies": {
117
- "@eslint-react/eslint-plugin": "^1.52.3",
118
- "@eslint/config-inspector": "^1.1.0",
119
- "@types/node": "^22.13.10",
120
- "@typescript-eslint/rule-tester": "^8.38.0",
121
- "@unocss/eslint-plugin": "^66.3.3",
118
+ "@eslint-react/eslint-plugin": "^1.52.9",
119
+ "@eslint/config-inspector": "^1.2.0",
120
+ "@types/node": "^22.17.1",
121
+ "@typescript-eslint/rule-tester": "^8.42.0",
122
+ "@unocss/eslint-plugin": "^66.5.0",
122
123
  "astro-eslint-parser": "^1.2.2",
123
- "eslint": "^9.32.0",
124
+ "eslint": "^9.34.0",
124
125
  "eslint-plugin-astro": "^1.3.1",
125
126
  "eslint-plugin-format": "^1.0.1",
126
127
  "eslint-plugin-react-hooks": "^5.2.0",
@@ -130,12 +131,12 @@
130
131
  "jiti": "^2.5.1",
131
132
  "prettier-plugin-astro": "^0.14.1",
132
133
  "tailwindcss": "3.4.17",
133
- "tsdown": "^0.13.0",
134
- "tsx": "^4.20.3",
135
- "typescript": "^5.8.3",
136
- "unocss": "^66.3.3",
134
+ "tsdown": "^0.14.2",
135
+ "tsx": "^4.20.5",
136
+ "typescript": "^5.9.2",
137
+ "unocss": "^66.5.0",
137
138
  "vitest": "^3.2.4",
138
- "vue": "^3.5.18"
139
+ "vue": "^3.5.21"
139
140
  },
140
141
  "scripts": {
141
142
  "build": "pnpm typegen && tsdown --clean --dts",