@infernodesign/eslint-config 1.9.0 → 1.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -8,7 +8,7 @@ import parse from "parse-gitignore";
8
8
  import { execSync } from "node:child_process";
9
9
 
10
10
  //#region package.json
11
- var version = "1.9.0";
11
+ var version = "1.9.2";
12
12
 
13
13
  //#endregion
14
14
  //#region src/cli/constants.ts
@@ -171,12 +171,12 @@ async function updateEslintFiles(result) {
171
171
  //#endregion
172
172
  //#region src/cli/constants-generated.ts
173
173
  const versionsMap = {
174
- "@eslint-react/eslint-plugin": "^2.2.4",
175
- "@next/eslint-plugin-next": "^16.0.1",
176
- "@unocss/eslint-plugin": "^66.5.4",
174
+ "@eslint-react/eslint-plugin": "^2.3.9",
175
+ "@next/eslint-plugin-next": "^16.0.4",
176
+ "@unocss/eslint-plugin": "^66.5.9",
177
177
  "astro-eslint-parser": "^1.2.2",
178
- "eslint": "^9.39.0",
179
- "eslint-plugin-astro": "^1.4.0",
178
+ "eslint": "^9.39.1",
179
+ "eslint-plugin-astro": "^1.5.0",
180
180
  "eslint-plugin-format": "^1.0.2",
181
181
  "eslint-plugin-react-hooks": "^7.0.1",
182
182
  "eslint-plugin-react-refresh": "^0.4.24",
package/dist/index.d.ts CHANGED
@@ -959,6 +959,11 @@ interface RuleOptions {
959
959
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-type.md#repos-sticky-header
960
960
  */
961
961
  'jsdoc/require-property-type'?: Linter.RuleEntry<[]>;
962
+ /**
963
+ * Requires that Promise rejections are documented with `@rejects` tags.
964
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-rejects.md#repos-sticky-header
965
+ */
966
+ 'jsdoc/require-rejects'?: Linter.RuleEntry<JsdocRequireRejects>;
962
967
  /**
963
968
  * Requires that returns are documented with `@returns`.
964
969
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header
@@ -3365,6 +3370,11 @@ interface RuleOptions {
3365
3370
  * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
3366
3371
  */
3367
3372
  'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>;
3373
+ /**
3374
+ * Prevents dollar signs from being inserted as text nodes before expressions.
3375
+ * @see https://eslint-react.xyz/docs/rules/jsx-dollar
3376
+ */
3377
+ 'react/jsx-dollar'?: Linter.RuleEntry<[]>;
3368
3378
  /**
3369
3379
  * Enforces that the 'key' prop is placed before the spread prop in JSX elements.
3370
3380
  * @see https://eslint-react.xyz/docs/rules/jsx-key-before-spread
@@ -3503,6 +3513,7 @@ interface RuleOptions {
3503
3513
  /**
3504
3514
  * Disallow certain props on components.
3505
3515
  * @see https://eslint-react.xyz/docs/rules/no-forbidden-props
3516
+ * @deprecated
3506
3517
  */
3507
3518
  'react/no-forbidden-props'?: Linter.RuleEntry<ReactNoForbiddenProps>;
3508
3519
  /**
@@ -3624,7 +3635,7 @@ interface RuleOptions {
3624
3635
  * Prevents using referential-type values as default props in object destructuring.
3625
3636
  * @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
3626
3637
  */
3627
- 'react/no-unstable-default-props'?: Linter.RuleEntry<[]>;
3638
+ 'react/no-unstable-default-props'?: Linter.RuleEntry<ReactNoUnstableDefaultProps>;
3628
3639
  /**
3629
3640
  * Warns unused class component methods and properties.
3630
3641
  * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
@@ -5270,6 +5281,11 @@ interface RuleOptions {
5270
5281
  * @deprecated
5271
5282
  */
5272
5283
  'template-tag-spacing'?: Linter.RuleEntry<TemplateTagSpacing>;
5284
+ /**
5285
+ * enforce using `.each` or `.for` consistently
5286
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-each-for.md
5287
+ */
5288
+ 'test/consistent-each-for'?: Linter.RuleEntry<TestConsistentEachFor>;
5273
5289
  /**
5274
5290
  * require test file pattern
5275
5291
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-filename.md
@@ -5492,7 +5508,7 @@ interface RuleOptions {
5492
5508
  */
5493
5509
  'test/prefer-each'?: Linter.RuleEntry<[]>;
5494
5510
  /**
5495
- * enforce using the built-in quality matchers
5511
+ * enforce using the built-in equality matchers
5496
5512
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-equality-matcher.md
5497
5513
  */
5498
5514
  'test/prefer-equality-matcher'?: Linter.RuleEntry<[]>;
@@ -5601,11 +5617,21 @@ interface RuleOptions {
5601
5617
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-vi-mocked.md
5602
5618
  */
5603
5619
  'test/prefer-vi-mocked'?: Linter.RuleEntry<[]>;
5620
+ /**
5621
+ * ensure that every `expect.poll` call is awaited
5622
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-awaited-expect-poll.md
5623
+ */
5624
+ 'test/require-awaited-expect-poll'?: Linter.RuleEntry<[]>;
5604
5625
  /**
5605
5626
  * require setup and teardown to be within a hook
5606
5627
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-hook.md
5607
5628
  */
5608
5629
  'test/require-hook'?: Linter.RuleEntry<TestRequireHook>;
5630
+ /**
5631
+ * require usage of import in vi.mock()
5632
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-import-vi-mock.md
5633
+ */
5634
+ 'test/require-import-vi-mock'?: Linter.RuleEntry<[]>;
5609
5635
  /**
5610
5636
  * require local Test Context for concurrent snapshot tests
5611
5637
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-local-test-context-for-concurrent-snapshots.md
@@ -6205,6 +6231,11 @@ interface RuleOptions {
6205
6231
  * @see https://typescript-eslint.io/rules/no-unused-expressions
6206
6232
  */
6207
6233
  'ts/no-unused-expressions'?: Linter.RuleEntry<TsNoUnusedExpressions>;
6234
+ /**
6235
+ * Disallow unused private class members
6236
+ * @see https://typescript-eslint.io/rules/no-unused-private-class-members
6237
+ */
6238
+ 'ts/no-unused-private-class-members'?: Linter.RuleEntry<[]>;
6208
6239
  /**
6209
6240
  * Disallow unused variables
6210
6241
  * @see https://typescript-eslint.io/rules/no-unused-vars
@@ -7652,6 +7683,11 @@ interface RuleOptions {
7652
7683
  * @see https://eslint.vuejs.org/rules/no-duplicate-attributes.html
7653
7684
  */
7654
7685
  'vue/no-duplicate-attributes'?: Linter.RuleEntry<VueNoDuplicateAttributes>;
7686
+ /**
7687
+ * disallow duplication of class names in class attributes
7688
+ * @see https://eslint.vuejs.org/rules/no-duplicate-class-names.html
7689
+ */
7690
+ 'vue/no-duplicate-class-names'?: Linter.RuleEntry<[]>;
7655
7691
  /**
7656
7692
  * disallow the `<template>` `<script>` `<style>` block to be empty
7657
7693
  * @see https://eslint.vuejs.org/rules/no-empty-component-block.html
@@ -9193,6 +9229,7 @@ type JsdocCheckExamples = [] | [{
9193
9229
  }];
9194
9230
  // ----- jsdoc/check-indentation -----
9195
9231
  type JsdocCheckIndentation = [] | [{
9232
+ allowIndentedSections?: boolean;
9196
9233
  excludeTags?: string[];
9197
9234
  }];
9198
9235
  // ----- jsdoc/check-line-alignment -----
@@ -9539,6 +9576,14 @@ type JsdocRequireParamType = [] | [{
9539
9576
  defaultDestructuredRootType?: string;
9540
9577
  setDefaultDestructuredRootType?: boolean;
9541
9578
  }];
9579
+ // ----- jsdoc/require-rejects -----
9580
+ type JsdocRequireRejects = [] | [{
9581
+ contexts?: (string | {
9582
+ comment?: string;
9583
+ context?: string;
9584
+ })[];
9585
+ exemptedBy?: string[];
9586
+ }];
9542
9587
  // ----- jsdoc/require-returns -----
9543
9588
  type JsdocRequireReturns = [] | [{
9544
9589
  checkConstructors?: boolean;
@@ -9629,6 +9674,9 @@ type JsdocSortTags = [] | [{
9629
9674
  linesBetween?: number;
9630
9675
  reportIntraTagGroupSpacing?: boolean;
9631
9676
  reportTagGroupSpacing?: boolean;
9677
+ tagExceptions?: {
9678
+ [k: string]: number;
9679
+ };
9632
9680
  tagSequence?: {
9633
9681
  tags?: string[];
9634
9682
  }[];
@@ -13445,6 +13493,10 @@ type ReactNoForbiddenProps = [] | [{
13445
13493
  prop: string;
13446
13494
  })[];
13447
13495
  }];
13496
+ // ----- react/no-unstable-default-props -----
13497
+ type ReactNoUnstableDefaultProps = [] | [{
13498
+ safeDefaultProps?: string[];
13499
+ }];
13448
13500
  // ----- react/no-useless-fragment -----
13449
13501
  type ReactNoUselessFragment = [] | [{
13450
13502
  allowExpressions?: boolean;
@@ -15159,6 +15211,13 @@ type SwitchColonSpacing = [] | [{
15159
15211
  type TemplateCurlySpacing = [] | [("always" | "never")];
15160
15212
  // ----- template-tag-spacing -----
15161
15213
  type TemplateTagSpacing = [] | [("always" | "never")];
15214
+ // ----- test/consistent-each-for -----
15215
+ type TestConsistentEachFor = [] | [{
15216
+ test?: ("each" | "for");
15217
+ it?: ("each" | "for");
15218
+ describe?: ("each" | "for");
15219
+ suite?: ("each" | "for");
15220
+ }];
15162
15221
  // ----- test/consistent-test-filename -----
15163
15222
  type TestConsistentTestFilename = [] | [{
15164
15223
  pattern?: string;
@@ -15192,7 +15251,7 @@ type TestNoFocusedTests = [] | [{
15192
15251
  }];
15193
15252
  // ----- test/no-hooks -----
15194
15253
  type TestNoHooks = [] | [{
15195
- allow?: unknown[];
15254
+ allow?: ("beforeAll" | "beforeEach" | "afterAll" | "afterEach")[];
15196
15255
  }];
15197
15256
  // ----- test/no-large-snapshots -----
15198
15257
  type TestNoLargeSnapshots = [] | [{
package/dist/index.js CHANGED
@@ -301,7 +301,7 @@ async function comments() {
301
301
  rules: {
302
302
  "eslint-comments/no-aggregating-enable": "error",
303
303
  "eslint-comments/no-duplicate-disable": "error",
304
- "eslint-comments/no-unlimited-disable": "error",
304
+ "eslint-comments/no-unlimited-disable": "off",
305
305
  "eslint-comments/no-unused-enable": "error"
306
306
  }
307
307
  }];
@@ -467,10 +467,7 @@ async function stylistic(options = {}) {
467
467
  }],
468
468
  "style/template-curly-spacing": ["error", "never"],
469
469
  "style/template-tag-spacing": ["error", "never"],
470
- "style/type-annotation-spacing": ["error", {
471
- after: true,
472
- before: false
473
- }],
470
+ "style/type-annotation-spacing": "off",
474
471
  "style/type-generic-spacing": ["error"],
475
472
  "style/type-named-tuple-spacing": ["error"],
476
473
  "style/wrap-iife": ["error", "outside"],
@@ -888,7 +885,7 @@ async function javascript(options = {}) {
888
885
  "symbol-description": "error",
889
886
  "unicode-bom": ["error", "never"],
890
887
  "unused-imports/no-unused-imports": isInEditor ? "warn" : "error",
891
- "unused-imports/no-unused-vars": ["error", {
888
+ "unused-imports/no-unused-vars": ["warn", {
892
889
  args: "after-used",
893
890
  argsIgnorePattern: "^_",
894
891
  ignoreRestSiblings: true,
@@ -2059,7 +2056,7 @@ async function svelte(options = {}) {
2059
2056
  "svelte/require-store-callbacks-use-set-param": "error",
2060
2057
  "svelte/system": "error",
2061
2058
  "svelte/valid-each-key": "error",
2062
- "unused-imports/no-unused-vars": ["error", {
2059
+ "unused-imports/no-unused-vars": ["warn", {
2063
2060
  args: "after-used",
2064
2061
  argsIgnorePattern: "^_",
2065
2062
  vars: "all",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@infernodesign/eslint-config",
3
3
  "description": "ESLint config for Inferno Design.",
4
- "version": "1.9.0",
4
+ "version": "1.9.2",
5
5
  "type": "module",
6
6
  "author": "Inferno Design <support@infernodesign.com>",
7
7
  "license": "MIT",
@@ -38,21 +38,21 @@
38
38
  "@antfu/install-pkg": "^1.1.0",
39
39
  "@clack/prompts": "^0.11.0",
40
40
  "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
41
- "@eslint/markdown": "^7.5.0",
42
- "@stylistic/eslint-plugin": "^5.5.0",
43
- "@typescript-eslint/eslint-plugin": "^8.46.2",
44
- "@typescript-eslint/parser": "^8.46.2",
45
- "@vitest/eslint-plugin": "^1.4.0",
41
+ "@eslint/markdown": "^7.5.1",
42
+ "@stylistic/eslint-plugin": "^5.6.1",
43
+ "@typescript-eslint/eslint-plugin": "^8.48.0",
44
+ "@typescript-eslint/parser": "^8.48.0",
45
+ "@vitest/eslint-plugin": "^1.5.0",
46
46
  "ansis": "^4.2.0",
47
47
  "cac": "^6.7.14",
48
48
  "eslint-config-flat-gitignore": "^2.1.0",
49
49
  "eslint-flat-config-utils": "^2.1.4",
50
50
  "eslint-merge-processors": "^2.0.0",
51
51
  "eslint-plugin-antfu": "^3.1.1",
52
- "eslint-plugin-better-tailwindcss": "^3.7.10",
52
+ "eslint-plugin-better-tailwindcss": "^3.7.11",
53
53
  "eslint-plugin-command": "^3.3.1",
54
54
  "eslint-plugin-import-lite": "^0.3.0",
55
- "eslint-plugin-jsdoc": "^61.1.11",
55
+ "eslint-plugin-jsdoc": "^61.4.1",
56
56
  "eslint-plugin-jsonc": "^2.21.0",
57
57
  "eslint-plugin-n": "^17.23.1",
58
58
  "eslint-plugin-no-only-tests": "^3.3.0",
@@ -62,7 +62,7 @@
62
62
  "eslint-plugin-toml": "^0.12.0",
63
63
  "eslint-plugin-unicorn": "^62.0.0",
64
64
  "eslint-plugin-unused-imports": "^4.3.0",
65
- "eslint-plugin-vue": "^10.5.1",
65
+ "eslint-plugin-vue": "^10.6.1",
66
66
  "eslint-plugin-yml": "^1.19.0",
67
67
  "eslint-processor-vue-blocks": "^2.0.0",
68
68
  "globals": "^16.5.0",
@@ -71,25 +71,25 @@
71
71
  "parse-gitignore": "^2.0.0",
72
72
  "toml-eslint-parser": "^0.10.0",
73
73
  "vue-eslint-parser": "^10.2.0",
74
- "yaml-eslint-parser": "^1.3.0"
74
+ "yaml-eslint-parser": "^1.3.1"
75
75
  },
76
76
  "devDependencies": {
77
- "@eslint-react/eslint-plugin": "^2.2.4",
78
- "@eslint/config-inspector": "^1.3.0",
79
- "@next/eslint-plugin-next": "^16.0.1",
77
+ "@eslint-react/eslint-plugin": "^2.3.9",
78
+ "@eslint/config-inspector": "^1.4.2",
79
+ "@next/eslint-plugin-next": "^16.0.4",
80
80
  "@prettier/plugin-xml": "^3.4.2",
81
81
  "@types/eslint-plugin-jsx-a11y": "^6.10.1",
82
- "@types/node": "^24.9.2",
83
- "@unocss/eslint-plugin": "^66.5.4",
82
+ "@types/node": "^24.10.1",
83
+ "@unocss/eslint-plugin": "^66.5.9",
84
84
  "astro-eslint-parser": "^1.2.2",
85
- "eslint": "^9.39.0",
86
- "eslint-plugin-astro": "^1.4.0",
85
+ "eslint": "^9.39.1",
86
+ "eslint-plugin-astro": "^1.5.0",
87
87
  "eslint-plugin-format": "^1.0.2",
88
88
  "eslint-plugin-jsx-a11y": "^6.10.2",
89
89
  "eslint-plugin-react-hooks": "^7.0.1",
90
90
  "eslint-plugin-react-refresh": "^0.4.24",
91
91
  "eslint-plugin-solid": "^0.14.5",
92
- "eslint-plugin-storybook": "^10.0.2",
92
+ "eslint-plugin-storybook": "^10.1.0",
93
93
  "eslint-plugin-svelte": "^3.13.0",
94
94
  "eslint-plugin-vuejs-accessibility": "^2.4.1",
95
95
  "eslint-typegen": "^2.3.0",
@@ -98,30 +98,30 @@
98
98
  "pnpm-workspace-yaml": "^1.3.0",
99
99
  "prettier-plugin-astro": "^0.14.1",
100
100
  "prettier-plugin-slidev": "^1.0.5",
101
- "svelte": "^5.43.2",
101
+ "svelte": "^5.44.1",
102
102
  "svelte-eslint-parser": "^1.4.0",
103
103
  "tinyglobby": "^0.2.15",
104
- "tsdown": "^0.15.12",
104
+ "tsdown": "^0.16.7",
105
105
  "tsx": "^4.20.6",
106
106
  "typescript": "^5.9.3",
107
- "vitest": "^4.0.6",
108
- "vue": "^3.5.22",
107
+ "vitest": "^4.0.14",
108
+ "vue": "^3.5.25",
109
109
  "@infernodesign/typescript-config": "1.3.0"
110
110
  },
111
111
  "peerDependencies": {
112
- "@eslint-react/eslint-plugin": "^2.2.4",
113
- "@next/eslint-plugin-next": "^16.0.1",
112
+ "@eslint-react/eslint-plugin": "^2.3.9",
113
+ "@next/eslint-plugin-next": "^16.0.4",
114
114
  "@prettier/plugin-xml": "^3.4.2",
115
- "@unocss/eslint-plugin": "^66.5.4",
115
+ "@unocss/eslint-plugin": "^66.5.9",
116
116
  "astro-eslint-parser": "^1.2.2",
117
- "eslint": "^9.39.0",
118
- "eslint-plugin-astro": "^1.4.0",
117
+ "eslint": "^9.39.1",
118
+ "eslint-plugin-astro": "^1.5.0",
119
119
  "eslint-plugin-format": "^1.0.2",
120
120
  "eslint-plugin-jsx-a11y": "^6.10.2",
121
121
  "eslint-plugin-react-hooks": "^7.0.1",
122
122
  "eslint-plugin-react-refresh": "^0.4.24",
123
123
  "eslint-plugin-solid": "^0.14.5",
124
- "eslint-plugin-storybook": "^10.0.2",
124
+ "eslint-plugin-storybook": "^10.1.0",
125
125
  "eslint-plugin-svelte": "^3.13.0",
126
126
  "eslint-plugin-vuejs-accessibility": "^2.4.1",
127
127
  "prettier-plugin-astro": "^0.14.1",