@anolilab/eslint-config 30.0.4 → 30.0.6

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,37 @@
1
+ ## @anolilab/eslint-config [30.0.6](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@30.0.5...@anolilab/eslint-config@30.0.6) (2026-10-13)
2
+
3
+
4
+ ### Dependencies
5
+
6
+ * **typescript-eslint:** 8.71.0 → 8.71.1
7
+
8
+ ## @anolilab/eslint-config [30.0.5](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@30.0.4...@anolilab/eslint-config@30.0.5) (2026-10-12)
9
+
10
+ ### Bug Fixes
11
+
12
+ * **deps:** update eslint ([d76127d](https://github.com/anolilab/javascript-style-guide/commit/d76127d59404dc7efec302b4182a5273248e88fd))
13
+
14
+ ### Miscellaneous Chores
15
+
16
+ * **deps:** combine open Renovate updates into renovate/combined ([1e81558](https://github.com/anolilab/javascript-style-guide/commit/1e81558011d11c15132f47dd159991b6373ac56b))
17
+
18
+
19
+ ### Dependencies
20
+
21
+ * **@eslint-react/eslint-plugin:** 5.23.5 → 5.24.10
22
+ * **eslint-plugin-es-x:** 10.0.0 → 10.0.1
23
+ * **eslint-plugin-jsonc:** 3.4.1 → 3.4.2
24
+ * **eslint-plugin-perfectionist:** 5.10.0 → 5.10.1
25
+ * **eslint-plugin-react-refresh:** 0.5.3 → 0.5.7
26
+ * **eslint-plugin-react-you-might-not-need-an-effect:** 1.0.1 → 1.0.2
27
+ * **eslint-plugin-sonarjs:** 4.2.0 → 4.2.2
28
+ * **eslint-plugin-storybook:** 10.5.3 → 10.5.10
29
+ * **eslint-plugin-tsdoc:** 0.5.2 → 0.5.4
30
+ * **eslint-plugin-zod:** 4.9.0 → 4.9.1
31
+ * **@visulima/fs:** 5.0.5 → 5.0.11
32
+ * **@visulima/package:** ^5.0.5 → ^5.0.42
33
+ * **@visulima/tsconfig:** ^3.2.0 → ^3.2.36
34
+
1
35
  ## @anolilab/eslint-config [30.0.4](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@30.0.3...@anolilab/eslint-config@30.0.4) (2026-10-06)
2
36
 
3
37
  ## @anolilab/eslint-config [30.0.3](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@30.0.2...@anolilab/eslint-config@30.0.3) (2026-10-06)
package/dist/index.d.ts CHANGED
@@ -5402,6 +5402,11 @@ interface RuleOptions {
5402
5402
  * @see https://sonarsource.github.io/rspec/#/rspec/S8780/javascript
5403
5403
  */
5404
5404
  'sonarjs/async-test-assertions'?: Linter.RuleEntry<[]>;
5405
+ /**
5406
+ * Nested properties of Lodash and Underscore.js clone results should not be mutated
5407
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9135/javascript
5408
+ */
5409
+ 'sonarjs/avoid-mutating-nested-properties-of-shallow-clones'?: Linter.RuleEntry<[]>;
5405
5410
  /**
5406
5411
  * AWS API Gateway should require authentication
5407
5412
  * @see https://sonarsource.github.io/rspec/#/rspec/S6333/javascript
@@ -5547,6 +5552,11 @@ interface RuleOptions {
5547
5552
  * @see https://sonarsource.github.io/rspec/#/rspec/S124/javascript
5548
5553
  */
5549
5554
  'sonarjs/comment-regex'?: Linter.RuleEntry<SonarjsCommentRegex>;
5555
+ /**
5556
+ * Composite assertions should be split
5557
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9073/javascript
5558
+ */
5559
+ 'sonarjs/composite-assertions'?: Linter.RuleEntry<[]>;
5550
5560
  /**
5551
5561
  * Regular expression quantifiers and character classes should be used concisely
5552
5562
  * @see https://sonarsource.github.io/rspec/#/rspec/S6353/javascript
@@ -5926,6 +5936,11 @@ interface RuleOptions {
5926
5936
  * @see https://sonarsource.github.io/rspec/#/rspec/S1854/javascript
5927
5937
  */
5928
5938
  'sonarjs/no-dead-store'?: Linter.RuleEntry<[]>;
5939
+ /**
5940
+ * Lodash and Underscore.js debounced or throttled functions should not be recreated on every React render
5941
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9114/javascript
5942
+ */
5943
+ 'sonarjs/no-debounce-throttle-in-render'?: Linter.RuleEntry<[]>;
5929
5944
  /**
5930
5945
  * UI test debug commands should not be committed to version control
5931
5946
  * @see https://sonarsource.github.io/rspec/#/rspec/S8959/javascript
@@ -5946,6 +5961,11 @@ interface RuleOptions {
5946
5961
  * @see https://sonarsource.github.io/rspec/#/rspec/S4621/javascript
5947
5962
  */
5948
5963
  'sonarjs/no-duplicate-in-composite'?: Linter.RuleEntry<[]>;
5964
+ /**
5965
+ * Parameterized tests should not contain duplicate test cases
5966
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9078/javascript
5967
+ */
5968
+ 'sonarjs/no-duplicate-parameterized-test-case'?: Linter.RuleEntry<[]>;
5949
5969
  /**
5950
5970
  * String literals should not be duplicated
5951
5971
  * @see https://sonarsource.github.io/rspec/#/rspec/S1192/javascript
@@ -5991,6 +6011,11 @@ interface RuleOptions {
5991
6011
  * @see https://sonarsource.github.io/rspec/#/rspec/S6331/javascript
5992
6012
  */
5993
6013
  'sonarjs/no-empty-group'?: Linter.RuleEntry<[]>;
6014
+ /**
6015
+ * Parameterized tests should not have empty datasets
6016
+ * @see https://sonarsource.github.io/rspec/#/rspec/S8998/javascript
6017
+ */
6018
+ 'sonarjs/no-empty-parameterized-test-dataset'?: Linter.RuleEntry<[]>;
5994
6019
  /**
5995
6020
  * Test files should contain at least one test case
5996
6021
  * @see https://sonarsource.github.io/rspec/#/rspec/S2187/javascript
@@ -6214,6 +6239,11 @@ interface RuleOptions {
6214
6239
  * @deprecated
6215
6240
  */
6216
6241
  'sonarjs/no-mixed-content'?: Linter.RuleEntry<[]>;
6242
+ /**
6243
+ * Reactive state should not be unconditionally mutated inside Vue's "updated" lifecycle hook
6244
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9163/javascript
6245
+ */
6246
+ 'sonarjs/no-mutate-reactive-state-in-updated-hook'?: Linter.RuleEntry<[]>;
6217
6247
  /**
6218
6248
  * Assignments should not be made from within sub-expressions
6219
6249
  * @see https://sonarsource.github.io/rspec/#/rspec/S1121/javascript
@@ -6244,6 +6274,11 @@ interface RuleOptions {
6244
6274
  * @see https://sonarsource.github.io/rspec/#/rspec/S4624/javascript
6245
6275
  */
6246
6276
  'sonarjs/no-nested-template-literals'?: Linter.RuleEntry<[]>;
6277
+ /**
6278
+ * Playwright "networkidle" waits should not be used
6279
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9332/javascript
6280
+ */
6281
+ 'sonarjs/no-networkidle-wait'?: Linter.RuleEntry<[]>;
6247
6282
  /**
6248
6283
  * OS commands should not rely on PATH resolution
6249
6284
  * @see https://sonarsource.github.io/rspec/#/rspec/S4036/javascript
@@ -6280,7 +6315,7 @@ interface RuleOptions {
6280
6315
  */
6281
6316
  'sonarjs/no-redundant-optional'?: Linter.RuleEntry<[]>;
6282
6317
  /**
6283
- * Unnecessary parentheses should be removed
6318
+ * Redundant pairs of parentheses should be removed
6284
6319
  * @see https://sonarsource.github.io/rspec/#/rspec/S1110/javascript
6285
6320
  * @deprecated
6286
6321
  */
@@ -6442,6 +6477,16 @@ interface RuleOptions {
6442
6477
  * @see https://sonarsource.github.io/rspec/#/rspec/S1526/javascript
6443
6478
  */
6444
6479
  'sonarjs/no-variable-usage-before-declaration'?: Linter.RuleEntry<[]>;
6480
+ /**
6481
+ * Vue components should not use the deprecated "vue-class-component" or "vue-property-decorator" libraries
6482
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9145/javascript
6483
+ */
6484
+ 'sonarjs/no-vue-class-component'?: Linter.RuleEntry<[]>;
6485
+ /**
6486
+ * Vue components should not use mixins
6487
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9150/javascript
6488
+ */
6489
+ 'sonarjs/no-vue-mixins'?: Linter.RuleEntry<[]>;
6445
6490
  /**
6446
6491
  * Cipher algorithms should be robust
6447
6492
  * @see https://sonarsource.github.io/rspec/#/rspec/S5547/javascript
@@ -6498,6 +6543,11 @@ interface RuleOptions {
6498
6543
  * @see https://sonarsource.github.io/rspec/#/rspec/S2819/javascript
6499
6544
  */
6500
6545
  'sonarjs/post-message'?: Linter.RuleEntry<[]>;
6546
+ /**
6547
+ * Cypress assertions should be retryable
6548
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9162/javascript
6549
+ */
6550
+ 'sonarjs/prefer-cypress-should'?: Linter.RuleEntry<[]>;
6501
6551
  /**
6502
6552
  * "default" clauses should be last
6503
6553
  * @see https://sonarsource.github.io/rspec/#/rspec/S4524/javascript
@@ -6508,6 +6558,16 @@ interface RuleOptions {
6508
6558
  * @see https://sonarsource.github.io/rspec/#/rspec/S1488/javascript
6509
6559
  */
6510
6560
  'sonarjs/prefer-immediate-return'?: Linter.RuleEntry<[]>;
6561
+ /**
6562
+ * Native APIs should be preferred over Axios utility methods
6563
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9339/javascript
6564
+ */
6565
+ 'sonarjs/prefer-native-axios-alternative'?: Linter.RuleEntry<[]>;
6566
+ /**
6567
+ * Native APIs should be preferred over jQuery utility methods
6568
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9144/javascript
6569
+ */
6570
+ 'sonarjs/prefer-native-jquery-alternative'?: Linter.RuleEntry<[]>;
6511
6571
  /**
6512
6572
  * Native APIs should be preferred over Lodash and Underscore.js methods
6513
6573
  * @see https://sonarsource.github.io/rspec/#/rspec/S8907/javascript
@@ -6648,6 +6708,11 @@ interface RuleOptions {
6648
6708
  * @see https://sonarsource.github.io/rspec/#/rspec/S8786/javascript
6649
6709
  */
6650
6710
  'sonarjs/super-linear-regex'?: Linter.RuleEntry<[]>;
6711
+ /**
6712
+ * Synchronous exception assertions should receive synchronous callbacks
6713
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9072/javascript
6714
+ */
6715
+ 'sonarjs/synchronous-exception-assertions'?: Linter.RuleEntry<[]>;
6651
6716
  /**
6652
6717
  * Tests should not be registered asynchronously in suite callbacks
6653
6718
  * @see https://sonarsource.github.io/rspec/#/rspec/S8785/javascript
@@ -6668,6 +6733,16 @@ interface RuleOptions {
6668
6733
  * @see https://sonarsource.github.io/rspec/#/rspec/S5958/javascript
6669
6734
  */
6670
6735
  'sonarjs/test-check-exception'?: Linter.RuleEntry<[]>;
6736
+ /**
6737
+ * Testing Library disappearance waits should use non-throwing queries
6738
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9153/javascript
6739
+ */
6740
+ 'sonarjs/testing-library-prefer-query-by-disappearance'?: Linter.RuleEntry<[]>;
6741
+ /**
6742
+ * Testing Library queries should match presence assertions
6743
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9027/javascript
6744
+ */
6745
+ 'sonarjs/testing-library-query-assertion'?: Linter.RuleEntry<[]>;
6671
6746
  /**
6672
6747
  * Track uses of "TODO" tags
6673
6748
  * @see https://sonarsource.github.io/rspec/#/rspec/S1135/javascript
@@ -6734,6 +6809,11 @@ interface RuleOptions {
6734
6809
  * @see https://sonarsource.github.io/rspec/#/rspec/S117/javascript
6735
6810
  */
6736
6811
  'sonarjs/variable-name'?: Linter.RuleEntry<SonarjsVariableName>;
6812
+ /**
6813
+ * vi.mock should be declared at module scope
6814
+ * @see https://sonarsource.github.io/rspec/#/rspec/S9169/javascript
6815
+ */
6816
+ 'sonarjs/vitest-mock-at-module-scope'?: Linter.RuleEntry<[]>;
6737
6817
  /**
6738
6818
  * "void" should not be used
6739
6819
  * @see https://sonarsource.github.io/rspec/#/rspec/S3735/javascript
@@ -16922,6 +17002,7 @@ type ReactRefreshOnlyExportComponents = [] | [{
16922
17002
  extraHOCs?: string[];
16923
17003
  allowExportNames?: string[];
16924
17004
  allowConstantExport?: boolean;
17005
+ allowCompoundComponents?: boolean;
16925
17006
  checkJS?: boolean;
16926
17007
  }];
16927
17008
  // ----- react-x/dom-no-unknown-property -----
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anolilab/eslint-config",
3
- "version": "30.0.4",
3
+ "version": "30.0.6",
4
4
  "description": "ESLint shareable config for the Anolilab JavaScript style guide.",
5
5
  "keywords": [
6
6
  "anolilab",
@@ -102,9 +102,9 @@
102
102
  "@stylistic/eslint-plugin-ts": "^4.4.1",
103
103
  "@typescript-eslint/parser": "8.66.0",
104
104
  "@typescript-eslint/types": "8.66.0",
105
- "@visulima/fs": "5.0.5",
106
- "@visulima/package": "^5.0.5",
107
- "@visulima/tsconfig": "^3.2.0",
105
+ "@visulima/fs": "5.0.11",
106
+ "@visulima/package": "^5.0.42",
107
+ "@visulima/tsconfig": "^3.2.36",
108
108
  "@vitest/eslint-plugin": "1.6.27",
109
109
  "confusing-browser-globals": "^1.0.11",
110
110
  "eslint-config-flat-gitignore": "2.3.0",
@@ -116,23 +116,23 @@
116
116
  "eslint-plugin-antfu": "3.2.3",
117
117
  "eslint-plugin-compat": "7.0.2",
118
118
  "eslint-plugin-erasable-syntax-only": "0.4.2",
119
- "eslint-plugin-es-x": "10.0.0",
119
+ "eslint-plugin-es-x": "10.0.1",
120
120
  "eslint-plugin-html": "8.1.4",
121
121
  "eslint-plugin-import-x": "4.17.1",
122
122
  "eslint-plugin-jsdoc": "63.3.3",
123
- "eslint-plugin-jsonc": "3.4.1",
123
+ "eslint-plugin-jsonc": "3.4.2",
124
124
  "eslint-plugin-n": "18.2.2",
125
125
  "eslint-plugin-no-for-of-array": "^0.1.0",
126
126
  "eslint-plugin-no-only-tests": "3.4.0",
127
127
  "eslint-plugin-no-secrets": "2.3.3",
128
128
  "eslint-plugin-no-unsanitized": "4.1.5",
129
- "eslint-plugin-perfectionist": "5.10.0",
129
+ "eslint-plugin-perfectionist": "5.10.1",
130
130
  "eslint-plugin-pnpm": "1.7.0",
131
131
  "eslint-plugin-promise": "7.3.0",
132
132
  "eslint-plugin-regexp": "3.1.1",
133
133
  "eslint-plugin-security": "4.0.1",
134
134
  "eslint-plugin-simple-import-sort": "14.0.0",
135
- "eslint-plugin-sonarjs": "4.2.0",
135
+ "eslint-plugin-sonarjs": "4.2.2",
136
136
  "eslint-plugin-toml": "1.5.0",
137
137
  "eslint-plugin-unicorn": "72.0.0",
138
138
  "eslint-plugin-unused-imports": "4.4.1",
@@ -142,18 +142,18 @@
142
142
  "parse-gitignore": "^2.0.0",
143
143
  "semver": "7.8.5",
144
144
  "toml-eslint-parser": "1.0.3",
145
- "typescript-eslint": "8.71.0",
145
+ "typescript-eslint": "8.71.1",
146
146
  "yaml-eslint-parser": "2.1.0"
147
147
  },
148
148
  "peerDependencies": {
149
- "@eslint-react/eslint-plugin": "5.23.5",
149
+ "@eslint-react/eslint-plugin": "5.24.10",
150
150
  "@eslint/css": "2.0.0",
151
151
  "@ospm/eslint-plugin-react-unhookify": "^1.0.2",
152
152
  "@tanstack/eslint-plugin-query": "5.104.1",
153
153
  "@tanstack/eslint-plugin-router": "1.162.0",
154
154
  "@unocss/eslint-plugin": "66.10.0",
155
155
  "astro-eslint-parser": "3.2.0",
156
- "eslint": ">=9.39.5",
156
+ "eslint": ">=10.0.3",
157
157
  "eslint-plugin-astro": "3.1.0",
158
158
  "eslint-plugin-format": ">=2.0.1",
159
159
  "eslint-plugin-jsx-a11y": "^6.10.2",
@@ -163,15 +163,15 @@
163
163
  "eslint-plugin-react-compiler": "^19.1.0-rc.2",
164
164
  "eslint-plugin-react-hooks": "7.1.1",
165
165
  "eslint-plugin-react-perf": "^3.3.3",
166
- "eslint-plugin-react-refresh": "0.5.3",
167
- "eslint-plugin-react-you-might-not-need-an-effect": "1.0.1",
168
- "eslint-plugin-storybook": "10.5.3",
166
+ "eslint-plugin-react-refresh": "0.5.7",
167
+ "eslint-plugin-react-you-might-not-need-an-effect": "1.0.2",
168
+ "eslint-plugin-storybook": "10.5.10",
169
169
  "eslint-plugin-tailwindcss": "4.2.0",
170
170
  "eslint-plugin-testing-library": "7.16.2",
171
- "eslint-plugin-tsdoc": "0.5.2",
171
+ "eslint-plugin-tsdoc": "0.5.4",
172
172
  "eslint-plugin-validate-jsx-nesting": "^0.1.1",
173
173
  "eslint-plugin-you-dont-need-lodash-underscore": "^6.14.0",
174
- "eslint-plugin-zod": "4.9.0",
174
+ "eslint-plugin-zod": "4.9.1",
175
175
  "tailwind-csstree": "0.4.1"
176
176
  },
177
177
  "peerDependenciesMeta": {