@anolilab/eslint-config 21.0.0 → 22.0.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,3 +1,26 @@
1
+ ## @anolilab/eslint-config [22.0.0](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@21.0.0...@anolilab/eslint-config@22.0.0) (2026-02-21)
2
+
3
+ ### Features
4
+
5
+ * **eslint-config:** extend markdown config and fix react/no-implicit-key rule placement ([a0261f6](https://github.com/anolilab/javascript-style-guide/commit/a0261f63674523f8475cba1d15925a772e0e1064))
6
+
7
+ ### Bug Fixes
8
+
9
+ * **eslint-config:** require quoted scalars in yaml files ([af0f247](https://github.com/anolilab/javascript-style-guide/commit/af0f247438d003963c9dca1126df21781f252546))
10
+ * resolve pre-commit hook failures and lint errors across packages ([a4707c3](https://github.com/anolilab/javascript-style-guide/commit/a4707c38941c7adb55a7a606f9689caa9c8f7962))
11
+
12
+ ### Miscellaneous Chores
13
+
14
+ * **eslint-config:** add ESLint config, migrate to ESM prettier, update fixtures ([b57d64a](https://github.com/anolilab/javascript-style-guide/commit/b57d64a5080356878ff6bb524d0bc0648d74858c))
15
+ * **eslint-config:** simplify .prettierignore and update fixture outputs ([7f376ae](https://github.com/anolilab/javascript-style-guide/commit/7f376aef4137ea2511e9033826491495b5e80b2c))
16
+ * fix storybook security vulnerability by pinning to 9.1.19 ([ba99baa](https://github.com/anolilab/javascript-style-guide/commit/ba99baa5c193e617243ccf29f9643f116eff5a29))
17
+ * update dependencies, pnpm version, and CI workflow ([0515997](https://github.com/anolilab/javascript-style-guide/commit/05159977a4c56860b2500b8a54b2fe9b6bb4b0d6))
18
+
19
+
20
+ ### Dependencies
21
+
22
+ * **@anolilab/prettier-config:** upgraded to 9.1.1
23
+
1
24
  ## @anolilab/eslint-config [21.0.0](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@20.0.0...@anolilab/eslint-config@21.0.0) (2026-01-29)
2
25
 
3
26
  ### Features
package/dist/index.d.ts CHANGED
@@ -79,6 +79,11 @@ interface RuleOptions {
79
79
  * @see https://eslint.style/rules/eol-last
80
80
  */
81
81
  '@stylistic/eol-last'?: Linter.RuleEntry<StylisticEolLast>
82
+ /**
83
+ * Enforce consistent line break styles for JSX props
84
+ * @see https://eslint.style/rules/jsx-props-style
85
+ */
86
+ '@stylistic/exp-jsx-props-style'?: Linter.RuleEntry<StylisticExpJsxPropsStyle>
82
87
  /**
83
88
  * Enforce consistent spacing and line break styles inside brackets.
84
89
  * @see https://eslint.style/rules/list-style
@@ -1004,7 +1009,7 @@ interface RuleOptions {
1004
1009
  * Disallow default values that will never be used
1005
1010
  * @see https://typescript-eslint.io/rules/no-useless-default-assignment
1006
1011
  */
1007
- '@typescript-eslint/no-useless-default-assignment'?: Linter.RuleEntry<[]>
1012
+ '@typescript-eslint/no-useless-default-assignment'?: Linter.RuleEntry<TypescriptEslintNoUselessDefaultAssignment>
1008
1013
  /**
1009
1014
  * Disallow empty exports that don't change anything in a module file
1010
1015
  * @see https://typescript-eslint.io/rules/no-useless-empty-export
@@ -2882,6 +2887,11 @@ interface RuleOptions {
2882
2887
  * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/console.md
2883
2888
  */
2884
2889
  'n/prefer-global/console'?: Linter.RuleEntry<NPreferGlobalConsole>
2890
+ /**
2891
+ * enforce either `crypto` or `require("crypto").webcrypto`
2892
+ * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/crypto.md
2893
+ */
2894
+ 'n/prefer-global/crypto'?: Linter.RuleEntry<NPreferGlobalCrypto>
2885
2895
  /**
2886
2896
  * enforce either `process` or `require("process")`
2887
2897
  * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/process.md
@@ -2897,6 +2907,11 @@ interface RuleOptions {
2897
2907
  * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/text-encoder.md
2898
2908
  */
2899
2909
  'n/prefer-global/text-encoder'?: Linter.RuleEntry<NPreferGlobalTextEncoder>
2910
+ /**
2911
+ * enforce either global timer functions or `require("timers")`
2912
+ * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/timers.md
2913
+ */
2914
+ 'n/prefer-global/timers'?: Linter.RuleEntry<NPreferGlobalTimers>
2900
2915
  /**
2901
2916
  * enforce either `URL` or `require("url").URL`
2902
2917
  * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/url.md
@@ -2933,6 +2948,7 @@ interface RuleOptions {
2933
2948
  * @deprecated
2934
2949
  */
2935
2950
  'n/shebang'?: Linter.RuleEntry<NShebang>
2951
+ 'name'?: Linter.RuleEntry<[]>
2936
2952
  /**
2937
2953
  * Do not use for...of loop with array, use for loop instead, because for loop is faster than for...of loop
2938
2954
  * @see https://www.npmjs.com/package/eslint-plugin-not-for-of-array
@@ -3101,6 +3117,11 @@ interface RuleOptions {
3101
3117
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-duplicate-hooks.md
3102
3118
  */
3103
3119
  'playwright/no-duplicate-hooks'?: Linter.RuleEntry<[]>
3120
+ /**
3121
+ * Disallow multiple `test.slow()` calls in the same test
3122
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-duplicate-slow.md
3123
+ */
3124
+ 'playwright/no-duplicate-slow'?: Linter.RuleEntry<[]>
3104
3125
  /**
3105
3126
  * The use of ElementHandle is discouraged, use Locator instead
3106
3127
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-element-handle.md
@@ -3166,6 +3187,11 @@ interface RuleOptions {
3166
3187
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-restricted-matchers.md
3167
3188
  */
3168
3189
  'playwright/no-restricted-matchers'?: Linter.RuleEntry<PlaywrightNoRestrictedMatchers>
3190
+ /**
3191
+ * Disallows the usage of specific roles in getByRole()
3192
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-restricted-roles.md
3193
+ */
3194
+ 'playwright/no-restricted-roles'?: Linter.RuleEntry<PlaywrightNoRestrictedRoles>
3169
3195
  /**
3170
3196
  * Prevent usage of the `.skip()` skip test annotation.
3171
3197
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-skipped-test.md
@@ -3291,6 +3317,16 @@ interface RuleOptions {
3291
3317
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-soft-assertions.md
3292
3318
  */
3293
3319
  'playwright/require-soft-assertions'?: Linter.RuleEntry<[]>
3320
+ /**
3321
+ * Require test blocks to have tags
3322
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-tags.md
3323
+ */
3324
+ 'playwright/require-tags'?: Linter.RuleEntry<[]>
3325
+ /**
3326
+ * Require a timeout option for `toPass()`
3327
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-to-pass-timeout.md
3328
+ */
3329
+ 'playwright/require-to-pass-timeout'?: Linter.RuleEntry<[]>
3294
3330
  /**
3295
3331
  * Require a message for `toThrow()`
3296
3332
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-to-throw-message.md
@@ -3477,7 +3513,7 @@ interface RuleOptions {
3477
3513
  */
3478
3514
  'react-dom/no-unknown-property'?: Linter.RuleEntry<ReactDomNoUnknownProperty>
3479
3515
  /**
3480
- * Enforces 'sandbox' attribute for 'iframe' elements is not set to unsafe combinations.
3516
+ * Enforces that the 'sandbox' attribute for 'iframe' elements is not set to unsafe combinations.
3481
3517
  * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
3482
3518
  */
3483
3519
  'react-dom/no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>
@@ -3644,6 +3680,11 @@ interface RuleOptions {
3644
3680
  * @see https://eslint-react.xyz/docs/rules/naming-convention-filename-extension
3645
3681
  */
3646
3682
  'react-naming-convention/filename-extension'?: Linter.RuleEntry<ReactNamingConventionFilenameExtension>
3683
+ /**
3684
+ * Enforces identifier names assigned from 'useId' calls to be either 'id' or end with 'Id'.
3685
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-id-name
3686
+ */
3687
+ 'react-naming-convention/id-name'?: Linter.RuleEntry<[]>
3647
3688
  /**
3648
3689
  * Enforces identifier names assigned from 'useRef' calls to be either 'ref' or end with 'Ref'.
3649
3690
  * @see https://eslint-react.xyz/docs/rules/naming-convention-ref-name
@@ -3692,7 +3733,7 @@ interface RuleOptions {
3692
3733
  */
3693
3734
  'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>
3694
3735
  /**
3695
- * Prevents unnecessary '$' symbols before JSX expressions.
3736
+ * Prevents unintentional '$' sign before expression.
3696
3737
  * @see https://eslint-react.xyz/docs/rules/jsx-dollar
3697
3738
  */
3698
3739
  'react-x/jsx-dollar'?: Linter.RuleEntry<[]>
@@ -3843,7 +3884,7 @@ interface RuleOptions {
3843
3884
  */
3844
3885
  'react-x/no-forward-ref'?: Linter.RuleEntry<[]>
3845
3886
  /**
3846
- * Prevents 'key' from not being explicitly specified (e.g., spreading 'key' from objects).
3887
+ * Prevents implicitly passing the 'key' prop to components.
3847
3888
  * @see https://eslint-react.xyz/docs/rules/no-implicit-key
3848
3889
  */
3849
3890
  'react-x/no-implicit-key'?: Linter.RuleEntry<[]>
@@ -3853,12 +3894,12 @@ interface RuleOptions {
3853
3894
  */
3854
3895
  'react-x/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>
3855
3896
  /**
3856
- * Enforces that all components have a 'displayName' that can be used in devtools.
3897
+ * Enforces that all components have a 'displayName' that can be used in DevTools.
3857
3898
  * @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
3858
3899
  */
3859
3900
  'react-x/no-missing-component-display-name'?: Linter.RuleEntry<[]>
3860
3901
  /**
3861
- * Enforces that all contexts have a 'displayName' that can be used in devtools.
3902
+ * Enforces that all contexts have a 'displayName' that can be used in DevTools.
3862
3903
  * @see https://eslint-react.xyz/docs/rules/no-missing-context-display-name
3863
3904
  */
3864
3905
  'react-x/no-missing-context-display-name'?: Linter.RuleEntry<[]>
@@ -3913,7 +3954,7 @@ interface RuleOptions {
3913
3954
  */
3914
3955
  'react-x/no-string-refs'?: Linter.RuleEntry<[]>
3915
3956
  /**
3916
- * Disallows unnecessary 'key' props on elements.
3957
+ * Disallows unnecessary 'key' props on nested child elements when rendering lists.
3917
3958
  * @see https://eslint-react.xyz/docs/rules/no-unnecessary-key
3918
3959
  */
3919
3960
  'react-x/no-unnecessary-key'?: Linter.RuleEntry<[]>
@@ -4051,11 +4092,6 @@ interface RuleOptions {
4051
4092
  * @see https://react.dev/learn/you-might-not-need-an-effect#notifying-parent-components-about-state-changes
4052
4093
  */
4053
4094
  'react-you-might-not-need-an-effect/no-pass-live-state-to-parent'?: Linter.RuleEntry<[]>
4054
- /**
4055
- * Disallow passing refs, or data from callbacks registered on them, to parents in an effect. Use `forwardRef` instead.
4056
- * @see https://react.dev/reference/react/forwardRef
4057
- */
4058
- 'react-you-might-not-need-an-effect/no-pass-ref-to-parent'?: Linter.RuleEntry<[]>
4059
4095
  /**
4060
4096
  * Disallow resetting all state in an effect when a prop changes.
4061
4097
  * @see https://react.dev/learn/you-might-not-need-an-effect#resetting-all-state-when-a-prop-changes
@@ -5682,12 +5718,12 @@ interface RuleOptions {
5682
5718
  */
5683
5719
  'sonarjs/no-hardcoded-ip'?: Linter.RuleEntry<[]>
5684
5720
  /**
5685
- * Hard-coded passwords are security-sensitive
5721
+ * Credentials should not be hard-coded
5686
5722
  * @see https://sonarsource.github.io/rspec/#/rspec/S2068/javascript
5687
5723
  */
5688
5724
  'sonarjs/no-hardcoded-passwords'?: Linter.RuleEntry<SonarjsNoHardcodedPasswords>
5689
5725
  /**
5690
- * Hard-coded secrets are security-sensitive
5726
+ * Secrets should not be hard-coded
5691
5727
  * @see https://sonarsource.github.io/rspec/#/rspec/S6418/javascript
5692
5728
  */
5693
5729
  'sonarjs/no-hardcoded-secrets'?: Linter.RuleEntry<SonarjsNoHardcodedSecrets>
@@ -8115,6 +8151,11 @@ interface RuleOptions {
8115
8151
  * @see https://github.com/marcalexiei/eslint-plugin-zod/blob/HEAD/docs/rules/array-style.md
8116
8152
  */
8117
8153
  'zod/array-style'?: Linter.RuleEntry<ZodArrayStyle>
8154
+ /**
8155
+ * Enforce a consistent import style for Zod
8156
+ * @see https://github.com/marcalexiei/eslint-plugin-zod/blob/HEAD/docs/rules/consistent-import.md
8157
+ */
8158
+ 'zod/consistent-import'?: Linter.RuleEntry<ZodConsistentImport>
8118
8159
  /**
8119
8160
  * Enforce consistent source from Zod imports
8120
8161
  * @see https://github.com/marcalexiei/eslint-plugin-zod/blob/HEAD/docs/rules/consistent-import-source.md
@@ -8173,6 +8214,7 @@ interface RuleOptions {
8173
8214
  /**
8174
8215
  * Enforce importing zod as a namespace import (`import * as z from 'zod'`)
8175
8216
  * @see https://github.com/marcalexiei/eslint-plugin-zod/blob/HEAD/docs/rules/prefer-namespace-import.md
8217
+ * @deprecated
8176
8218
  */
8177
8219
  'zod/prefer-namespace-import'?: Linter.RuleEntry<[]>
8178
8220
  /**
@@ -8379,15 +8421,25 @@ type StylisticCurlyNewline = []|[(("always" | "never") | {
8379
8421
  type StylisticDotLocation = []|[("object" | "property")]
8380
8422
  // ----- @stylistic/eol-last -----
8381
8423
  type StylisticEolLast = []|[("always" | "never" | "unix" | "windows")]
8424
+ // ----- @stylistic/exp-jsx-props-style -----
8425
+ type StylisticExpJsxPropsStyle = []|[{
8426
+ singleLine?: {
8427
+ maxItems?: number
8428
+ }
8429
+ multiLine?: {
8430
+ minItems?: number
8431
+ maxItemsPerLine?: number
8432
+ }
8433
+ }]
8382
8434
  // ----- @stylistic/exp-list-style -----
8383
8435
  type StylisticExpListStyle = []|[{
8384
8436
  singleLine?: _StylisticExpListStyle_SingleLineConfig
8385
8437
  multiLine?: _StylisticExpListStyle_MultiLineConfig
8386
8438
  overrides?: {
8439
+ "()"?: _StylisticExpListStyle_BaseConfig
8387
8440
  "[]"?: _StylisticExpListStyle_BaseConfig
8388
8441
  "{}"?: _StylisticExpListStyle_BaseConfig
8389
8442
  "<>"?: _StylisticExpListStyle_BaseConfig
8390
- "()"?: _StylisticExpListStyle_BaseConfig
8391
8443
  ArrayExpression?: _StylisticExpListStyle_BaseConfig
8392
8444
  ArrayPattern?: _StylisticExpListStyle_BaseConfig
8393
8445
  ArrowFunctionExpression?: _StylisticExpListStyle_BaseConfig
@@ -8395,21 +8447,22 @@ type StylisticExpListStyle = []|[{
8395
8447
  ExportNamedDeclaration?: _StylisticExpListStyle_BaseConfig
8396
8448
  FunctionDeclaration?: _StylisticExpListStyle_BaseConfig
8397
8449
  FunctionExpression?: _StylisticExpListStyle_BaseConfig
8398
- ImportDeclaration?: _StylisticExpListStyle_BaseConfig
8450
+ IfStatement?: _StylisticExpListStyle_BaseConfig
8399
8451
  ImportAttributes?: _StylisticExpListStyle_BaseConfig
8452
+ ImportDeclaration?: _StylisticExpListStyle_BaseConfig
8453
+ JSONArrayExpression?: _StylisticExpListStyle_BaseConfig
8454
+ JSONObjectExpression?: _StylisticExpListStyle_BaseConfig
8400
8455
  NewExpression?: _StylisticExpListStyle_BaseConfig
8401
8456
  ObjectExpression?: _StylisticExpListStyle_BaseConfig
8402
8457
  ObjectPattern?: _StylisticExpListStyle_BaseConfig
8403
8458
  TSDeclareFunction?: _StylisticExpListStyle_BaseConfig
8459
+ TSEnumBody?: _StylisticExpListStyle_BaseConfig
8404
8460
  TSFunctionType?: _StylisticExpListStyle_BaseConfig
8405
8461
  TSInterfaceBody?: _StylisticExpListStyle_BaseConfig
8406
- TSEnumBody?: _StylisticExpListStyle_BaseConfig
8407
8462
  TSTupleType?: _StylisticExpListStyle_BaseConfig
8408
8463
  TSTypeLiteral?: _StylisticExpListStyle_BaseConfig
8409
8464
  TSTypeParameterDeclaration?: _StylisticExpListStyle_BaseConfig
8410
8465
  TSTypeParameterInstantiation?: _StylisticExpListStyle_BaseConfig
8411
- JSONArrayExpression?: _StylisticExpListStyle_BaseConfig
8412
- JSONObjectExpression?: _StylisticExpListStyle_BaseConfig
8413
8466
  }
8414
8467
  }]
8415
8468
  interface _StylisticExpListStyle_SingleLineConfig {
@@ -9327,13 +9380,17 @@ type StylisticPaddedBlocks = []|[(("always" | "never" | "start" | "end") | {
9327
9380
  }]
9328
9381
  // ----- @stylistic/padding-line-between-statements -----
9329
9382
  type _StylisticPaddingLineBetweenStatementsPaddingType = ("any" | "never" | "always")
9330
- type _StylisticPaddingLineBetweenStatementsStatementOption = (_StylisticPaddingLineBetweenStatementsStatementType | [_StylisticPaddingLineBetweenStatementsStatementType, ...(_StylisticPaddingLineBetweenStatementsStatementType)[]])
9383
+ type _StylisticPaddingLineBetweenStatementsStatementOption = (_StylisticPaddingLineBetweenStatementsStatementMatcher | [_StylisticPaddingLineBetweenStatementsStatementMatcher, ...(_StylisticPaddingLineBetweenStatementsStatementMatcher)[]])
9384
+ type _StylisticPaddingLineBetweenStatementsStatementMatcher = (_StylisticPaddingLineBetweenStatementsStatementType | _StylisticPaddingLineBetweenStatements_SelectorOption)
9331
9385
  type _StylisticPaddingLineBetweenStatementsStatementType = ("*" | "exports" | "require" | "directive" | "iife" | "block" | "empty" | "function" | "ts-method" | "break" | "case" | "class" | "continue" | "debugger" | "default" | "do" | "for" | "if" | "import" | "switch" | "throw" | "try" | "while" | "with" | "cjs-export" | "cjs-import" | "enum" | "interface" | "function-overload" | "block-like" | "singleline-block-like" | "multiline-block-like" | "expression" | "singleline-expression" | "multiline-expression" | "return" | "singleline-return" | "multiline-return" | "export" | "singleline-export" | "multiline-export" | "var" | "singleline-var" | "multiline-var" | "let" | "singleline-let" | "multiline-let" | "const" | "singleline-const" | "multiline-const" | "using" | "singleline-using" | "multiline-using" | "type" | "singleline-type" | "multiline-type")
9332
9386
  type StylisticPaddingLineBetweenStatements = {
9333
9387
  blankLine: _StylisticPaddingLineBetweenStatementsPaddingType
9334
9388
  prev: _StylisticPaddingLineBetweenStatementsStatementOption
9335
9389
  next: _StylisticPaddingLineBetweenStatementsStatementOption
9336
9390
  }[]
9391
+ interface _StylisticPaddingLineBetweenStatements_SelectorOption {
9392
+ selector: string
9393
+ }
9337
9394
  // ----- @stylistic/quote-props -----
9338
9395
  type StylisticQuoteProps = ([]|[("always" | "as-needed" | "consistent" | "consistent-as-needed")] | []|[("always" | "as-needed" | "consistent" | "consistent-as-needed")]|[("always" | "as-needed" | "consistent" | "consistent-as-needed"), {
9339
9396
  keywords?: boolean
@@ -10336,6 +10393,11 @@ type TypescriptEslintNoUseBeforeDefine = []|[("nofunc" | {
10336
10393
 
10337
10394
  variables?: boolean
10338
10395
  })]
10396
+ // ----- @typescript-eslint/no-useless-default-assignment -----
10397
+ type TypescriptEslintNoUselessDefaultAssignment = []|[{
10398
+
10399
+ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean
10400
+ }]
10339
10401
  // ----- @typescript-eslint/no-var-requires -----
10340
10402
  type TypescriptEslintNoVarRequires = []|[{
10341
10403
 
@@ -10661,6 +10723,7 @@ type AntfuConsistentListNewline = []|[{
10661
10723
  ExportNamedDeclaration?: boolean
10662
10724
  FunctionDeclaration?: boolean
10663
10725
  FunctionExpression?: boolean
10726
+ IfStatement?: boolean
10664
10727
  ImportDeclaration?: boolean
10665
10728
  JSONArrayExpression?: boolean
10666
10729
  JSONObjectExpression?: boolean
@@ -10923,7 +10986,7 @@ type FormatDprint = []|[{
10923
10986
  }]
10924
10987
  // ----- format/prettier -----
10925
10988
  type FormatPrettier = []|[{
10926
- parser?: string
10989
+ parser: string
10927
10990
  [k: string]: unknown | undefined
10928
10991
  }]
10929
10992
  // ----- import/consistent-type-specifier-style -----
@@ -12784,12 +12847,16 @@ type NNoUnsupportedFeaturesNodeBuiltins = []|[{
12784
12847
  type NPreferGlobalBuffer = []|[("always" | "never")]
12785
12848
  // ----- n/prefer-global/console -----
12786
12849
  type NPreferGlobalConsole = []|[("always" | "never")]
12850
+ // ----- n/prefer-global/crypto -----
12851
+ type NPreferGlobalCrypto = []|[("always" | "never")]
12787
12852
  // ----- n/prefer-global/process -----
12788
12853
  type NPreferGlobalProcess = []|[("always" | "never")]
12789
12854
  // ----- n/prefer-global/text-decoder -----
12790
12855
  type NPreferGlobalTextDecoder = []|[("always" | "never")]
12791
12856
  // ----- n/prefer-global/text-encoder -----
12792
12857
  type NPreferGlobalTextEncoder = []|[("always" | "never")]
12858
+ // ----- n/prefer-global/timers -----
12859
+ type NPreferGlobalTimers = []|[("always" | "never")]
12793
12860
  // ----- n/prefer-global/url -----
12794
12861
  type NPreferGlobalUrl = []|[("always" | "never")]
12795
12862
  // ----- n/prefer-global/url-search-params -----
@@ -15749,6 +15816,11 @@ type PlaywrightNoRestrictedLocators = []|[(string | {
15749
15816
  type PlaywrightNoRestrictedMatchers = []|[{
15750
15817
  [k: string]: (string | null) | undefined
15751
15818
  }]
15819
+ // ----- playwright/no-restricted-roles -----
15820
+ type PlaywrightNoRestrictedRoles = []|[(string | {
15821
+ message?: string
15822
+ role: string
15823
+ })[]]
15752
15824
  // ----- playwright/no-skipped-test -----
15753
15825
  type PlaywrightNoSkippedTest = []|[{
15754
15826
  allowConditional?: boolean
@@ -16004,9 +16076,9 @@ type ReactPerfJsxNoNewObjectAsProp = []|[{
16004
16076
  }]
16005
16077
  // ----- react-refresh/only-export-components -----
16006
16078
  type ReactRefreshOnlyExportComponents = []|[{
16079
+ extraHOCs?: string[]
16007
16080
  allowExportNames?: string[]
16008
16081
  allowConstantExport?: boolean
16009
- customHOCs?: string[]
16010
16082
  checkJS?: boolean
16011
16083
  }]
16012
16084
  // ----- react-x/jsx-shorthand-boolean -----
@@ -17578,6 +17650,11 @@ type ZodArrayStyle = []|[{
17578
17650
 
17579
17651
  style?: ("function" | "method")
17580
17652
  }]
17653
+ // ----- zod/consistent-import -----
17654
+ type ZodConsistentImport = []|[{
17655
+
17656
+ syntax?: ("namespace" | "named")
17657
+ }]
17581
17658
  // ----- zod/consistent-import-source -----
17582
17659
  type ZodConsistentImportSource = []|[{
17583
17660
 
@@ -17606,7 +17683,7 @@ type ZodSchemaErrorPropertyStyle = []|[{
17606
17683
  example?: string
17607
17684
  }]
17608
17685
  // Names of all the configs
17609
- type ConfigNames = 'anolilab/antfu' | 'anolilab/astro/setup' | 'anolilab/astro/rules' | 'anolilab/best-practices/rules' | 'anolilab/best-practices/ts-rules' | 'compat/flat/recommended' | 'anolilab/errors/rules' | 'anolilab/errors/ts-rules' | 'anolilab/html/setup' | 'anolilab/no-secrets' | 'anolilab/no-unsanitized/setup' | 'anolilab/promise/rules' | 'anolilab/simple-import-sort' | 'anolilab/sonarjs/plugin' | 'anolilab/sonarjs/rules' | 'anolilab/sonarjs/js-and-ts-rules' | 'anolilab/sonarjs/js-rules' | 'storybook:recommended:setup' | 'storybook:recommended:stories-rules' | 'storybook:recommended:main-rules' | 'tailwindcss:base' | 'tailwindcss:rules' | 'anolilab/validate-jsx-nesting/setup' | 'anolilab/variables/rules' | 'anolilab/variables/ts-rules' | 'anolilab/style/rules' | 'anolilab/style/ts-rules' | 'anolilab/eslint-comments/rules' | 'anolilab/formatter/setup' | 'anolilab/imports/setup' | 'anolilab/imports/rules' | 'anolilab/imports/d.ts-rules' | 'anolilab/javascript/setup' | 'anolilab/jsx-a11y/setup' | 'anolilab/jsdoc/setup' | 'anolilab/jsdoc/js-rules' | 'anolilab/jsonc/json5-rules' | 'anolilab/jsonc/jsonc-rules' | 'anolilab/jsonc/json-rules' | 'anolilab/jsonc/package.json-rules' | 'anolilab/jsonc/tsconfig-json' | 'anolilab/markdown/setup' | 'anolilab/markdown/processor' | 'anolilab/markdown/parser' | 'anolilab/markdown/disabled' | 'anolilab/perfectionist/setup' | 'anolilab/perfectionist/rules' | 'anolilab/perfectionist/typescript' | 'anolilab/perfectionist/postcss' | 'anolilab/react/setup' | 'anolilab/react/rules' | 'anolilab/react/jsx' | 'anolilab/react/tsx' | 'anolilab/react/storybook' | 'anolilab/node/setup' | 'anolilab/node/rules' | 'anolilab/stylistic/rules' | 'anolilab/vitest/setup' | 'anolilab/vitest/rules' | 'anolilab/toml' | 'anolilab/regexp/rules' | 'anolilab/typescript/setup' | 'anolilab/typescript/parser' | 'typescript-eslint/base' | 'typescript-eslint/eslint-recommended' | 'typescript-eslint/strict' | 'anolilab/typescript/rules' | 'anolilab/unicorn/plugin' | 'anolilab/unicorn/rules' | 'anolilab/unicorn/tsconfig-overrides' | 'anolilab/unicorn/ts-overrides' | 'anolilab/unocss' | 'anolilab/yaml' | 'anolilab/zod/rules'
17686
+ type ConfigNames = 'anolilab/antfu' | 'anolilab/astro/setup' | 'anolilab/astro/rules' | 'anolilab/best-practices/rules' | 'anolilab/best-practices/ts-rules' | 'compat/flat/recommended' | 'anolilab/errors/rules' | 'anolilab/errors/ts-rules' | 'anolilab/html/setup' | 'anolilab/no-secrets' | 'anolilab/no-unsanitized/setup' | 'anolilab/promise/rules' | 'anolilab/simple-import-sort' | 'anolilab/sonarjs/plugin' | 'anolilab/sonarjs/rules' | 'anolilab/sonarjs/js-and-ts-rules' | 'anolilab/sonarjs/js-rules' | 'storybook:recommended:setup' | 'storybook:recommended:stories-rules' | 'storybook:recommended:main-rules' | 'tailwindcss:base' | 'tailwindcss:rules' | 'anolilab/validate-jsx-nesting/setup' | 'anolilab/variables/rules' | 'anolilab/variables/ts-rules' | 'anolilab/style/rules' | 'anolilab/style/ts-rules' | 'anolilab/eslint-comments/rules' | 'anolilab/formatter/setup' | 'anolilab/imports/setup' | 'anolilab/imports/rules' | 'anolilab/imports/d.ts-rules' | 'anolilab/javascript/setup' | '@eslint/js/recommended' | 'anolilab/jsx-a11y/setup' | 'anolilab/jsdoc/setup' | 'anolilab/jsdoc/js-rules' | 'anolilab/jsonc/json5-rules' | 'anolilab/jsonc/jsonc-rules' | 'anolilab/jsonc/json-rules' | 'anolilab/jsonc/package.json-rules' | 'anolilab/jsonc/tsconfig-json' | 'anolilab/markdown/setup' | 'anolilab/markdown/processor' | 'anolilab/markdown/parser' | 'anolilab/markdown/rules' | 'anolilab/markdown/disables/markdown' | 'anolilab/markdown/disables/code' | 'anolilab/perfectionist/setup' | 'anolilab/perfectionist/rules' | 'anolilab/perfectionist/typescript' | 'anolilab/perfectionist/postcss' | 'anolilab/react/setup' | 'anolilab/react/rules' | 'anolilab/react/jsx' | 'anolilab/react/tsx' | 'anolilab/react/storybook' | 'anolilab/node/setup' | 'anolilab/node/rules' | 'anolilab/stylistic/rules' | 'anolilab/vitest/setup' | 'anolilab/vitest/rules' | 'anolilab/toml' | 'anolilab/regexp/rules' | 'anolilab/typescript/setup' | 'anolilab/typescript/parser' | 'typescript-eslint/base' | 'typescript-eslint/eslint-recommended' | 'typescript-eslint/strict' | 'anolilab/typescript/rules' | 'anolilab/unicorn/plugin' | 'anolilab/unicorn/rules' | 'anolilab/unicorn/tsconfig-overrides' | 'anolilab/unicorn/ts-overrides' | 'anolilab/unocss' | 'anolilab/yaml' | 'anolilab/zod/rules'
17610
17687
 
17611
17688
  type VendoredPrettierOptions = Partial<VendoredPrettierOptionsRequired>;
17612
17689
  interface VendoredPrettierOptionsRequired {
@@ -17661,7 +17738,7 @@ interface OptionsConfig extends OptionsComponentExtensions, OptionsSilentConsole
17661
17738
  "jsx-a11y"?: OptionsFiles & OptionsOverrides;
17662
17739
  lessOpinionated?: boolean;
17663
17740
  lodash?: boolean | (OptionsFiles & OptionsOverrides);
17664
- markdown?: boolean | (OptionsFiles & OptionsOverrides);
17741
+ markdown?: boolean | (OptionsFiles & OptionsMarkdown & OptionsOverrides);
17665
17742
  node?: OptionsFiles & OptionsOverrides;
17666
17743
  noSecrets?: OptionsOverrides;
17667
17744
  noUnsanitized?: OptionsOverrides;
@@ -17724,6 +17801,10 @@ interface OptionsHasPrettier {
17724
17801
  interface OptionsIsInEditor {
17725
17802
  isInEditor?: boolean;
17726
17803
  }
17804
+ interface OptionsMarkdown {
17805
+ gfm?: boolean;
17806
+ overridesMarkdown?: TypedFlatConfigItem["rules"];
17807
+ }
17727
17808
  interface OptionsOverrides {
17728
17809
  overrides?: TypedFlatConfigItem["rules"];
17729
17810
  }