@rebeccastevens/eslint-config 3.6.3 → 3.7.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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
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.7.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.6.3...v3.7.0) (2025-03-08)
5
+
6
+
7
+ ### Features
8
+
9
+ * update ([c5821e8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c5821e827ccec22a40edc6492e221ac001cae070))
10
+
4
11
  ## [3.6.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.6.2...v3.6.3) (2025-02-24)
5
12
 
6
13
 
package/dist/index.cjs CHANGED
@@ -58,7 +58,7 @@ async function loadPackages(packageIds) {
58
58
  await installPackages(missing);
59
59
  }
60
60
  // eslint-disable-next-line ts/no-explicit-any, ts/no-unsafe-return
61
- return Promise.all(packageIds.map((id) => interopDefault(import(id))));
61
+ return Promise.all(packageIds.map((id) => interopDefault(import(__rewriteRelativeImportExtension(id)))));
62
62
  }
63
63
  const mut_installPackagesToLoad = new Set();
64
64
  let mut_installPackagesAction = null;
@@ -1915,7 +1915,7 @@ async function promise() {
1915
1915
  promise: pluginPromise,
1916
1916
  },
1917
1917
  rules: {
1918
- "promise/avoid-new": "warn",
1918
+ // "promise/avoid-new": "warn",
1919
1919
  "promise/no-callback-in-promise": "error",
1920
1920
  "promise/no-nesting": "error",
1921
1921
  "promise/no-new-statics": "error",
@@ -2900,7 +2900,14 @@ async function typescript(options) {
2900
2900
  "ts/explicit-member-accessibility": ["error", { accessibility: "explicit" }],
2901
2901
  "ts/no-array-delete": "error",
2902
2902
  "ts/no-base-to-string": "error",
2903
- "ts/no-confusing-void-expression": ["error", { ignoreArrowShorthand: false, ignoreVoidOperator: true }],
2903
+ "ts/no-confusing-void-expression": [
2904
+ "error",
2905
+ {
2906
+ ignoreArrowShorthand: false,
2907
+ ignoreVoidOperator: true,
2908
+ ignoreVoidReturningFunctions: true,
2909
+ },
2910
+ ],
2904
2911
  "ts/no-duplicate-enum-values": "error",
2905
2912
  "ts/no-duplicate-type-constituents": "error",
2906
2913
  "ts/no-dynamic-delete": "error",
@@ -3369,7 +3376,6 @@ async function unocss(options) {
3369
3376
  ];
3370
3377
  }
3371
3378
 
3372
- /* eslint-enable ts/naming-convention */
3373
3379
  const NuxtPackages = ["nuxt"];
3374
3380
  async function vue(options) {
3375
3381
  const { files, i18n, overrides, parserOptions, stylistic, typescript, vueVersion } = options;
@@ -3449,17 +3455,9 @@ async function vue(options) {
3449
3455
  },
3450
3456
  rules: {
3451
3457
  ...pluginVue.configs.base.rules,
3452
- ...(vueVersion === 2
3453
- ? {
3454
- ...pluginVue.configs.essential.rules,
3455
- ...pluginVue.configs["strongly-recommended"].rules,
3456
- ...pluginVue.configs.recommended.rules,
3457
- }
3458
- : {
3459
- ...pluginVue.configs["vue3-essential"].rules,
3460
- ...pluginVue.configs["vue3-strongly-recommended"].rules,
3461
- ...pluginVue.configs["vue3-recommended"].rules,
3462
- }),
3458
+ ...pluginVue.configs[vueVersion === 2 ? "flat/vue2-recommended" : "flat/recommended"]
3459
+ .map((config) => config.rules ?? {})
3460
+ .reduce((acc, rules) => Object.assign(acc, rules), {}),
3463
3461
  "node/prefer-global/process": "off",
3464
3462
  "vue/block-order": [
3465
3463
  "error",
@@ -3527,7 +3525,10 @@ async function vue(options) {
3527
3525
  "vue-i18n/no-dynamic-keys": i18n === false ? "off" : "error",
3528
3526
  "vue-i18n/no-unknown-locale": i18n === false ? "off" : "error",
3529
3527
  // "vue-i18n/no-missing-keys-in-other-locales": i18n === false ? "off" : "error",
3530
- // "@intlify/vue-i18n/no-unused-keys": i18n === false ? "off" : "error",
3528
+ // "vue-i18n/no-unused-keys": i18n === false ? "off" : "error",
3529
+ // "vue-i18n/prefer-sfc-lang-attr": i18n === false ? "off" : "error",
3530
+ // "vue-i18n/no-duplicate-keys-in-locale": i18n === false ? "off" : "error",
3531
+ // "vue-i18n/sfc-locale-attr": i18n === false ? "off" : "error",
3531
3532
  "vue/array-bracket-spacing": [stylisticEnforcement, "never"],
3532
3533
  "vue/arrow-spacing": [stylisticEnforcement, { after: true, before: true }],
3533
3534
  "vue/block-spacing": [stylisticEnforcement, "always"],
package/dist/index.d.cts CHANGED
@@ -1514,6 +1514,12 @@ interface RuleOptions {
1514
1514
  */
1515
1515
  "react-dom/no-find-dom-node"?: Linter.RuleEntry<[
1516
1516
  ]>;
1517
+ /**
1518
+ * warns against using `flushSync`
1519
+ * @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
1520
+ */
1521
+ "react-dom/no-flush-sync"?: Linter.RuleEntry<[
1522
+ ]>;
1517
1523
  /**
1518
1524
  * enforce that button component have an explicit 'type' attribute
1519
1525
  * @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
@@ -1639,10 +1645,16 @@ interface RuleOptions {
1639
1645
  "react-hooks/rules-of-hooks"?: Linter.RuleEntry<[
1640
1646
  ]>;
1641
1647
  /**
1642
- * enforce component naming convention to 'PascalCase' or 'CONSTANT_CASE'
1648
+ * enforce naming convention for components
1643
1649
  * @see https://eslint-react.xyz/docs/rules/naming-convention-component-name
1644
1650
  */
1645
1651
  "react-naming-convention/component-name"?: Linter.RuleEntry<ReactNamingConventionComponentName>;
1652
+ /**
1653
+ * enforce context name to be a valid component name with the suffix 'Context'
1654
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-context-name
1655
+ */
1656
+ "react-naming-convention/context-name"?: Linter.RuleEntry<[
1657
+ ]>;
1646
1658
  /**
1647
1659
  * enforce naming convention for JSX filenames
1648
1660
  * @see https://eslint-react.xyz/docs/rules/naming-convention-filename
@@ -1697,7 +1709,7 @@ interface RuleOptions {
1697
1709
  "react/no-access-state-in-setstate"?: Linter.RuleEntry<[
1698
1710
  ]>;
1699
1711
  /**
1700
- * disallow using Array index as 'key'
1712
+ * disallow using an item's index in the array as its key
1701
1713
  * @see https://eslint-react.xyz/docs/rules/no-array-index-key
1702
1714
  */
1703
1715
  "react/no-array-index-key"?: Linter.RuleEntry<[
@@ -1769,25 +1781,25 @@ interface RuleOptions {
1769
1781
  "react/no-complicated-conditional-rendering"?: Linter.RuleEntry<[
1770
1782
  ]>;
1771
1783
  /**
1772
- * disallow using 'componentWillMount'
1784
+ * replace 'componentWillMount' with 'UNSAFE_componentWillMount'
1773
1785
  * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
1774
1786
  */
1775
1787
  "react/no-component-will-mount"?: Linter.RuleEntry<[
1776
1788
  ]>;
1777
1789
  /**
1778
- * disallow using 'componentWillReceiveProps'
1790
+ * replace 'componentWillReceiveProps' with 'UNSAFE_componentWillReceiveProps'
1779
1791
  * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
1780
1792
  */
1781
1793
  "react/no-component-will-receive-props"?: Linter.RuleEntry<[
1782
1794
  ]>;
1783
1795
  /**
1784
- * disallow using 'componentWillReceiveProps'
1796
+ * replace 'componentWillUpdate' with 'UNSAFE_componentWillUpdate'
1785
1797
  * @see https://eslint-react.xyz/docs/rules/no-component-will-update
1786
1798
  */
1787
1799
  "react/no-component-will-update"?: Linter.RuleEntry<[
1788
1800
  ]>;
1789
1801
  /**
1790
- * disallow the use of '<Context.Provider>'
1802
+ * replace '<Context.Provider>' with '<Context>'
1791
1803
  * @see https://eslint-react.xyz/docs/rules/no-context-provider
1792
1804
  */
1793
1805
  "react/no-context-provider"?: Linter.RuleEntry<[
@@ -1823,7 +1835,7 @@ interface RuleOptions {
1823
1835
  "react/no-duplicate-key"?: Linter.RuleEntry<[
1824
1836
  ]>;
1825
1837
  /**
1826
- * disallow the use of 'forwardRef'
1838
+ * replace 'forwardRef' with passing 'ref' as a prop
1827
1839
  * @see https://eslint-react.xyz/docs/rules/no-forward-ref
1828
1840
  */
1829
1841
  "react/no-forward-ref"?: Linter.RuleEntry<[
@@ -1943,7 +1955,7 @@ interface RuleOptions {
1943
1955
  "react/no-unused-state"?: Linter.RuleEntry<[
1944
1956
  ]>;
1945
1957
  /**
1946
- * disallow the use of 'useContext'
1958
+ * replace 'useContext' with 'use'
1947
1959
  * @see https://eslint-react.xyz/docs/rules/no-use-context
1948
1960
  */
1949
1961
  "react/no-use-context"?: Linter.RuleEntry<[
@@ -1972,13 +1984,13 @@ interface RuleOptions {
1972
1984
  "react/prefer-read-only-props"?: Linter.RuleEntry<[
1973
1985
  ]>;
1974
1986
  /**
1975
- * enforce using shorthand boolean attributes
1987
+ * enforce the use of shorthand syntax for boolean attributes
1976
1988
  * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-boolean
1977
1989
  */
1978
1990
  "react/prefer-shorthand-boolean"?: Linter.RuleEntry<[
1979
1991
  ]>;
1980
1992
  /**
1981
- * enforce using fragment syntax instead of 'Fragment' component
1993
+ * enforce the use of shorthand syntax for fragments
1982
1994
  * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-fragment
1983
1995
  */
1984
1996
  "react/prefer-shorthand-fragment"?: Linter.RuleEntry<[
@@ -6559,12 +6571,6 @@ interface RuleOptions {
6559
6571
  * @see https://eslint.vuejs.org/rules/component-options-name-casing.html
6560
6572
  */
6561
6573
  "vue/component-options-name-casing"?: Linter.RuleEntry<VueComponentOptionsNameCasing>;
6562
- /**
6563
- * enforce order of component top-level elements
6564
- * @see https://eslint.vuejs.org/rules/component-tags-order.html
6565
- * @deprecated
6566
- */
6567
- "vue/component-tags-order"?: Linter.RuleEntry<VueComponentTagsOrder>;
6568
6574
  /**
6569
6575
  * enforce specific casing for custom event name
6570
6576
  * @see https://eslint.vuejs.org/rules/custom-event-name-casing.html
@@ -6631,7 +6637,7 @@ interface RuleOptions {
6631
6637
  */
6632
6638
  "vue/html-closing-bracket-spacing"?: Linter.RuleEntry<VueHtmlClosingBracketSpacing>;
6633
6639
  /**
6634
- * enforce unified line brake in HTML comments
6640
+ * enforce unified line break in HTML comments
6635
6641
  * @see https://eslint.vuejs.org/rules/html-comment-content-newline.html
6636
6642
  */
6637
6643
  "vue/html-comment-content-newline"?: Linter.RuleEntry<VueHtmlCommentContentNewline>;
@@ -6970,11 +6976,15 @@ interface RuleOptions {
6970
6976
  */
6971
6977
  "vue/no-extra-parens"?: Linter.RuleEntry<VueNoExtraParens>;
6972
6978
  /**
6973
- * require valid keys in model option
6974
- * @see https://eslint.vuejs.org/rules/no-invalid-model-keys.html
6975
- * @deprecated
6979
+ * Disallow shorthand type conversions in `<template>`
6980
+ * @see https://eslint.vuejs.org/rules/no-implicit-coercion.html
6981
+ */
6982
+ "vue/no-implicit-coercion"?: Linter.RuleEntry<VueNoImplicitCoercion>;
6983
+ /**
6984
+ * disallow importing Vue compiler macros
6985
+ * @see https://eslint.vuejs.org/rules/no-import-compiler-macros.html
6976
6986
  */
6977
- "vue/no-invalid-model-keys"?: Linter.RuleEntry<[
6987
+ "vue/no-import-compiler-macros"?: Linter.RuleEntry<[
6978
6988
  ]>;
6979
6989
  /**
6980
6990
  * disallow irregular whitespace in `.vue` files
@@ -7004,13 +7014,13 @@ interface RuleOptions {
7004
7014
  */
7005
7015
  "vue/no-multi-spaces"?: Linter.RuleEntry<VueNoMultiSpaces>;
7006
7016
  /**
7007
- * disallow to pass multiple objects into array to class
7017
+ * disallow passing multiple objects in an array to class
7008
7018
  * @see https://eslint.vuejs.org/rules/no-multiple-objects-in-class.html
7009
7019
  */
7010
7020
  "vue/no-multiple-objects-in-class"?: Linter.RuleEntry<[
7011
7021
  ]>;
7012
7022
  /**
7013
- * disallow to pass multiple arguments to scoped slots
7023
+ * disallow passing multiple arguments to scoped slots
7014
7024
  * @see https://eslint.vuejs.org/rules/no-multiple-slot-args.html
7015
7025
  */
7016
7026
  "vue/no-multiple-slot-args"?: Linter.RuleEntry<[
@@ -7042,13 +7052,6 @@ interface RuleOptions {
7042
7052
  */
7043
7053
  "vue/no-ref-as-operand"?: Linter.RuleEntry<[
7044
7054
  ]>;
7045
- /**
7046
- * disallow usages of ref objects that can lead to loss of reactivity
7047
- * @see https://eslint.vuejs.org/rules/no-ref-object-destructure.html
7048
- * @deprecated
7049
- */
7050
- "vue/no-ref-object-destructure"?: Linter.RuleEntry<[
7051
- ]>;
7052
7055
  /**
7053
7056
  * disallow usages of ref objects that can lead to loss of reactivity
7054
7057
  * @see https://eslint.vuejs.org/rules/no-ref-object-reactivity-loss.html
@@ -7141,13 +7144,6 @@ interface RuleOptions {
7141
7144
  */
7142
7145
  "vue/no-root-v-if"?: Linter.RuleEntry<[
7143
7146
  ]>;
7144
- /**
7145
- * disallow usages that lose the reactivity of `props` passed to `setup`
7146
- * @see https://eslint.vuejs.org/rules/no-setup-props-destructure.html
7147
- * @deprecated
7148
- */
7149
- "vue/no-setup-props-destructure"?: Linter.RuleEntry<[
7150
- ]>;
7151
7147
  /**
7152
7148
  * disallow usages that lose the reactivity of `props` passed to `setup`
7153
7149
  * @see https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html
@@ -7295,6 +7291,7 @@ interface RuleOptions {
7295
7291
  /**
7296
7292
  * disallow `key` attribute on `<template v-for>`
7297
7293
  * @see https://eslint.vuejs.org/rules/no-v-for-template-key.html
7294
+ * @deprecated
7298
7295
  */
7299
7296
  "vue/no-v-for-template-key"?: Linter.RuleEntry<[
7300
7297
  ]>;
@@ -7313,6 +7310,7 @@ interface RuleOptions {
7313
7310
  /**
7314
7311
  * disallow adding an argument to `v-model` used in custom component
7315
7312
  * @see https://eslint.vuejs.org/rules/no-v-model-argument.html
7313
+ * @deprecated
7316
7314
  */
7317
7315
  "vue/no-v-model-argument"?: Linter.RuleEntry<[
7318
7316
  ]>;
@@ -7571,13 +7569,6 @@ interface RuleOptions {
7571
7569
  * @see https://eslint.vuejs.org/rules/script-indent.html
7572
7570
  */
7573
7571
  "vue/script-indent"?: Linter.RuleEntry<VueScriptIndent>;
7574
- /**
7575
- * prevent `<script setup>` variables used in `<template>` to be marked as unused
7576
- * @see https://eslint.vuejs.org/rules/script-setup-uses-vars.html
7577
- * @deprecated
7578
- */
7579
- "vue/script-setup-uses-vars"?: Linter.RuleEntry<[
7580
- ]>;
7581
7572
  /**
7582
7573
  * require a line break before and after the contents of a singleline element
7583
7574
  * @see https://eslint.vuejs.org/rules/singleline-html-element-content-newline.html
@@ -7651,12 +7642,6 @@ interface RuleOptions {
7651
7642
  * @see https://eslint.vuejs.org/rules/v-on-event-hyphenation.html
7652
7643
  */
7653
7644
  "vue/v-on-event-hyphenation"?: Linter.RuleEntry<VueVOnEventHyphenation>;
7654
- /**
7655
- * enforce or forbid parentheses after method calls without arguments in `v-on` directives
7656
- * @see https://eslint.vuejs.org/rules/v-on-function-call.html
7657
- * @deprecated
7658
- */
7659
- "vue/v-on-function-call"?: Linter.RuleEntry<VueVOnFunctionCall>;
7660
7645
  /**
7661
7646
  * enforce writing style for handlers in `v-on` directives
7662
7647
  * @see https://eslint.vuejs.org/rules/v-on-handler-style.html
@@ -7699,6 +7684,7 @@ interface RuleOptions {
7699
7684
  /**
7700
7685
  * require valid keys in model option
7701
7686
  * @see https://eslint.vuejs.org/rules/valid-model-definition.html
7687
+ * @deprecated
7702
7688
  */
7703
7689
  "vue/valid-model-definition"?: Linter.RuleEntry<[
7704
7690
  ]>;
@@ -7723,6 +7709,7 @@ interface RuleOptions {
7723
7709
  /**
7724
7710
  * enforce valid `.sync` modifier on `v-bind` directives
7725
7711
  * @see https://eslint.vuejs.org/rules/valid-v-bind-sync.html
7712
+ * @deprecated
7726
7713
  */
7727
7714
  "vue/valid-v-bind-sync"?: Linter.RuleEntry<[
7728
7715
  ]>;
@@ -13440,6 +13427,7 @@ type TsExplicitModuleBoundaryTypes = [
13440
13427
  allowDirectConstAssertionInArrowFunctions?: boolean;
13441
13428
  allowedNames?: string[];
13442
13429
  allowHigherOrderFunctions?: boolean;
13430
+ allowOverloadFunctions?: boolean;
13443
13431
  allowTypedFunctionExpressions?: boolean;
13444
13432
  }
13445
13433
  ];
@@ -14482,6 +14470,7 @@ type TsUnifiedSignatures = [
14482
14470
  ] | [
14483
14471
  {
14484
14472
  ignoreDifferentlyNamedParameters?: boolean;
14473
+ ignoreOverloadsWithDifferentJSDoc?: boolean;
14485
14474
  }
14486
14475
  ];
14487
14476
  type UnicornBetterRegex = [
@@ -14932,13 +14921,7 @@ type VueComponentOptionsNameCasing = [
14932
14921
  ] | [
14933
14922
  ("camelCase" | "kebab-case" | "PascalCase")
14934
14923
  ];
14935
- type VueComponentTagsOrder = [
14936
- ] | [
14937
- {
14938
- order?: (string | string[])[];
14939
- }
14940
- ];
14941
- type VueCustomEventNameCasing = ([
14924
+ type VueCustomEventNameCasing = [
14942
14925
  ] | [
14943
14926
  ("kebab-case" | "camelCase")
14944
14927
  ] | [
@@ -14946,12 +14929,7 @@ type VueCustomEventNameCasing = ([
14946
14929
  {
14947
14930
  ignores?: string[];
14948
14931
  }
14949
- ] | [
14950
- ] | [
14951
- {
14952
- ignores?: string[];
14953
- }
14954
- ]);
14932
+ ];
14955
14933
  type VueDefineEmitsDeclaration = [
14956
14934
  ] | [
14957
14935
  ("type-based" | "type-literal" | "runtime")
@@ -15717,6 +15695,16 @@ type VueNoExtraParens = ([
15717
15695
  allowParensAfterCommentPattern?: string;
15718
15696
  }
15719
15697
  ]);
15698
+ type VueNoImplicitCoercion = [
15699
+ ] | [
15700
+ {
15701
+ boolean?: boolean;
15702
+ number?: boolean;
15703
+ string?: boolean;
15704
+ disallowTemplateShorthand?: boolean;
15705
+ allow?: ("~" | "!!" | "+" | "- -" | "-" | "*")[];
15706
+ }
15707
+ ];
15720
15708
  type VueNoIrregularWhitespace = [
15721
15709
  ] | [
15722
15710
  {
@@ -16080,10 +16068,20 @@ type VuePaddingLinesInComponentDefinition = [
16080
16068
  type VuePreferTrueAttributeShorthand = [
16081
16069
  ] | [
16082
16070
  ("always" | "never")
16071
+ ] | [
16072
+ ("always" | "never"),
16073
+ {
16074
+ except?: string[];
16075
+ }
16083
16076
  ];
16084
16077
  type VuePropNameCasing = [
16085
16078
  ] | [
16086
16079
  ("camelCase" | "snake_case")
16080
+ ] | [
16081
+ ("camelCase" | "snake_case"),
16082
+ {
16083
+ ignoreProps?: string[];
16084
+ }
16087
16085
  ];
16088
16086
  type VueQuoteProps = ([
16089
16087
  ] | [
@@ -16184,7 +16182,6 @@ type VueSortKeys = [
16184
16182
  ignoreGrandchildrenOf?: unknown[];
16185
16183
  minKeys?: number;
16186
16184
  natural?: boolean;
16187
- runOutsideVue?: boolean;
16188
16185
  }
16189
16186
  ];
16190
16187
  type VueSpaceInParens = [
@@ -16248,15 +16245,6 @@ type VueVOnEventHyphenation = [
16248
16245
  ignoreTags?: string[];
16249
16246
  }
16250
16247
  ];
16251
- type VueVOnFunctionCall = [
16252
- ] | [
16253
- ("always" | "never")
16254
- ] | [
16255
- ("always" | "never"),
16256
- {
16257
- ignoreIncludesComment?: boolean;
16258
- }
16259
- ];
16260
16248
  type VueVOnHandlerStyle = [
16261
16249
  ] | [
16262
16250
  (("inline" | "inline-function") | [
package/dist/index.d.ts CHANGED
@@ -1514,6 +1514,12 @@ interface RuleOptions {
1514
1514
  */
1515
1515
  "react-dom/no-find-dom-node"?: Linter.RuleEntry<[
1516
1516
  ]>;
1517
+ /**
1518
+ * warns against using `flushSync`
1519
+ * @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
1520
+ */
1521
+ "react-dom/no-flush-sync"?: Linter.RuleEntry<[
1522
+ ]>;
1517
1523
  /**
1518
1524
  * enforce that button component have an explicit 'type' attribute
1519
1525
  * @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
@@ -1639,10 +1645,16 @@ interface RuleOptions {
1639
1645
  "react-hooks/rules-of-hooks"?: Linter.RuleEntry<[
1640
1646
  ]>;
1641
1647
  /**
1642
- * enforce component naming convention to 'PascalCase' or 'CONSTANT_CASE'
1648
+ * enforce naming convention for components
1643
1649
  * @see https://eslint-react.xyz/docs/rules/naming-convention-component-name
1644
1650
  */
1645
1651
  "react-naming-convention/component-name"?: Linter.RuleEntry<ReactNamingConventionComponentName>;
1652
+ /**
1653
+ * enforce context name to be a valid component name with the suffix 'Context'
1654
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-context-name
1655
+ */
1656
+ "react-naming-convention/context-name"?: Linter.RuleEntry<[
1657
+ ]>;
1646
1658
  /**
1647
1659
  * enforce naming convention for JSX filenames
1648
1660
  * @see https://eslint-react.xyz/docs/rules/naming-convention-filename
@@ -1697,7 +1709,7 @@ interface RuleOptions {
1697
1709
  "react/no-access-state-in-setstate"?: Linter.RuleEntry<[
1698
1710
  ]>;
1699
1711
  /**
1700
- * disallow using Array index as 'key'
1712
+ * disallow using an item's index in the array as its key
1701
1713
  * @see https://eslint-react.xyz/docs/rules/no-array-index-key
1702
1714
  */
1703
1715
  "react/no-array-index-key"?: Linter.RuleEntry<[
@@ -1769,25 +1781,25 @@ interface RuleOptions {
1769
1781
  "react/no-complicated-conditional-rendering"?: Linter.RuleEntry<[
1770
1782
  ]>;
1771
1783
  /**
1772
- * disallow using 'componentWillMount'
1784
+ * replace 'componentWillMount' with 'UNSAFE_componentWillMount'
1773
1785
  * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
1774
1786
  */
1775
1787
  "react/no-component-will-mount"?: Linter.RuleEntry<[
1776
1788
  ]>;
1777
1789
  /**
1778
- * disallow using 'componentWillReceiveProps'
1790
+ * replace 'componentWillReceiveProps' with 'UNSAFE_componentWillReceiveProps'
1779
1791
  * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
1780
1792
  */
1781
1793
  "react/no-component-will-receive-props"?: Linter.RuleEntry<[
1782
1794
  ]>;
1783
1795
  /**
1784
- * disallow using 'componentWillReceiveProps'
1796
+ * replace 'componentWillUpdate' with 'UNSAFE_componentWillUpdate'
1785
1797
  * @see https://eslint-react.xyz/docs/rules/no-component-will-update
1786
1798
  */
1787
1799
  "react/no-component-will-update"?: Linter.RuleEntry<[
1788
1800
  ]>;
1789
1801
  /**
1790
- * disallow the use of '<Context.Provider>'
1802
+ * replace '<Context.Provider>' with '<Context>'
1791
1803
  * @see https://eslint-react.xyz/docs/rules/no-context-provider
1792
1804
  */
1793
1805
  "react/no-context-provider"?: Linter.RuleEntry<[
@@ -1823,7 +1835,7 @@ interface RuleOptions {
1823
1835
  "react/no-duplicate-key"?: Linter.RuleEntry<[
1824
1836
  ]>;
1825
1837
  /**
1826
- * disallow the use of 'forwardRef'
1838
+ * replace 'forwardRef' with passing 'ref' as a prop
1827
1839
  * @see https://eslint-react.xyz/docs/rules/no-forward-ref
1828
1840
  */
1829
1841
  "react/no-forward-ref"?: Linter.RuleEntry<[
@@ -1943,7 +1955,7 @@ interface RuleOptions {
1943
1955
  "react/no-unused-state"?: Linter.RuleEntry<[
1944
1956
  ]>;
1945
1957
  /**
1946
- * disallow the use of 'useContext'
1958
+ * replace 'useContext' with 'use'
1947
1959
  * @see https://eslint-react.xyz/docs/rules/no-use-context
1948
1960
  */
1949
1961
  "react/no-use-context"?: Linter.RuleEntry<[
@@ -1972,13 +1984,13 @@ interface RuleOptions {
1972
1984
  "react/prefer-read-only-props"?: Linter.RuleEntry<[
1973
1985
  ]>;
1974
1986
  /**
1975
- * enforce using shorthand boolean attributes
1987
+ * enforce the use of shorthand syntax for boolean attributes
1976
1988
  * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-boolean
1977
1989
  */
1978
1990
  "react/prefer-shorthand-boolean"?: Linter.RuleEntry<[
1979
1991
  ]>;
1980
1992
  /**
1981
- * enforce using fragment syntax instead of 'Fragment' component
1993
+ * enforce the use of shorthand syntax for fragments
1982
1994
  * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-fragment
1983
1995
  */
1984
1996
  "react/prefer-shorthand-fragment"?: Linter.RuleEntry<[
@@ -6559,12 +6571,6 @@ interface RuleOptions {
6559
6571
  * @see https://eslint.vuejs.org/rules/component-options-name-casing.html
6560
6572
  */
6561
6573
  "vue/component-options-name-casing"?: Linter.RuleEntry<VueComponentOptionsNameCasing>;
6562
- /**
6563
- * enforce order of component top-level elements
6564
- * @see https://eslint.vuejs.org/rules/component-tags-order.html
6565
- * @deprecated
6566
- */
6567
- "vue/component-tags-order"?: Linter.RuleEntry<VueComponentTagsOrder>;
6568
6574
  /**
6569
6575
  * enforce specific casing for custom event name
6570
6576
  * @see https://eslint.vuejs.org/rules/custom-event-name-casing.html
@@ -6631,7 +6637,7 @@ interface RuleOptions {
6631
6637
  */
6632
6638
  "vue/html-closing-bracket-spacing"?: Linter.RuleEntry<VueHtmlClosingBracketSpacing>;
6633
6639
  /**
6634
- * enforce unified line brake in HTML comments
6640
+ * enforce unified line break in HTML comments
6635
6641
  * @see https://eslint.vuejs.org/rules/html-comment-content-newline.html
6636
6642
  */
6637
6643
  "vue/html-comment-content-newline"?: Linter.RuleEntry<VueHtmlCommentContentNewline>;
@@ -6970,11 +6976,15 @@ interface RuleOptions {
6970
6976
  */
6971
6977
  "vue/no-extra-parens"?: Linter.RuleEntry<VueNoExtraParens>;
6972
6978
  /**
6973
- * require valid keys in model option
6974
- * @see https://eslint.vuejs.org/rules/no-invalid-model-keys.html
6975
- * @deprecated
6979
+ * Disallow shorthand type conversions in `<template>`
6980
+ * @see https://eslint.vuejs.org/rules/no-implicit-coercion.html
6981
+ */
6982
+ "vue/no-implicit-coercion"?: Linter.RuleEntry<VueNoImplicitCoercion>;
6983
+ /**
6984
+ * disallow importing Vue compiler macros
6985
+ * @see https://eslint.vuejs.org/rules/no-import-compiler-macros.html
6976
6986
  */
6977
- "vue/no-invalid-model-keys"?: Linter.RuleEntry<[
6987
+ "vue/no-import-compiler-macros"?: Linter.RuleEntry<[
6978
6988
  ]>;
6979
6989
  /**
6980
6990
  * disallow irregular whitespace in `.vue` files
@@ -7004,13 +7014,13 @@ interface RuleOptions {
7004
7014
  */
7005
7015
  "vue/no-multi-spaces"?: Linter.RuleEntry<VueNoMultiSpaces>;
7006
7016
  /**
7007
- * disallow to pass multiple objects into array to class
7017
+ * disallow passing multiple objects in an array to class
7008
7018
  * @see https://eslint.vuejs.org/rules/no-multiple-objects-in-class.html
7009
7019
  */
7010
7020
  "vue/no-multiple-objects-in-class"?: Linter.RuleEntry<[
7011
7021
  ]>;
7012
7022
  /**
7013
- * disallow to pass multiple arguments to scoped slots
7023
+ * disallow passing multiple arguments to scoped slots
7014
7024
  * @see https://eslint.vuejs.org/rules/no-multiple-slot-args.html
7015
7025
  */
7016
7026
  "vue/no-multiple-slot-args"?: Linter.RuleEntry<[
@@ -7042,13 +7052,6 @@ interface RuleOptions {
7042
7052
  */
7043
7053
  "vue/no-ref-as-operand"?: Linter.RuleEntry<[
7044
7054
  ]>;
7045
- /**
7046
- * disallow usages of ref objects that can lead to loss of reactivity
7047
- * @see https://eslint.vuejs.org/rules/no-ref-object-destructure.html
7048
- * @deprecated
7049
- */
7050
- "vue/no-ref-object-destructure"?: Linter.RuleEntry<[
7051
- ]>;
7052
7055
  /**
7053
7056
  * disallow usages of ref objects that can lead to loss of reactivity
7054
7057
  * @see https://eslint.vuejs.org/rules/no-ref-object-reactivity-loss.html
@@ -7141,13 +7144,6 @@ interface RuleOptions {
7141
7144
  */
7142
7145
  "vue/no-root-v-if"?: Linter.RuleEntry<[
7143
7146
  ]>;
7144
- /**
7145
- * disallow usages that lose the reactivity of `props` passed to `setup`
7146
- * @see https://eslint.vuejs.org/rules/no-setup-props-destructure.html
7147
- * @deprecated
7148
- */
7149
- "vue/no-setup-props-destructure"?: Linter.RuleEntry<[
7150
- ]>;
7151
7147
  /**
7152
7148
  * disallow usages that lose the reactivity of `props` passed to `setup`
7153
7149
  * @see https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html
@@ -7295,6 +7291,7 @@ interface RuleOptions {
7295
7291
  /**
7296
7292
  * disallow `key` attribute on `<template v-for>`
7297
7293
  * @see https://eslint.vuejs.org/rules/no-v-for-template-key.html
7294
+ * @deprecated
7298
7295
  */
7299
7296
  "vue/no-v-for-template-key"?: Linter.RuleEntry<[
7300
7297
  ]>;
@@ -7313,6 +7310,7 @@ interface RuleOptions {
7313
7310
  /**
7314
7311
  * disallow adding an argument to `v-model` used in custom component
7315
7312
  * @see https://eslint.vuejs.org/rules/no-v-model-argument.html
7313
+ * @deprecated
7316
7314
  */
7317
7315
  "vue/no-v-model-argument"?: Linter.RuleEntry<[
7318
7316
  ]>;
@@ -7571,13 +7569,6 @@ interface RuleOptions {
7571
7569
  * @see https://eslint.vuejs.org/rules/script-indent.html
7572
7570
  */
7573
7571
  "vue/script-indent"?: Linter.RuleEntry<VueScriptIndent>;
7574
- /**
7575
- * prevent `<script setup>` variables used in `<template>` to be marked as unused
7576
- * @see https://eslint.vuejs.org/rules/script-setup-uses-vars.html
7577
- * @deprecated
7578
- */
7579
- "vue/script-setup-uses-vars"?: Linter.RuleEntry<[
7580
- ]>;
7581
7572
  /**
7582
7573
  * require a line break before and after the contents of a singleline element
7583
7574
  * @see https://eslint.vuejs.org/rules/singleline-html-element-content-newline.html
@@ -7651,12 +7642,6 @@ interface RuleOptions {
7651
7642
  * @see https://eslint.vuejs.org/rules/v-on-event-hyphenation.html
7652
7643
  */
7653
7644
  "vue/v-on-event-hyphenation"?: Linter.RuleEntry<VueVOnEventHyphenation>;
7654
- /**
7655
- * enforce or forbid parentheses after method calls without arguments in `v-on` directives
7656
- * @see https://eslint.vuejs.org/rules/v-on-function-call.html
7657
- * @deprecated
7658
- */
7659
- "vue/v-on-function-call"?: Linter.RuleEntry<VueVOnFunctionCall>;
7660
7645
  /**
7661
7646
  * enforce writing style for handlers in `v-on` directives
7662
7647
  * @see https://eslint.vuejs.org/rules/v-on-handler-style.html
@@ -7699,6 +7684,7 @@ interface RuleOptions {
7699
7684
  /**
7700
7685
  * require valid keys in model option
7701
7686
  * @see https://eslint.vuejs.org/rules/valid-model-definition.html
7687
+ * @deprecated
7702
7688
  */
7703
7689
  "vue/valid-model-definition"?: Linter.RuleEntry<[
7704
7690
  ]>;
@@ -7723,6 +7709,7 @@ interface RuleOptions {
7723
7709
  /**
7724
7710
  * enforce valid `.sync` modifier on `v-bind` directives
7725
7711
  * @see https://eslint.vuejs.org/rules/valid-v-bind-sync.html
7712
+ * @deprecated
7726
7713
  */
7727
7714
  "vue/valid-v-bind-sync"?: Linter.RuleEntry<[
7728
7715
  ]>;
@@ -13440,6 +13427,7 @@ type TsExplicitModuleBoundaryTypes = [
13440
13427
  allowDirectConstAssertionInArrowFunctions?: boolean;
13441
13428
  allowedNames?: string[];
13442
13429
  allowHigherOrderFunctions?: boolean;
13430
+ allowOverloadFunctions?: boolean;
13443
13431
  allowTypedFunctionExpressions?: boolean;
13444
13432
  }
13445
13433
  ];
@@ -14482,6 +14470,7 @@ type TsUnifiedSignatures = [
14482
14470
  ] | [
14483
14471
  {
14484
14472
  ignoreDifferentlyNamedParameters?: boolean;
14473
+ ignoreOverloadsWithDifferentJSDoc?: boolean;
14485
14474
  }
14486
14475
  ];
14487
14476
  type UnicornBetterRegex = [
@@ -14932,13 +14921,7 @@ type VueComponentOptionsNameCasing = [
14932
14921
  ] | [
14933
14922
  ("camelCase" | "kebab-case" | "PascalCase")
14934
14923
  ];
14935
- type VueComponentTagsOrder = [
14936
- ] | [
14937
- {
14938
- order?: (string | string[])[];
14939
- }
14940
- ];
14941
- type VueCustomEventNameCasing = ([
14924
+ type VueCustomEventNameCasing = [
14942
14925
  ] | [
14943
14926
  ("kebab-case" | "camelCase")
14944
14927
  ] | [
@@ -14946,12 +14929,7 @@ type VueCustomEventNameCasing = ([
14946
14929
  {
14947
14930
  ignores?: string[];
14948
14931
  }
14949
- ] | [
14950
- ] | [
14951
- {
14952
- ignores?: string[];
14953
- }
14954
- ]);
14932
+ ];
14955
14933
  type VueDefineEmitsDeclaration = [
14956
14934
  ] | [
14957
14935
  ("type-based" | "type-literal" | "runtime")
@@ -15717,6 +15695,16 @@ type VueNoExtraParens = ([
15717
15695
  allowParensAfterCommentPattern?: string;
15718
15696
  }
15719
15697
  ]);
15698
+ type VueNoImplicitCoercion = [
15699
+ ] | [
15700
+ {
15701
+ boolean?: boolean;
15702
+ number?: boolean;
15703
+ string?: boolean;
15704
+ disallowTemplateShorthand?: boolean;
15705
+ allow?: ("~" | "!!" | "+" | "- -" | "-" | "*")[];
15706
+ }
15707
+ ];
15720
15708
  type VueNoIrregularWhitespace = [
15721
15709
  ] | [
15722
15710
  {
@@ -16080,10 +16068,20 @@ type VuePaddingLinesInComponentDefinition = [
16080
16068
  type VuePreferTrueAttributeShorthand = [
16081
16069
  ] | [
16082
16070
  ("always" | "never")
16071
+ ] | [
16072
+ ("always" | "never"),
16073
+ {
16074
+ except?: string[];
16075
+ }
16083
16076
  ];
16084
16077
  type VuePropNameCasing = [
16085
16078
  ] | [
16086
16079
  ("camelCase" | "snake_case")
16080
+ ] | [
16081
+ ("camelCase" | "snake_case"),
16082
+ {
16083
+ ignoreProps?: string[];
16084
+ }
16087
16085
  ];
16088
16086
  type VueQuoteProps = ([
16089
16087
  ] | [
@@ -16184,7 +16182,6 @@ type VueSortKeys = [
16184
16182
  ignoreGrandchildrenOf?: unknown[];
16185
16183
  minKeys?: number;
16186
16184
  natural?: boolean;
16187
- runOutsideVue?: boolean;
16188
16185
  }
16189
16186
  ];
16190
16187
  type VueSpaceInParens = [
@@ -16248,15 +16245,6 @@ type VueVOnEventHyphenation = [
16248
16245
  ignoreTags?: string[];
16249
16246
  }
16250
16247
  ];
16251
- type VueVOnFunctionCall = [
16252
- ] | [
16253
- ("always" | "never")
16254
- ] | [
16255
- ("always" | "never"),
16256
- {
16257
- ignoreIncludesComment?: boolean;
16258
- }
16259
- ];
16260
16248
  type VueVOnHandlerStyle = [
16261
16249
  ] | [
16262
16250
  (("inline" | "inline-function") | [
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ async function loadPackages(packageIds) {
36
36
  await installPackages(missing);
37
37
  }
38
38
  // eslint-disable-next-line ts/no-explicit-any, ts/no-unsafe-return
39
- return Promise.all(packageIds.map((id) => interopDefault(import(id))));
39
+ return Promise.all(packageIds.map((id) => interopDefault(import(__rewriteRelativeImportExtension(id)))));
40
40
  }
41
41
  const mut_installPackagesToLoad = new Set();
42
42
  let mut_installPackagesAction = null;
@@ -1893,7 +1893,7 @@ async function promise() {
1893
1893
  promise: pluginPromise,
1894
1894
  },
1895
1895
  rules: {
1896
- "promise/avoid-new": "warn",
1896
+ // "promise/avoid-new": "warn",
1897
1897
  "promise/no-callback-in-promise": "error",
1898
1898
  "promise/no-nesting": "error",
1899
1899
  "promise/no-new-statics": "error",
@@ -2878,7 +2878,14 @@ async function typescript(options) {
2878
2878
  "ts/explicit-member-accessibility": ["error", { accessibility: "explicit" }],
2879
2879
  "ts/no-array-delete": "error",
2880
2880
  "ts/no-base-to-string": "error",
2881
- "ts/no-confusing-void-expression": ["error", { ignoreArrowShorthand: false, ignoreVoidOperator: true }],
2881
+ "ts/no-confusing-void-expression": [
2882
+ "error",
2883
+ {
2884
+ ignoreArrowShorthand: false,
2885
+ ignoreVoidOperator: true,
2886
+ ignoreVoidReturningFunctions: true,
2887
+ },
2888
+ ],
2882
2889
  "ts/no-duplicate-enum-values": "error",
2883
2890
  "ts/no-duplicate-type-constituents": "error",
2884
2891
  "ts/no-dynamic-delete": "error",
@@ -3347,7 +3354,6 @@ async function unocss(options) {
3347
3354
  ];
3348
3355
  }
3349
3356
 
3350
- /* eslint-enable ts/naming-convention */
3351
3357
  const NuxtPackages = ["nuxt"];
3352
3358
  async function vue(options) {
3353
3359
  const { files, i18n, overrides, parserOptions, stylistic, typescript, vueVersion } = options;
@@ -3427,17 +3433,9 @@ async function vue(options) {
3427
3433
  },
3428
3434
  rules: {
3429
3435
  ...pluginVue.configs.base.rules,
3430
- ...(vueVersion === 2
3431
- ? {
3432
- ...pluginVue.configs.essential.rules,
3433
- ...pluginVue.configs["strongly-recommended"].rules,
3434
- ...pluginVue.configs.recommended.rules,
3435
- }
3436
- : {
3437
- ...pluginVue.configs["vue3-essential"].rules,
3438
- ...pluginVue.configs["vue3-strongly-recommended"].rules,
3439
- ...pluginVue.configs["vue3-recommended"].rules,
3440
- }),
3436
+ ...pluginVue.configs[vueVersion === 2 ? "flat/vue2-recommended" : "flat/recommended"]
3437
+ .map((config) => config.rules ?? {})
3438
+ .reduce((acc, rules) => Object.assign(acc, rules), {}),
3441
3439
  "node/prefer-global/process": "off",
3442
3440
  "vue/block-order": [
3443
3441
  "error",
@@ -3505,7 +3503,10 @@ async function vue(options) {
3505
3503
  "vue-i18n/no-dynamic-keys": i18n === false ? "off" : "error",
3506
3504
  "vue-i18n/no-unknown-locale": i18n === false ? "off" : "error",
3507
3505
  // "vue-i18n/no-missing-keys-in-other-locales": i18n === false ? "off" : "error",
3508
- // "@intlify/vue-i18n/no-unused-keys": i18n === false ? "off" : "error",
3506
+ // "vue-i18n/no-unused-keys": i18n === false ? "off" : "error",
3507
+ // "vue-i18n/prefer-sfc-lang-attr": i18n === false ? "off" : "error",
3508
+ // "vue-i18n/no-duplicate-keys-in-locale": i18n === false ? "off" : "error",
3509
+ // "vue-i18n/sfc-locale-attr": i18n === false ? "off" : "error",
3509
3510
  "vue/array-bracket-spacing": [stylisticEnforcement, "never"],
3510
3511
  "vue/arrow-spacing": [stylisticEnforcement, { after: true, before: true }],
3511
3512
  "vue/block-spacing": [stylisticEnforcement, "always"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rebeccastevens/eslint-config",
3
- "version": "3.6.3",
3
+ "version": "3.7.0",
4
4
  "description": "My ESLint shareable config.",
5
5
  "keywords": [
6
6
  "eslint config"
@@ -44,6 +44,7 @@
44
44
  "build": "rimraf dist && pnpm run typegen && rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript --configImportAttributesKey with",
45
45
  "cz": "git-cz",
46
46
  "lint": "pnpm run typegen && eslint && pnpm run lint:md && pnpm run lint:spelling && pnpm run lint:knip && pnpm run lint:packages",
47
+ "lint-fix": "pnpm run typegen && eslint --fix && pnpm run lint:md-fix && pnpm run lint:packages-fix",
47
48
  "lint:js": "eslint \"**/*.?([cm])[jt]s?(x)\"",
48
49
  "lint:js-fix": "eslint \"**/*.?([cm])[jt]s?(x)\" --fix",
49
50
  "lint:knip": "knip",
@@ -56,7 +57,6 @@
56
57
  "lint:spelling": "cspell lint --no-progress --show-suggestions --show-context --dot \"**\" \".github/**/*\"",
57
58
  "lint:yaml": "eslint \"**/*.y?(a)ml\"",
58
59
  "lint:yaml-fix": "eslint \"**/*.y?(a)ml\" --fix",
59
- "lint-fix": "pnpm run typegen && eslint --fix && pnpm run lint:md-fix && pnpm run lint:packages-fix",
60
60
  "prepare": "husky",
61
61
  "release": "semantic-release",
62
62
  "typecheck": "pnpm run typegen && pnpm run typecheck:root && pnpm run typecheck:src",
@@ -68,16 +68,16 @@
68
68
  "@antfu/install-pkg": "^1.0.0",
69
69
  "@clack/prompts": "^0.10.0",
70
70
  "globals": "^16.0.0",
71
- "local-pkg": "^1.0.0",
71
+ "local-pkg": "^1.1.1",
72
72
  "semver": "^7.7.1"
73
73
  },
74
74
  "devDependencies": {
75
- "@commitlint/cli": "19.7.1",
76
- "@commitlint/config-conventional": "19.7.1",
75
+ "@commitlint/cli": "19.8.0",
76
+ "@commitlint/config-conventional": "19.8.0",
77
77
  "@cspell/dict-cryptocurrencies": "5.0.4",
78
- "@eslint-react/eslint-plugin": "1.27.0",
78
+ "@eslint-react/eslint-plugin": "1.31.0",
79
79
  "@eslint/compat": "1.2.7",
80
- "@intlify/eslint-plugin-vue-i18n": "3.2.0",
80
+ "@intlify/eslint-plugin-vue-i18n": "4.0.0",
81
81
  "@rollup/plugin-typescript": "12.1.2",
82
82
  "@semantic-release/changelog": "6.0.3",
83
83
  "@semantic-release/commit-analyzer": "13.0.1",
@@ -85,20 +85,20 @@
85
85
  "@semantic-release/github": "11.0.1",
86
86
  "@semantic-release/npm": "12.0.1",
87
87
  "@semantic-release/release-notes-generator": "14.0.3",
88
- "@stylistic/eslint-plugin": "4.0.1",
89
- "@stylistic/eslint-plugin-migrate": "4.0.1",
88
+ "@stylistic/eslint-plugin": "4.2.0",
89
+ "@stylistic/eslint-plugin-migrate": "4.2.0",
90
90
  "@types/eslint": "9.6.1",
91
- "@types/node": "22.13.5",
92
- "@typescript-eslint/eslint-plugin": "8.24.1",
93
- "@typescript-eslint/parser": "8.24.1",
94
- "@typescript-eslint/utils": "8.24.1",
91
+ "@types/node": "22.13.9",
92
+ "@typescript-eslint/eslint-plugin": "8.26.0",
93
+ "@typescript-eslint/parser": "8.26.0",
94
+ "@typescript-eslint/utils": "8.26.0",
95
95
  "@unocss/eslint-plugin": "66.0.0",
96
- "@vitest/eslint-plugin": "1.1.31",
96
+ "@vitest/eslint-plugin": "1.1.36",
97
97
  "commitizen": "4.3.1",
98
98
  "cspell": "8.17.5",
99
99
  "cz-conventional-changelog": "3.3.0",
100
- "eslint": "9.21.0",
101
- "eslint-config-prettier": "10.0.1",
100
+ "eslint": "9.22.0",
101
+ "eslint-config-prettier": "10.1.1",
102
102
  "eslint-flat-config-utils": "2.0.1",
103
103
  "eslint-formatting-reporter": "0.0.0",
104
104
  "eslint-import-resolver-typescript": "3.8.3",
@@ -112,43 +112,43 @@
112
112
  "eslint-plugin-jsonc": "2.19.1",
113
113
  "eslint-plugin-jsx-a11y": "6.10.2",
114
114
  "eslint-plugin-markdown": "5.1.0",
115
- "eslint-plugin-n": "17.15.1",
115
+ "eslint-plugin-n": "17.16.2",
116
116
  "eslint-plugin-no-only-tests": "3.3.0",
117
117
  "eslint-plugin-optimize-regex": "1.2.1",
118
118
  "eslint-plugin-prettier": "5.2.3",
119
119
  "eslint-plugin-promise": "7.2.1",
120
- "eslint-plugin-react-hooks": "5.1.0",
120
+ "eslint-plugin-react-hooks": "5.2.0",
121
121
  "eslint-plugin-react-refresh": "0.4.19",
122
- "eslint-plugin-readable-tailwind": "1.9.0",
122
+ "eslint-plugin-readable-tailwind": "1.9.1",
123
123
  "eslint-plugin-regexp": "2.7.0",
124
124
  "eslint-plugin-sonarjs": "3.0.2",
125
125
  "eslint-plugin-tailwindcss": "3.18.0",
126
126
  "eslint-plugin-toml": "0.12.0",
127
127
  "eslint-plugin-unicorn": "57.0.0",
128
- "eslint-plugin-vue": "9.32.0",
128
+ "eslint-plugin-vue": "10.0.0",
129
129
  "eslint-plugin-yml": "1.17.0",
130
130
  "eslint-processor-vue-blocks": "2.0.0",
131
131
  "eslint-typegen": "2.0.0",
132
132
  "husky": "9.1.7",
133
133
  "jiti": "2.4.2",
134
134
  "jsonc-eslint-parser": "2.4.0",
135
- "knip": "5.44.5",
135
+ "knip": "5.45.0",
136
136
  "lint-staged": "15.4.3",
137
137
  "markdownlint-cli2": "0.17.2",
138
- "prettier": "3.5.2",
138
+ "prettier": "3.5.3",
139
139
  "prettier-plugin-tailwindcss": "0.6.11",
140
140
  "rimraf": "6.0.1",
141
- "rollup": "4.34.8",
141
+ "rollup": "4.34.9",
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.3",
145
- "sort-package-json": "2.14.0",
145
+ "sort-package-json": "3.0.0",
146
146
  "toml-eslint-parser": "0.10.0",
147
147
  "tsc-files": "1.1.4",
148
148
  "tsx": "4.19.3",
149
- "typescript": "5.7.3",
150
- "vue-eslint-parser": "9.4.3",
151
- "yaml-eslint-parser": "1.2.3"
149
+ "typescript": "5.8.2",
150
+ "vue-eslint-parser": "10.1.1",
151
+ "yaml-eslint-parser": "1.3.0"
152
152
  },
153
153
  "peerDependencies": {
154
154
  "@stylistic/eslint-plugin": "*",
@@ -327,7 +327,7 @@
327
327
  "optional": true
328
328
  }
329
329
  },
330
- "packageManager": "pnpm@10.4.1",
330
+ "packageManager": "pnpm@10.6.1",
331
331
  "engines": {
332
332
  "node": ">=20.0.0"
333
333
  },