@jsse/eslint-config 0.4.16 → 0.4.17

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,5 +1,11 @@
1
1
  # @jsse/eslint-config
2
2
 
3
+ ## 0.4.17
4
+
5
+ ### Patch Changes
6
+
7
+ - deps updates
8
+
3
9
  ## 0.4.16
4
10
 
5
11
  ### Patch Changes
package/dist/cli.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DEBUG, VERSION } from "./version-CmwNgY9_.js";
1
+ import { DEBUG, VERSION } from "./version-1ItwvVSU.js";
2
2
  import fs from "node:fs";
3
3
  import process$1 from "node:process";
4
4
  import { EventEmitter } from "events";
package/dist/index.d.ts CHANGED
@@ -2616,12 +2616,14 @@ type NoRestrictedImports = (string | {
2616
2616
  message?: string;
2617
2617
  importNames?: string[];
2618
2618
  allowImportNames?: string[];
2619
+ allowTypeImports?: boolean;
2619
2620
  })[] | [] | [{
2620
2621
  paths?: (string | {
2621
2622
  name: string;
2622
2623
  message?: string;
2623
2624
  importNames?: string[];
2624
2625
  allowImportNames?: string[];
2626
+ allowTypeImports?: boolean;
2625
2627
  })[];
2626
2628
  patterns?: string[] | ({
2627
2629
  [k: string]: unknown | undefined;
@@ -3322,6 +3324,7 @@ type UnusedImportsNoUnusedImports = [] | [("all" | "local") | {
3322
3324
  destructuredArrayIgnorePattern?: string;
3323
3325
  ignoreClassWithStaticInitBlock?: boolean;
3324
3326
  ignoreRestSiblings?: boolean;
3327
+ ignoreUsingDeclarations?: boolean;
3325
3328
  reportUsedIgnorePattern?: boolean;
3326
3329
  vars?: "all" | "local";
3327
3330
  varsIgnorePattern?: string;
@@ -3335,6 +3338,7 @@ type UnusedImportsNoUnusedVars = [] | [("all" | "local") | {
3335
3338
  destructuredArrayIgnorePattern?: string;
3336
3339
  ignoreClassWithStaticInitBlock?: boolean;
3337
3340
  ignoreRestSiblings?: boolean;
3341
+ ignoreUsingDeclarations?: boolean;
3338
3342
  reportUsedIgnorePattern?: boolean;
3339
3343
  vars?: "all" | "local";
3340
3344
  varsIgnorePattern?: string;
@@ -3412,6 +3416,11 @@ interface JsdocRuleOptions {
3412
3416
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header
3413
3417
  */
3414
3418
  "jsdoc/empty-tags"?: Linter.RuleEntry<JsdocEmptyTags>;
3419
+ /**
3420
+ * Reports use of JSDoc tags in non-tag positions (in the default "typescript" mode).
3421
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/escape-inline-tags.md#repos-sticky-header
3422
+ */
3423
+ "jsdoc/escape-inline-tags"?: Linter.RuleEntry<JsdocEscapeInlineTags>;
3415
3424
  /**
3416
3425
  * Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors).
3417
3426
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/implements-on-classes.md#repos-sticky-header
@@ -3795,6 +3804,12 @@ type JsdocConvertToJsdocComments = [] | [{
3795
3804
  type JsdocEmptyTags = [] | [{
3796
3805
  tags?: string[];
3797
3806
  }];
3807
+ // ----- jsdoc/escape-inline-tags -----
3808
+ type JsdocEscapeInlineTags = [] | [{
3809
+ allowedInlineTags?: string[];
3810
+ enableFixer?: boolean;
3811
+ fixType?: "backticks" | "backslash";
3812
+ }];
3798
3813
  // ----- jsdoc/implements-on-classes -----
3799
3814
  type JsdocImplementsOnClasses = [] | [{
3800
3815
  contexts?: (string | {
@@ -4081,6 +4096,7 @@ type JsdocRequireReturns = [] | [{
4081
4096
  type JsdocRequireReturnsCheck = [] | [{
4082
4097
  exemptAsync?: boolean;
4083
4098
  exemptGenerators?: boolean;
4099
+ noNativeTypes?: boolean;
4084
4100
  reportMissingReturnForUndefinedTypes?: boolean;
4085
4101
  }];
4086
4102
  // ----- jsdoc/require-returns-description -----
@@ -7183,6 +7199,11 @@ interface PnpmRuleOptions {
7183
7199
  * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-no-unused-catalog-item.test.ts
7184
7200
  */
7185
7201
  "pnpm/yaml-no-unused-catalog-item"?: Linter.RuleEntry<[]>;
7202
+ /**
7203
+ * Ensure all package patterns in `pnpm-workspace.yaml` match at least one directory
7204
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-valid-packages.test.ts
7205
+ */
7206
+ "pnpm/yaml-valid-packages"?: Linter.RuleEntry<[]>;
7186
7207
  }
7187
7208
  /* ======= Declarations ======= */
7188
7209
  // ----- pnpm/json-enforce-catalog -----
@@ -7217,16 +7238,120 @@ interface PrettierRuleOptions {}
7217
7238
  //#endregion
7218
7239
  //#region src/generated/dts/react.d.ts
7219
7240
  interface ReactRuleOptions {
7241
+ /**
7242
+ * Verifies that automatic effect dependencies are compiled if opted-in
7243
+ */
7244
+ "react-hooks/automatic-effect-dependencies"?: Linter.RuleEntry<ReactHooksAutomaticEffectDependencies$1>;
7245
+ /**
7246
+ * Validates against calling capitalized functions/methods instead of using JSX
7247
+ */
7248
+ "react-hooks/capitalized-calls"?: Linter.RuleEntry<ReactHooksCapitalizedCalls$1>;
7249
+ /**
7250
+ * Validates against higher order functions defining nested components or hooks. Components and hooks should be defined at the module level
7251
+ */
7252
+ "react-hooks/component-hook-factories"?: Linter.RuleEntry<ReactHooksComponentHookFactories$1>;
7253
+ /**
7254
+ * Validates the compiler configuration options
7255
+ */
7256
+ "react-hooks/config"?: Linter.RuleEntry<ReactHooksConfig$1>;
7257
+ /**
7258
+ * Validates usage of error boundaries instead of try/catch for errors in child components
7259
+ */
7260
+ "react-hooks/error-boundaries"?: Linter.RuleEntry<ReactHooksErrorBoundaries$1>;
7220
7261
  /**
7221
7262
  * verifies the list of dependencies for Hooks like useEffect and similar
7222
7263
  * @see https://github.com/facebook/react/issues/14920
7223
7264
  */
7224
7265
  "react-hooks/exhaustive-deps"?: Linter.RuleEntry<ReactHooksExhaustiveDeps$1>;
7266
+ /**
7267
+ * Validates usage of fbt
7268
+ */
7269
+ "react-hooks/fbt"?: Linter.RuleEntry<ReactHooksFbt$1>;
7270
+ /**
7271
+ * Validates usage of `fire`
7272
+ */
7273
+ "react-hooks/fire"?: Linter.RuleEntry<ReactHooksFire$1>;
7274
+ /**
7275
+ * Validates configuration of [gating mode](https://react.dev/reference/react-compiler/gating)
7276
+ */
7277
+ "react-hooks/gating"?: Linter.RuleEntry<ReactHooksGating$1>;
7278
+ /**
7279
+ * Validates against assignment/mutation of globals during render, part of ensuring that [side effects must render outside of render](https://react.dev/reference/rules/components-and-hooks-must-be-pure#side-effects-must-run-outside-of-render)
7280
+ */
7281
+ "react-hooks/globals"?: Linter.RuleEntry<ReactHooksGlobals$1>;
7282
+ /**
7283
+ * Validates the rules of hooks
7284
+ */
7285
+ "react-hooks/hooks"?: Linter.RuleEntry<ReactHooksHooks$1>;
7286
+ /**
7287
+ * Validates against mutating props, state, and other values that [are immutable](https://react.dev/reference/rules/components-and-hooks-must-be-pure#props-and-state-are-immutable)
7288
+ */
7289
+ "react-hooks/immutability"?: Linter.RuleEntry<ReactHooksImmutability$1>;
7290
+ /**
7291
+ * Validates against usage of libraries which are incompatible with memoization (manual or automatic)
7292
+ */
7293
+ "react-hooks/incompatible-library"?: Linter.RuleEntry<ReactHooksIncompatibleLibrary$1>;
7294
+ /**
7295
+ * Internal invariants
7296
+ */
7297
+ "react-hooks/invariant"?: Linter.RuleEntry<ReactHooksInvariant$1>;
7298
+ /**
7299
+ * Validates that effect dependencies are memoized
7300
+ */
7301
+ "react-hooks/memoized-effect-dependencies"?: Linter.RuleEntry<ReactHooksMemoizedEffectDependencies$1>;
7302
+ /**
7303
+ * Validates against deriving values from state in an effect
7304
+ */
7305
+ "react-hooks/no-deriving-state-in-effects"?: Linter.RuleEntry<ReactHooksNoDerivingStateInEffects$1>;
7306
+ /**
7307
+ * Validates that existing manual memoized is preserved by the compiler. React Compiler will only compile components and hooks if its inference [matches or exceeds the existing manual memoization](https://react.dev/learn/react-compiler/introduction#what-should-i-do-about-usememo-usecallback-and-reactmemo)
7308
+ */
7309
+ "react-hooks/preserve-manual-memoization"?: Linter.RuleEntry<ReactHooksPreserveManualMemoization$1>;
7310
+ /**
7311
+ * Validates that [components/hooks are pure](https://react.dev/reference/rules/components-and-hooks-must-be-pure) by checking that they do not call known-impure functions
7312
+ */
7313
+ "react-hooks/purity"?: Linter.RuleEntry<ReactHooksPurity$1>;
7314
+ /**
7315
+ * Validates correct usage of refs, not reading/writing during render. See the "pitfalls" section in [`useRef()` usage](https://react.dev/reference/react/useRef#usage)
7316
+ */
7317
+ "react-hooks/refs"?: Linter.RuleEntry<ReactHooksRefs$1>;
7318
+ /**
7319
+ * Validates against suppression of other rules
7320
+ */
7321
+ "react-hooks/rule-suppression"?: Linter.RuleEntry<ReactHooksRuleSuppression$1>;
7225
7322
  /**
7226
7323
  * enforces the Rules of Hooks
7227
- * @see https://reactjs.org/docs/hooks-rules.html
7324
+ * @see https://react.dev/reference/rules/rules-of-hooks
7325
+ */
7326
+ "react-hooks/rules-of-hooks"?: Linter.RuleEntry<ReactHooksRulesOfHooks$1>;
7327
+ /**
7328
+ * Validates against calling setState synchronously in an effect, which can lead to re-renders that degrade performance
7329
+ */
7330
+ "react-hooks/set-state-in-effect"?: Linter.RuleEntry<ReactHooksSetStateInEffect$1>;
7331
+ /**
7332
+ * Validates against setting state during render, which can trigger additional renders and potential infinite render loops
7333
+ */
7334
+ "react-hooks/set-state-in-render"?: Linter.RuleEntry<ReactHooksSetStateInRender$1>;
7335
+ /**
7336
+ * Validates that components are static, not recreated every render. Components that are recreated dynamically can reset state and trigger excessive re-rendering
7337
+ */
7338
+ "react-hooks/static-components"?: Linter.RuleEntry<ReactHooksStaticComponents$1>;
7339
+ /**
7340
+ * Validates against invalid syntax
7341
+ */
7342
+ "react-hooks/syntax"?: Linter.RuleEntry<ReactHooksSyntax$1>;
7343
+ /**
7344
+ * Unimplemented features
7345
+ */
7346
+ "react-hooks/todo"?: Linter.RuleEntry<ReactHooksTodo$1>;
7347
+ /**
7348
+ * Validates against syntax that we do not plan to support in React Compiler
7349
+ */
7350
+ "react-hooks/unsupported-syntax"?: Linter.RuleEntry<ReactHooksUnsupportedSyntax$1>;
7351
+ /**
7352
+ * Validates usage of the useMemo() hook against common mistakes. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
7228
7353
  */
7229
- "react-hooks/rules-of-hooks"?: Linter.RuleEntry<[]>;
7354
+ "react-hooks/use-memo"?: Linter.RuleEntry<ReactHooksUseMemo$1>;
7230
7355
  "react-refresh/only-export-components"?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>;
7231
7356
  /**
7232
7357
  * Enforces consistent naming for boolean props
@@ -7747,10 +7872,120 @@ interface ReactRuleOptions {
7747
7872
  "react/void-dom-elements-no-children"?: Linter.RuleEntry<[]>;
7748
7873
  }
7749
7874
  /* ======= Declarations ======= */
7875
+ // ----- react-hooks/automatic-effect-dependencies -----
7876
+ type ReactHooksAutomaticEffectDependencies$1 = [] | [{
7877
+ [k: string]: unknown | undefined;
7878
+ }];
7879
+ // ----- react-hooks/capitalized-calls -----
7880
+ type ReactHooksCapitalizedCalls$1 = [] | [{
7881
+ [k: string]: unknown | undefined;
7882
+ }];
7883
+ // ----- react-hooks/component-hook-factories -----
7884
+ type ReactHooksComponentHookFactories$1 = [] | [{
7885
+ [k: string]: unknown | undefined;
7886
+ }];
7887
+ // ----- react-hooks/config -----
7888
+ type ReactHooksConfig$1 = [] | [{
7889
+ [k: string]: unknown | undefined;
7890
+ }];
7891
+ // ----- react-hooks/error-boundaries -----
7892
+ type ReactHooksErrorBoundaries$1 = [] | [{
7893
+ [k: string]: unknown | undefined;
7894
+ }];
7750
7895
  // ----- react-hooks/exhaustive-deps -----
7751
7896
  type ReactHooksExhaustiveDeps$1 = [] | [{
7752
7897
  additionalHooks?: string;
7753
7898
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
7899
+ experimental_autoDependenciesHooks?: string[];
7900
+ requireExplicitEffectDeps?: boolean;
7901
+ }];
7902
+ // ----- react-hooks/fbt -----
7903
+ type ReactHooksFbt$1 = [] | [{
7904
+ [k: string]: unknown | undefined;
7905
+ }];
7906
+ // ----- react-hooks/fire -----
7907
+ type ReactHooksFire$1 = [] | [{
7908
+ [k: string]: unknown | undefined;
7909
+ }];
7910
+ // ----- react-hooks/gating -----
7911
+ type ReactHooksGating$1 = [] | [{
7912
+ [k: string]: unknown | undefined;
7913
+ }];
7914
+ // ----- react-hooks/globals -----
7915
+ type ReactHooksGlobals$1 = [] | [{
7916
+ [k: string]: unknown | undefined;
7917
+ }];
7918
+ // ----- react-hooks/hooks -----
7919
+ type ReactHooksHooks$1 = [] | [{
7920
+ [k: string]: unknown | undefined;
7921
+ }];
7922
+ // ----- react-hooks/immutability -----
7923
+ type ReactHooksImmutability$1 = [] | [{
7924
+ [k: string]: unknown | undefined;
7925
+ }];
7926
+ // ----- react-hooks/incompatible-library -----
7927
+ type ReactHooksIncompatibleLibrary$1 = [] | [{
7928
+ [k: string]: unknown | undefined;
7929
+ }];
7930
+ // ----- react-hooks/invariant -----
7931
+ type ReactHooksInvariant$1 = [] | [{
7932
+ [k: string]: unknown | undefined;
7933
+ }];
7934
+ // ----- react-hooks/memoized-effect-dependencies -----
7935
+ type ReactHooksMemoizedEffectDependencies$1 = [] | [{
7936
+ [k: string]: unknown | undefined;
7937
+ }];
7938
+ // ----- react-hooks/no-deriving-state-in-effects -----
7939
+ type ReactHooksNoDerivingStateInEffects$1 = [] | [{
7940
+ [k: string]: unknown | undefined;
7941
+ }];
7942
+ // ----- react-hooks/preserve-manual-memoization -----
7943
+ type ReactHooksPreserveManualMemoization$1 = [] | [{
7944
+ [k: string]: unknown | undefined;
7945
+ }];
7946
+ // ----- react-hooks/purity -----
7947
+ type ReactHooksPurity$1 = [] | [{
7948
+ [k: string]: unknown | undefined;
7949
+ }];
7950
+ // ----- react-hooks/refs -----
7951
+ type ReactHooksRefs$1 = [] | [{
7952
+ [k: string]: unknown | undefined;
7953
+ }];
7954
+ // ----- react-hooks/rule-suppression -----
7955
+ type ReactHooksRuleSuppression$1 = [] | [{
7956
+ [k: string]: unknown | undefined;
7957
+ }];
7958
+ // ----- react-hooks/rules-of-hooks -----
7959
+ type ReactHooksRulesOfHooks$1 = [] | [{
7960
+ additionalHooks?: string;
7961
+ }];
7962
+ // ----- react-hooks/set-state-in-effect -----
7963
+ type ReactHooksSetStateInEffect$1 = [] | [{
7964
+ [k: string]: unknown | undefined;
7965
+ }];
7966
+ // ----- react-hooks/set-state-in-render -----
7967
+ type ReactHooksSetStateInRender$1 = [] | [{
7968
+ [k: string]: unknown | undefined;
7969
+ }];
7970
+ // ----- react-hooks/static-components -----
7971
+ type ReactHooksStaticComponents$1 = [] | [{
7972
+ [k: string]: unknown | undefined;
7973
+ }];
7974
+ // ----- react-hooks/syntax -----
7975
+ type ReactHooksSyntax$1 = [] | [{
7976
+ [k: string]: unknown | undefined;
7977
+ }];
7978
+ // ----- react-hooks/todo -----
7979
+ type ReactHooksTodo$1 = [] | [{
7980
+ [k: string]: unknown | undefined;
7981
+ }];
7982
+ // ----- react-hooks/unsupported-syntax -----
7983
+ type ReactHooksUnsupportedSyntax$1 = [] | [{
7984
+ [k: string]: unknown | undefined;
7985
+ }];
7986
+ // ----- react-hooks/use-memo -----
7987
+ type ReactHooksUseMemo$1 = [] | [{
7988
+ [k: string]: unknown | undefined;
7754
7989
  }];
7755
7990
  // ----- react-refresh/only-export-components -----
7756
7991
  type ReactRefreshOnlyExportComponents = [] | [{
@@ -8223,22 +8458,236 @@ type ReactStylePropObject = [] | [{
8223
8458
  //#endregion
8224
8459
  //#region src/generated/dts/react-hooks.d.ts
8225
8460
  interface ReactHooksRuleOptions {
8461
+ /**
8462
+ * Verifies that automatic effect dependencies are compiled if opted-in
8463
+ */
8464
+ "react-hooks/automatic-effect-dependencies"?: Linter.RuleEntry<ReactHooksAutomaticEffectDependencies>;
8465
+ /**
8466
+ * Validates against calling capitalized functions/methods instead of using JSX
8467
+ */
8468
+ "react-hooks/capitalized-calls"?: Linter.RuleEntry<ReactHooksCapitalizedCalls>;
8469
+ /**
8470
+ * Validates against higher order functions defining nested components or hooks. Components and hooks should be defined at the module level
8471
+ */
8472
+ "react-hooks/component-hook-factories"?: Linter.RuleEntry<ReactHooksComponentHookFactories>;
8473
+ /**
8474
+ * Validates the compiler configuration options
8475
+ */
8476
+ "react-hooks/config"?: Linter.RuleEntry<ReactHooksConfig>;
8477
+ /**
8478
+ * Validates usage of error boundaries instead of try/catch for errors in child components
8479
+ */
8480
+ "react-hooks/error-boundaries"?: Linter.RuleEntry<ReactHooksErrorBoundaries>;
8226
8481
  /**
8227
8482
  * verifies the list of dependencies for Hooks like useEffect and similar
8228
8483
  * @see https://github.com/facebook/react/issues/14920
8229
8484
  */
8230
8485
  "react-hooks/exhaustive-deps"?: Linter.RuleEntry<ReactHooksExhaustiveDeps>;
8486
+ /**
8487
+ * Validates usage of fbt
8488
+ */
8489
+ "react-hooks/fbt"?: Linter.RuleEntry<ReactHooksFbt>;
8490
+ /**
8491
+ * Validates usage of `fire`
8492
+ */
8493
+ "react-hooks/fire"?: Linter.RuleEntry<ReactHooksFire>;
8494
+ /**
8495
+ * Validates configuration of [gating mode](https://react.dev/reference/react-compiler/gating)
8496
+ */
8497
+ "react-hooks/gating"?: Linter.RuleEntry<ReactHooksGating>;
8498
+ /**
8499
+ * Validates against assignment/mutation of globals during render, part of ensuring that [side effects must render outside of render](https://react.dev/reference/rules/components-and-hooks-must-be-pure#side-effects-must-run-outside-of-render)
8500
+ */
8501
+ "react-hooks/globals"?: Linter.RuleEntry<ReactHooksGlobals>;
8502
+ /**
8503
+ * Validates the rules of hooks
8504
+ */
8505
+ "react-hooks/hooks"?: Linter.RuleEntry<ReactHooksHooks>;
8506
+ /**
8507
+ * Validates against mutating props, state, and other values that [are immutable](https://react.dev/reference/rules/components-and-hooks-must-be-pure#props-and-state-are-immutable)
8508
+ */
8509
+ "react-hooks/immutability"?: Linter.RuleEntry<ReactHooksImmutability>;
8510
+ /**
8511
+ * Validates against usage of libraries which are incompatible with memoization (manual or automatic)
8512
+ */
8513
+ "react-hooks/incompatible-library"?: Linter.RuleEntry<ReactHooksIncompatibleLibrary>;
8514
+ /**
8515
+ * Internal invariants
8516
+ */
8517
+ "react-hooks/invariant"?: Linter.RuleEntry<ReactHooksInvariant>;
8518
+ /**
8519
+ * Validates that effect dependencies are memoized
8520
+ */
8521
+ "react-hooks/memoized-effect-dependencies"?: Linter.RuleEntry<ReactHooksMemoizedEffectDependencies>;
8522
+ /**
8523
+ * Validates against deriving values from state in an effect
8524
+ */
8525
+ "react-hooks/no-deriving-state-in-effects"?: Linter.RuleEntry<ReactHooksNoDerivingStateInEffects>;
8526
+ /**
8527
+ * Validates that existing manual memoized is preserved by the compiler. React Compiler will only compile components and hooks if its inference [matches or exceeds the existing manual memoization](https://react.dev/learn/react-compiler/introduction#what-should-i-do-about-usememo-usecallback-and-reactmemo)
8528
+ */
8529
+ "react-hooks/preserve-manual-memoization"?: Linter.RuleEntry<ReactHooksPreserveManualMemoization>;
8530
+ /**
8531
+ * Validates that [components/hooks are pure](https://react.dev/reference/rules/components-and-hooks-must-be-pure) by checking that they do not call known-impure functions
8532
+ */
8533
+ "react-hooks/purity"?: Linter.RuleEntry<ReactHooksPurity>;
8534
+ /**
8535
+ * Validates correct usage of refs, not reading/writing during render. See the "pitfalls" section in [`useRef()` usage](https://react.dev/reference/react/useRef#usage)
8536
+ */
8537
+ "react-hooks/refs"?: Linter.RuleEntry<ReactHooksRefs>;
8538
+ /**
8539
+ * Validates against suppression of other rules
8540
+ */
8541
+ "react-hooks/rule-suppression"?: Linter.RuleEntry<ReactHooksRuleSuppression>;
8231
8542
  /**
8232
8543
  * enforces the Rules of Hooks
8233
- * @see https://reactjs.org/docs/hooks-rules.html
8544
+ * @see https://react.dev/reference/rules/rules-of-hooks
8545
+ */
8546
+ "react-hooks/rules-of-hooks"?: Linter.RuleEntry<ReactHooksRulesOfHooks>;
8547
+ /**
8548
+ * Validates against calling setState synchronously in an effect, which can lead to re-renders that degrade performance
8549
+ */
8550
+ "react-hooks/set-state-in-effect"?: Linter.RuleEntry<ReactHooksSetStateInEffect>;
8551
+ /**
8552
+ * Validates against setting state during render, which can trigger additional renders and potential infinite render loops
8553
+ */
8554
+ "react-hooks/set-state-in-render"?: Linter.RuleEntry<ReactHooksSetStateInRender>;
8555
+ /**
8556
+ * Validates that components are static, not recreated every render. Components that are recreated dynamically can reset state and trigger excessive re-rendering
8557
+ */
8558
+ "react-hooks/static-components"?: Linter.RuleEntry<ReactHooksStaticComponents>;
8559
+ /**
8560
+ * Validates against invalid syntax
8561
+ */
8562
+ "react-hooks/syntax"?: Linter.RuleEntry<ReactHooksSyntax>;
8563
+ /**
8564
+ * Unimplemented features
8234
8565
  */
8235
- "react-hooks/rules-of-hooks"?: Linter.RuleEntry<[]>;
8566
+ "react-hooks/todo"?: Linter.RuleEntry<ReactHooksTodo>;
8567
+ /**
8568
+ * Validates against syntax that we do not plan to support in React Compiler
8569
+ */
8570
+ "react-hooks/unsupported-syntax"?: Linter.RuleEntry<ReactHooksUnsupportedSyntax>;
8571
+ /**
8572
+ * Validates usage of the useMemo() hook against common mistakes. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
8573
+ */
8574
+ "react-hooks/use-memo"?: Linter.RuleEntry<ReactHooksUseMemo>;
8236
8575
  }
8237
8576
  /* ======= Declarations ======= */
8577
+ // ----- react-hooks/automatic-effect-dependencies -----
8578
+ type ReactHooksAutomaticEffectDependencies = [] | [{
8579
+ [k: string]: unknown | undefined;
8580
+ }];
8581
+ // ----- react-hooks/capitalized-calls -----
8582
+ type ReactHooksCapitalizedCalls = [] | [{
8583
+ [k: string]: unknown | undefined;
8584
+ }];
8585
+ // ----- react-hooks/component-hook-factories -----
8586
+ type ReactHooksComponentHookFactories = [] | [{
8587
+ [k: string]: unknown | undefined;
8588
+ }];
8589
+ // ----- react-hooks/config -----
8590
+ type ReactHooksConfig = [] | [{
8591
+ [k: string]: unknown | undefined;
8592
+ }];
8593
+ // ----- react-hooks/error-boundaries -----
8594
+ type ReactHooksErrorBoundaries = [] | [{
8595
+ [k: string]: unknown | undefined;
8596
+ }];
8238
8597
  // ----- react-hooks/exhaustive-deps -----
8239
8598
  type ReactHooksExhaustiveDeps = [] | [{
8240
8599
  additionalHooks?: string;
8241
8600
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
8601
+ experimental_autoDependenciesHooks?: string[];
8602
+ requireExplicitEffectDeps?: boolean;
8603
+ }];
8604
+ // ----- react-hooks/fbt -----
8605
+ type ReactHooksFbt = [] | [{
8606
+ [k: string]: unknown | undefined;
8607
+ }];
8608
+ // ----- react-hooks/fire -----
8609
+ type ReactHooksFire = [] | [{
8610
+ [k: string]: unknown | undefined;
8611
+ }];
8612
+ // ----- react-hooks/gating -----
8613
+ type ReactHooksGating = [] | [{
8614
+ [k: string]: unknown | undefined;
8615
+ }];
8616
+ // ----- react-hooks/globals -----
8617
+ type ReactHooksGlobals = [] | [{
8618
+ [k: string]: unknown | undefined;
8619
+ }];
8620
+ // ----- react-hooks/hooks -----
8621
+ type ReactHooksHooks = [] | [{
8622
+ [k: string]: unknown | undefined;
8623
+ }];
8624
+ // ----- react-hooks/immutability -----
8625
+ type ReactHooksImmutability = [] | [{
8626
+ [k: string]: unknown | undefined;
8627
+ }];
8628
+ // ----- react-hooks/incompatible-library -----
8629
+ type ReactHooksIncompatibleLibrary = [] | [{
8630
+ [k: string]: unknown | undefined;
8631
+ }];
8632
+ // ----- react-hooks/invariant -----
8633
+ type ReactHooksInvariant = [] | [{
8634
+ [k: string]: unknown | undefined;
8635
+ }];
8636
+ // ----- react-hooks/memoized-effect-dependencies -----
8637
+ type ReactHooksMemoizedEffectDependencies = [] | [{
8638
+ [k: string]: unknown | undefined;
8639
+ }];
8640
+ // ----- react-hooks/no-deriving-state-in-effects -----
8641
+ type ReactHooksNoDerivingStateInEffects = [] | [{
8642
+ [k: string]: unknown | undefined;
8643
+ }];
8644
+ // ----- react-hooks/preserve-manual-memoization -----
8645
+ type ReactHooksPreserveManualMemoization = [] | [{
8646
+ [k: string]: unknown | undefined;
8647
+ }];
8648
+ // ----- react-hooks/purity -----
8649
+ type ReactHooksPurity = [] | [{
8650
+ [k: string]: unknown | undefined;
8651
+ }];
8652
+ // ----- react-hooks/refs -----
8653
+ type ReactHooksRefs = [] | [{
8654
+ [k: string]: unknown | undefined;
8655
+ }];
8656
+ // ----- react-hooks/rule-suppression -----
8657
+ type ReactHooksRuleSuppression = [] | [{
8658
+ [k: string]: unknown | undefined;
8659
+ }];
8660
+ // ----- react-hooks/rules-of-hooks -----
8661
+ type ReactHooksRulesOfHooks = [] | [{
8662
+ additionalHooks?: string;
8663
+ }];
8664
+ // ----- react-hooks/set-state-in-effect -----
8665
+ type ReactHooksSetStateInEffect = [] | [{
8666
+ [k: string]: unknown | undefined;
8667
+ }];
8668
+ // ----- react-hooks/set-state-in-render -----
8669
+ type ReactHooksSetStateInRender = [] | [{
8670
+ [k: string]: unknown | undefined;
8671
+ }];
8672
+ // ----- react-hooks/static-components -----
8673
+ type ReactHooksStaticComponents = [] | [{
8674
+ [k: string]: unknown | undefined;
8675
+ }];
8676
+ // ----- react-hooks/syntax -----
8677
+ type ReactHooksSyntax = [] | [{
8678
+ [k: string]: unknown | undefined;
8679
+ }];
8680
+ // ----- react-hooks/todo -----
8681
+ type ReactHooksTodo = [] | [{
8682
+ [k: string]: unknown | undefined;
8683
+ }];
8684
+ // ----- react-hooks/unsupported-syntax -----
8685
+ type ReactHooksUnsupportedSyntax = [] | [{
8686
+ [k: string]: unknown | undefined;
8687
+ }];
8688
+ // ----- react-hooks/use-memo -----
8689
+ type ReactHooksUseMemo = [] | [{
8690
+ [k: string]: unknown | undefined;
8242
8691
  }];
8243
8692
  //#endregion
8244
8693
  //#region src/generated/dts/sort-package-json.d.ts
@@ -10595,7 +11044,7 @@ interface TypescriptRuleOptions {
10595
11044
  * Disallow member access on a value with type `any`
10596
11045
  * @see https://typescript-eslint.io/rules/no-unsafe-member-access
10597
11046
  */
10598
- "@typescript-eslint/no-unsafe-member-access"?: Linter.RuleEntry<[]>;
11047
+ "@typescript-eslint/no-unsafe-member-access"?: Linter.RuleEntry<TypescriptEslintNoUnsafeMemberAccess>;
10599
11048
  /**
10600
11049
  * Disallow returning a value with type `any` from a function
10601
11050
  * @see https://typescript-eslint.io/rules/no-unsafe-return
@@ -11569,6 +12018,10 @@ type TypescriptEslintNoUnnecessaryTypeAssertion = [] | [{
11569
12018
  checkLiteralConstAssertions?: boolean;
11570
12019
  typesToIgnore?: string[];
11571
12020
  }];
12021
+ // ----- @typescript-eslint/no-unsafe-member-access -----
12022
+ type TypescriptEslintNoUnsafeMemberAccess = [] | [{
12023
+ allowOptionalChaining?: boolean;
12024
+ }];
11572
12025
  // ----- @typescript-eslint/no-unused-expressions -----
11573
12026
  type TypescriptEslintNoUnusedExpressions = [] | [{
11574
12027
  allowShortCircuit?: boolean;
@@ -11586,6 +12039,7 @@ type TypescriptEslintNoUnusedVars = [] | [("all" | "local") | {
11586
12039
  destructuredArrayIgnorePattern?: string;
11587
12040
  ignoreClassWithStaticInitBlock?: boolean;
11588
12041
  ignoreRestSiblings?: boolean;
12042
+ ignoreUsingDeclarations?: boolean;
11589
12043
  reportUsedIgnorePattern?: boolean;
11590
12044
  vars?: "all" | "local";
11591
12045
  varsIgnorePattern?: string;
@@ -12945,6 +13399,11 @@ interface VitestRuleOptions {
12945
13399
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-test-blocks.md
12946
13400
  */
12947
13401
  "vitest/padding-around-test-blocks"?: Linter.RuleEntry<[]>;
13402
+ /**
13403
+ * Prefer `toHaveBeenCalledExactlyOnceWith` over `toHaveBeenCalledOnce` and `toHaveBeenCalledWith`
13404
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-exactly-once-with.md
13405
+ */
13406
+ "vitest/prefer-called-exactly-once-with"?: Linter.RuleEntry<[]>;
12948
13407
  /**
12949
13408
  * enforce using `toBeCalledOnce()` or `toHaveBeenCalledOnce()`
12950
13409
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-once.md
@@ -13005,6 +13464,11 @@ interface VitestRuleOptions {
13005
13464
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-on-top.md
13006
13465
  */
13007
13466
  "vitest/prefer-hooks-on-top"?: Linter.RuleEntry<[]>;
13467
+ /**
13468
+ * prefer dynamic import in mock
13469
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-import-in-mock.md
13470
+ */
13471
+ "vitest/prefer-import-in-mock"?: Linter.RuleEntry<[]>;
13008
13472
  /**
13009
13473
  * enforce importing Vitest globals
13010
13474
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-importing-vitest-globals.md
@@ -13913,7 +14377,7 @@ declare function defineConfig(options?: OptionsConfig & Config, ...userConfigs:
13913
14377
  type DefineConfig = typeof defineConfig;
13914
14378
  //#endregion
13915
14379
  //#region src/generated/version.d.ts
13916
- declare const VERSION = "0.4.16";
14380
+ declare const VERSION = "0.4.17";
13917
14381
  declare namespace globs_d_exports {
13918
14382
  export { GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_JS_SRC_EXT, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_YAML };
13919
14383
  }
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { __commonJS, __export, __toESM } from "./chunk-Bb8Gnt67.js";
2
- import { DEBUG, SLOW_RULES, VERSION } from "./version-CmwNgY9_.js";
2
+ import { DEBUG, SLOW_RULES, VERSION } from "./version-1ItwvVSU.js";
3
3
  import { builtinModules, createRequire } from "node:module";
4
4
  import fs, { promises, realpathSync, statSync } from "node:fs";
5
5
  import process$1 from "node:process";
@@ -33,7 +33,7 @@ const SLOW_RULES = [
33
33
 
34
34
  //#endregion
35
35
  //#region src/generated/version.ts
36
- const VERSION = "0.4.16";
36
+ const VERSION = "0.4.17";
37
37
 
38
38
  //#endregion
39
39
  export { DEBUG, SLOW_RULES, VERSION };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jsse/eslint-config",
3
3
  "type": "module",
4
- "version": "0.4.16",
4
+ "version": "0.4.17",
5
5
  "description": "@jsse/eslint-config ~ WYSIWYG",
6
6
  "author": "jessekrubin <jessekrubin@gmail.com> (https://github.com/jessekrubin/)",
7
7
  "license": "MIT",
@@ -38,9 +38,9 @@
38
38
  "peerDependencies": {
39
39
  "@eslint-react/eslint-plugin": "^2.0.4",
40
40
  "eslint": "^9.10.0",
41
- "eslint-plugin-react": "~7.37.1",
42
- "eslint-plugin-react-hooks": "^6.1.0",
43
- "eslint-plugin-react-refresh": "^0.4.19"
41
+ "eslint-plugin-react": "^7.37.5",
42
+ "eslint-plugin-react-hooks": "^6.1.1",
43
+ "eslint-plugin-react-refresh": "^0.4.23"
44
44
  },
45
45
  "peerDependenciesMeta": {
46
46
  "@eslint-react/eslint-plugin": {
@@ -62,12 +62,12 @@
62
62
  "dependencies": {
63
63
  "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
64
64
  "@eslint/compat": "^1.4.0",
65
- "@eslint/js": "~9.36.0",
66
- "@eslint/markdown": "^7.3.0",
65
+ "@eslint/js": "~9.37.0",
66
+ "@eslint/markdown": "^7.4.0",
67
67
  "@stylistic/eslint-plugin": "5.4.0",
68
- "@typescript-eslint/eslint-plugin": "^8.45.0",
69
- "@typescript-eslint/parser": "^8.45.0",
70
- "@vitest/eslint-plugin": "^1.3.13",
68
+ "@typescript-eslint/eslint-plugin": "^8.46.0",
69
+ "@typescript-eslint/parser": "^8.46.0",
70
+ "@vitest/eslint-plugin": "^1.3.16",
71
71
  "debug": "^4.4.3",
72
72
  "eslint-config-flat-gitignore": "^2.1.0",
73
73
  "eslint-merge-processors": "^2.0.0",
@@ -75,23 +75,23 @@
75
75
  "eslint-plugin-command": "^3.3.1",
76
76
  "eslint-plugin-de-morgan": "^2.0.0",
77
77
  "eslint-plugin-import-lite": "^0.3.0",
78
- "eslint-plugin-jsdoc": "^60.7.0",
79
- "eslint-plugin-jsonc": "^2.20.1",
78
+ "eslint-plugin-jsdoc": "^60.8.3",
79
+ "eslint-plugin-jsonc": "^2.21.0",
80
80
  "eslint-plugin-n": "^17.23.1",
81
81
  "eslint-plugin-no-only-tests": "^3.3.0",
82
- "eslint-plugin-perfectionist": "^4.15.0",
82
+ "eslint-plugin-perfectionist": "^4.15.1",
83
83
  "eslint-plugin-pnpm": "^1.2.0",
84
84
  "eslint-plugin-react": "~7.37.5",
85
- "eslint-plugin-react-hooks": "~6.1.0",
85
+ "eslint-plugin-react-hooks": "~6.1.1",
86
86
  "eslint-plugin-react-refresh": "~0.4.23",
87
87
  "eslint-plugin-toml": "^0.12.0",
88
88
  "eslint-plugin-tsdoc": "^0.4.0",
89
89
  "eslint-plugin-unicorn": "^61.0.2",
90
90
  "eslint-plugin-unused-imports": "^4.2.0",
91
- "eslint-plugin-yml": "^1.18.0",
91
+ "eslint-plugin-yml": "^1.19.0",
92
92
  "jsonc-eslint-parser": "^2.4.1",
93
93
  "toml-eslint-parser": "^0.10.0",
94
- "typescript-eslint": "^8.45.0",
94
+ "typescript-eslint": "^8.46.0",
95
95
  "yaml-eslint-parser": "^1.3.0"
96
96
  },
97
97
  "devDependencies": {
@@ -100,9 +100,9 @@
100
100
  "@jsse/tsconfig": "^0.4.0",
101
101
  "@types/debug": "^4.1.12",
102
102
  "@types/fs-extra": "^11.0.4",
103
- "@types/node": "^24.6.1",
103
+ "@types/node": "^24.7.0",
104
104
  "cac": "^6.7.14",
105
- "eslint": "^9.36.0",
105
+ "eslint": "^9.37.0",
106
106
  "eslint-flat-config-utils": "^2.1.4",
107
107
  "eslint-typegen": "^2.3.0",
108
108
  "execa": "~9.6.0",
@@ -110,10 +110,10 @@
110
110
  "fs-extra": "^11.3.2",
111
111
  "globals": "^16.4.0",
112
112
  "local-pkg": "^1.1.2",
113
- "oxlint": "^1.19.0",
113
+ "oxlint": "^1.20.0",
114
114
  "picocolors": "^1.1.1",
115
115
  "prettier": "^3.6.2",
116
- "react": "~19.1.1",
116
+ "react": "~19.2.0",
117
117
  "rimraf": "^6.0.1",
118
118
  "tsdown": "^0.15.6",
119
119
  "tsx": "^4.20.6",