@shayanthenerd/eslint-config 0.25.0 → 0.26.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 (36) hide show
  1. package/README.md +71 -58
  2. package/dist/configs/base.mjs +1 -1
  3. package/dist/configs/baseline.mjs +22 -0
  4. package/dist/configs/css.mjs +6 -6
  5. package/dist/configs/html.mjs +7 -7
  6. package/dist/configs/next.mjs +20 -0
  7. package/dist/configs/react.mjs +29 -0
  8. package/dist/helpers/globs.mjs +2 -1
  9. package/dist/helpers/ignores/defaultIgnorePatterns.mjs +2 -0
  10. package/dist/helpers/isPackageDetected.mjs +1 -1
  11. package/dist/helpers/options/defaultOptions.mjs +47 -8
  12. package/dist/helpers/options/enableDetectedConfigs.mjs +6 -1
  13. package/dist/index.mjs +11 -5
  14. package/dist/prettier.config.mjs +1 -1
  15. package/dist/rules/astro.mjs +1 -0
  16. package/dist/rules/baseline.mjs +23 -0
  17. package/dist/rules/css.mjs +27 -6
  18. package/dist/rules/html.mjs +7 -7
  19. package/dist/rules/javascript.mjs +1 -2
  20. package/dist/rules/next.mjs +28 -0
  21. package/dist/rules/packageJson.mjs +1 -1
  22. package/dist/rules/react.mjs +160 -0
  23. package/dist/rules/typescript.mjs +1 -0
  24. package/dist/rules/unicorn.mjs +97 -1
  25. package/dist/rules/vue.mjs +2 -2
  26. package/dist/types/eslint-schema.d.mts +2384 -348
  27. package/dist/types/index.d.mts +55 -22
  28. package/dist/types/options/baseline.d.mts +106 -0
  29. package/dist/types/options/nuxt.d.mts +1 -2
  30. package/dist/types/options/react.d.mts +50 -0
  31. package/dist/types/options/stylistic.d.mts +1 -1
  32. package/dist/types/options/test.d.mts +1 -1
  33. package/package.json +21 -16
  34. package/dist/types/options/css.d.mts +0 -27
  35. package/dist/types/options/html.d.mts +0 -27
  36. package/dist/types/options/perfectionist.d.mts +0 -18
@@ -1,16 +1,15 @@
1
- import { PluginRules } from "./eslintRules.mjs";
2
- import { CSSOptions } from "./options/css.mjs";
1
+ import { PluginRules, RuleOptions } from "./eslintRules.mjs";
3
2
  import { VueOptions } from "./options/vue.mjs";
4
3
  import { ZodOptions } from "./options/zod.mjs";
5
4
  import { BaseOptions } from "./options/base.mjs";
6
- import { HTMLOptions } from "./options/html.mjs";
7
5
  import { NuxtOptions } from "./options/nuxt.mjs";
8
6
  import { TestOptions } from "./options/test.mjs";
7
+ import { ReactOptions } from "./options/react.mjs";
8
+ import { BaselineOptions } from "./options/baseline.mjs";
9
9
  import { MarkdownOptions } from "./options/markdown.mjs";
10
10
  import { TailwindOptions } from "./options/tailwind.mjs";
11
11
  import { StylisticOptions } from "./options/stylistic.mjs";
12
12
  import { TypeScriptOptions } from "./options/typescript.mjs";
13
- import { PerfectionistOptions } from "./options/perfectionist.mjs";
14
13
  import { Linter } from "eslint";
15
14
 
16
15
  //#region src/types/index.d.ts
@@ -40,17 +39,15 @@ interface Options {
40
39
  */
41
40
  autoDetectDeps?: boolean | 'verbose';
42
41
  /**
43
- * Specify the runtime environment to correctly resolve its built-in modules
44
- *
45
- * This is used by
46
- *
47
- * - [ESLint: Specifying Globals](https://eslint.org/docs/latest/use/configure/language-options#using-configuration-files)
48
- * - [perfectionist/sort-imports: `env` option](https://perfectionist.dev/rules/sort-imports#environment)
49
- *
50
- * to recognize the environment’s built-in modules.
51
- *
52
- * @default 'node'
53
- */
42
+ * Specify the runtime environment.
43
+ *
44
+ * This is used by
45
+ * - `configs.useBaseline` option (disabled when `env` is set to a value other than `'browser'`)
46
+ * - [ESLint: Specifying Globals](https://eslint.org/docs/latest/use/configure/language-options#using-configuration-files)
47
+ * - [perfectionist/sort-imports: `env` option](https://perfectionist.dev/rules/sort-imports#environment)
48
+ *
49
+ * @default 'browser'
50
+ */
54
51
  env?: 'bun' | 'deno' | 'node' | 'browser';
55
52
  /**
56
53
  * Path to the _.gitignore_ file (relative to the current working directory).
@@ -246,7 +243,7 @@ interface Options {
246
243
  */
247
244
  configs?: {
248
245
  /**
249
- * Use [eslint-plugin-astro](https://ota-meshi.github.io/eslint-plugin-astro) to enforce Astro best practices and accessibility guidelines.
246
+ * Use [eslint-plugin-astro](https://ota-meshi.github.io/eslint-plugin-astro) and [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) to enforce Astro best practices and accessibility guidelines.
250
247
  *
251
248
  * @default false // `true` if "astro" is detected in the dependencies when `autoDetectDeps` is enabled
252
249
  */
@@ -262,13 +259,22 @@ interface Options {
262
259
  *
263
260
  * @default false
264
261
  */
265
- css?: boolean | CSSOptions;
262
+ css?: boolean | ConfigWithOverrides<PluginRules<'css'>>;
266
263
  /**
267
264
  * Use [@html-eslint/eslint-plugin](https://html-eslint.org) to enforce SEO and accessibility best practices, as well as some stylistic rules.
268
265
  *
269
266
  * @default false
270
267
  */
271
- html?: boolean | HTMLOptions;
268
+ html?: boolean | (ConfigWithOverrides<PluginRules<'@html-eslint'>> & {
269
+ /**
270
+ * Enforce consistent naming convention for `id` attribute values.
271
+ *
272
+ * @default 'snake_case'
273
+ *
274
+ * @see [@html-eslint/id-naming-convention](https://html-eslint.org/docs/rules/id-naming-convention)
275
+ */
276
+ idNamingConvention?: Exclude<RuleOptions<'@html-eslint/id-naming-convention'>, 'regex'>;
277
+ });
272
278
  /**
273
279
  * Use [eslint-plugin-import-x](https://github.com/un-ts/eslint-plugin-import-x) to organize imports and exports, and detect related issues.
274
280
  *
@@ -281,6 +287,12 @@ interface Options {
281
287
  * @default true
282
288
  */
283
289
  markdown?: boolean | MarkdownOptions;
290
+ /**
291
+ * Use [@next/eslint-plugin-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-plugin-next) to enforce Next.js best practices and catch common mistakes.
292
+ *
293
+ * @default false // `true` if "next" is detected in the dependencies when `autoDetectDeps` is enabled
294
+ */
295
+ next?: boolean | ConfigWithOverrides<PluginRules<'next'>>;
284
296
  /**
285
297
  * Use [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) to enforce Node.js best practices and catch common mistakes.
286
298
  *
@@ -310,13 +322,28 @@ interface Options {
310
322
  *
311
323
  * @default true
312
324
  */
313
- perfectionist?: boolean | PerfectionistOptions;
325
+ perfectionist?: boolean | (ConfigWithOverrides<PluginRules<'perfectionist'>> & {
326
+ /**
327
+ * The type of sorting.
328
+ *
329
+ * @default 'line-length'
330
+ *
331
+ * @see [Perfectionist Settings: `type` option](https://perfectionist.dev/guide/getting-started#settings)
332
+ */
333
+ sortType?: Exclude<RuleOptions<'perfectionist/sort-imports'>['type'], 'type-import-first'>;
334
+ });
314
335
  /**
315
336
  * Use [eslint-plugin-promise](https://github.com/eslint-community/eslint-plugin-promise) to enforce best practices for JavaScript promises.
316
337
  *
317
338
  * @default true
318
339
  */
319
340
  promise?: boolean | ConfigWithOverrides<PluginRules<'promise'>>;
341
+ /**
342
+ * Use [@eslint-react/eslint-plugin](https://eslint-react.xyz), [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y), and [@html-eslint/eslint-plugin-react](https://html-eslint.org/docs/react/getting-started) to enforce React best practices and accessibility guidelines.
343
+ *
344
+ * @default false // `true` if "react" is detected in the dependencies when `autoDetectDeps` is enabled
345
+ */
346
+ react?: boolean | ReactOptions;
320
347
  /**
321
348
  * Use [@stylistic/eslint-plugin](https://eslint.style) to enforce stylistic rules such as indentation, line length, spacing, quotes, semicolons, etc.
322
349
  *
@@ -334,11 +361,11 @@ interface Options {
334
361
  */
335
362
  test?: TestOptions;
336
363
  /**
337
- * Use [typescript-eslint](https://typescript-eslint.io) to enforce TypeScript-specific rules.
364
+ * Use [@typescript-eslint](https://typescript-eslint.io) to enforce TypeScript-specific rules.
338
365
  *
339
366
  * Setting this to `false` doesn't prevent ESLint from linting TypeScript files.
340
367
  *
341
- * This enables
368
+ * This allows
342
369
  * - [eslint-plugin-import-x](https://github.com/un-ts/eslint-plugin-import-x) to better understand imports from TypeScript files such as ".ts", ".tsx", etc.
343
370
  * - [eslint-plugin-vue](https://eslint.vuejs.org) to enforce TypeScript-specific rules in the `<script setup lang="ts">` of Vue SFCs.
344
371
  *
@@ -351,6 +378,12 @@ interface Options {
351
378
  * @default true
352
379
  */
353
380
  unicorn?: boolean | ConfigWithOverrides<PluginRules<'unicorn'>>;
381
+ /**
382
+ * Use [eslint-plugin-baseline-js](https://github.com/3ru/eslint-plugin-baseline-js), [css/use-baseline](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md#options), [@html-eslint/use-baseline](https://html-eslint.org/docs/rules/use-baseline#options), and [@html-eslint/react/use-baseline](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md#options) to enforce the use of baseline features.
383
+ *
384
+ * @default true // `false` if `env` is set to a value other than `'browser'`
385
+ */
386
+ useBaseline?: boolean | BaselineOptions;
354
387
  /**
355
388
  * Use [eslint-plugin-vue](https://eslint.vuejs.org) to enforce Vue best practices, accessibility guidelines, stylistic rules, and identify mistakes.
356
389
  *
@@ -358,7 +391,7 @@ interface Options {
358
391
  */
359
392
  vue?: boolean | VueOptions;
360
393
  /**
361
- * Use [eslint-plugin-zod](https://github.com/marcalexiei/eslint-zod/tree/main/plugins/eslint-plugin-zod) or [eslint-plugin-zod-mini](https://github.com/marcalexiei/eslint-zod/tree/main/plugins/eslint-plugin-zod-mini) to enforce best practices for Zod schemas.
394
+ * Use [eslint-plugin-zod](https://github.com/marcalexiei/eslint-zod/tree/main/plugins/eslint-plugin-zod) or [eslint-plugin-zod-mini](https://github.com/marcalexiei/eslint-zod/tree/main/plugins/eslint-plugin-zod-mini) to enforce best practices for defining Zod schemas.
362
395
  *
363
396
  * @default false // `true` if "zod" is detected in the dependencies when `autoDetectDeps` is enabled
364
397
  */
@@ -0,0 +1,106 @@
1
+ import { PluginRules, RuleOptions } from "../eslintRules.mjs";
2
+ import { ConfigWithOverrides } from "../index.mjs";
3
+
4
+ //#region src/types/options/baseline.d.ts
5
+ type ConfigRules = PluginRules<'baseline-js'>;
6
+ type CssBaselineOptions = RuleOptions<'css/use-baseline'>;
7
+ interface BaselineOptions extends ConfigWithOverrides<ConfigRules> {
8
+ /**
9
+ * Enforce the use of baseline features in HTML, CSS, JavaScript, and React.
10
+ *
11
+ * Aside from `'widely'` and `'newly'`, it can also be set to a numeric baseline year, such as `2025`, to allow features that became baseline newly available that year or earlier. Minimum numeric baseline year is `2000`.
12
+ *
13
+ * @default 'widely'
14
+ *
15
+ * @see [@typescript-eslint/method-signature-style](https://typescript-eslint.io/rules/method-signature-style)
16
+ */
17
+ baseline?: RuleOptions<'baseline-js/use-baseline'>['available'];
18
+ /**
19
+ * Allow certain CSS features to be used even if they are not baseline features.
20
+ *
21
+ * @see [css/use-baseline: options](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md#options)
22
+ */
23
+ css?: {
24
+ /**
25
+ * At-rules that are allowed to be used regardless of the baseline.
26
+ *
27
+ * @default []
28
+ *
29
+ * @see [css/use-baseline: `allowedAtRules` option](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md#allowatrules)
30
+ */
31
+ allowedAtRules?: CssBaselineOptions['allowAtRules'];
32
+ /**
33
+ * Functions that are allowed to be used regardless of the baseline.
34
+ *
35
+ * @default []
36
+ *
37
+ * @see [css/use-baseline: `allowedFunctions` option](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md#allowfunctions)
38
+ */
39
+ allowedFunctions?: CssBaselineOptions['allowFunctions'];
40
+ /**
41
+ * Media conditions inside `@media` that are allowed to be used regardless of the baseline.
42
+ *
43
+ * @default []
44
+ *
45
+ * @see [css/use-baseline: `allowedMediaConditions` option](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md#allowmediaconditions)
46
+ */
47
+ allowedMediaConditions?: CssBaselineOptions['allowMediaConditions'];
48
+ /**
49
+ * Properties that are allowed to be used regardless of the baseline.
50
+ *
51
+ * @default []
52
+ *
53
+ * @see [css/use-baseline: `allowedProperties` option](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md#allowproperties)
54
+ */
55
+ allowedProperties?: CssBaselineOptions['allowProperties'];
56
+ /**
57
+ * Properties that are allowed to be used regardless of the baseline, mapped to their allowed identifier values.
58
+ *
59
+ * @default {}
60
+ *
61
+ * @see [css/use-baseline: `allowedPropertyValues` option](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md#allowpropertyvalues)
62
+ */
63
+ allowedPropertyValues?: Partial<CssBaselineOptions['allowPropertyValues']>;
64
+ /**
65
+ * Selectors that are allowed to be used regardless of the baseline.
66
+ *
67
+ * @default []
68
+ *
69
+ * @see [css/use-baseline: `allowedSelectors` option](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md#allowselectors)
70
+ */
71
+ allowedSelectors?: CssBaselineOptions['allowSelectors'];
72
+ /**
73
+ * Units that are allowed to be used regardless of the baseline.
74
+ *
75
+ * @default []
76
+ *
77
+ * @see [css/use-baseline: `allowedUnits` option](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md#allowunits)
78
+ */
79
+ allowedUnits?: CssBaselineOptions['allowUnits'];
80
+ };
81
+ /**
82
+ * Allow certain JavaScript features to be used even if they are not baseline features.
83
+ *
84
+ * @see [baseline-js/use-baseline: options](https://github.com/eslint/baseline-js/blob/main/docs/rules/use-baseline.md#options)
85
+ */
86
+ javascript?: {
87
+ /**
88
+ * Feature IDs or regex patterns for features that are allowed to be used regardless of the baseline.
89
+ *
90
+ * @default []
91
+ *
92
+ * @see [baseline-js/use-baseline: `ignoreFeatures` option](https://github.com/3ru/eslint-plugin-baseline-js#options-rule)
93
+ */
94
+ ignoredFeatures?: RuleOptions<'baseline-js/use-baseline'>['ignoreFeatures'];
95
+ /**
96
+ * ESTree `node.type`s or regex patterns for node types that are allowed to be used regardless of the baseline.
97
+ *
98
+ * @default []
99
+ *
100
+ * @see [baseline-js/use-baseline: `ignoreNodeTypes` option](https://github.com/3ru/eslint-plugin-baseline-js#options-rule)
101
+ */
102
+ ignoredNodeTypes?: RuleOptions<'baseline-js/use-baseline'>['ignoreNodeTypes'];
103
+ };
104
+ }
105
+ //#endregion
106
+ export type { BaselineOptions };
@@ -13,8 +13,7 @@ interface NuxtOptions {
13
13
  /**
14
14
  * The name of the icon component.
15
15
  *
16
- * This is used by
17
- * [vue/no-undef-components](https://eslint.vuejs.org/rules/no-undef-components)
16
+ * This is used by [vue/no-undef-components](https://eslint.vuejs.org/rules/no-undef-components)
18
17
  * to detect the icon component.
19
18
  *
20
19
  * It will fall back to the default value if set to an empty string (`''`).
@@ -0,0 +1,50 @@
1
+ import { PluginRules, RuleOptions } from "../eslintRules.mjs";
2
+ import { ConfigWithOverrides } from "../index.mjs";
3
+
4
+ //#region src/types/options/react.d.ts
5
+ type ConfigRules = PluginRules<'react'>;
6
+ interface ReactOptions extends ConfigWithOverrides<ConfigRules> {
7
+ /**
8
+ * Use [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) and [@html-eslint/eslint-plugin-react](https://html-eslint.org/docs/react/getting-started) to enforce accessibility standards for React components.
9
+ *
10
+ * @default true
11
+ */
12
+ accessibility?: boolean | {
13
+ /**
14
+ * Names of components that render an `<a>` element.
15
+ *
16
+ * New items extend the defaults instead of overriding them.
17
+ *
18
+ * This is used by
19
+ * - [jsx-a11y/anchor-has-content: `components` option](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/anchor-has-content.md#rule-options)
20
+ * - [jsx-a11y/anchor-is-valid: `components` option](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/anchor-is-valid.md#rule-options)
21
+ *
22
+ * @default ['Link', 'NextLink', 'NavLink']
23
+ */
24
+ anchorComponents?: RuleOptions<'jsx-a11y/anchor-has-content'>['components'];
25
+ /**
26
+ * Names of components that render a heading (`<h1>`...`<h6>`) element.
27
+ *
28
+ * New items extend the defaults instead of overriding them.
29
+ *
30
+ * @default ['H1', 'H2', 'H3', 'H4', 'H5', 'H6']
31
+ *
32
+ * @see [jsx-a11y/heading-has-content: `components` option](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/heading-has-content.md#rule-options)
33
+ */
34
+ headingComponents?: RuleOptions<'jsx-a11y/heading-has-content'>['components'];
35
+ /**
36
+ * Names of components that render an `<img>` element.
37
+ *
38
+ * New items extend the defaults instead of overriding them.
39
+ *
40
+ * This is used by
41
+ * - [jsx-a11y/alt-text: `img` option](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/alt-text.md#rule-options)
42
+ * - [jsx-a11y/img-redundant-alt: `components` option](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/img-redundant-alt.md#rule-options)
43
+ *
44
+ * @default ['Img', 'LazyImg', 'Image', 'LazyImage', 'NextImage', 'LazyNextImage']
45
+ */
46
+ imageComponents?: RuleOptions<'jsx-a11y/img-redundant-alt'>['components'];
47
+ };
48
+ }
49
+ //#endregion
50
+ export type { ReactOptions };
@@ -97,7 +97,7 @@ interface StylisticOptions extends ConfigWithOverrides<ConfigRules> {
97
97
  *
98
98
  * @default 'always'
99
99
  */
100
- selfCloseVoidHTMLElements?: 'never' | 'always';
100
+ selfCloseVoidHtmlElements?: 'never' | 'always';
101
101
  /**
102
102
  * Add semicolons at the end of statements.
103
103
  *
@@ -44,7 +44,7 @@ interface TestOptions {
44
44
  */
45
45
  storybook?: boolean | ConfigWithOverrides<StorybookConfigRules>;
46
46
  /**
47
- * Use [eslint-plugin-vitest](https://github.com/vitest-dev/eslint-plugin-vitest) to enforce best practices and code styles for Vitest tests.
47
+ * Use [@vitest/eslint-plugin](https://github.com/vitest-dev/eslint-plugin-vitest) to enforce best practices and code styles for Vitest tests.
48
48
  *
49
49
  * @default false // `true` if "vitest" is detected in the dependencies when `autoDetectDeps` is enabled
50
50
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shayanthenerd/eslint-config",
3
- "version": "0.25.0",
3
+ "version": "0.26.1",
4
4
  "description": "A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style",
5
5
  "keywords": [
6
6
  "eslint",
@@ -52,41 +52,46 @@
52
52
  "{**/*.ts,package.json}": "pnpm lint"
53
53
  },
54
54
  "dependencies": {
55
+ "@eslint-react/eslint-plugin": "5.9.2",
55
56
  "@eslint/css": "1.3.0",
56
57
  "@eslint/markdown": "8.0.2",
57
58
  "@html-eslint/eslint-plugin": "0.62.0",
59
+ "@html-eslint/eslint-plugin-react": "0.62.0",
60
+ "@next/eslint-plugin-next": "16.2.9",
58
61
  "@stylistic/eslint-plugin": "5.10.0",
59
62
  "@vitest/eslint-plugin": "1.6.20",
60
- "astro-eslint-parser": "1.4.0",
63
+ "astro-eslint-parser": "2.0.0",
61
64
  "defu": "6.1.7",
62
65
  "eslint-flat-config-utils": "3.2.0",
63
66
  "eslint-import-resolver-typescript": "4.4.5",
64
- "eslint-plugin-astro": "1.7.0",
67
+ "eslint-plugin-astro": "2.1.0",
68
+ "eslint-plugin-baseline-js": "0.6.2",
65
69
  "eslint-plugin-better-tailwindcss": "4.6.0",
66
70
  "eslint-plugin-cypress": "6.4.1",
67
- "eslint-plugin-import-x": "4.16.2",
71
+ "eslint-plugin-import-x": "4.17.0",
68
72
  "eslint-plugin-jsx-a11y": "6.10.2",
69
73
  "eslint-plugin-n": "18.1.0",
70
- "eslint-plugin-package-json": "1.3.0",
71
- "eslint-plugin-perfectionist": "5.9.0",
74
+ "eslint-plugin-package-json": "1.5.0",
75
+ "eslint-plugin-perfectionist": "5.9.1",
72
76
  "eslint-plugin-playwright": "2.10.4",
73
77
  "eslint-plugin-promise": "7.3.0",
74
- "eslint-plugin-storybook": "10.4.4",
75
- "eslint-plugin-unicorn": "65.0.1",
78
+ "eslint-plugin-storybook": "10.4.6",
79
+ "eslint-plugin-unicorn": "68.0.0",
76
80
  "eslint-plugin-vue": "10.9.2",
77
81
  "eslint-plugin-vuejs-accessibility": "2.5.0",
78
82
  "eslint-plugin-zod": "4.7.0",
79
83
  "eslint-plugin-zod-mini": "1.4.0",
80
- "globals": "17.6.0",
84
+ "globals": "17.7.0",
81
85
  "local-pkg": "1.2.1",
82
86
  "tailwind-csstree": "0.3.3",
83
- "typescript-eslint": "8.61.0"
87
+ "typescript-eslint": "8.62.0"
84
88
  },
85
89
  "devDependencies": {
86
- "@arethetypeswrong/cli": "0.18.3",
90
+ "@arethetypeswrong/cli": "0.18.4",
87
91
  "@eslint/config-inspector": "3.0.4",
88
- "@types/node": "25.9.3",
89
- "actions-up": "1.14.2",
92
+ "@types/eslint-plugin-jsx-a11y": "6.10.1",
93
+ "@types/node": "26.0.0",
94
+ "actions-up": "1.14.3",
90
95
  "eslint": "10.5.0",
91
96
  "eslint-typegen": "2.3.1",
92
97
  "nano-staged": "1.0.2",
@@ -95,7 +100,7 @@
95
100
  "serve": "14.2.6",
96
101
  "simple-git-hooks": "2.13.1",
97
102
  "ts-morph": "28.0.0",
98
- "tsdown": "0.22.2",
103
+ "tsdown": "0.22.3",
99
104
  "typescript": "6.0.3",
100
105
  "unplugin-unused": "0.5.7"
101
106
  },
@@ -108,12 +113,12 @@
108
113
  "devEngines": {
109
114
  "runtime": {
110
115
  "name": "node",
111
- "version": "^22.22.2 || ^24.15.0 || ^26.0.0",
116
+ "version": "^22.22.3 || ^24.15.0 || ^26.0.0",
112
117
  "onFail": "warn"
113
118
  },
114
119
  "packageManager": {
115
120
  "name": "pnpm",
116
- "version": "11.6.0",
121
+ "version": "11.8.0",
117
122
  "onFail": "warn"
118
123
  }
119
124
  },
@@ -1,27 +0,0 @@
1
- import { PluginRules, RuleOptions } from "../eslintRules.mjs";
2
- import { ConfigWithOverrides } from "../index.mjs";
3
-
4
- //#region src/types/options/css.d.ts
5
- type ConfigRules = PluginRules<'css'>;
6
- interface CSSOptions extends ConfigWithOverrides<ConfigRules> {
7
- /**
8
- * An array of relative font units that are allowed to be used.
9
- *
10
- * @default ['rem', 'em']
11
- *
12
- * @see [css/relative-font-units: `allowUnits` option](https://github.com/eslint/css/blob/main/docs/rules/relative-font-units.md#options)
13
- */
14
- allowedRelativeFontUnits?: RuleOptions<'css/relative-font-units'>['allowUnits'];
15
- /**
16
- * Enforce the use of baseline features.
17
- *
18
- * Aside from `'widely'` and `'newly'`, it can also be set to a numeric baseline year, such as `2025`, to allow features that became baseline newly available that year or earlier.
19
- *
20
- * @default false
21
- *
22
- * @see [css/use-baseline](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md)
23
- */
24
- useBaseline?: false | RuleOptions<'css/use-baseline'>['available'];
25
- }
26
- //#endregion
27
- export type { CSSOptions };
@@ -1,27 +0,0 @@
1
- import { PluginRules, RuleOptions } from "../eslintRules.mjs";
2
- import { ConfigWithOverrides } from "../index.mjs";
3
-
4
- //#region src/types/options/html.d.ts
5
- type ConfigRules = PluginRules<'@html-eslint'>;
6
- interface HTMLOptions extends ConfigWithOverrides<ConfigRules> {
7
- /**
8
- * Enforce consistent naming convention for `id` attribute values.
9
- *
10
- * @default 'snake_case'
11
- *
12
- * @see [@html-eslint/id-naming-convention](https://html-eslint.org/docs/rules/id-naming-convention)
13
- */
14
- idNamingConvention?: Exclude<RuleOptions<'@html-eslint/id-naming-convention'>, 'regex'>;
15
- /**
16
- * Enforce the use of baseline features.
17
- *
18
- * Aside from `'widely'` and `'newly'`, it can also be set to a numeric baseline year, such as `2025` (minimum is `2000`), to allow features that became baseline newly available that year or earlier.
19
- *
20
- * @default false
21
- *
22
- * @see [@html-eslint/use-baseline](https://html-eslint.org/docs/rules/use-baseline)
23
- */
24
- useBaseline?: false | RuleOptions<'@html-eslint/use-baseline'>['available'];
25
- }
26
- //#endregion
27
- export type { HTMLOptions };
@@ -1,18 +0,0 @@
1
- import { PluginRules, RuleOptions } from "../eslintRules.mjs";
2
- import { ConfigWithOverrides } from "../index.mjs";
3
-
4
- //#region src/types/options/perfectionist.d.ts
5
- type SortTypeOptions = RuleOptions<'perfectionist/sort-imports'>['type'];
6
- type ConfigRules = PluginRules<'perfectionist'>;
7
- interface PerfectionistOptions extends ConfigWithOverrides<ConfigRules> {
8
- /**
9
- * The type of sorting.
10
- *
11
- * @default 'line-length'
12
- *
13
- * @see [Perfectionist Settings: `type` option](https://perfectionist.dev/guide/getting-started#settings)
14
- */
15
- sortType?: Exclude<SortTypeOptions, 'type-import-first'>;
16
- }
17
- //#endregion
18
- export type { PerfectionistOptions };