@component-hook/eslint-plugin 1.5.0 → 1.6.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/dist/index.d.mts CHANGED
@@ -1723,6 +1723,11 @@ interface VueRules {
1723
1723
  * @see https://typescript-eslint.io/rules/no-for-in-array
1724
1724
  */
1725
1725
  '@typescript-eslint/no-for-in-array'?: Linter.RuleEntry<[]>;
1726
+ /**
1727
+ * Disallow type operations that resolve to the "empty object" type
1728
+ * @see https://typescript-eslint.io/rules/no-generated-empty-object-type
1729
+ */
1730
+ '@typescript-eslint/no-generated-empty-object-type'?: Linter.RuleEntry<[]>;
1726
1731
  /**
1727
1732
  * Disallow the use of `eval()`-like functions
1728
1733
  * @see https://typescript-eslint.io/rules/no-implied-eval
@@ -1751,6 +1756,7 @@ interface VueRules {
1751
1756
  /**
1752
1757
  * Disallow function declarations that contain unsafe references inside loop statements
1753
1758
  * @see https://typescript-eslint.io/rules/no-loop-func
1759
+ * @deprecated
1754
1760
  */
1755
1761
  '@typescript-eslint/no-loop-func'?: Linter.RuleEntry<[]>;
1756
1762
  /**
@@ -1827,6 +1833,7 @@ interface VueRules {
1827
1833
  /**
1828
1834
  * Disallow specified modules when loaded by `import`
1829
1835
  * @see https://typescript-eslint.io/rules/no-restricted-imports
1836
+ * @deprecated
1830
1837
  */
1831
1838
  '@typescript-eslint/no-restricted-imports'?: Linter.RuleEntry<TypescriptEslintNoRestrictedImports>;
1832
1839
  /**
@@ -2854,6 +2861,11 @@ interface VueRules {
2854
2861
  * @see https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html
2855
2862
  */
2856
2863
  'vue/no-setup-props-reactivity-loss'?: Linter.RuleEntry<[]>;
2864
+ /**
2865
+ * disallow the use of event names that collide with native web event names
2866
+ * @see https://eslint.vuejs.org/rules/no-shadow-native-events.html
2867
+ */
2868
+ 'vue/no-shadow-native-events'?: Linter.RuleEntry<[]>;
2857
2869
  /**
2858
2870
  * enforce component's data property to be a function
2859
2871
  * @see https://eslint.vuejs.org/rules/no-shared-component-data.html
@@ -3995,7 +4007,9 @@ type TypescriptEslintNoMeaninglessVoidOperator = [] | [{
3995
4007
  checkNever?: boolean;
3996
4008
  }];
3997
4009
  type TypescriptEslintNoMisusedPromises = [] | [{
3998
- checksConditionals?: boolean;
4010
+ checksConditionals?: (boolean | {
4011
+ flagUnions?: ("all" | "strict" | "none");
4012
+ });
3999
4013
  checksSpreads?: boolean;
4000
4014
  checksVoidReturn?: (boolean | {
4001
4015
  arguments?: boolean;
@@ -5012,7 +5026,7 @@ type VueNoDeprecatedSlotAttribute = [] | [{
5012
5026
  ignoreParents?: string[];
5013
5027
  }];
5014
5028
  type VueNoDupeKeys = [] | [{
5015
- groups?: unknown[];
5029
+ groups?: string[];
5016
5030
  }];
5017
5031
  type VueNoDuplicateAttrInheritance = [] | [{
5018
5032
  checkMultiRootNodes?: boolean;
@@ -5119,8 +5133,8 @@ type VueNoReservedComponentNames = [] | [{
5119
5133
  htmlElementCaseSensitive?: boolean;
5120
5134
  }];
5121
5135
  type VueNoReservedKeys = [] | [{
5122
- reserved?: unknown[];
5123
- groups?: unknown[];
5136
+ reserved?: string[];
5137
+ groups?: string[];
5124
5138
  }];
5125
5139
  type VueNoReservedProps = [] | [{
5126
5140
  vueVersion?: (2 | 3);
@@ -5191,7 +5205,7 @@ type VueNoTemplateTargetBlank = [] | [{
5191
5205
  enforceDynamicLinks?: ("always" | "never");
5192
5206
  }];
5193
5207
  type VueNoUndefComponents = [] | [{
5194
- ignorePatterns?: unknown[];
5208
+ ignorePatterns?: string[];
5195
5209
  }];
5196
5210
  type VueNoUndefDirectives = [] | [{
5197
5211
  ignore?: string[];
@@ -5281,7 +5295,7 @@ type VueOperatorLinebreak = [] | [("after" | "before" | "none" | null)] | [("aft
5281
5295
  };
5282
5296
  }];
5283
5297
  type VueOrderInComponents = [] | [{
5284
- order?: unknown[];
5298
+ order?: (string | string[])[];
5285
5299
  }];
5286
5300
  type VuePaddingLineBetweenBlocks = [] | [("never" | "always")];
5287
5301
  type VuePaddingLineBetweenTags = [] | [{
@@ -5353,10 +5367,11 @@ type VueSinglelineHtmlElementContentNewline = [] | [{
5353
5367
  type VueSlotNameCasing = [] | [("camelCase" | "kebab-case" | "singleword")];
5354
5368
  type VueSortKeys = [] | [("asc" | "desc")] | [("asc" | "desc"), {
5355
5369
  caseSensitive?: boolean;
5356
- ignoreChildrenOf?: unknown[];
5357
- ignoreGrandchildrenOf?: unknown[];
5370
+ ignoreChildrenOf?: string[];
5371
+ ignoreGrandchildrenOf?: string[];
5358
5372
  minKeys?: number;
5359
5373
  natural?: boolean;
5374
+ allowLineSeparatedGroups?: boolean;
5360
5375
  }];
5361
5376
  type VueSpaceInParens = [] | [("always" | "never")] | [("always" | "never"), {
5362
5377
  exceptions?: ("{}" | "[]" | "()" | "empty")[];
@@ -5399,7 +5414,7 @@ type VueValidVFor = [] | [{
5399
5414
  allowEmptyAlias?: boolean;
5400
5415
  }];
5401
5416
  type VueValidVOn = [] | [{
5402
- modifiers?: unknown[];
5417
+ modifiers?: string[];
5403
5418
  }];
5404
5419
  type VueValidVSlot = [] | [{
5405
5420
  allowModifiers?: boolean;
@@ -5580,6 +5595,168 @@ type PrettierPrettier = [] | [{
5580
5595
  };
5581
5596
  }];
5582
5597
  //#endregion
5598
+ //#region typegen/oxfmt.d.ts
5599
+ interface OxfmtRules {
5600
+ /**
5601
+ * Format code via oxfmt
5602
+ * @see https://github.com/ntnyq/eslint-plugin-oxfmt
5603
+ */
5604
+ 'oxfmt/oxfmt'?: Linter.RuleEntry<OxfmtOxfmt>;
5605
+ }
5606
+ type OxfmtOxfmt = [] | [{
5607
+ arrowParens?: ("always" | "avoid");
5608
+ bracketSameLine?: boolean;
5609
+ bracketSpacing?: boolean;
5610
+ embeddedLanguageFormatting?: ("auto" | "off");
5611
+ endOfLine?: ("lf" | "crlf" | "cr");
5612
+ experimentalOperatorPosition?: ("start" | "end");
5613
+ htmlWhitespaceSensitivity?: ("css" | "ignore" | "strict");
5614
+ ignorePatterns?: string[];
5615
+ insertFinalNewline?: boolean;
5616
+ jsdoc?: (boolean | {
5617
+ addDefaultToDescription?: boolean;
5618
+ bracketSpacing?: boolean;
5619
+ capitalizeDescriptions?: boolean;
5620
+ commentLineStrategy?: ("singleLine" | "multiline" | "keep");
5621
+ descriptionTag?: boolean;
5622
+ descriptionWithDot?: boolean;
5623
+ keepUnparsableExampleIndent?: boolean;
5624
+ lineWrappingStyle?: ("greedy" | "balance");
5625
+ preferCodeFences?: boolean;
5626
+ separateReturnsFromParam?: boolean;
5627
+ separateTagGroups?: boolean;
5628
+ });
5629
+ jsxSingleQuote?: boolean;
5630
+ objectWrap?: ("preserve" | "collapse");
5631
+ printWidth?: number;
5632
+ proseWrap?: ("always" | "never" | "preserve");
5633
+ quoteProps?: ("as-needed" | "consistent" | "preserve");
5634
+ semi?: boolean;
5635
+ singleAttributePerLine?: boolean;
5636
+ singleQuote?: boolean;
5637
+ sortImports?: (boolean | {
5638
+ customGroups?: {
5639
+ elementNamePattern?: string[];
5640
+ groupName?: string;
5641
+ modifiers?: string[];
5642
+ selector?: string;
5643
+ }[];
5644
+ groups?: (string | string[] | {
5645
+ newlinesBetween: boolean;
5646
+ })[];
5647
+ ignoreCase?: boolean;
5648
+ internalPattern?: string[];
5649
+ newlinesBetween?: boolean;
5650
+ order?: ("asc" | "desc");
5651
+ partitionByComment?: boolean;
5652
+ partitionByNewline?: boolean;
5653
+ sortSideEffects?: boolean;
5654
+ });
5655
+ sortPackageJson?: (boolean | {
5656
+ sortScripts?: boolean;
5657
+ });
5658
+ sortTailwindcss?: (boolean | {
5659
+ attributes?: string[];
5660
+ config?: string;
5661
+ functions?: string[];
5662
+ preserveDuplicates?: boolean;
5663
+ preserveWhitespace?: boolean;
5664
+ stylesheet?: string;
5665
+ });
5666
+ svelte?: (boolean | {
5667
+ allowShorthand?: boolean;
5668
+ indentScriptAndStyle?: boolean;
5669
+ sortOrder?: string;
5670
+ });
5671
+ tabWidth?: number;
5672
+ trailingComma?: ("all" | "es5" | "none");
5673
+ useTabs?: boolean;
5674
+ vueIndentScriptAndStyle?: boolean;
5675
+ configPath?: string;
5676
+ disableNestedConfig?: boolean;
5677
+ editorconfig?: (boolean | {
5678
+ cwd?: string;
5679
+ onlyCwd?: boolean;
5680
+ });
5681
+ ignorePath?: (string | string[]);
5682
+ respectOxfmtDefaultIgnores?: boolean;
5683
+ useConfig?: boolean;
5684
+ withNodeModules?: boolean;
5685
+ overrides?: {
5686
+ excludeFiles?: string[];
5687
+ files: string[];
5688
+ options?: {
5689
+ arrowParens?: ("always" | "avoid");
5690
+ bracketSameLine?: boolean;
5691
+ bracketSpacing?: boolean;
5692
+ embeddedLanguageFormatting?: ("auto" | "off");
5693
+ endOfLine?: ("lf" | "crlf" | "cr");
5694
+ experimentalOperatorPosition?: ("start" | "end");
5695
+ htmlWhitespaceSensitivity?: ("css" | "ignore" | "strict");
5696
+ insertFinalNewline?: boolean;
5697
+ jsdoc?: (boolean | {
5698
+ addDefaultToDescription?: boolean;
5699
+ bracketSpacing?: boolean;
5700
+ capitalizeDescriptions?: boolean;
5701
+ commentLineStrategy?: ("singleLine" | "multiline" | "keep");
5702
+ descriptionTag?: boolean;
5703
+ descriptionWithDot?: boolean;
5704
+ keepUnparsableExampleIndent?: boolean;
5705
+ lineWrappingStyle?: ("greedy" | "balance");
5706
+ preferCodeFences?: boolean;
5707
+ separateReturnsFromParam?: boolean;
5708
+ separateTagGroups?: boolean;
5709
+ });
5710
+ jsxSingleQuote?: boolean;
5711
+ objectWrap?: ("preserve" | "collapse");
5712
+ printWidth?: number;
5713
+ proseWrap?: ("always" | "never" | "preserve");
5714
+ quoteProps?: ("as-needed" | "consistent" | "preserve");
5715
+ semi?: boolean;
5716
+ singleAttributePerLine?: boolean;
5717
+ singleQuote?: boolean;
5718
+ sortImports?: (boolean | {
5719
+ customGroups?: {
5720
+ elementNamePattern?: string[];
5721
+ groupName?: string;
5722
+ modifiers?: string[];
5723
+ selector?: string;
5724
+ }[];
5725
+ groups?: (string | string[] | {
5726
+ newlinesBetween: boolean;
5727
+ })[];
5728
+ ignoreCase?: boolean;
5729
+ internalPattern?: string[];
5730
+ newlinesBetween?: boolean;
5731
+ order?: ("asc" | "desc");
5732
+ partitionByComment?: boolean;
5733
+ partitionByNewline?: boolean;
5734
+ sortSideEffects?: boolean;
5735
+ });
5736
+ sortPackageJson?: (boolean | {
5737
+ sortScripts?: boolean;
5738
+ });
5739
+ sortTailwindcss?: (boolean | {
5740
+ attributes?: string[];
5741
+ config?: string;
5742
+ functions?: string[];
5743
+ preserveDuplicates?: boolean;
5744
+ preserveWhitespace?: boolean;
5745
+ stylesheet?: string;
5746
+ });
5747
+ svelte?: (boolean | {
5748
+ allowShorthand?: boolean;
5749
+ indentScriptAndStyle?: boolean;
5750
+ sortOrder?: string;
5751
+ });
5752
+ tabWidth?: number;
5753
+ trailingComma?: ("all" | "es5" | "none");
5754
+ useTabs?: boolean;
5755
+ vueIndentScriptAndStyle?: boolean;
5756
+ };
5757
+ }[];
5758
+ }];
5759
+ //#endregion
5583
5760
  //#region typegen/sonarjs.d.ts
5584
5761
  interface SonarjsRules {
5585
5762
  /**
@@ -5617,6 +5794,11 @@ interface SonarjsRules {
5617
5794
  * @see https://sonarsource.github.io/rspec/#/rspec/S3524/javascript
5618
5795
  */
5619
5796
  'sonarjs/arrow-function-convention'?: Linter.RuleEntry<SonarjsArrowFunctionConvention>;
5797
+ /**
5798
+ * Assertions should be placed inside test cases or hooks
5799
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8784/javascript
5800
+ */
5801
+ 'sonarjs/assertions-in-test-cases'?: Linter.RuleEntry<[]>;
5620
5802
  /**
5621
5803
  * Tests should include assertions
5622
5804
  * @see https://sonarsource.github.io/rspec/#/rspec/S2699/javascript
@@ -5627,6 +5809,11 @@ interface SonarjsRules {
5627
5809
  * @see https://sonarsource.github.io/rspec/#/rspec/S8780/javascript
5628
5810
  */
5629
5811
  'sonarjs/async-test-assertions'?: Linter.RuleEntry<[]>;
5812
+ /**
5813
+ * Nested properties of Lodash and Underscore.js clone results should not be mutated
5814
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9135/javascript
5815
+ */
5816
+ 'sonarjs/avoid-mutating-nested-properties-of-shallow-clones'?: Linter.RuleEntry<[]>;
5630
5817
  /**
5631
5818
  * AWS API Gateway should require authentication
5632
5819
  * @see https://sonarsource.github.io/rspec/#/rspec/S6333/javascript
@@ -5772,6 +5959,11 @@ interface SonarjsRules {
5772
5959
  * @see https://sonarsource.github.io/rspec/#/rspec/S124/javascript
5773
5960
  */
5774
5961
  'sonarjs/comment-regex'?: Linter.RuleEntry<SonarjsCommentRegex>;
5962
+ /**
5963
+ * Composite assertions should be split
5964
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9073/javascript
5965
+ */
5966
+ 'sonarjs/composite-assertions'?: Linter.RuleEntry<[]>;
5775
5967
  /**
5776
5968
  * Regular expression quantifiers and character classes should be used concisely
5777
5969
  * @see https://sonarsource.github.io/rspec/#/rspec/S6353/javascript
@@ -5894,6 +6086,11 @@ interface SonarjsRules {
5894
6086
  * @see https://sonarsource.github.io/rspec/#/rspec/S6328/javascript
5895
6087
  */
5896
6088
  'sonarjs/existing-groups'?: Linter.RuleEntry<[]>;
6089
+ /**
6090
+ * Tests should be skipped explicitly
6091
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8968/javascript
6092
+ */
6093
+ 'sonarjs/explicit-test-skip'?: Linter.RuleEntry<[]>;
5897
6094
  /**
5898
6095
  * Expressions should not be too complex
5899
6096
  * @see https://sonarsource.github.io/rspec/#/rspec/S1067/javascript
@@ -6051,6 +6248,11 @@ interface SonarjsRules {
6051
6248
  * @see https://sonarsource.github.io/rspec/#/rspec/S4622/javascript
6052
6249
  */
6053
6250
  'sonarjs/max-union-size'?: Linter.RuleEntry<SonarjsMaxUnionSize>;
6251
+ /**
6252
+ * Lodash and Underscore.js `memoize` calls on functions with multiple parameters should use an explicit cache key function
6253
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8932/javascript
6254
+ */
6255
+ 'sonarjs/memoize-cache-key'?: Linter.RuleEntry<[]>;
6054
6256
  /**
6055
6257
  * "for" loop increment clauses should modify the loops' counters
6056
6258
  * @see https://sonarsource.github.io/rspec/#/rspec/S1994/javascript
@@ -6141,6 +6343,21 @@ interface SonarjsRules {
6141
6343
  * @see https://sonarsource.github.io/rspec/#/rspec/S1854/javascript
6142
6344
  */
6143
6345
  'sonarjs/no-dead-store'?: Linter.RuleEntry<[]>;
6346
+ /**
6347
+ * Lodash and Underscore.js debounced or throttled functions should not be recreated on every React render
6348
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9114/javascript
6349
+ */
6350
+ 'sonarjs/no-debounce-throttle-in-render'?: Linter.RuleEntry<[]>;
6351
+ /**
6352
+ * UI test debug commands should not be committed to version control
6353
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8959/javascript
6354
+ */
6355
+ 'sonarjs/no-debug-commands-in-ui-tests'?: Linter.RuleEntry<[]>;
6356
+ /**
6357
+ * Default imports from modular utility libraries should not be used
6358
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8927/javascript
6359
+ */
6360
+ 'sonarjs/no-default-utility-imports'?: Linter.RuleEntry<[]>;
6144
6361
  /**
6145
6362
  * "delete" should be used only with object properties
6146
6363
  * @see https://sonarsource.github.io/rspec/#/rspec/S3001/javascript
@@ -6151,6 +6368,11 @@ interface SonarjsRules {
6151
6368
  * @see https://sonarsource.github.io/rspec/#/rspec/S4621/javascript
6152
6369
  */
6153
6370
  'sonarjs/no-duplicate-in-composite'?: Linter.RuleEntry<[]>;
6371
+ /**
6372
+ * Parameterized tests should not contain duplicate test cases
6373
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9078/javascript
6374
+ */
6375
+ 'sonarjs/no-duplicate-parameterized-test-case'?: Linter.RuleEntry<[]>;
6154
6376
  /**
6155
6377
  * String literals should not be duplicated
6156
6378
  * @see https://sonarsource.github.io/rspec/#/rspec/S1192/javascript
@@ -6196,6 +6418,11 @@ interface SonarjsRules {
6196
6418
  * @see https://sonarsource.github.io/rspec/#/rspec/S6331/javascript
6197
6419
  */
6198
6420
  'sonarjs/no-empty-group'?: Linter.RuleEntry<[]>;
6421
+ /**
6422
+ * Parameterized tests should not have empty datasets
6423
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8998/javascript
6424
+ */
6425
+ 'sonarjs/no-empty-parameterized-test-dataset'?: Linter.RuleEntry<[]>;
6199
6426
  /**
6200
6427
  * Test files should contain at least one test case
6201
6428
  * @see https://sonarsource.github.io/rspec/#/rspec/S2187/javascript
@@ -6226,6 +6453,11 @@ interface SonarjsRules {
6226
6453
  * @see https://sonarsource.github.io/rspec/#/rspec/S128/javascript
6227
6454
  */
6228
6455
  'sonarjs/no-fallthrough'?: Linter.RuleEntry<[]>;
6456
+ /**
6457
+ * Fixed waits should not be used in tests
6458
+ * @see https://sonarsource.github.io/rspec/#/rspec/S2925/javascript
6459
+ */
6460
+ 'sonarjs/no-fixed-wait-in-tests'?: Linter.RuleEntry<[]>;
6229
6461
  /**
6230
6462
  * Floating point numbers should not be tested for equality
6231
6463
  * @see https://sonarsource.github.io/rspec/#/rspec/S1244/javascript
@@ -6346,6 +6578,11 @@ interface SonarjsRules {
6346
6578
  * @see https://sonarsource.github.io/rspec/#/rspec/S6627/javascript
6347
6579
  */
6348
6580
  'sonarjs/no-internal-api-use'?: Linter.RuleEntry<[]>;
6581
+ /**
6582
+ * Inline snapshots should not contain interpolations
6583
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8967/javascript
6584
+ */
6585
+ 'sonarjs/no-interpolation-in-inline-snapshots'?: Linter.RuleEntry<[]>;
6349
6586
  /**
6350
6587
  * Sensitive permissions should not be requested unnecessarily
6351
6588
  * @see https://sonarsource.github.io/rspec/#/rspec/S5604/javascript
@@ -6398,12 +6635,22 @@ interface SonarjsRules {
6398
6635
  * @see https://sonarsource.github.io/rspec/#/rspec/S5868/javascript
6399
6636
  */
6400
6637
  'sonarjs/no-misleading-character-class'?: Linter.RuleEntry<[]>;
6638
+ /**
6639
+ * Test and hook callbacks should use a single completion style
6640
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8960/javascript
6641
+ */
6642
+ 'sonarjs/no-mixed-completion-style'?: Linter.RuleEntry<[]>;
6401
6643
  /**
6402
6644
  * Content Security Policy should block mixed-content
6403
6645
  * @see https://sonarsource.github.io/rspec/#/rspec/S5730/javascript
6404
6646
  * @deprecated
6405
6647
  */
6406
6648
  'sonarjs/no-mixed-content'?: Linter.RuleEntry<[]>;
6649
+ /**
6650
+ * Reactive state should not be unconditionally mutated inside Vue's "updated" lifecycle hook
6651
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9163/javascript
6652
+ */
6653
+ 'sonarjs/no-mutate-reactive-state-in-updated-hook'?: Linter.RuleEntry<[]>;
6407
6654
  /**
6408
6655
  * Assignments should not be made from within sub-expressions
6409
6656
  * @see https://sonarsource.github.io/rspec/#/rspec/S1121/javascript
@@ -6434,6 +6681,11 @@ interface SonarjsRules {
6434
6681
  * @see https://sonarsource.github.io/rspec/#/rspec/S4624/javascript
6435
6682
  */
6436
6683
  'sonarjs/no-nested-template-literals'?: Linter.RuleEntry<[]>;
6684
+ /**
6685
+ * Playwright "networkidle" waits should not be used
6686
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9332/javascript
6687
+ */
6688
+ 'sonarjs/no-networkidle-wait'?: Linter.RuleEntry<[]>;
6437
6689
  /**
6438
6690
  * OS commands should not rely on PATH resolution
6439
6691
  * @see https://sonarsource.github.io/rspec/#/rspec/S4036/javascript
@@ -6547,7 +6799,7 @@ interface SonarjsRules {
6547
6799
  */
6548
6800
  'sonarjs/no-table-as-layout'?: Linter.RuleEntry<[]>;
6549
6801
  /**
6550
- * Assertions should not fail or succeed unconditionally
6802
+ * Assertions should not be trivially true
6551
6803
  * @see https://sonarsource.github.io/rspec/#/rspec/S5914/javascript
6552
6804
  */
6553
6805
  'sonarjs/no-trivial-assertions'?: Linter.RuleEntry<[]>;
@@ -6632,6 +6884,16 @@ interface SonarjsRules {
6632
6884
  * @see https://sonarsource.github.io/rspec/#/rspec/S1526/javascript
6633
6885
  */
6634
6886
  'sonarjs/no-variable-usage-before-declaration'?: Linter.RuleEntry<[]>;
6887
+ /**
6888
+ * Vue components should not use the deprecated "vue-class-component" or "vue-property-decorator" libraries
6889
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9145/javascript
6890
+ */
6891
+ 'sonarjs/no-vue-class-component'?: Linter.RuleEntry<[]>;
6892
+ /**
6893
+ * Vue components should not use mixins
6894
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9150/javascript
6895
+ */
6896
+ 'sonarjs/no-vue-mixins'?: Linter.RuleEntry<[]>;
6635
6897
  /**
6636
6898
  * Cipher algorithms should be robust
6637
6899
  * @see https://sonarsource.github.io/rspec/#/rspec/S5547/javascript
@@ -6678,11 +6940,21 @@ interface SonarjsRules {
6678
6940
  * @deprecated
6679
6941
  */
6680
6942
  'sonarjs/os-command'?: Linter.RuleEntry<[]>;
6943
+ /**
6944
+ * Similar tests should be grouped in a single Parameterized test
6945
+ * @see https://sonarsource.github.io/rspec/#/rspec/S5976/javascript
6946
+ */
6947
+ 'sonarjs/parameterized-tests'?: Linter.RuleEntry<[]>;
6681
6948
  /**
6682
6949
  * Origins should be verified during cross-origin communications
6683
6950
  * @see https://sonarsource.github.io/rspec/#/rspec/S2819/javascript
6684
6951
  */
6685
6952
  'sonarjs/post-message'?: Linter.RuleEntry<[]>;
6953
+ /**
6954
+ * Cypress assertions should be retryable
6955
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9162/javascript
6956
+ */
6957
+ 'sonarjs/prefer-cypress-should'?: Linter.RuleEntry<[]>;
6686
6958
  /**
6687
6959
  * "default" clauses should be last
6688
6960
  * @see https://sonarsource.github.io/rspec/#/rspec/S4524/javascript
@@ -6693,6 +6965,21 @@ interface SonarjsRules {
6693
6965
  * @see https://sonarsource.github.io/rspec/#/rspec/S1488/javascript
6694
6966
  */
6695
6967
  'sonarjs/prefer-immediate-return'?: Linter.RuleEntry<[]>;
6968
+ /**
6969
+ * Native APIs should be preferred over Axios utility methods
6970
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9339/javascript
6971
+ */
6972
+ 'sonarjs/prefer-native-axios-alternative'?: Linter.RuleEntry<[]>;
6973
+ /**
6974
+ * Native APIs should be preferred over jQuery utility methods
6975
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9144/javascript
6976
+ */
6977
+ 'sonarjs/prefer-native-jquery-alternative'?: Linter.RuleEntry<[]>;
6978
+ /**
6979
+ * Native APIs should be preferred over Lodash and Underscore.js methods
6980
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8907/javascript
6981
+ */
6982
+ 'sonarjs/prefer-native-lodash-alternative'?: Linter.RuleEntry<[]>;
6696
6983
  /**
6697
6984
  * Object literal syntax should be used
6698
6985
  * @see https://sonarsource.github.io/rspec/#/rspec/S2428/javascript
@@ -6828,6 +7115,16 @@ interface SonarjsRules {
6828
7115
  * @see https://sonarsource.github.io/rspec/#/rspec/S8786/javascript
6829
7116
  */
6830
7117
  'sonarjs/super-linear-regex'?: Linter.RuleEntry<[]>;
7118
+ /**
7119
+ * Synchronous exception assertions should receive synchronous callbacks
7120
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9072/javascript
7121
+ */
7122
+ 'sonarjs/synchronous-exception-assertions'?: Linter.RuleEntry<[]>;
7123
+ /**
7124
+ * Tests should not be registered asynchronously in suite callbacks
7125
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8785/javascript
7126
+ */
7127
+ 'sonarjs/synchronous-suite-callback'?: Linter.RuleEntry<[]>;
6831
7128
  /**
6832
7129
  * Tables should have headers
6833
7130
  * @see https://sonarsource.github.io/rspec/#/rspec/S5256/javascript
@@ -6843,6 +7140,16 @@ interface SonarjsRules {
6843
7140
  * @see https://sonarsource.github.io/rspec/#/rspec/S5958/javascript
6844
7141
  */
6845
7142
  'sonarjs/test-check-exception'?: Linter.RuleEntry<[]>;
7143
+ /**
7144
+ * Testing Library disappearance waits should use non-throwing queries
7145
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9153/javascript
7146
+ */
7147
+ 'sonarjs/testing-library-prefer-query-by-disappearance'?: Linter.RuleEntry<[]>;
7148
+ /**
7149
+ * Testing Library queries should match presence assertions
7150
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9027/javascript
7151
+ */
7152
+ 'sonarjs/testing-library-query-assertion'?: Linter.RuleEntry<[]>;
6846
7153
  /**
6847
7154
  * Track uses of "TODO" tags
6848
7155
  * @see https://sonarsource.github.io/rspec/#/rspec/S1135/javascript
@@ -6909,6 +7216,11 @@ interface SonarjsRules {
6909
7216
  * @see https://sonarsource.github.io/rspec/#/rspec/S117/javascript
6910
7217
  */
6911
7218
  'sonarjs/variable-name'?: Linter.RuleEntry<SonarjsVariableName>;
7219
+ /**
7220
+ * vi.mock should be declared at module scope
7221
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9169/javascript
7222
+ */
7223
+ 'sonarjs/vitest-mock-at-module-scope'?: Linter.RuleEntry<[]>;
6912
7224
  /**
6913
7225
  * "void" should not be used
6914
7226
  * @see https://sonarsource.github.io/rspec/#/rspec/S3735/javascript
@@ -7111,6 +7423,11 @@ interface PlaywrightRules {
7111
7423
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/missing-playwright-await.md
7112
7424
  */
7113
7425
  'playwright/missing-playwright-await'?: Linter.RuleEntry<PlaywrightMissingPlaywrightAwait>;
7426
+ /**
7427
+ * Disallow the `timeout` option on actions
7428
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-action-timeout.md
7429
+ */
7430
+ 'playwright/no-action-timeout'?: Linter.RuleEntry<PlaywrightNoActionTimeout>;
7114
7431
  /**
7115
7432
  * Disallow commented out tests
7116
7433
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-commented-out-tests.md
@@ -7146,6 +7463,11 @@ interface PlaywrightRules {
7146
7463
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-eval.md
7147
7464
  */
7148
7465
  'playwright/no-eval'?: Linter.RuleEntry<[]>;
7466
+ /**
7467
+ * Disallow using `export` in files containing tests
7468
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-export.md
7469
+ */
7470
+ 'playwright/no-export'?: Linter.RuleEntry<[]>;
7149
7471
  /**
7150
7472
  * Prevent usage of `.only()` focus test annotation
7151
7473
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-focused-test.md
@@ -7166,6 +7488,16 @@ interface PlaywrightRules {
7166
7488
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-hooks.md
7167
7489
  */
7168
7490
  'playwright/no-hooks'?: Linter.RuleEntry<PlaywrightNoHooks>;
7491
+ /**
7492
+ * Disallow identical titles
7493
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-identical-title.md
7494
+ */
7495
+ 'playwright/no-identical-title'?: Linter.RuleEntry<[]>;
7496
+ /**
7497
+ * Disallow magic numbers as Playwright timeout values
7498
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-magic-timeouts.md
7499
+ */
7500
+ 'playwright/no-magic-timeouts'?: Linter.RuleEntry<PlaywrightNoMagicTimeouts>;
7169
7501
  /**
7170
7502
  * Disallow nested `test.step()` methods
7171
7503
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-nested-step.md
@@ -7221,6 +7553,21 @@ interface PlaywrightRules {
7221
7553
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-standalone-expect.md
7222
7554
  */
7223
7555
  'playwright/no-standalone-expect'?: Linter.RuleEntry<[]>;
7556
+ /**
7557
+ * Disallow template literals in test, describe, and step titles
7558
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-template-literal-title.md
7559
+ */
7560
+ 'playwright/no-template-literal-title'?: Linter.RuleEntry<PlaywrightNoTemplateLiteralTitle>;
7561
+ /**
7562
+ * Disallow explicitly returning from tests
7563
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-test-return-statement.md
7564
+ */
7565
+ 'playwright/no-test-return-statement'?: Linter.RuleEntry<[]>;
7566
+ /**
7567
+ * Disallow assertions on a Locator that can never fail
7568
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-unnecessary-assertions.md
7569
+ */
7570
+ 'playwright/no-unnecessary-assertions'?: Linter.RuleEntry<[]>;
7224
7571
  /**
7225
7572
  * Prevent unsafe variable references in page.evaluate() and page.addInitScript()
7226
7573
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/no-unsafe-references.md
@@ -7261,6 +7608,11 @@ interface PlaywrightRules {
7261
7608
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-comparison-matcher.md
7262
7609
  */
7263
7610
  'playwright/prefer-comparison-matcher'?: Linter.RuleEntry<[]>;
7611
+ /**
7612
+ * Prefer having the last statement in a test be an assertion
7613
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-ending-with-an-expect.md
7614
+ */
7615
+ 'playwright/prefer-ending-with-an-expect'?: Linter.RuleEntry<PlaywrightPreferEndingWithAnExpect>;
7264
7616
  /**
7265
7617
  * Suggest using the built-in equality matchers
7266
7618
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-equality-matcher.md
@@ -7321,6 +7673,11 @@ interface PlaywrightRules {
7321
7673
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/prefer-web-first-assertions.md
7322
7674
  */
7323
7675
  'playwright/prefer-web-first-assertions'?: Linter.RuleEntry<[]>;
7676
+ /**
7677
+ * Require a reason for `.skip()` and `.fixme()` annotations
7678
+ * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-annotation-reason.md
7679
+ */
7680
+ 'playwright/require-annotation-reason'?: Linter.RuleEntry<PlaywrightRequireAnnotationReason>;
7324
7681
  /**
7325
7682
  * Require setup and teardown code to be within a hook
7326
7683
  * @see https://github.com/mskelton/eslint-plugin-playwright/tree/main/docs/rules/require-hook.md
@@ -7391,9 +7748,17 @@ type PlaywrightMissingPlaywrightAwait = [] | [{
7391
7748
  customMatchers?: string[];
7392
7749
  includePageLocatorMethods?: boolean;
7393
7750
  }];
7751
+ type PlaywrightNoActionTimeout = [] | [{
7752
+ allow?: string[];
7753
+ }];
7394
7754
  type PlaywrightNoHooks = [] | [{
7395
7755
  allow?: unknown[];
7396
7756
  }];
7757
+ type PlaywrightNoMagicTimeouts = [] | [{
7758
+ allow?: number[];
7759
+ minOccurrences?: number;
7760
+ properties?: string[];
7761
+ }];
7397
7762
  type PlaywrightNoRawLocators = [] | [{
7398
7763
  allowed?: string[];
7399
7764
  }];
@@ -7409,12 +7774,22 @@ type PlaywrightNoRestrictedRoles = [] | [(string | {
7409
7774
  role: string;
7410
7775
  })[]];
7411
7776
  type PlaywrightNoSkippedTest = [] | [{
7412
- allowConditional?: boolean;
7777
+ allowConditional?: (boolean | {
7778
+ fixme?: boolean;
7779
+ skip?: boolean;
7780
+ });
7413
7781
  disallowFixme?: boolean;
7414
7782
  }];
7415
7783
  type PlaywrightNoSlowedTest = [] | [{
7416
7784
  allowConditional?: boolean;
7417
7785
  }];
7786
+ type PlaywrightNoTemplateLiteralTitle = [] | [{
7787
+ ignore?: ("test" | "test.describe" | "test.step")[];
7788
+ }];
7789
+ type PlaywrightPreferEndingWithAnExpect = [] | [{
7790
+ assertFunctionNames?: string[];
7791
+ assertFunctionPatterns?: string[];
7792
+ }];
7418
7793
  type PlaywrightPreferLowercaseTitle = [] | [{
7419
7794
  allowedPrefixes?: string[];
7420
7795
  ignore?: ("test.describe" | "test")[];
@@ -7423,6 +7798,10 @@ type PlaywrightPreferLowercaseTitle = [] | [{
7423
7798
  type PlaywrightPreferNativeLocators = [] | [{
7424
7799
  testIdAttribute?: string;
7425
7800
  }];
7801
+ type PlaywrightRequireAnnotationReason = [] | [{
7802
+ annotations?: ("fail" | "fixme" | "skip" | "slow")[];
7803
+ pattern?: string;
7804
+ }];
7426
7805
  type PlaywrightRequireHook = [] | [{
7427
7806
  allowedFunctionCalls?: string[];
7428
7807
  }];
@@ -7658,6 +8037,7 @@ declare const _default: {
7658
8037
  vue: Config<VueRules>[];
7659
8038
  markdown: Config<MarkdownRules>[];
7660
8039
  prettier: Config<PrettierRules>;
8040
+ oxfmt: Config<OxfmtRules>;
7661
8041
  sonarjs: Config<SonarjsRules>[];
7662
8042
  security: Config<SecurityRules>;
7663
8043
  playwright: Config<PlaywrightRules>;
@@ -7668,13 +8048,13 @@ declare const _default: {
7668
8048
  'testing-library/marko': Config<TestingLibraryRules>;
7669
8049
  };
7670
8050
  };
7671
- declare const reactPreset: (Config | {
8051
+ export declare const reactPreset: (Config | {
7672
8052
  name: string;
7673
8053
  ignores: string[];
7674
8054
  })[];
7675
- declare const vuePreset: (Config | {
8055
+ export declare const vuePreset: (Config | {
7676
8056
  name: string;
7677
8057
  ignores: string[];
7678
8058
  })[];
7679
8059
  //#endregion
7680
- export { _default as default, reactPreset, vuePreset };
8060
+ export { _default as default };