eslint-config-complete 4.16.0 → 4.17.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.
@@ -1 +1 @@
1
- {"version":3,"file":"base-eslint.d.ts","sourceRoot":"","sources":["../../../src/base/base-eslint.js"],"names":[],"mappings":"AAgqBA;;;;;;;;GAQG;AACH,0DAMG"}
1
+ {"version":3,"file":"base-eslint.d.ts","sourceRoot":"","sources":["../../../src/base/base-eslint.js"],"names":[],"mappings":"AA6nBA;;;;;;;;GAQG;AACH,0DAMG"}
@@ -6,12 +6,7 @@ import { defineConfig } from "eslint/config";
6
6
  */
7
7
  const POSSIBLE_PROBLEMS = {
8
8
  /** The `checkForEach` option is enabled to make the rule stricter. */
9
- "array-callback-return": [
10
- "error",
11
- {
12
- checkForEach: true,
13
- },
14
- ],
9
+ "array-callback-return": ["error", { checkForEach: true }],
15
10
  /** Disabled since this is already enforced by TypeScript (`ts(2335)` & `ts(2377)`). */
16
11
  "constructor-super": "off", // @typescript-eslint/eslint-recommended
17
12
  "for-direction": "error",
@@ -174,9 +169,7 @@ const SUGGESTIONS = {
174
169
  "logical-assignment-operators": [
175
170
  "error",
176
171
  "always",
177
- {
178
- enforceForIfStatements: true,
179
- },
172
+ { enforceForIfStatements: true },
180
173
  ],
181
174
  "max-classes-per-file": "error",
182
175
  /** Disabled since this rule is too prescriptive for general-purpose use. */
@@ -220,12 +213,7 @@ const SUGGESTIONS = {
220
213
  "no-delete-var": "error",
221
214
  "no-div-regex": "error",
222
215
  /** The `allowElseIf` option is disabled to make the rule stricter. */
223
- "no-else-return": [
224
- "error",
225
- {
226
- allowElseIf: false,
227
- },
228
- ],
216
+ "no-else-return": ["error", { allowElseIf: false }],
229
217
  "no-empty": "error",
230
218
  /** Superseded by the `@typescript-eslint/no-empty-function` rule. */
231
219
  "no-empty-function": "off",
@@ -420,12 +408,7 @@ const SUGGESTIONS = {
420
408
  */
421
409
  "no-underscore-dangle": "off",
422
410
  /** The `defaultAssignment` option is disabled to make the rule stricter. */
423
- "no-unneeded-ternary": [
424
- "error",
425
- {
426
- defaultAssignment: false,
427
- },
428
- ],
411
+ "no-unneeded-ternary": ["error", { defaultAssignment: false }],
429
412
  /** Superseded by the `@typescript-eslint/no-unused-expressions` rule. */
430
413
  "no-unused-expressions": "off",
431
414
  "no-unused-labels": "error",
@@ -433,12 +416,7 @@ const SUGGESTIONS = {
433
416
  "no-useless-call": "error",
434
417
  "no-useless-catch": "error",
435
418
  /** The `enforceForClassMembers` option is enabled to make the rule stricter. */
436
- "no-useless-computed-key": [
437
- "error",
438
- {
439
- enforceForClassMembers: true,
440
- },
441
- ],
419
+ "no-useless-computed-key": ["error", { enforceForClassMembers: true }],
442
420
  "no-useless-concat": "error",
443
421
  /** Superseded by the `@typescript-eslint/no-useless-constructor` rule. */
444
422
  "no-useless-constructor": "off",
@@ -455,13 +433,7 @@ const SUGGESTIONS = {
455
433
  /** Disabled since this is already enforced by TypeScript (`ts(1101)` & `ts(2410)`). */
456
434
  "no-with": "off", // @typescript-eslint/eslint-recommended
457
435
  /** The `ignoreConstructors` option is disabled to make the rule stricter. */
458
- "object-shorthand": [
459
- "error",
460
- "always",
461
- {
462
- ignoreConstructors: false,
463
- },
464
- ],
436
+ "object-shorthand": ["error", "always", { ignoreConstructors: false }],
465
437
  /**
466
438
  * The `never` option is provided to disallow multi-variable declarations (since they can be
467
439
  * confusing).
@@ -485,12 +457,7 @@ const SUGGESTIONS = {
485
457
  /** Superseded by the `@typescript-eslint/prefer-promise-reject-errors` rule. */
486
458
  "prefer-promise-reject-errors": "off",
487
459
  /** The `disallowRedundantWrapping` option is enabled to make the rule stricter. */
488
- "prefer-regex-literals": [
489
- "error",
490
- {
491
- disallowRedundantWrapping: true,
492
- },
493
- ],
460
+ "prefer-regex-literals": ["error", { disallowRedundantWrapping: true }],
494
461
  "prefer-rest-params": "error",
495
462
  "prefer-spread": "error",
496
463
  "prefer-template": "error",
@@ -519,9 +486,7 @@ const SUGGESTIONS = {
519
486
  * @type {Record<string, import("@typescript-eslint/utils").TSESLint.SharedConfig.RuleEntry>}
520
487
  * @see https://eslint.org/docs/latest/rules/#suggestions
521
488
  */
522
- const LAYOUT_AND_FORMATTING = {
523
- "unicode-bom": "error",
524
- };
489
+ const LAYOUT_AND_FORMATTING = { "unicode-bom": "error" };
525
490
  /**
526
491
  * This ESLint config only contains built-in rules from ESLint itself:
527
492
  * https://eslint.org/docs/latest/rules/
@@ -1 +1 @@
1
- {"version":3,"file":"base-jsdoc.d.ts","sourceRoot":"","sources":["../../../src/base/base-jsdoc.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,yDAwSE"}
1
+ {"version":3,"file":"base-jsdoc.d.ts","sourceRoot":"","sources":["../../../src/base/base-jsdoc.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,yDAoRE"}
@@ -105,12 +105,7 @@ export const baseJSDoc = defineConfig({
105
105
  */
106
106
  "jsdoc/no-restricted-syntax": "off",
107
107
  /** The `contexts` option is set to `any` to make the rule stricter. */
108
- "jsdoc/no-types": [
109
- "error",
110
- {
111
- contexts: ["any"],
112
- },
113
- ],
108
+ "jsdoc/no-types": ["error", { contexts: ["any"] }],
114
109
  /** Disabled because it is not needed in TypeScript. */
115
110
  "jsdoc/no-undefined-types": "off",
116
111
  /**
@@ -151,19 +146,9 @@ export const baseJSDoc = defineConfig({
151
146
  },
152
147
  ],
153
148
  /** The `contexts` option is set to `any` to make the rule stricter. */
154
- "jsdoc/require-param-description": [
155
- "error",
156
- {
157
- contexts: ["any"],
158
- },
159
- ],
149
+ "jsdoc/require-param-description": ["error", { contexts: ["any"] }],
160
150
  /** The `contexts` option is set to `any` to make the rule stricter. */
161
- "jsdoc/require-param-name": [
162
- "error",
163
- {
164
- contexts: ["any"],
165
- },
166
- ],
151
+ "jsdoc/require-param-name": ["error", { contexts: ["any"] }],
167
152
  /** Disabled because it is not needed in TypeScript. */
168
153
  "jsdoc/require-param-type": "off",
169
154
  /** Disabled because it is not needed in TypeScript. */
@@ -179,12 +164,7 @@ export const baseJSDoc = defineConfig({
179
164
  /** Disabled because it is overboard for every function to document every return value. */
180
165
  "jsdoc/require-returns-check": "off",
181
166
  /** The `contexts` option is set to `any` to make the rule stricter. */
182
- "jsdoc/require-returns-description": [
183
- "error",
184
- {
185
- contexts: ["any"],
186
- },
187
- ],
167
+ "jsdoc/require-returns-description": ["error", { contexts: ["any"] }],
188
168
  /** Disabled because it is not needed in TypeScript. */
189
169
  "jsdoc/require-returns-type": "off",
190
170
  /** Disabled since it is expected to be configured with project-specific keywords. */
@@ -210,7 +190,7 @@ export const baseJSDoc = defineConfig({
210
190
  /** Superseded by the `complete/format-jsdoc-comments` rule. */
211
191
  "jsdoc/tag-lines": "off",
212
192
  /**
213
- * Disabled since it is only useful in certain environments (e.g. when your project converts
193
+ * Disabled since it is only useful in certain environments (e.g., when your project converts
214
194
  * JSDoc comments to Markdown).
215
195
  */
216
196
  "jsdoc/text-escaping": "off",
@@ -1 +1 @@
1
- {"version":3,"file":"base-stylistic.d.ts","sourceRoot":"","sources":["../../../src/base/base-stylistic.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,6DAiDG"}
1
+ {"version":3,"file":"base-stylistic.d.ts","sourceRoot":"","sources":["../../../src/base/base-stylistic.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,6DA6CG"}
@@ -13,14 +13,16 @@ export const baseStylistic = defineConfig({
13
13
  "@stylistic/lines-between-class-members": [
14
14
  "error",
15
15
  "always",
16
- {
17
- exceptAfterSingleLine: true,
18
- },
16
+ { exceptAfterSingleLine: true },
19
17
  ],
20
18
  /** Enforce a blank line between functions. (Prettier does not do this by default.) */
21
19
  "@stylistic/padding-line-between-statements": [
22
20
  "error",
23
- { blankLine: "always", prev: "function", next: "function" },
21
+ {
22
+ blankLine: "always",
23
+ prev: "function",
24
+ next: "function",
25
+ },
24
26
  ],
25
27
  /**
26
28
  * We forbid unnecessary backticks by using the options specified in [the
@@ -41,12 +43,6 @@ export const baseStylistic = defineConfig({
41
43
  *
42
44
  * The `markers` option is provided to make this rule ignore lines that start with "///".
43
45
  */
44
- "@stylistic/spaced-comment": [
45
- "error",
46
- "always",
47
- {
48
- markers: ["/"],
49
- },
50
- ],
46
+ "@stylistic/spaced-comment": ["error", "always", { markers: ["/"] }],
51
47
  },
52
48
  });
@@ -1 +1 @@
1
- {"version":3,"file":"base-typescript-eslint.d.ts","sourceRoot":"","sources":["../../../src/base/base-typescript-eslint.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,oEAuiBE"}
1
+ {"version":3,"file":"base-typescript-eslint.d.ts","sourceRoot":"","sources":["../../../src/base/base-typescript-eslint.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,oEAohBE"}
@@ -40,12 +40,7 @@ export const baseTypeScriptESLint = defineConfig({
40
40
  * The default value is `array`. We choose `array-simple` because it makes complicated arrays
41
41
  * easier to understand. This is worth the cost of deviating from the base rule configuration.
42
42
  */
43
- "@typescript-eslint/array-type": [
44
- "error",
45
- {
46
- default: "array-simple",
47
- },
48
- ],
43
+ "@typescript-eslint/array-type": ["error", { default: "array-simple" }],
49
44
  "@typescript-eslint/await-thenable": "error",
50
45
  "@typescript-eslint/ban-ts-comment": "error",
51
46
  "@typescript-eslint/ban-tslint-comment": "error",
@@ -146,9 +141,7 @@ export const baseTypeScriptESLint = defineConfig({
146
141
  */
147
142
  "@typescript-eslint/no-empty-interface": [
148
143
  "error",
149
- {
150
- allowSingleExtends: true,
151
- },
144
+ { allowSingleExtends: true },
152
145
  ],
153
146
  "@typescript-eslint/no-empty-object-type": "error",
154
147
  "@typescript-eslint/no-explicit-any": "error",
@@ -161,9 +154,7 @@ export const baseTypeScriptESLint = defineConfig({
161
154
  */
162
155
  "@typescript-eslint/no-floating-promises": [
163
156
  "error",
164
- {
165
- ignoreVoid: false,
166
- },
157
+ { ignoreVoid: false },
167
158
  ],
168
159
  "@typescript-eslint/no-for-in-array": "error",
169
160
  "@typescript-eslint/no-implied-eval": "error",
@@ -172,9 +163,7 @@ export const baseTypeScriptESLint = defineConfig({
172
163
  /** The `capIsConstructor` option is disabled to make the rule stricter. */
173
164
  "@typescript-eslint/no-invalid-this": [
174
165
  "error",
175
- {
176
- capIsConstructor: false,
177
- },
166
+ { capIsConstructor: false },
178
167
  ],
179
168
  "@typescript-eslint/no-invalid-void-type": "error",
180
169
  "@typescript-eslint/no-loop-func": "error",
@@ -276,9 +265,7 @@ export const baseTypeScriptESLint = defineConfig({
276
265
  */
277
266
  "@typescript-eslint/no-unused-expressions": [
278
267
  "error",
279
- {
280
- allowTaggedTemplates: true,
281
- },
268
+ { allowTaggedTemplates: true },
282
269
  ],
283
270
  "@typescript-eslint/no-unused-private-class-members": "error",
284
271
  /**
@@ -321,11 +308,9 @@ export const baseTypeScriptESLint = defineConfig({
321
308
  object: true,
322
309
  },
323
310
  },
324
- {
325
- // We disable this for renamed properties, since code like the following should be valid:
326
- // `const someSpecificMyEnum = MyEnum.Value1;`
327
- enforceForRenamedProperties: false,
328
- },
311
+ // We disable this for renamed properties, since code like the following should be valid:
312
+ // `const someSpecificMyEnum = MyEnum.Value1;`
313
+ { enforceForRenamedProperties: false },
329
314
  ],
330
315
  "@typescript-eslint/prefer-enum-initializers": "error",
331
316
  "@typescript-eslint/prefer-find": "error",
@@ -344,9 +329,7 @@ export const baseTypeScriptESLint = defineConfig({
344
329
  /** The `allowEmptyReject` option is enabled since this is a common pattern. */
345
330
  "@typescript-eslint/prefer-promise-reject-errors": [
346
331
  "error",
347
- {
348
- allowEmptyReject: true,
349
- },
332
+ { allowEmptyReject: true },
350
333
  ],
351
334
  "@typescript-eslint/prefer-readonly": "error",
352
335
  /** Superseded by the `complete/prefer-readonly-parameter-types` rule. */
@@ -434,9 +417,7 @@ export const baseTypeScriptESLint = defineConfig({
434
417
  ignores: ["**/*.json", "**/*.jsonc", "**/*.code-workspace"],
435
418
  },
436
419
  // Enable linting on TypeScript file extensions.
437
- {
438
- files: ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"],
439
- },
420
+ { files: ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"] },
440
421
  // Disable some TypeScript-specific rules in JavaScript files.
441
422
  {
442
423
  files: ["**/*.js", "**/*.cjs", "**/*.mjs", "**/*.jsx"],
@@ -1 +1 @@
1
- {"version":3,"file":"base-unicorn.d.ts","sourceRoot":"","sources":["../../../src/base/base-unicorn.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,2DAsYG"}
1
+ {"version":3,"file":"base-unicorn.d.ts","sourceRoot":"","sources":["../../../src/base/base-unicorn.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,2DAgWG"}
@@ -18,7 +18,6 @@ export const baseUnicorn = defineConfig({
18
18
  "unicorn/consistent-boolean-name": "off",
19
19
  "unicorn/consistent-class-member-order": "error",
20
20
  "unicorn/consistent-compound-words": "error",
21
- "unicorn/consistent-conditional-object-spread": "error",
22
21
  "unicorn/consistent-date-clone": "error",
23
22
  "unicorn/consistent-destructuring": "error",
24
23
  "unicorn/consistent-empty-array-spread": "error",
@@ -30,7 +29,6 @@ export const baseUnicorn = defineConfig({
30
29
  "unicorn/consistent-optional-chaining": "error",
31
30
  "unicorn/consistent-template-literal-escape": "error",
32
31
  "unicorn/custom-error-definition": "error",
33
- "unicorn/default-export-style": "error",
34
32
  "unicorn/dom-node-dataset": "error",
35
33
  "unicorn/empty-brace-spaces": "off", // eslint-config-prettier
36
34
  "unicorn/error-message": "error",
@@ -45,8 +43,6 @@ export const baseUnicorn = defineConfig({
45
43
  "unicorn/isolated-functions": "error",
46
44
  "unicorn/logical-assignment-operators": "error",
47
45
  "unicorn/max-nested-calls": "error",
48
- /** Disabled since it is common to use the variable name of "i". */
49
- "unicorn/name-replacements": "off",
50
46
  "unicorn/new-for-builtins": "error",
51
47
  /**
52
48
  * Disabled because if a line breaks three or more ESLint rules, then it is useful to use a
@@ -54,42 +50,31 @@ export const baseUnicorn = defineConfig({
54
50
  */
55
51
  "unicorn/no-abusive-eslint-disable": "off",
56
52
  "unicorn/no-accessor-recursion": "error",
57
- "unicorn/no-accidental-bitwise-operator": "error",
58
53
  "unicorn/no-anonymous-default-export": "error",
59
54
  /** Disabled since it is not helpful when using TypeScript. */
60
55
  "unicorn/no-array-callback-reference": "off",
61
- "unicorn/no-array-concat-in-loop": "error",
62
56
  "unicorn/no-array-fill-with-reference-type": "error",
63
57
  "unicorn/no-array-from-fill": "error",
64
- "unicorn/no-array-front-mutation": "error",
65
58
  "unicorn/no-array-method-this-argument": "error",
66
59
  "unicorn/no-array-reduce": "error",
67
60
  "unicorn/no-array-reverse": "error",
68
61
  "unicorn/no-array-sort": "error",
69
- "unicorn/no-array-sort-for-min-max": "error",
70
62
  "unicorn/no-array-splice": "error",
71
63
  /** Disabled because this goes against the standard JSDoc format. */
72
64
  "unicorn/no-asterisk-prefix-in-documentation-comments": "off",
73
65
  "unicorn/no-await-expression-member": "error",
74
66
  "unicorn/no-await-in-promise-methods": "error",
75
67
  "unicorn/no-blob-to-file": "error",
76
- "unicorn/no-boolean-sort-comparator": "error",
77
68
  /** Disabled since simple double nested loops are common. */
78
69
  "unicorn/no-break-in-nested-loop": "off",
79
70
  "unicorn/no-canvas-to-image": "error",
80
- "unicorn/no-chained-comparison": "error",
81
- "unicorn/no-collection-bracket-access": "error",
82
71
  /** Disabled since it is unnecessary with TypeScript objects that are properly typed. */
83
72
  "unicorn/no-computed-property-existence-check": "off",
84
73
  "unicorn/no-confusing-array-splice": "error",
85
74
  "unicorn/no-confusing-array-with": "error",
86
75
  "unicorn/no-console-spaces": "error",
87
- "unicorn/no-constant-zero-expression": "error",
88
76
  "unicorn/no-declarations-before-early-exit": "error",
89
77
  "unicorn/no-document-cookie": "error",
90
- "unicorn/no-double-comparison": "error",
91
- "unicorn/no-duplicate-if-branches": "error",
92
- "unicorn/no-duplicate-logical-operands": "error",
93
78
  "unicorn/no-duplicate-loops": "error",
94
79
  "unicorn/no-duplicate-set-values": "error",
95
80
  "unicorn/no-empty-file": "error",
@@ -99,12 +84,10 @@ export const baseUnicorn = defineConfig({
99
84
  "unicorn/no-for-loop": "error",
100
85
  "unicorn/no-global-object-property-assignment": "error",
101
86
  "unicorn/no-immediate-mutation": "error",
102
- "unicorn/no-impossible-length-comparison": "error",
103
87
  "unicorn/no-incorrect-query-selector": "error",
104
88
  "unicorn/no-incorrect-template-string-interpolation": "error",
105
89
  "unicorn/no-instanceof-builtins": "error",
106
90
  "unicorn/no-invalid-argument-count": "error",
107
- "unicorn/no-invalid-character-comparison": "error",
108
91
  "unicorn/no-invalid-fetch-options": "error",
109
92
  "unicorn/no-invalid-file-input-accept": "error",
110
93
  "unicorn/no-invalid-remove-event-listener": "error",
@@ -112,12 +95,10 @@ export const baseUnicorn = defineConfig({
112
95
  "unicorn/no-keyword-prefix": "off",
113
96
  "unicorn/no-late-current-target-access": "error",
114
97
  "unicorn/no-lonely-if": "error",
115
- "unicorn/no-loop-iterable-mutation": "error",
116
98
  "unicorn/no-magic-array-flat-depth": "error",
117
99
  /** Superseded by the `complete/format-line-comments` rule. */
118
100
  "unicorn/no-manually-wrapped-comments": "off",
119
101
  "unicorn/no-mismatched-map-key": "error",
120
- "unicorn/no-misrefactored-assignment": "error",
121
102
  "unicorn/no-named-default": "error",
122
103
  "unicorn/no-negated-array-predicate": "error",
123
104
  "unicorn/no-negated-comparison": "error",
@@ -127,7 +108,6 @@ export const baseUnicorn = defineConfig({
127
108
  "unicorn/no-new-array": "error",
128
109
  "unicorn/no-new-buffer": "error",
129
110
  "unicorn/no-non-function-verb-prefix": "error",
130
- "unicorn/no-nonstandard-builtin-properties": "error",
131
111
  "unicorn/no-null": "error",
132
112
  "unicorn/no-object-as-default-parameter": "error",
133
113
  "unicorn/no-object-methods-with-collections": "error",
@@ -139,7 +119,6 @@ export const baseUnicorn = defineConfig({
139
119
  "unicorn/no-process-exit": "off",
140
120
  "unicorn/no-redundant-comparison": "error",
141
121
  "unicorn/no-return-array-push": "error",
142
- "unicorn/no-selector-as-dom-name": "error",
143
122
  "unicorn/no-single-promise-in-promise-methods": "error",
144
123
  "unicorn/no-static-only-class": "error",
145
124
  "unicorn/no-subtraction-comparison": "error",
@@ -155,7 +134,6 @@ export const baseUnicorn = defineConfig({
155
134
  "unicorn/no-unnecessary-array-flat-depth": "error",
156
135
  "unicorn/no-unnecessary-array-splice-count": "error",
157
136
  "unicorn/no-unnecessary-await": "error",
158
- "unicorn/no-unnecessary-boolean-comparison": "error",
159
137
  "unicorn/no-unnecessary-global-this": "error",
160
138
  "unicorn/no-unnecessary-nested-ternary": "error",
161
139
  "unicorn/no-unnecessary-polyfills": "error",
@@ -176,16 +154,13 @@ export const baseUnicorn = defineConfig({
176
154
  "unicorn/no-useless-boolean-cast": "error",
177
155
  "unicorn/no-useless-coercion": "error",
178
156
  "unicorn/no-useless-collection-argument": "error",
179
- "unicorn/no-useless-compound-assignment": "error",
180
157
  "unicorn/no-useless-concat": "error",
181
158
  "unicorn/no-useless-continue": "error",
182
- "unicorn/no-useless-delete-check": "error",
183
159
  "unicorn/no-useless-else": "error",
184
160
  "unicorn/no-useless-error-capture-stack-trace": "error",
185
161
  "unicorn/no-useless-fallback-in-spread": "error",
186
162
  "unicorn/no-useless-iterator-to-array": "error",
187
163
  "unicorn/no-useless-length-check": "error",
188
- "unicorn/no-useless-logical-operand": "error",
189
164
  "unicorn/no-useless-override": "error",
190
165
  "unicorn/no-useless-promise-resolve-reject": "error",
191
166
  "unicorn/no-useless-recursion": "error",
@@ -194,7 +169,6 @@ export const baseUnicorn = defineConfig({
194
169
  "unicorn/no-useless-template-literals": "error",
195
170
  /** Disabled since it does not work properly with TypeScript. */
196
171
  "unicorn/no-useless-undefined": "off",
197
- "unicorn/no-xor-as-exponentiation": "error",
198
172
  "unicorn/no-zero-fractions": "error",
199
173
  "unicorn/number-literal-case": "off", // eslint-config-prettier
200
174
  "unicorn/numeric-separators-style": "error",
@@ -204,10 +178,8 @@ export const baseUnicorn = defineConfig({
204
178
  "unicorn/prefer-array-find": "error",
205
179
  "unicorn/prefer-array-flat": "error",
206
180
  "unicorn/prefer-array-flat-map": "error",
207
- "unicorn/prefer-array-from-async": "error",
208
181
  "unicorn/prefer-array-from-map": "error",
209
182
  "unicorn/prefer-array-index-of": "error",
210
- "unicorn/prefer-array-iterable-methods": "error",
211
183
  "unicorn/prefer-array-last-methods": "error",
212
184
  "unicorn/prefer-array-slice": "error",
213
185
  "unicorn/prefer-array-some": "error",
@@ -215,11 +187,9 @@ export const baseUnicorn = defineConfig({
215
187
  "unicorn/prefer-await": "error",
216
188
  "unicorn/prefer-bigint-literals": "error",
217
189
  "unicorn/prefer-blob-reading-methods": "error",
218
- "unicorn/prefer-boolean-return": "error",
219
190
  "unicorn/prefer-class-fields": "error",
220
191
  "unicorn/prefer-classlist-toggle": "error",
221
192
  "unicorn/prefer-code-point": "error",
222
- "unicorn/prefer-continue": "error",
223
193
  "unicorn/prefer-date-now": "error",
224
194
  "unicorn/prefer-default-parameters": "error",
225
195
  "unicorn/prefer-direct-iteration": "error",
@@ -232,12 +202,10 @@ export const baseUnicorn = defineConfig({
232
202
  "unicorn/prefer-else-if": "error",
233
203
  "unicorn/prefer-event-target": "error",
234
204
  "unicorn/prefer-export-from": "error",
235
- "unicorn/prefer-flat-math-min-max": "error",
236
205
  "unicorn/prefer-get-or-insert-computed": "error",
237
206
  "unicorn/prefer-global-number-constants": "error",
238
207
  "unicorn/prefer-global-this": "error",
239
208
  "unicorn/prefer-has-check": "error",
240
- "unicorn/prefer-hoisting-branch-code": "error",
241
209
  "unicorn/prefer-https": "error",
242
210
  "unicorn/prefer-identifier-import-export-specifiers": "error",
243
211
  "unicorn/prefer-import-meta-properties": "error",
@@ -257,7 +225,6 @@ export const baseUnicorn = defineConfig({
257
225
  "unicorn/prefer-logical-operator-over-ternary": "error",
258
226
  "unicorn/prefer-map-from-entries": "error",
259
227
  "unicorn/prefer-math-abs": "error",
260
- "unicorn/prefer-math-constants": "error",
261
228
  "unicorn/prefer-math-min-max": "error",
262
229
  "unicorn/prefer-math-trunc": "error",
263
230
  "unicorn/prefer-minimal-ternary": "error",
@@ -277,12 +244,10 @@ export const baseUnicorn = defineConfig({
277
244
  "unicorn/prefer-optional-catch-binding": "error",
278
245
  "unicorn/prefer-path2d": "error",
279
246
  "unicorn/prefer-private-class-fields": "error",
280
- "unicorn/prefer-promise-with-resolvers": "error",
281
247
  "unicorn/prefer-prototype-methods": "error",
282
248
  "unicorn/prefer-query-selector": "error",
283
249
  "unicorn/prefer-queue-microtask": "error",
284
250
  "unicorn/prefer-reflect-apply": "error",
285
- "unicorn/prefer-regexp-escape": "error",
286
251
  "unicorn/prefer-regexp-test": "error",
287
252
  "unicorn/prefer-response-static-json": "error",
288
253
  "unicorn/prefer-scoped-selector": "error",
@@ -294,7 +259,6 @@ export const baseUnicorn = defineConfig({
294
259
  "unicorn/prefer-single-array-predicate": "error",
295
260
  "unicorn/prefer-single-call": "error",
296
261
  "unicorn/prefer-single-object-destructuring": "error",
297
- "unicorn/prefer-single-replace": "error",
298
262
  "unicorn/prefer-smaller-scope": "error",
299
263
  "unicorn/prefer-split-limit": "error",
300
264
  "unicorn/prefer-spread": "error",
@@ -319,11 +283,10 @@ export const baseUnicorn = defineConfig({
319
283
  "unicorn/prefer-type-error": "error",
320
284
  "unicorn/prefer-type-literal-last": "error",
321
285
  "unicorn/prefer-uint8array-base64": "error",
322
- "unicorn/prefer-unary-minus": "error",
323
286
  "unicorn/prefer-unicode-code-point-escapes": "error",
324
- "unicorn/prefer-url-can-parse": "error",
325
287
  "unicorn/prefer-url-href": "error",
326
- "unicorn/prefer-while-loop-condition": "error",
288
+ /** Disabled since it is common to use the variable name of "i". */
289
+ "unicorn/prevent-abbreviations": "off",
327
290
  "unicorn/relative-url-style": "error",
328
291
  "unicorn/require-array-join-separator": "error",
329
292
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/base.js"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,kEAmCE"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/base.js"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,kEAiCE"}
package/dist/src/base.js CHANGED
@@ -29,9 +29,7 @@ export const completeConfigBase = defineConfig(
29
29
  // We also want to ignore:
30
30
  // - The "dist" directory, since it is the idiomatic place for compiled output in TypeScript.
31
31
  // - Minified JavaScript files.
32
- {
33
- ignores: ["**/dist/", "*.min.js"],
34
- },
32
+ { ignores: ["**/dist/", "*.min.js"] },
35
33
  // By default, ESLint will warn on unused disable directives, but since warnings will still result
36
34
  // in a 0 exit code, we need to set this to "error".
37
35
  {
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-plugin.d.ts","sourceRoot":"","sources":["../../src/eslint-plugin.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,0EA4DG"}
1
+ {"version":3,"file":"eslint-plugin.d.ts","sourceRoot":"","sources":["../../src/eslint-plugin.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,0EA0DG"}
@@ -45,9 +45,7 @@ export const completeConfigESLintPlugin = defineConfig({
45
45
  */
46
46
  "eslint-plugin/require-meta-docs-description": [
47
47
  "error",
48
- {
49
- pattern: "^(Enforce|Require|Disallow)",
50
- },
48
+ { pattern: "^(Enforce|Require|Disallow)" },
51
49
  ],
52
50
  "eslint-plugin/require-meta-docs-recommended": "error",
53
51
  /** Disabled since this is automatically handled by the `createRule` helper function. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-config-complete",
3
- "version": "4.16.0",
3
+ "version": "4.17.0",
4
4
  "description": "A sharable ESLint config for TypeScript projects.",
5
5
  "keywords": [
6
6
  "eslint",
@@ -35,24 +35,24 @@
35
35
  "@stylistic/eslint-plugin": "5.10.0",
36
36
  "confusing-browser-globals": "1.0.11",
37
37
  "eslint-import-resolver-typescript": "4.4.5",
38
- "eslint-plugin-complete": "1.8.0",
38
+ "eslint-plugin-complete": "1.9.0",
39
39
  "eslint-plugin-eslint-plugin": "7.4.0",
40
40
  "eslint-plugin-import-x": "4.16.2",
41
- "eslint-plugin-jsdoc": "63.0.7",
41
+ "eslint-plugin-jsdoc": "63.0.6",
42
42
  "eslint-plugin-n": "18.1.0",
43
43
  "eslint-plugin-perfectionist": "5.9.1",
44
44
  "eslint-plugin-regexp": "3.1.0",
45
- "eslint-plugin-unicorn": "68.0.0",
45
+ "eslint-plugin-unicorn": "67.0.0",
46
46
  "typescript-eslint": "8.61.1"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@eslint/js": "10.0.1",
50
50
  "@types/confusing-browser-globals": "1.0.3",
51
- "@types/node": "26.0.0",
51
+ "@types/node": "25.9.3",
52
52
  "@typescript-eslint/typescript-estree": "8.61.1",
53
53
  "@typescript-eslint/utils": "8.61.1",
54
54
  "complete-common": "2.29.0",
55
- "complete-node": "17.0.0",
55
+ "complete-node": "17.0.2",
56
56
  "eslint-config-prettier": "10.1.8",
57
57
  "typescript": "6.0.3"
58
58
  },