@rebeccastevens/eslint-config 3.5.0 → 3.5.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/CHANGELOG.md CHANGED
@@ -1,6 +1,20 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file. Dates are displayed in UTC.
3
3
 
4
+ ## [3.5.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.5.1...v3.5.2) (2025-01-05)
5
+
6
+
7
+ ### Bug Fixes
8
+
9
+ * add more vue-i18n rules ([94ca078](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/94ca078f62c842d4585a0dad574cdc74de403505))
10
+
11
+ ## [3.5.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.5.0...v3.5.1) (2024-12-22)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * only use ts version of no-loop-func when using ts ([48dc0b0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/48dc0b05705d3af72b4966e861c16f8747f855ad))
17
+
4
18
  # [3.5.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.4.0...v3.5.0) (2024-12-19)
5
19
 
6
20
 
package/dist/index.cjs CHANGED
@@ -3070,7 +3070,6 @@ async function typescript(options) {
3070
3070
  "ts/no-floating-promises": "error",
3071
3071
  "ts/no-for-in-array": "error",
3072
3072
  "ts/no-invalid-void-type": "error",
3073
- "ts/no-loop-func": "error",
3074
3073
  // "ts/no-meaningless-void-operator": "error",
3075
3074
  "ts/no-misused-new": "error",
3076
3075
  "ts/no-misused-promises": "error",
@@ -3161,6 +3160,8 @@ async function typescript(options) {
3161
3160
  "ts/unbound-method": ["error", { ignoreStatic: true }],
3162
3161
  "ts/unified-signatures": ["error", { ignoreDifferentlyNamedParameters: true }],
3163
3162
  "ts/use-unknown-in-catch-callback-variable": "error",
3163
+ "no-loop-func": "off",
3164
+ "ts/no-loop-func": "error",
3164
3165
  "no-use-before-define": "off",
3165
3166
  "ts/no-use-before-define": [
3166
3167
  "error",
@@ -3668,6 +3669,20 @@ async function vue(options) {
3668
3669
  "vue-i18n/no-missing-keys": i18n === false ? "off" : "error",
3669
3670
  "vue-i18n/no-raw-text": i18n === false ? "off" : "warn",
3670
3671
  "vue-i18n/no-v-html": i18n === false ? "off" : "error",
3672
+ "vue-i18n/no-deprecated-i18n-component": i18n === false ? "off" : "error",
3673
+ "vue-i18n/no-deprecated-i18n-place-attr": i18n === false ? "off" : "error",
3674
+ "vue-i18n/no-deprecated-i18n-places-prop": i18n === false ? "off" : "error",
3675
+ "vue-i18n/no-deprecated-modulo-syntax": i18n === false ? "off" : "error",
3676
+ "vue-i18n/no-deprecated-tc": i18n === false ? "off" : "error",
3677
+ "vue-i18n/no-deprecated-v-t": i18n === false ? "off" : "error",
3678
+ "vue-i18n/no-i18n-t-path-prop": i18n === false ? "off" : "error",
3679
+ "vue-i18n/valid-message-syntax": i18n === false ? "off" : "error",
3680
+ "vue-i18n/prefer-linked-key-with-paren": i18n === false ? "off" : "error",
3681
+ "vue-i18n/key-format-style": i18n === false ? "off" : ["error", "kebab-case"],
3682
+ "vue-i18n/no-dynamic-keys": i18n === false ? "off" : "error",
3683
+ "vue-i18n/no-unknown-locale": i18n === false ? "off" : "error",
3684
+ // "vue-i18n/no-missing-keys-in-other-locales": i18n === false ? "off" : "error",
3685
+ // "@intlify/vue-i18n/no-unused-keys": i18n === false ? "off" : "error",
3671
3686
  "vue/array-bracket-spacing": [stylisticEnforcement, "never"],
3672
3687
  "vue/arrow-spacing": [stylisticEnforcement, { after: true, before: true }],
3673
3688
  "vue/block-spacing": [stylisticEnforcement, "always"],
package/dist/index.d.cts CHANGED
@@ -200,248 +200,248 @@ interface RuleOptions {
200
200
  "functional/type-declaration-immutability"?: Linter.RuleEntry<FunctionalTypeDeclarationImmutability>;
201
201
  /**
202
202
  * Enforce or ban the use of inline type-only markers for named imports.
203
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/consistent-type-specifier-style.md
203
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/consistent-type-specifier-style.md
204
204
  */
205
205
  "import/consistent-type-specifier-style"?: Linter.RuleEntry<ImportConsistentTypeSpecifierStyle>;
206
206
  /**
207
207
  * Ensure a default export is present, given a default import.
208
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/default.md
208
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/default.md
209
209
  */
210
210
  "import/default"?: Linter.RuleEntry<[
211
211
  ]>;
212
212
  /**
213
213
  * Enforce a leading comment with the webpackChunkName for dynamic imports.
214
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/dynamic-import-chunkname.md
214
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/dynamic-import-chunkname.md
215
215
  */
216
216
  "import/dynamic-import-chunkname"?: Linter.RuleEntry<ImportDynamicImportChunkname>;
217
217
  /**
218
218
  * Forbid any invalid exports, i.e. re-export of the same name.
219
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/export.md
219
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/export.md
220
220
  */
221
221
  "import/export"?: Linter.RuleEntry<[
222
222
  ]>;
223
223
  /**
224
224
  * Ensure all exports appear after other statements.
225
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/exports-last.md
225
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/exports-last.md
226
226
  */
227
227
  "import/exports-last"?: Linter.RuleEntry<[
228
228
  ]>;
229
229
  /**
230
230
  * Ensure consistent use of file extension within the import path.
231
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/extensions.md
231
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/extensions.md
232
232
  */
233
233
  "import/extensions"?: Linter.RuleEntry<ImportExtensions>;
234
234
  /**
235
235
  * Ensure all imports appear before other statements.
236
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/first.md
236
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/first.md
237
237
  */
238
238
  "import/first"?: Linter.RuleEntry<ImportFirst>;
239
239
  /**
240
240
  * Prefer named exports to be grouped together in a single export declaration.
241
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/group-exports.md
241
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/group-exports.md
242
242
  */
243
243
  "import/group-exports"?: Linter.RuleEntry<[
244
244
  ]>;
245
245
  /**
246
246
  * Replaced by `import-x/first`.
247
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/imports-first.md
247
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/imports-first.md
248
248
  * @deprecated
249
249
  */
250
250
  "import/imports-first"?: Linter.RuleEntry<ImportImportsFirst>;
251
251
  /**
252
252
  * Enforce the maximum number of dependencies a module can have.
253
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/max-dependencies.md
253
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/max-dependencies.md
254
254
  */
255
255
  "import/max-dependencies"?: Linter.RuleEntry<ImportMaxDependencies>;
256
256
  /**
257
257
  * Ensure named imports correspond to a named export in the remote file.
258
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/named.md
258
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/named.md
259
259
  */
260
260
  "import/named"?: Linter.RuleEntry<ImportNamed>;
261
261
  /**
262
262
  * Ensure imported namespaces contain dereferenced properties as they are dereferenced.
263
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/namespace.md
263
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/namespace.md
264
264
  */
265
265
  "import/namespace"?: Linter.RuleEntry<ImportNamespace>;
266
266
  /**
267
267
  * Enforce a newline after import statements.
268
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/newline-after-import.md
268
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/newline-after-import.md
269
269
  */
270
270
  "import/newline-after-import"?: Linter.RuleEntry<ImportNewlineAfterImport>;
271
271
  /**
272
272
  * Forbid import of modules using absolute paths.
273
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-absolute-path.md
273
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-absolute-path.md
274
274
  */
275
275
  "import/no-absolute-path"?: Linter.RuleEntry<ImportNoAbsolutePath>;
276
276
  /**
277
277
  * Forbid AMD `require` and `define` calls.
278
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-amd.md
278
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-amd.md
279
279
  */
280
280
  "import/no-amd"?: Linter.RuleEntry<[
281
281
  ]>;
282
282
  /**
283
283
  * Forbid anonymous values as default exports.
284
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-anonymous-default-export.md
284
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-anonymous-default-export.md
285
285
  */
286
286
  "import/no-anonymous-default-export"?: Linter.RuleEntry<ImportNoAnonymousDefaultExport>;
287
287
  /**
288
288
  * Forbid CommonJS `require` calls and `module.exports` or `exports.*`.
289
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-commonjs.md
289
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-commonjs.md
290
290
  */
291
291
  "import/no-commonjs"?: Linter.RuleEntry<ImportNoCommonjs>;
292
292
  /**
293
293
  * Forbid a module from importing a module with a dependency path back to itself.
294
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-cycle.md
294
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-cycle.md
295
295
  */
296
296
  "import/no-cycle"?: Linter.RuleEntry<ImportNoCycle>;
297
297
  /**
298
298
  * Forbid default exports.
299
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-default-export.md
299
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-default-export.md
300
300
  */
301
301
  "import/no-default-export"?: Linter.RuleEntry<[
302
302
  ]>;
303
303
  /**
304
304
  * Forbid imported names marked with `@deprecated` documentation tag.
305
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-deprecated.md
305
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-deprecated.md
306
306
  */
307
307
  "import/no-deprecated"?: Linter.RuleEntry<[
308
308
  ]>;
309
309
  /**
310
310
  * Forbid repeated import of the same module in multiple places.
311
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-duplicates.md
311
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-duplicates.md
312
312
  */
313
313
  "import/no-duplicates"?: Linter.RuleEntry<ImportNoDuplicates>;
314
314
  /**
315
315
  * Forbid `require()` calls with expressions.
316
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-dynamic-require.md
316
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-dynamic-require.md
317
317
  */
318
318
  "import/no-dynamic-require"?: Linter.RuleEntry<ImportNoDynamicRequire>;
319
319
  /**
320
320
  * Forbid empty named import blocks.
321
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-empty-named-blocks.md
321
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-empty-named-blocks.md
322
322
  */
323
323
  "import/no-empty-named-blocks"?: Linter.RuleEntry<[
324
324
  ]>;
325
325
  /**
326
326
  * Forbid the use of extraneous packages.
327
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-extraneous-dependencies.md
327
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-extraneous-dependencies.md
328
328
  */
329
329
  "import/no-extraneous-dependencies"?: Linter.RuleEntry<ImportNoExtraneousDependencies>;
330
330
  /**
331
331
  * Forbid import statements with CommonJS module.exports.
332
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-import-module-exports.md
332
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-import-module-exports.md
333
333
  */
334
334
  "import/no-import-module-exports"?: Linter.RuleEntry<ImportNoImportModuleExports>;
335
335
  /**
336
336
  * Forbid importing the submodules of other modules.
337
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-internal-modules.md
337
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-internal-modules.md
338
338
  */
339
339
  "import/no-internal-modules"?: Linter.RuleEntry<ImportNoInternalModules>;
340
340
  /**
341
341
  * Forbid the use of mutable exports with `var` or `let`.
342
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-mutable-exports.md
342
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-mutable-exports.md
343
343
  */
344
344
  "import/no-mutable-exports"?: Linter.RuleEntry<[
345
345
  ]>;
346
346
  /**
347
347
  * Forbid use of exported name as identifier of default export.
348
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-named-as-default.md
348
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-as-default.md
349
349
  */
350
350
  "import/no-named-as-default"?: Linter.RuleEntry<[
351
351
  ]>;
352
352
  /**
353
353
  * Forbid use of exported name as property of default export.
354
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-named-as-default-member.md
354
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-as-default-member.md
355
355
  */
356
356
  "import/no-named-as-default-member"?: Linter.RuleEntry<[
357
357
  ]>;
358
358
  /**
359
359
  * Forbid named default exports.
360
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-named-default.md
360
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-default.md
361
361
  */
362
362
  "import/no-named-default"?: Linter.RuleEntry<[
363
363
  ]>;
364
364
  /**
365
365
  * Forbid named exports.
366
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-named-export.md
366
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-export.md
367
367
  */
368
368
  "import/no-named-export"?: Linter.RuleEntry<[
369
369
  ]>;
370
370
  /**
371
371
  * Forbid namespace (a.k.a. "wildcard" `*`) imports.
372
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-namespace.md
372
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-namespace.md
373
373
  */
374
374
  "import/no-namespace"?: Linter.RuleEntry<ImportNoNamespace>;
375
375
  /**
376
376
  * Forbid Node.js builtin modules.
377
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-nodejs-modules.md
377
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-nodejs-modules.md
378
378
  */
379
379
  "import/no-nodejs-modules"?: Linter.RuleEntry<ImportNoNodejsModules>;
380
380
  /**
381
381
  * Forbid importing packages through relative paths.
382
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-relative-packages.md
382
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-relative-packages.md
383
383
  */
384
384
  "import/no-relative-packages"?: Linter.RuleEntry<ImportNoRelativePackages>;
385
385
  /**
386
386
  * Forbid importing modules from parent directories.
387
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-relative-parent-imports.md
387
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-relative-parent-imports.md
388
388
  */
389
389
  "import/no-relative-parent-imports"?: Linter.RuleEntry<ImportNoRelativeParentImports>;
390
390
  /**
391
391
  * Forbid importing a default export by a different name.
392
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-rename-default.md
392
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-rename-default.md
393
393
  */
394
394
  "import/no-rename-default"?: Linter.RuleEntry<ImportNoRenameDefault>;
395
395
  /**
396
396
  * Enforce which files can be imported in a given folder.
397
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-restricted-paths.md
397
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-restricted-paths.md
398
398
  */
399
399
  "import/no-restricted-paths"?: Linter.RuleEntry<ImportNoRestrictedPaths>;
400
400
  /**
401
401
  * Forbid a module from importing itself.
402
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-self-import.md
402
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-self-import.md
403
403
  */
404
404
  "import/no-self-import"?: Linter.RuleEntry<[
405
405
  ]>;
406
406
  /**
407
407
  * Forbid unassigned imports.
408
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-unassigned-import.md
408
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unassigned-import.md
409
409
  */
410
410
  "import/no-unassigned-import"?: Linter.RuleEntry<ImportNoUnassignedImport>;
411
411
  /**
412
412
  * Ensure imports point to a file/module that can be resolved.
413
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-unresolved.md
413
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unresolved.md
414
414
  */
415
415
  "import/no-unresolved"?: Linter.RuleEntry<ImportNoUnresolved>;
416
416
  /**
417
417
  * Forbid modules without exports, or exports without matching import in another module.
418
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-unused-modules.md
418
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unused-modules.md
419
419
  */
420
420
  "import/no-unused-modules"?: Linter.RuleEntry<ImportNoUnusedModules>;
421
421
  /**
422
422
  * Forbid unnecessary path segments in import and require statements.
423
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-useless-path-segments.md
423
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-useless-path-segments.md
424
424
  */
425
425
  "import/no-useless-path-segments"?: Linter.RuleEntry<ImportNoUselessPathSegments>;
426
426
  /**
427
427
  * Forbid webpack loader syntax in imports.
428
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-webpack-loader-syntax.md
428
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-webpack-loader-syntax.md
429
429
  */
430
430
  "import/no-webpack-loader-syntax"?: Linter.RuleEntry<[
431
431
  ]>;
432
432
  /**
433
433
  * Enforce a convention in module import order.
434
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/order.md
434
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/order.md
435
435
  */
436
436
  "import/order"?: Linter.RuleEntry<ImportOrder>;
437
437
  /**
438
438
  * Prefer a default export if module exports a single name or multiple names.
439
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/prefer-default-export.md
439
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/prefer-default-export.md
440
440
  */
441
441
  "import/prefer-default-export"?: Linter.RuleEntry<ImportPreferDefaultExport>;
442
442
  /**
443
443
  * Forbid potentially ambiguous parse goal (`script` vs. `module`).
444
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/unambiguous.md
444
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/unambiguous.md
445
445
  */
446
446
  "import/unambiguous"?: Linter.RuleEntry<[
447
447
  ]>;
@@ -1491,8 +1491,8 @@ interface RuleOptions {
1491
1491
  */
1492
1492
  "promise/valid-params"?: Linter.RuleEntry<PromiseValidParams>;
1493
1493
  /**
1494
- * disallow passing 'children' to void DOM elements
1495
- * @see https://eslint-react.xyz/docs/rules/dom-no-children-in-void-dom-elements
1494
+ * disallow void elements (AKA self-closing elements) from having children
1495
+ * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
1496
1496
  */
1497
1497
  "react-dom/no-children-in-void-dom-elements"?: Linter.RuleEntry<[
1498
1498
  ]>;
@@ -1562,11 +1562,23 @@ interface RuleOptions {
1562
1562
  "react-dom/no-unsafe-target-blank"?: Linter.RuleEntry<[
1563
1563
  ]>;
1564
1564
  /**
1565
- * enforce custom hooks to use at least one other hook inside
1566
- * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-redundant-custom-hook
1565
+ * disallow void elements (AKA self-closing elements) from having children
1566
+ * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
1567
+ */
1568
+ "react-dom/no-void-elements-with-children"?: Linter.RuleEntry<[
1569
+ ]>;
1570
+ /**
1571
+ * enforce custom Hooks to use at least one other hook inside
1572
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-useless-custom-hooks
1567
1573
  */
1568
1574
  "react-hooks-extra/ensure-custom-hooks-using-other-hooks"?: Linter.RuleEntry<[
1569
1575
  ]>;
1576
+ /**
1577
+ * disallow unnecessary usage of 'useCallback'
1578
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
1579
+ */
1580
+ "react-hooks-extra/ensure-use-callback-has-non-empty-deps"?: Linter.RuleEntry<[
1581
+ ]>;
1570
1582
  /**
1571
1583
  * disallow unnecessary usage of 'useMemo'
1572
1584
  * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
@@ -1586,8 +1598,8 @@ interface RuleOptions {
1586
1598
  "react-hooks-extra/no-direct-set-state-in-use-layout-effect"?: Linter.RuleEntry<[
1587
1599
  ]>;
1588
1600
  /**
1589
- * enforce custom hooks to use at least one other hook inside
1590
- * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-redundant-custom-hook
1601
+ * enforce custom Hooks to use at least one other hook inside
1602
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-useless-custom-hooks
1591
1603
  */
1592
1604
  "react-hooks-extra/no-redundant-custom-hook"?: Linter.RuleEntry<[
1593
1605
  ]>;
@@ -1603,6 +1615,12 @@ interface RuleOptions {
1603
1615
  */
1604
1616
  "react-hooks-extra/no-unnecessary-use-memo"?: Linter.RuleEntry<[
1605
1617
  ]>;
1618
+ /**
1619
+ * enforce custom Hooks to use at least one other hook inside
1620
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-useless-custom-hooks
1621
+ */
1622
+ "react-hooks-extra/no-useless-custom-hooks"?: Linter.RuleEntry<[
1623
+ ]>;
1606
1624
  /**
1607
1625
  * disallow function calls in 'useState' that aren't wrapped in an initializer function
1608
1626
  * @see https://eslint-react.xyz/docs/rules/hooks-extra-prefer-use-state-lazy-initialization
@@ -1662,13 +1680,13 @@ interface RuleOptions {
1662
1680
  ]>;
1663
1681
  /**
1664
1682
  * disallow duplicate props
1665
- * @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
1683
+ * @see https://eslint-react.xyz/docs/rules/no-duplicate-jsx-props
1666
1684
  */
1667
1685
  "react/jsx-no-duplicate-props"?: Linter.RuleEntry<[
1668
1686
  ]>;
1669
1687
  /**
1670
- * a helper rule to mark variables as used
1671
- * @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
1688
+ * helpes `eslint/no-unused-vars` to correctly mark JSX variables as used.
1689
+ * @see https://eslint-react.xyz/docs/rules/use-jsx-vars
1672
1690
  */
1673
1691
  "react/jsx-uses-vars"?: Linter.RuleEntry<[
1674
1692
  ]>;
@@ -1792,6 +1810,12 @@ interface RuleOptions {
1792
1810
  */
1793
1811
  "react/no-direct-mutation-state"?: Linter.RuleEntry<[
1794
1812
  ]>;
1813
+ /**
1814
+ * disallow duplicate props
1815
+ * @see https://eslint-react.xyz/docs/rules/no-duplicate-jsx-props
1816
+ */
1817
+ "react/no-duplicate-jsx-props"?: Linter.RuleEntry<[
1818
+ ]>;
1795
1819
  /**
1796
1820
  * disallow duplicate keys when rendering list
1797
1821
  * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
@@ -1947,6 +1971,12 @@ interface RuleOptions {
1947
1971
  */
1948
1972
  "react/prefer-shorthand-fragment"?: Linter.RuleEntry<[
1949
1973
  ]>;
1974
+ /**
1975
+ * helpes `eslint/no-unused-vars` to correctly mark JSX variables as used.
1976
+ * @see https://eslint-react.xyz/docs/rules/use-jsx-vars
1977
+ */
1978
+ "react/use-jsx-vars"?: Linter.RuleEntry<[
1979
+ ]>;
1950
1980
  /**
1951
1981
  * disallow confusing quantifiers
1952
1982
  * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/confusing-quantifier.html
@@ -4682,7 +4712,7 @@ interface RuleOptions {
4682
4712
  "test/padding-around-expect-groups"?: Linter.RuleEntry<[
4683
4713
  ]>;
4684
4714
  /**
4685
- * Enforce padding around afterAll blocks
4715
+ * Enforce padding around `test` blocks
4686
4716
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-test-blocks.md
4687
4717
  */
4688
4718
  "test/padding-around-test-blocks"?: Linter.RuleEntry<[
@@ -4805,7 +4835,7 @@ interface RuleOptions {
4805
4835
  "test/prefer-todo"?: Linter.RuleEntry<[
4806
4836
  ]>;
4807
4837
  /**
4808
- * Prefer `vi.mocked()` over `fn as Mock`
4838
+ * require `vi.mocked()` over `fn as Mock`
4809
4839
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-vi-mocked.md
4810
4840
  */
4811
4841
  "test/prefer-vi-mocked"?: Linter.RuleEntry<[
@@ -4844,7 +4874,7 @@ interface RuleOptions {
4844
4874
  */
4845
4875
  "test/valid-expect"?: Linter.RuleEntry<TestValidExpect>;
4846
4876
  /**
4847
- * Require promises that have expectations in their chain to be valid
4877
+ * require promises that have expectations in their chain to be valid
4848
4878
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect-in-promise.md
4849
4879
  */
4850
4880
  "test/valid-expect-in-promise"?: Linter.RuleEntry<[
@@ -13131,8 +13161,7 @@ type TestNoRestrictedViMethods = [
13131
13161
  type TestNoStandaloneExpect = [
13132
13162
  ] | [
13133
13163
  {
13134
- additionaltestblockfunctions?: string[];
13135
- [k: string]: unknown | undefined;
13164
+ additionalTestBlockFunctions?: string[];
13136
13165
  }
13137
13166
  ];
13138
13167
  type TestPreferExpectAssertions = [
@@ -13422,7 +13451,7 @@ type TsConsistentTypeAssertions = [
13422
13451
  ({
13423
13452
  assertionStyle: "never";
13424
13453
  } | {
13425
- assertionStyle: ("as" | "angle-bracket");
13454
+ assertionStyle?: ("as" | "angle-bracket");
13426
13455
  objectLiteralTypeAssertions?: ("allow" | "allow-as-parameter" | "never");
13427
13456
  })
13428
13457
  ];
package/dist/index.d.ts CHANGED
@@ -200,248 +200,248 @@ interface RuleOptions {
200
200
  "functional/type-declaration-immutability"?: Linter.RuleEntry<FunctionalTypeDeclarationImmutability>;
201
201
  /**
202
202
  * Enforce or ban the use of inline type-only markers for named imports.
203
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/consistent-type-specifier-style.md
203
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/consistent-type-specifier-style.md
204
204
  */
205
205
  "import/consistent-type-specifier-style"?: Linter.RuleEntry<ImportConsistentTypeSpecifierStyle>;
206
206
  /**
207
207
  * Ensure a default export is present, given a default import.
208
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/default.md
208
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/default.md
209
209
  */
210
210
  "import/default"?: Linter.RuleEntry<[
211
211
  ]>;
212
212
  /**
213
213
  * Enforce a leading comment with the webpackChunkName for dynamic imports.
214
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/dynamic-import-chunkname.md
214
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/dynamic-import-chunkname.md
215
215
  */
216
216
  "import/dynamic-import-chunkname"?: Linter.RuleEntry<ImportDynamicImportChunkname>;
217
217
  /**
218
218
  * Forbid any invalid exports, i.e. re-export of the same name.
219
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/export.md
219
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/export.md
220
220
  */
221
221
  "import/export"?: Linter.RuleEntry<[
222
222
  ]>;
223
223
  /**
224
224
  * Ensure all exports appear after other statements.
225
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/exports-last.md
225
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/exports-last.md
226
226
  */
227
227
  "import/exports-last"?: Linter.RuleEntry<[
228
228
  ]>;
229
229
  /**
230
230
  * Ensure consistent use of file extension within the import path.
231
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/extensions.md
231
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/extensions.md
232
232
  */
233
233
  "import/extensions"?: Linter.RuleEntry<ImportExtensions>;
234
234
  /**
235
235
  * Ensure all imports appear before other statements.
236
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/first.md
236
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/first.md
237
237
  */
238
238
  "import/first"?: Linter.RuleEntry<ImportFirst>;
239
239
  /**
240
240
  * Prefer named exports to be grouped together in a single export declaration.
241
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/group-exports.md
241
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/group-exports.md
242
242
  */
243
243
  "import/group-exports"?: Linter.RuleEntry<[
244
244
  ]>;
245
245
  /**
246
246
  * Replaced by `import-x/first`.
247
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/imports-first.md
247
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/imports-first.md
248
248
  * @deprecated
249
249
  */
250
250
  "import/imports-first"?: Linter.RuleEntry<ImportImportsFirst>;
251
251
  /**
252
252
  * Enforce the maximum number of dependencies a module can have.
253
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/max-dependencies.md
253
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/max-dependencies.md
254
254
  */
255
255
  "import/max-dependencies"?: Linter.RuleEntry<ImportMaxDependencies>;
256
256
  /**
257
257
  * Ensure named imports correspond to a named export in the remote file.
258
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/named.md
258
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/named.md
259
259
  */
260
260
  "import/named"?: Linter.RuleEntry<ImportNamed>;
261
261
  /**
262
262
  * Ensure imported namespaces contain dereferenced properties as they are dereferenced.
263
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/namespace.md
263
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/namespace.md
264
264
  */
265
265
  "import/namespace"?: Linter.RuleEntry<ImportNamespace>;
266
266
  /**
267
267
  * Enforce a newline after import statements.
268
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/newline-after-import.md
268
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/newline-after-import.md
269
269
  */
270
270
  "import/newline-after-import"?: Linter.RuleEntry<ImportNewlineAfterImport>;
271
271
  /**
272
272
  * Forbid import of modules using absolute paths.
273
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-absolute-path.md
273
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-absolute-path.md
274
274
  */
275
275
  "import/no-absolute-path"?: Linter.RuleEntry<ImportNoAbsolutePath>;
276
276
  /**
277
277
  * Forbid AMD `require` and `define` calls.
278
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-amd.md
278
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-amd.md
279
279
  */
280
280
  "import/no-amd"?: Linter.RuleEntry<[
281
281
  ]>;
282
282
  /**
283
283
  * Forbid anonymous values as default exports.
284
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-anonymous-default-export.md
284
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-anonymous-default-export.md
285
285
  */
286
286
  "import/no-anonymous-default-export"?: Linter.RuleEntry<ImportNoAnonymousDefaultExport>;
287
287
  /**
288
288
  * Forbid CommonJS `require` calls and `module.exports` or `exports.*`.
289
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-commonjs.md
289
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-commonjs.md
290
290
  */
291
291
  "import/no-commonjs"?: Linter.RuleEntry<ImportNoCommonjs>;
292
292
  /**
293
293
  * Forbid a module from importing a module with a dependency path back to itself.
294
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-cycle.md
294
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-cycle.md
295
295
  */
296
296
  "import/no-cycle"?: Linter.RuleEntry<ImportNoCycle>;
297
297
  /**
298
298
  * Forbid default exports.
299
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-default-export.md
299
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-default-export.md
300
300
  */
301
301
  "import/no-default-export"?: Linter.RuleEntry<[
302
302
  ]>;
303
303
  /**
304
304
  * Forbid imported names marked with `@deprecated` documentation tag.
305
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-deprecated.md
305
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-deprecated.md
306
306
  */
307
307
  "import/no-deprecated"?: Linter.RuleEntry<[
308
308
  ]>;
309
309
  /**
310
310
  * Forbid repeated import of the same module in multiple places.
311
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-duplicates.md
311
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-duplicates.md
312
312
  */
313
313
  "import/no-duplicates"?: Linter.RuleEntry<ImportNoDuplicates>;
314
314
  /**
315
315
  * Forbid `require()` calls with expressions.
316
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-dynamic-require.md
316
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-dynamic-require.md
317
317
  */
318
318
  "import/no-dynamic-require"?: Linter.RuleEntry<ImportNoDynamicRequire>;
319
319
  /**
320
320
  * Forbid empty named import blocks.
321
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-empty-named-blocks.md
321
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-empty-named-blocks.md
322
322
  */
323
323
  "import/no-empty-named-blocks"?: Linter.RuleEntry<[
324
324
  ]>;
325
325
  /**
326
326
  * Forbid the use of extraneous packages.
327
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-extraneous-dependencies.md
327
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-extraneous-dependencies.md
328
328
  */
329
329
  "import/no-extraneous-dependencies"?: Linter.RuleEntry<ImportNoExtraneousDependencies>;
330
330
  /**
331
331
  * Forbid import statements with CommonJS module.exports.
332
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-import-module-exports.md
332
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-import-module-exports.md
333
333
  */
334
334
  "import/no-import-module-exports"?: Linter.RuleEntry<ImportNoImportModuleExports>;
335
335
  /**
336
336
  * Forbid importing the submodules of other modules.
337
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-internal-modules.md
337
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-internal-modules.md
338
338
  */
339
339
  "import/no-internal-modules"?: Linter.RuleEntry<ImportNoInternalModules>;
340
340
  /**
341
341
  * Forbid the use of mutable exports with `var` or `let`.
342
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-mutable-exports.md
342
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-mutable-exports.md
343
343
  */
344
344
  "import/no-mutable-exports"?: Linter.RuleEntry<[
345
345
  ]>;
346
346
  /**
347
347
  * Forbid use of exported name as identifier of default export.
348
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-named-as-default.md
348
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-as-default.md
349
349
  */
350
350
  "import/no-named-as-default"?: Linter.RuleEntry<[
351
351
  ]>;
352
352
  /**
353
353
  * Forbid use of exported name as property of default export.
354
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-named-as-default-member.md
354
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-as-default-member.md
355
355
  */
356
356
  "import/no-named-as-default-member"?: Linter.RuleEntry<[
357
357
  ]>;
358
358
  /**
359
359
  * Forbid named default exports.
360
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-named-default.md
360
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-default.md
361
361
  */
362
362
  "import/no-named-default"?: Linter.RuleEntry<[
363
363
  ]>;
364
364
  /**
365
365
  * Forbid named exports.
366
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-named-export.md
366
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-export.md
367
367
  */
368
368
  "import/no-named-export"?: Linter.RuleEntry<[
369
369
  ]>;
370
370
  /**
371
371
  * Forbid namespace (a.k.a. "wildcard" `*`) imports.
372
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-namespace.md
372
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-namespace.md
373
373
  */
374
374
  "import/no-namespace"?: Linter.RuleEntry<ImportNoNamespace>;
375
375
  /**
376
376
  * Forbid Node.js builtin modules.
377
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-nodejs-modules.md
377
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-nodejs-modules.md
378
378
  */
379
379
  "import/no-nodejs-modules"?: Linter.RuleEntry<ImportNoNodejsModules>;
380
380
  /**
381
381
  * Forbid importing packages through relative paths.
382
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-relative-packages.md
382
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-relative-packages.md
383
383
  */
384
384
  "import/no-relative-packages"?: Linter.RuleEntry<ImportNoRelativePackages>;
385
385
  /**
386
386
  * Forbid importing modules from parent directories.
387
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-relative-parent-imports.md
387
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-relative-parent-imports.md
388
388
  */
389
389
  "import/no-relative-parent-imports"?: Linter.RuleEntry<ImportNoRelativeParentImports>;
390
390
  /**
391
391
  * Forbid importing a default export by a different name.
392
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-rename-default.md
392
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-rename-default.md
393
393
  */
394
394
  "import/no-rename-default"?: Linter.RuleEntry<ImportNoRenameDefault>;
395
395
  /**
396
396
  * Enforce which files can be imported in a given folder.
397
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-restricted-paths.md
397
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-restricted-paths.md
398
398
  */
399
399
  "import/no-restricted-paths"?: Linter.RuleEntry<ImportNoRestrictedPaths>;
400
400
  /**
401
401
  * Forbid a module from importing itself.
402
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-self-import.md
402
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-self-import.md
403
403
  */
404
404
  "import/no-self-import"?: Linter.RuleEntry<[
405
405
  ]>;
406
406
  /**
407
407
  * Forbid unassigned imports.
408
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-unassigned-import.md
408
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unassigned-import.md
409
409
  */
410
410
  "import/no-unassigned-import"?: Linter.RuleEntry<ImportNoUnassignedImport>;
411
411
  /**
412
412
  * Ensure imports point to a file/module that can be resolved.
413
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-unresolved.md
413
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unresolved.md
414
414
  */
415
415
  "import/no-unresolved"?: Linter.RuleEntry<ImportNoUnresolved>;
416
416
  /**
417
417
  * Forbid modules without exports, or exports without matching import in another module.
418
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-unused-modules.md
418
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unused-modules.md
419
419
  */
420
420
  "import/no-unused-modules"?: Linter.RuleEntry<ImportNoUnusedModules>;
421
421
  /**
422
422
  * Forbid unnecessary path segments in import and require statements.
423
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-useless-path-segments.md
423
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-useless-path-segments.md
424
424
  */
425
425
  "import/no-useless-path-segments"?: Linter.RuleEntry<ImportNoUselessPathSegments>;
426
426
  /**
427
427
  * Forbid webpack loader syntax in imports.
428
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/no-webpack-loader-syntax.md
428
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-webpack-loader-syntax.md
429
429
  */
430
430
  "import/no-webpack-loader-syntax"?: Linter.RuleEntry<[
431
431
  ]>;
432
432
  /**
433
433
  * Enforce a convention in module import order.
434
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/order.md
434
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/order.md
435
435
  */
436
436
  "import/order"?: Linter.RuleEntry<ImportOrder>;
437
437
  /**
438
438
  * Prefer a default export if module exports a single name or multiple names.
439
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/prefer-default-export.md
439
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/prefer-default-export.md
440
440
  */
441
441
  "import/prefer-default-export"?: Linter.RuleEntry<ImportPreferDefaultExport>;
442
442
  /**
443
443
  * Forbid potentially ambiguous parse goal (`script` vs. `module`).
444
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.1/docs/rules/unambiguous.md
444
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/unambiguous.md
445
445
  */
446
446
  "import/unambiguous"?: Linter.RuleEntry<[
447
447
  ]>;
@@ -1491,8 +1491,8 @@ interface RuleOptions {
1491
1491
  */
1492
1492
  "promise/valid-params"?: Linter.RuleEntry<PromiseValidParams>;
1493
1493
  /**
1494
- * disallow passing 'children' to void DOM elements
1495
- * @see https://eslint-react.xyz/docs/rules/dom-no-children-in-void-dom-elements
1494
+ * disallow void elements (AKA self-closing elements) from having children
1495
+ * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
1496
1496
  */
1497
1497
  "react-dom/no-children-in-void-dom-elements"?: Linter.RuleEntry<[
1498
1498
  ]>;
@@ -1562,11 +1562,23 @@ interface RuleOptions {
1562
1562
  "react-dom/no-unsafe-target-blank"?: Linter.RuleEntry<[
1563
1563
  ]>;
1564
1564
  /**
1565
- * enforce custom hooks to use at least one other hook inside
1566
- * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-redundant-custom-hook
1565
+ * disallow void elements (AKA self-closing elements) from having children
1566
+ * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
1567
+ */
1568
+ "react-dom/no-void-elements-with-children"?: Linter.RuleEntry<[
1569
+ ]>;
1570
+ /**
1571
+ * enforce custom Hooks to use at least one other hook inside
1572
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-useless-custom-hooks
1567
1573
  */
1568
1574
  "react-hooks-extra/ensure-custom-hooks-using-other-hooks"?: Linter.RuleEntry<[
1569
1575
  ]>;
1576
+ /**
1577
+ * disallow unnecessary usage of 'useCallback'
1578
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
1579
+ */
1580
+ "react-hooks-extra/ensure-use-callback-has-non-empty-deps"?: Linter.RuleEntry<[
1581
+ ]>;
1570
1582
  /**
1571
1583
  * disallow unnecessary usage of 'useMemo'
1572
1584
  * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
@@ -1586,8 +1598,8 @@ interface RuleOptions {
1586
1598
  "react-hooks-extra/no-direct-set-state-in-use-layout-effect"?: Linter.RuleEntry<[
1587
1599
  ]>;
1588
1600
  /**
1589
- * enforce custom hooks to use at least one other hook inside
1590
- * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-redundant-custom-hook
1601
+ * enforce custom Hooks to use at least one other hook inside
1602
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-useless-custom-hooks
1591
1603
  */
1592
1604
  "react-hooks-extra/no-redundant-custom-hook"?: Linter.RuleEntry<[
1593
1605
  ]>;
@@ -1603,6 +1615,12 @@ interface RuleOptions {
1603
1615
  */
1604
1616
  "react-hooks-extra/no-unnecessary-use-memo"?: Linter.RuleEntry<[
1605
1617
  ]>;
1618
+ /**
1619
+ * enforce custom Hooks to use at least one other hook inside
1620
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-useless-custom-hooks
1621
+ */
1622
+ "react-hooks-extra/no-useless-custom-hooks"?: Linter.RuleEntry<[
1623
+ ]>;
1606
1624
  /**
1607
1625
  * disallow function calls in 'useState' that aren't wrapped in an initializer function
1608
1626
  * @see https://eslint-react.xyz/docs/rules/hooks-extra-prefer-use-state-lazy-initialization
@@ -1662,13 +1680,13 @@ interface RuleOptions {
1662
1680
  ]>;
1663
1681
  /**
1664
1682
  * disallow duplicate props
1665
- * @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
1683
+ * @see https://eslint-react.xyz/docs/rules/no-duplicate-jsx-props
1666
1684
  */
1667
1685
  "react/jsx-no-duplicate-props"?: Linter.RuleEntry<[
1668
1686
  ]>;
1669
1687
  /**
1670
- * a helper rule to mark variables as used
1671
- * @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
1688
+ * helpes `eslint/no-unused-vars` to correctly mark JSX variables as used.
1689
+ * @see https://eslint-react.xyz/docs/rules/use-jsx-vars
1672
1690
  */
1673
1691
  "react/jsx-uses-vars"?: Linter.RuleEntry<[
1674
1692
  ]>;
@@ -1792,6 +1810,12 @@ interface RuleOptions {
1792
1810
  */
1793
1811
  "react/no-direct-mutation-state"?: Linter.RuleEntry<[
1794
1812
  ]>;
1813
+ /**
1814
+ * disallow duplicate props
1815
+ * @see https://eslint-react.xyz/docs/rules/no-duplicate-jsx-props
1816
+ */
1817
+ "react/no-duplicate-jsx-props"?: Linter.RuleEntry<[
1818
+ ]>;
1795
1819
  /**
1796
1820
  * disallow duplicate keys when rendering list
1797
1821
  * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
@@ -1947,6 +1971,12 @@ interface RuleOptions {
1947
1971
  */
1948
1972
  "react/prefer-shorthand-fragment"?: Linter.RuleEntry<[
1949
1973
  ]>;
1974
+ /**
1975
+ * helpes `eslint/no-unused-vars` to correctly mark JSX variables as used.
1976
+ * @see https://eslint-react.xyz/docs/rules/use-jsx-vars
1977
+ */
1978
+ "react/use-jsx-vars"?: Linter.RuleEntry<[
1979
+ ]>;
1950
1980
  /**
1951
1981
  * disallow confusing quantifiers
1952
1982
  * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/confusing-quantifier.html
@@ -4682,7 +4712,7 @@ interface RuleOptions {
4682
4712
  "test/padding-around-expect-groups"?: Linter.RuleEntry<[
4683
4713
  ]>;
4684
4714
  /**
4685
- * Enforce padding around afterAll blocks
4715
+ * Enforce padding around `test` blocks
4686
4716
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-test-blocks.md
4687
4717
  */
4688
4718
  "test/padding-around-test-blocks"?: Linter.RuleEntry<[
@@ -4805,7 +4835,7 @@ interface RuleOptions {
4805
4835
  "test/prefer-todo"?: Linter.RuleEntry<[
4806
4836
  ]>;
4807
4837
  /**
4808
- * Prefer `vi.mocked()` over `fn as Mock`
4838
+ * require `vi.mocked()` over `fn as Mock`
4809
4839
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-vi-mocked.md
4810
4840
  */
4811
4841
  "test/prefer-vi-mocked"?: Linter.RuleEntry<[
@@ -4844,7 +4874,7 @@ interface RuleOptions {
4844
4874
  */
4845
4875
  "test/valid-expect"?: Linter.RuleEntry<TestValidExpect>;
4846
4876
  /**
4847
- * Require promises that have expectations in their chain to be valid
4877
+ * require promises that have expectations in their chain to be valid
4848
4878
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect-in-promise.md
4849
4879
  */
4850
4880
  "test/valid-expect-in-promise"?: Linter.RuleEntry<[
@@ -13131,8 +13161,7 @@ type TestNoRestrictedViMethods = [
13131
13161
  type TestNoStandaloneExpect = [
13132
13162
  ] | [
13133
13163
  {
13134
- additionaltestblockfunctions?: string[];
13135
- [k: string]: unknown | undefined;
13164
+ additionalTestBlockFunctions?: string[];
13136
13165
  }
13137
13166
  ];
13138
13167
  type TestPreferExpectAssertions = [
@@ -13422,7 +13451,7 @@ type TsConsistentTypeAssertions = [
13422
13451
  ({
13423
13452
  assertionStyle: "never";
13424
13453
  } | {
13425
- assertionStyle: ("as" | "angle-bracket");
13454
+ assertionStyle?: ("as" | "angle-bracket");
13426
13455
  objectLiteralTypeAssertions?: ("allow" | "allow-as-parameter" | "never");
13427
13456
  })
13428
13457
  ];
package/dist/index.js CHANGED
@@ -3048,7 +3048,6 @@ async function typescript(options) {
3048
3048
  "ts/no-floating-promises": "error",
3049
3049
  "ts/no-for-in-array": "error",
3050
3050
  "ts/no-invalid-void-type": "error",
3051
- "ts/no-loop-func": "error",
3052
3051
  // "ts/no-meaningless-void-operator": "error",
3053
3052
  "ts/no-misused-new": "error",
3054
3053
  "ts/no-misused-promises": "error",
@@ -3139,6 +3138,8 @@ async function typescript(options) {
3139
3138
  "ts/unbound-method": ["error", { ignoreStatic: true }],
3140
3139
  "ts/unified-signatures": ["error", { ignoreDifferentlyNamedParameters: true }],
3141
3140
  "ts/use-unknown-in-catch-callback-variable": "error",
3141
+ "no-loop-func": "off",
3142
+ "ts/no-loop-func": "error",
3142
3143
  "no-use-before-define": "off",
3143
3144
  "ts/no-use-before-define": [
3144
3145
  "error",
@@ -3646,6 +3647,20 @@ async function vue(options) {
3646
3647
  "vue-i18n/no-missing-keys": i18n === false ? "off" : "error",
3647
3648
  "vue-i18n/no-raw-text": i18n === false ? "off" : "warn",
3648
3649
  "vue-i18n/no-v-html": i18n === false ? "off" : "error",
3650
+ "vue-i18n/no-deprecated-i18n-component": i18n === false ? "off" : "error",
3651
+ "vue-i18n/no-deprecated-i18n-place-attr": i18n === false ? "off" : "error",
3652
+ "vue-i18n/no-deprecated-i18n-places-prop": i18n === false ? "off" : "error",
3653
+ "vue-i18n/no-deprecated-modulo-syntax": i18n === false ? "off" : "error",
3654
+ "vue-i18n/no-deprecated-tc": i18n === false ? "off" : "error",
3655
+ "vue-i18n/no-deprecated-v-t": i18n === false ? "off" : "error",
3656
+ "vue-i18n/no-i18n-t-path-prop": i18n === false ? "off" : "error",
3657
+ "vue-i18n/valid-message-syntax": i18n === false ? "off" : "error",
3658
+ "vue-i18n/prefer-linked-key-with-paren": i18n === false ? "off" : "error",
3659
+ "vue-i18n/key-format-style": i18n === false ? "off" : ["error", "kebab-case"],
3660
+ "vue-i18n/no-dynamic-keys": i18n === false ? "off" : "error",
3661
+ "vue-i18n/no-unknown-locale": i18n === false ? "off" : "error",
3662
+ // "vue-i18n/no-missing-keys-in-other-locales": i18n === false ? "off" : "error",
3663
+ // "@intlify/vue-i18n/no-unused-keys": i18n === false ? "off" : "error",
3649
3664
  "vue/array-bracket-spacing": [stylisticEnforcement, "never"],
3650
3665
  "vue/arrow-spacing": [stylisticEnforcement, { after: true, before: true }],
3651
3666
  "vue/block-spacing": [stylisticEnforcement, "always"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rebeccastevens/eslint-config",
3
- "version": "3.5.0",
3
+ "version": "3.5.2",
4
4
  "description": "My ESLint shareable config.",
5
5
  "keywords": [
6
6
  "eslint config"
@@ -68,15 +68,15 @@
68
68
  },
69
69
  "dependencies": {
70
70
  "@antfu/install-pkg": "^0.5.0",
71
- "@clack/prompts": "^0.8.2",
71
+ "@clack/prompts": "^0.9.0",
72
72
  "globals": "^15.14.0",
73
73
  "local-pkg": "^0.5.1"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@commitlint/cli": "19.6.1",
77
77
  "@commitlint/config-conventional": "19.6.0",
78
- "@cspell/dict-cryptocurrencies": "5.0.3",
79
- "@eslint-react/eslint-plugin": "1.20.1",
78
+ "@cspell/dict-cryptocurrencies": "5.0.4",
79
+ "@eslint-react/eslint-plugin": "1.23.0",
80
80
  "@eslint/compat": "1.2.4",
81
81
  "@intlify/eslint-plugin-vue-i18n": "3.2.0",
82
82
  "@rollup/plugin-typescript": "12.1.2",
@@ -89,12 +89,12 @@
89
89
  "@stylistic/eslint-plugin": "2.12.1",
90
90
  "@stylistic/eslint-plugin-migrate": "2.12.1",
91
91
  "@types/eslint": "9.6.1",
92
- "@types/node": "22.10.2",
93
- "@typescript-eslint/eslint-plugin": "8.18.1",
94
- "@typescript-eslint/parser": "8.18.1",
95
- "@typescript-eslint/utils": "8.18.1",
96
- "@unocss/eslint-plugin": "0.65.1",
97
- "@vitest/eslint-plugin": "1.1.18",
92
+ "@types/node": "22.10.3",
93
+ "@typescript-eslint/eslint-plugin": "8.19.0",
94
+ "@typescript-eslint/parser": "8.19.0",
95
+ "@typescript-eslint/utils": "8.19.0",
96
+ "@unocss/eslint-plugin": "0.65.3",
97
+ "@vitest/eslint-plugin": "1.1.22",
98
98
  "commitizen": "4.3.1",
99
99
  "cspell": "8.17.1",
100
100
  "cz-conventional-changelog": "3.3.0",
@@ -108,12 +108,12 @@
108
108
  "eslint-plugin-format": "0.1.3",
109
109
  "eslint-plugin-functional": "7.2.0",
110
110
  "eslint-plugin-i18next": "6.1.1",
111
- "eslint-plugin-import-x": "4.5.1",
111
+ "eslint-plugin-import-x": "4.6.1",
112
112
  "eslint-plugin-jsdoc": "50.6.1",
113
113
  "eslint-plugin-jsonc": "2.18.2",
114
114
  "eslint-plugin-jsx-a11y": "6.10.2",
115
115
  "eslint-plugin-markdown": "5.1.0",
116
- "eslint-plugin-n": "17.15.0",
116
+ "eslint-plugin-n": "17.15.1",
117
117
  "eslint-plugin-no-only-tests": "3.3.0",
118
118
  "eslint-plugin-optimize-regex": "1.2.1",
119
119
  "eslint-plugin-prettier": "5.2.1",
@@ -133,12 +133,12 @@
133
133
  "husky": "9.1.7",
134
134
  "jiti": "2.4.2",
135
135
  "jsonc-eslint-parser": "2.4.0",
136
- "knip": "5.41.0",
137
- "lint-staged": "15.2.11",
138
- "markdownlint-cli2": "0.16.0",
136
+ "knip": "5.41.1",
137
+ "lint-staged": "15.3.0",
138
+ "markdownlint-cli2": "0.17.1",
139
139
  "prettier": "3.4.2",
140
140
  "rimraf": "6.0.1",
141
- "rollup": "4.28.1",
141
+ "rollup": "4.29.1",
142
142
  "rollup-plugin-deassert": "1.3.0",
143
143
  "rollup-plugin-dts-bundle-generator-2": "2.0.0",
144
144
  "semantic-release": "24.2.0",
@@ -323,7 +323,7 @@
323
323
  "optional": true
324
324
  }
325
325
  },
326
- "packageManager": "pnpm@9.15.0",
326
+ "packageManager": "pnpm@9.15.2",
327
327
  "engines": {
328
328
  "node": ">=20.0.0"
329
329
  }