@ethang/eslint-config 19.0.7 → 19.0.9

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/eslint.config.js CHANGED
@@ -18,14 +18,14 @@ export const languageOptions = {
18
18
  parser,
19
19
  parserOptions: {
20
20
  project: true,
21
- tsconfigRootDir: import.meta.dirname
22
- }
21
+ tsconfigRootDir: import.meta.dirname,
22
+ },
23
23
  };
24
24
 
25
25
  export const ignores = ["eslint.config.js", "node_modules", "dist"];
26
26
 
27
27
  export default tseslint.config({
28
- files: ["**/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts}"],
28
+ files: ["**/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts,astro,svelte,vue}"],
29
29
  ignores,
30
30
  languageOptions,
31
31
  plugins: {
@@ -41,7 +41,7 @@ export default tseslint.config({
41
41
  sonar,
42
42
  stylistic,
43
43
  tailwind,
44
- unicorn
44
+ unicorn,
45
45
  },
46
46
  rules: {
47
47
  "depend/ban-dependencies": ["error", { allowed: ["lodash"] }],
@@ -50,35 +50,45 @@ export default tseslint.config({
50
50
  "barrel/avoid-namespace-import": "error",
51
51
  "barrel/avoid-re-export-all": "error",
52
52
  "compat/compat": "error",
53
-
54
53
  "accessor-pairs": "error",
55
54
  "array-callback-return": "error",
56
55
  "arrow-body-style": ["error", "always"],
57
56
  "block-scoped-var": "error",
58
- "camelcase": "off", // No
59
- "capitalized-comments": "off", // No
57
+ camelcase: "off",
58
+ "capitalized-comments": "off",
59
+ "class-methods-use-this": "off",
60
+ complexity: "off",
61
+ "consistent-return": "off",
62
+ "consistent-this": "off",
60
63
  "constructor-super": "error",
64
+ curly: "off",
65
+ "default-case": "off",
66
+ "default-case-last": "off",
67
+ "default-param-last": "off",
68
+ "dot-notation": "off",
61
69
  eqeqeq: "error",
62
70
  "for-direction": "error",
63
71
  "func-name-matching": "error",
64
- "func-style": [
65
- "error",
66
- "declaration",
67
- {
68
- allowArrowFunctions: true
69
- }
70
- ],
72
+ "func-names": "off",
73
+ "func-style": ["error", "declaration", { allowArrowFunctions: true }],
71
74
  "getter-return": "error",
72
75
  "grouped-accessor-pairs": "error",
73
76
  "guard-for-in": "error",
77
+ "id-denylist": "off",
78
+ "id-length": "off",
79
+ "id-match": "off",
80
+ "init-declarations": "off",
74
81
  "logical-assignment-operators": "error",
75
82
  "max-classes-per-file": "error",
76
83
  "max-depth": "error",
77
- "max-lines": "off", // Handled by Sonar
78
- "max-lines-per-function": "off", // Handled by Sonar
84
+ "max-lines": "off",
85
+ "max-lines-per-function": "off",
79
86
  "max-nested-callbacks": "error",
87
+ "max-params": "off",
80
88
  "max-statements": "error",
89
+ "new-cap": "off",
81
90
  "no-alert": "error",
91
+ "no-array-constructor": "off",
82
92
  "no-async-promise-executor": "error",
83
93
  "no-await-in-loop": "error",
84
94
  "no-bitwise": "error",
@@ -92,17 +102,21 @@ export default tseslint.config({
92
102
  "no-constant-binary-expression": "error",
93
103
  "no-constant-condition": "error",
94
104
  "no-constructor-return": "error",
105
+ "no-continue": "error",
95
106
  "no-control-regex": "error",
96
107
  "no-debugger": "error",
97
108
  "no-delete-var": "error",
98
109
  "no-div-regex": "error",
99
110
  "no-dupe-args": "error",
111
+ "no-dupe-class-members": "error",
100
112
  "no-dupe-else-if": "error",
101
113
  "no-dupe-keys": "error",
102
114
  "no-duplicate-case": "error",
115
+ "no-duplicate-imports": "off",
103
116
  "no-else-return": "error",
104
117
  "no-empty": "error",
105
118
  "no-empty-character-class": "error",
119
+ "no-empty-function": "off",
106
120
  "no-empty-pattern": "error",
107
121
  "no-empty-static-block": "error",
108
122
  "no-eq-null": "error",
@@ -116,16 +130,22 @@ export default tseslint.config({
116
130
  "no-func-assign": "error",
117
131
  "no-global-assign": "error",
118
132
  "no-implicit-coercion": "error",
133
+ "no-implicit-globals": "off",
134
+ "no-implied-eval": "off",
119
135
  "no-import-assign": "error",
136
+ "no-inline-comments": "off",
120
137
  "no-inner-declarations": "error",
121
138
  "no-invalid-regexp": "error",
139
+ "no-invalid-this": "error",
122
140
  "no-irregular-whitespace": "error",
123
141
  "no-iterator": "error",
124
142
  "no-label-var": "error",
125
143
  "no-labels": "error",
126
144
  "no-lone-blocks": "error",
127
145
  "no-lonely-if": "error",
146
+ "no-loop-func": "error",
128
147
  "no-loss-of-precision": "error",
148
+ "no-magic-numbers": "off",
129
149
  "no-misleading-character-class": "error",
130
150
  "no-multi-assign": "error",
131
151
  "no-multi-str": "error",
@@ -145,56 +165,83 @@ export default tseslint.config({
145
165
  "no-promise-executor-return": "error",
146
166
  "no-proto": "error",
147
167
  "no-prototype-builtins": "error",
168
+ "no-redeclare": "off",
148
169
  "no-regex-spaces": "error",
170
+ "no-restricted-exports": "off",
171
+ "no-restricted-globals": "off",
172
+ "no-restricted-imports": "off",
173
+ "no-restricted-properties": "off",
174
+ "no-restricted-syntax": "off",
149
175
  "no-return-assign": "error",
150
176
  "no-script-url": "error",
151
177
  "no-self-assign": "error",
152
178
  "no-self-compare": "error",
153
179
  "no-sequences": "error",
154
180
  "no-setter-return": "error",
181
+ "no-shadow": "off",
155
182
  "no-shadow-restricted-names": "error",
156
183
  "no-sparse-arrays": "error",
184
+ "no-template-curly-in-string": "off",
185
+ "no-ternary": "off",
157
186
  "no-this-before-super": "error",
187
+ "no-throw-literal": "off",
188
+ "no-undef": "off",
158
189
  "no-undef-init": "error",
190
+ "no-undefined": "off",
191
+ "no-underscore-dangle": "off",
192
+ "no-unexpected-multiline": "off",
159
193
  "no-unmodified-loop-condition": "error",
160
194
  "no-unneeded-ternary": "error",
161
195
  "no-unreachable": "error",
162
196
  "no-unreachable-loop": "error",
163
197
  "no-unsafe-finally": "error",
164
198
  "no-unsafe-negation": "error",
165
- "no-unsafe-optional-chaining": ["error", {
166
- disallowArithmeticOperators: true
167
- }],
199
+ "no-unsafe-optional-chaining": [
200
+ "error",
201
+ { disallowArithmeticOperators: true },
202
+ ],
203
+ "no-unused-expressions": "off",
168
204
  "no-unused-labels": "error",
169
205
  "no-unused-private-class-members": "error",
206
+ "no-unused-vars": "off",
207
+ "no-use-before-define": "off",
208
+ "no-useless-assignment": "off",
170
209
  "no-useless-backreference": "error",
171
210
  "no-useless-call": "error",
172
211
  "no-useless-catch": "error",
173
212
  "no-useless-computed-key": "error",
174
213
  "no-useless-concat": "error",
214
+ "no-useless-constructor": "off",
175
215
  "no-useless-escape": "error",
176
216
  "no-useless-rename": "error",
177
217
  "no-useless-return": "error",
178
218
  "no-var": "error",
179
219
  "no-void": "error",
220
+ "no-warning-comments": "off",
180
221
  "no-with": "error",
181
222
  "object-shorthand": "error",
223
+ "one-var": "off",
182
224
  "operator-assignment": "error",
183
225
  "prefer-arrow-callback": "error",
184
226
  "prefer-const": "error",
227
+ "prefer-destructuring": "off",
185
228
  "prefer-exponentiation-operator": "error",
186
229
  "prefer-named-capture-group": "error",
187
230
  "prefer-numeric-literals": "error",
188
231
  "prefer-object-has-own": "error",
189
232
  "prefer-object-spread": "error",
233
+ "prefer-promise-reject-errors": "off",
190
234
  "prefer-regex-literals": "error",
191
235
  "prefer-rest-params": "error",
192
236
  "prefer-spread": "error",
193
237
  "prefer-template": "error",
194
238
  radix: "error",
195
239
  "require-atomic-updates": "error",
240
+ "require-await": "off",
196
241
  "require-unicode-regexp": "error",
197
242
  "require-yield": "error",
243
+ "sort-imports": "off",
244
+ "sort-keys": "off",
198
245
  "sort-vars": "error",
199
246
  strict: "error",
200
247
  "symbol-description": "error",
@@ -203,16 +250,29 @@ export default tseslint.config({
203
250
  "valid-typeof": "error",
204
251
  "vars-on-top": "error",
205
252
  yoda: ["error", "always"],
206
-
253
+ "n/callback-return": "off",
207
254
  "n/exports-style": ["error", "exports"],
255
+ "n/file-extension-in-import": "off",
256
+ "n/global-require": "off",
208
257
  "n/handle-callback-err": "error",
258
+ "n/no-callback-literal": "off",
209
259
  "n/no-deprecated-api": "error",
210
260
  "n/no-exports-assign": "error",
211
261
  "n/no-extraneous-import": "error",
212
262
  "n/no-extraneous-require": "error",
263
+ "n/no-missing-import": "off",
213
264
  "n/no-missing-require": "error",
265
+ "n/no-mixed-requires": "off",
266
+ "n/no-new-require": "off",
214
267
  "n/no-path-concat": "error",
268
+ "n/no-process-env": "off",
269
+ "n/no-process-exit": "off",
270
+ "n/no-restricted-import": "off",
271
+ "n/no-restricted-require": "off",
272
+ "n/no-sync": "off",
215
273
  "n/no-unpublished-bin": "error",
274
+ "n/no-unpublished-import": "off",
275
+ "n/no-unpublished-require": "off",
216
276
  "n/no-unsupported-features/es-builtins": "error",
217
277
  "n/no-unsupported-features/es-syntax": "error",
218
278
  "n/no-unsupported-features/node-builtins": "error",
@@ -224,32 +284,47 @@ export default tseslint.config({
224
284
  "n/prefer-global/url-search-params": "error",
225
285
  "n/prefer-global/url": "error",
226
286
  "n/prefer-node-protocol": "error",
227
-
287
+ "n/prefer-promises/dns": "off",
288
+ "n/prefer-promises/fs": "off",
289
+ "n/process-exit-as-throw": "off",
290
+ "n/hashbang": "off",
291
+ "n/no-hide-core-modules": "off",
292
+ "n/shebang": "off",
293
+ "@typescript-eslint/adjacent-overload-signatures": "off",
228
294
  "@typescript-eslint/array-type": "error",
229
295
  "@typescript-eslint/await-thenable": "error",
230
296
  "@typescript-eslint/ban-ts-comment": "error",
231
297
  "@typescript-eslint/ban-tslint-comment": "error",
232
298
  "@typescript-eslint/class-literal-property-style": "error",
299
+ "@typescript-eslint/class-methods-use-this": "off",
233
300
  "@typescript-eslint/consistent-generic-constructors": "error",
234
301
  "@typescript-eslint/consistent-indexed-object-style": "error",
302
+ "@typescript-eslint/consistent-return": "off",
235
303
  "@typescript-eslint/consistent-type-assertions": "error",
236
304
  "@typescript-eslint/consistent-type-definitions": ["error", "type"],
237
305
  "@typescript-eslint/consistent-type-exports": "error",
238
306
  "@typescript-eslint/consistent-type-imports": "error",
239
307
  "@typescript-eslint/default-param-last": "error",
240
308
  "@typescript-eslint/dot-notation": "error",
309
+ "@typescript-eslint/explicit-function-return-type": "off",
241
310
  "@typescript-eslint/explicit-member-accessibility": "error",
242
- "@typescript-eslint/max-params": "off", // Handled by Sonar
311
+ "@typescript-eslint/explicit-module-boundary-types": "off",
312
+ "@typescript-eslint/init-declarations": "off",
313
+ "@typescript-eslint/max-params": "off",
314
+ "@typescript-eslint/member-ordering": "off",
243
315
  "@typescript-eslint/method-signature-style": "error",
316
+ "@typescript-eslint/naming-convention": "off",
244
317
  "@typescript-eslint/no-array-constructor": "error",
245
318
  "@typescript-eslint/no-array-delete": "error",
246
319
  "@typescript-eslint/no-base-to-string": "error",
247
320
  "@typescript-eslint/no-confusing-non-null-assertion": "error",
248
321
  "@typescript-eslint/no-confusing-void-expression": "error",
322
+ "@typescript-eslint/no-dupe-class-members": "off",
249
323
  "@typescript-eslint/no-duplicate-enum-values": "error",
250
324
  "@typescript-eslint/no-duplicate-type-constituents": "error",
251
325
  "@typescript-eslint/no-dynamic-delete": "error",
252
326
  "@typescript-eslint/no-empty-function": "error",
327
+ "@typescript-eslint/no-empty-interface": "off",
253
328
  "@typescript-eslint/no-empty-object-type": "error",
254
329
  "@typescript-eslint/no-explicit-any": "error",
255
330
  "@typescript-eslint/no-extra-non-null-assertion": "error",
@@ -259,8 +334,11 @@ export default tseslint.config({
259
334
  "@typescript-eslint/no-implied-eval": "error",
260
335
  "@typescript-eslint/no-import-type-side-effects": "error",
261
336
  "@typescript-eslint/no-inferrable-types": "error",
337
+ "@typescript-eslint/no-invalid-this": "off",
262
338
  "@typescript-eslint/no-invalid-void-type": "error",
263
339
  "@typescript-eslint/no-loop-func": "error",
340
+ "@typescript-eslint/no-loss-of-precision": "off",
341
+ "@typescript-eslint/no-magic-numbers": "off",
264
342
  "@typescript-eslint/no-meaningless-void-operator": "error",
265
343
  "@typescript-eslint/no-misused-new": "error",
266
344
  "@typescript-eslint/no-misused-promises": "error",
@@ -269,16 +347,19 @@ export default tseslint.config({
269
347
  "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error",
270
348
  "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
271
349
  "@typescript-eslint/no-non-null-assertion": "error",
350
+ "@typescript-eslint/no-redeclare": "off",
272
351
  "@typescript-eslint/no-redundant-type-constituents": "error",
273
352
  "@typescript-eslint/no-require-imports": "error",
274
353
  "@typescript-eslint/no-restricted-imports": "error",
275
354
  "@typescript-eslint/no-restricted-types": "error",
276
355
  "@typescript-eslint/no-shadow": "error",
277
356
  "@typescript-eslint/no-this-alias": "error",
357
+ "@typescript-eslint/no-type-alias": "off",
278
358
  "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
279
359
  "@typescript-eslint/no-unnecessary-condition": "error",
280
360
  "@typescript-eslint/no-unnecessary-parameter-property-assignment": "error",
281
361
  "@typescript-eslint/no-unnecessary-qualifier": "error",
362
+ "@typescript-eslint/no-unnecessary-template-expression": "error",
282
363
  "@typescript-eslint/no-unnecessary-type-arguments": "error",
283
364
  "@typescript-eslint/no-unnecessary-type-assertion": "error",
284
365
  "@typescript-eslint/no-unnecessary-type-constraint": "error",
@@ -302,15 +383,17 @@ export default tseslint.config({
302
383
  caughtErrorsIgnorePattern: "^_",
303
384
  destructuredArrayIgnorePattern: "^_",
304
385
  ignoreRestSiblings: true,
305
- varsIgnorePattern: "^_"
306
- }
386
+ varsIgnorePattern: "^_",
387
+ },
307
388
  ],
389
+ "@typescript-eslint/no-use-before-define": "off",
308
390
  "@typescript-eslint/no-useless-constructor": "error",
309
391
  "@typescript-eslint/no-useless-empty-export": "error",
310
- "@typescript-eslint/no-unnecessary-template-expression": "error",
392
+ "@typescript-eslint/no-var-requires": "off",
311
393
  "@typescript-eslint/no-wrapper-object-types": "error",
312
394
  "@typescript-eslint/non-nullable-type-assertion-style": "error",
313
395
  "@typescript-eslint/only-throw-error": "error",
396
+ "@typescript-eslint/parameter-properties": "off",
314
397
  "@typescript-eslint/prefer-as-const": "error",
315
398
  "@typescript-eslint/prefer-destructuring": "error",
316
399
  "@typescript-eslint/prefer-enum-initializers": "error",
@@ -324,33 +407,37 @@ export default tseslint.config({
324
407
  "@typescript-eslint/prefer-optional-chain": "error",
325
408
  "@typescript-eslint/prefer-promise-reject-errors": "error",
326
409
  "@typescript-eslint/prefer-readonly": "error",
410
+ "@typescript-eslint/prefer-readonly-parameter-types": "off",
327
411
  "@typescript-eslint/prefer-reduce-type-parameter": "error",
328
412
  "@typescript-eslint/prefer-regexp-exec": "error",
329
413
  "@typescript-eslint/prefer-return-this-type": "error",
330
414
  "@typescript-eslint/prefer-string-starts-ends-with": "error",
415
+ "@typescript-eslint/prefer-ts-expect-error": "off",
331
416
  "@typescript-eslint/promise-function-async": "error",
332
417
  "@typescript-eslint/require-array-sort-compare": "error",
333
418
  "@typescript-eslint/require-await": "error",
334
419
  "@typescript-eslint/restrict-plus-operands": "error",
335
420
  "@typescript-eslint/restrict-template-expressions": "error",
336
421
  "@typescript-eslint/return-await": "error",
422
+ "@typescript-eslint/sort-type-constituents": "off",
337
423
  "@typescript-eslint/strict-boolean-expressions": "error",
338
424
  "@typescript-eslint/switch-exhaustiveness-check": "error",
339
425
  "@typescript-eslint/triple-slash-reference": "error",
426
+ "@typescript-eslint/typedef": "off",
340
427
  "@typescript-eslint/unbound-method": "error",
341
428
  "@typescript-eslint/unified-signatures": "error",
342
429
  "@typescript-eslint/use-unknown-in-catch-callback-variable": "error",
343
-
344
430
  "unicorn/better-regex": "error",
345
431
  "unicorn/catch-error-name": "error",
346
432
  "unicorn/consistent-destructuring": "error",
347
433
  "unicorn/consistent-empty-array-spread": "error",
348
434
  "unicorn/consistent-function-scoping": "error",
349
435
  "unicorn/custom-error-definition": "error",
350
- "unicorn/no-length-as-slice-end": "error",
436
+ "unicorn/empty-brace-spaces": "off",
351
437
  "unicorn/error-message": "error",
352
438
  "unicorn/escape-case": "error",
353
439
  "unicorn/expiring-todo-comments": "error",
440
+ "unicorn/explicit-length-check": "off",
354
441
  "unicorn/filename-case": "error",
355
442
  "unicorn/import-style": "error",
356
443
  "unicorn/new-for-builtins": "error",
@@ -371,12 +458,16 @@ export default tseslint.config({
371
458
  "unicorn/no-instanceof-array": "error",
372
459
  "unicorn/no-invalid-fetch-options": "error",
373
460
  "unicorn/no-invalid-remove-event-listener": "error",
461
+ "unicorn/no-keyword-prefix": "off",
462
+ "unicorn/no-length-as-slice-end": "error",
374
463
  "unicorn/no-lonely-if": "error",
375
464
  "unicorn/no-magic-array-flat-depth": "error",
376
465
  "unicorn/no-negated-condition": "error",
377
466
  "unicorn/no-negation-in-equality-check": "error",
467
+ "unicorn/no-nested-ternary": "off",
378
468
  "unicorn/no-new-array": "error",
379
469
  "unicorn/no-new-buffer": "error",
470
+ "unicorn/no-null": "off",
380
471
  "unicorn/no-object-as-default-parameter": "error",
381
472
  "unicorn/no-process-exit": "error",
382
473
  "unicorn/no-single-promise-in-promise-methods": "error",
@@ -396,11 +487,12 @@ export default tseslint.config({
396
487
  "unicorn/no-useless-switch-case": "error",
397
488
  "unicorn/no-useless-undefined": "error",
398
489
  "unicorn/no-zero-fractions": "error",
490
+ "unicorn/number-literal-case": "off",
399
491
  "unicorn/numeric-separators-style": "error",
400
492
  "unicorn/prefer-add-event-listener": "error",
401
493
  "unicorn/prefer-array-find": "error",
402
- "unicorn/prefer-array-flat": "error",
403
494
  "unicorn/prefer-array-flat-map": "error",
495
+ "unicorn/prefer-array-flat": "error",
404
496
  "unicorn/prefer-array-index-of": "error",
405
497
  "unicorn/prefer-array-some": "error",
406
498
  "unicorn/prefer-at": "error",
@@ -452,9 +544,26 @@ export default tseslint.config({
452
544
  "unicorn/require-post-message-target-origin": "error",
453
545
  "unicorn/string-content": "error",
454
546
  "unicorn/switch-case-braces": "error",
547
+ "unicorn/template-indent": "off",
455
548
  "unicorn/text-encoding-identifier-case": "error",
456
549
  "unicorn/throw-new-error": "error",
457
-
550
+ "unicorn/import-index": "off",
551
+ "unicorn/no-array-instanceof": "off",
552
+ "unicorn/no-fn-reference-in-iterator": "off",
553
+ "unicorn/no-reduce": "off",
554
+ "unicorn/no-unsafe-regex": "off",
555
+ "unicorn/prefer-dataset": "off",
556
+ "unicorn/prefer-event-key": "off",
557
+ "unicorn/prefer-exponentiation-operator": "off",
558
+ "unicorn/prefer-flat-map": "off",
559
+ "unicorn/prefer-node-append": "off",
560
+ "unicorn/prefer-node-remove": "off",
561
+ "unicorn/prefer-object-has-own": "off",
562
+ "unicorn/prefer-replace-all": "off",
563
+ "unicorn/prefer-starts-ends-with": "off",
564
+ "unicorn/prefer-text-content": "off",
565
+ "unicorn/prefer-trim-start-end": "off",
566
+ "unicorn/regex-shorthand": "off",
458
567
  "lodash/callback-binding": "error",
459
568
  "lodash/chain-style": ["error", "as-needed"],
460
569
  "lodash/chaining": "error",
@@ -497,7 +606,441 @@ export default tseslint.config({
497
606
  "lodash/preferred-alias": "error",
498
607
  "lodash/prop-shorthand": ["error", "always"],
499
608
  "lodash/unwrap": "error",
500
-
609
+ "sonar/S100": "off",
610
+ "sonar/S101": "off",
611
+ "sonar/S103": "off",
612
+ "sonar/S104": "off",
613
+ "sonar/S105": "off",
614
+ "sonar/S106": "off",
615
+ "sonar/S1066": "off",
616
+ "sonar/S1067": "off",
617
+ "sonar/S1068": "off",
618
+ "sonar/S107": "off",
619
+ "sonar/S1077": "off",
620
+ "sonar/S108": "off",
621
+ "sonar/S1082": "off",
622
+ "sonar/S109": "off",
623
+ "sonar/S1090": "off",
624
+ "sonar/S1105": "off",
625
+ "sonar/S1110": "off",
626
+ "sonar/S1116": "off",
627
+ "sonar/S1117": "off",
628
+ "sonar/S1119": "off",
629
+ "sonar/S1121": "off",
630
+ "sonar/S1125": "off",
631
+ "sonar/S1126": "off",
632
+ "sonar/S1128": "off",
633
+ "sonar/S113": "off",
634
+ "sonar/S1131": "off",
635
+ "sonar/S1134": "off",
636
+ "sonar/S1135": "off",
637
+ "sonar/S1143": "off",
638
+ "sonar/S1154": "off",
639
+ "sonar/S117": "off",
640
+ "sonar/S1172": "off",
641
+ "sonar/S1186": "off",
642
+ "sonar/S1192": "off",
643
+ "sonar/S1199": "off",
644
+ "sonar/S121": "off",
645
+ "sonar/S1219": "off",
646
+ "sonar/S122": "off",
647
+ "sonar/S1226": "off",
648
+ "sonar/S124": "off",
649
+ "sonar/S125": "off",
650
+ "sonar/S126": "off",
651
+ "sonar/S1264": "off",
652
+ "sonar/S128": "off",
653
+ "sonar/S1301": "off",
654
+ "sonar/S131": "off",
655
+ "sonar/S1313": "off",
656
+ "sonar/S1314": "off",
657
+ "sonar/S1321": "off",
658
+ "sonar/S134": "off",
659
+ "sonar/S135": "off",
660
+ "sonar/S138": "off",
661
+ "sonar/S139": "off",
662
+ "sonar/S1438": "off",
663
+ "sonar/S1439": "off",
664
+ "sonar/S1440": "off",
665
+ "sonar/S1441": "off",
666
+ "sonar/S1442": "off",
667
+ "sonar/S1444": "off",
668
+ "sonar/S1451": "off",
669
+ "sonar/S1472": "off",
670
+ "sonar/S1479": "off",
671
+ "sonar/S1481": "off",
672
+ "sonar/S1488": "off",
673
+ "sonar/S1515": "off",
674
+ "sonar/S1516": "off",
675
+ "sonar/S1523": "off",
676
+ "sonar/S1525": "off",
677
+ "sonar/S1526": "off",
678
+ "sonar/S1527": "off",
679
+ "sonar/S1528": "off",
680
+ "sonar/S1529": "off",
681
+ "sonar/S1530": "off",
682
+ "sonar/S1533": "off",
683
+ "sonar/S1534": "off",
684
+ "sonar/S1535": "off",
685
+ "sonar/S1536": "off",
686
+ "sonar/S1537": "off",
687
+ "sonar/S1539": "off",
688
+ "sonar/S1541": "off",
689
+ "sonar/S1656": "off",
690
+ "sonar/S1751": "off",
691
+ "sonar/S1763": "off",
692
+ "sonar/S1764": "off",
693
+ "sonar/S1774": "off",
694
+ "sonar/S1788": "off",
695
+ "sonar/S1821": "off",
696
+ "sonar/S1848": "off",
697
+ "sonar/S1854": "off",
698
+ "sonar/S1862": "off",
699
+ "sonar/S1871": "off",
700
+ "sonar/S1874": "off",
701
+ "sonar/S1940": "off",
702
+ "sonar/S1994": "off",
703
+ "sonar/S2004": "off",
704
+ "sonar/S2068": "off",
705
+ "sonar/S2077": "off",
706
+ "sonar/S2092": "off",
707
+ "sonar/S2094": "off",
708
+ "sonar/S2123": "off",
709
+ "sonar/S2137": "off",
710
+ "sonar/S2138": "off",
711
+ "sonar/S2187": "off",
712
+ "sonar/S2189": "off",
713
+ "sonar/S2201": "off",
714
+ "sonar/S2208": "off",
715
+ "sonar/S2234": "off",
716
+ "sonar/S2245": "off",
717
+ "sonar/S2251": "off",
718
+ "sonar/S2255": "off",
719
+ "sonar/S2259": "off",
720
+ "sonar/S2310": "off",
721
+ "sonar/S2376": "off",
722
+ "sonar/S2392": "off",
723
+ "sonar/S2424": "off",
724
+ "sonar/S2427": "off",
725
+ "sonar/S2430": "off",
726
+ "sonar/S2432": "off",
727
+ "sonar/S2428": "off",
728
+ "sonar/S2486": "off",
729
+ "sonar/S2589": "off",
730
+ "sonar/S2598": "off",
731
+ "sonar/S2612": "off",
732
+ "sonar/S2639": "off",
733
+ "sonar/S2681": "off",
734
+ "sonar/S2685": "off",
735
+ "sonar/S2688": "off",
736
+ "sonar/S2692": "off",
737
+ "sonar/S2699": "off",
738
+ "sonar/S2703": "off",
739
+ "sonar/S2737": "off",
740
+ "sonar/S2755": "off",
741
+ "sonar/S2757": "off",
742
+ "sonar/S2814": "off",
743
+ "sonar/S2817": "off",
744
+ "sonar/S2819": "off",
745
+ "sonar/S2870": "off",
746
+ "sonar/S2871": "off",
747
+ "sonar/S2933": "off",
748
+ "sonar/S2966": "off",
749
+ "sonar/S2970": "off",
750
+ "sonar/S2990": "off",
751
+ "sonar/S2999": "off",
752
+ "sonar/S3001": "off",
753
+ "sonar/S3003": "off",
754
+ "sonar/S3257": "off",
755
+ "sonar/S3317": "off",
756
+ "sonar/S3330": "off",
757
+ "sonar/S3353": "off",
758
+ "sonar/S3358": "off",
759
+ "sonar/S3402": "off",
760
+ "sonar/S3403": "off",
761
+ "sonar/S3415": "off",
762
+ "sonar/S3498": "off",
763
+ "sonar/S3499": "off",
764
+ "sonar/S3500": "off",
765
+ "sonar/S3504": "off",
766
+ "sonar/S3512": "off",
767
+ "sonar/S3513": "off",
768
+ "sonar/S3514": "off",
769
+ "sonar/S3516": "off",
770
+ "sonar/S3523": "off",
771
+ "sonar/S3524": "off",
772
+ "sonar/S3525": "off",
773
+ "sonar/S3531": "off",
774
+ "sonar/S3533": "off",
775
+ "sonar/S3579": "off",
776
+ "sonar/S3616": "off",
777
+ "sonar/S3626": "off",
778
+ "sonar/S3686": "off",
779
+ "sonar/S3696": "off",
780
+ "sonar/S3699": "off",
781
+ "sonar/S3758": "off",
782
+ "sonar/S3723": "off",
783
+ "sonar/S3735": "off",
784
+ "sonar/S3757": "off",
785
+ "sonar/S3760": "off",
786
+ "sonar/S3776": "off",
787
+ "sonar/S3782": "off",
788
+ "sonar/S3785": "off",
789
+ "sonar/S3786": "off",
790
+ "sonar/S3796": "off",
791
+ "sonar/S3798": "off",
792
+ "sonar/S3799": "off",
793
+ "sonar/S3800": "off",
794
+ "sonar/S3801": "off",
795
+ "sonar/S3812": "off",
796
+ "sonar/S3827": "off",
797
+ "sonar/S3834": "off",
798
+ "sonar/S3854": "off",
799
+ "sonar/S3863": "off",
800
+ "sonar/S3923": "off",
801
+ "sonar/S3972": "off",
802
+ "sonar/S3973": "off",
803
+ "sonar/S3981": "off",
804
+ "sonar/S3984": "off",
805
+ "sonar/S4023": "off",
806
+ "sonar/S4030": "off",
807
+ "sonar/S4036": "off",
808
+ "sonar/S4043": "off",
809
+ "sonar/S4084": "off",
810
+ "sonar/S4123": "off",
811
+ "sonar/S4124": "off",
812
+ "sonar/S4125": "off",
813
+ "sonar/S4136": "off",
814
+ "sonar/S4137": "off",
815
+ "sonar/S4138": "off",
816
+ "sonar/S4139": "off",
817
+ "sonar/S4140": "off",
818
+ "sonar/S4143": "off",
819
+ "sonar/S4144": "off",
820
+ "sonar/S4156": "off",
821
+ "sonar/S4157": "off",
822
+ "sonar/S4158": "off",
823
+ "sonar/S4165": "off",
824
+ "sonar/S4204": "off",
825
+ "sonar/S4275": "off",
826
+ "sonar/S4322": "off",
827
+ "sonar/S4323": "off",
828
+ "sonar/S4324": "off",
829
+ "sonar/S4325": "off",
830
+ "sonar/S4326": "off",
831
+ "sonar/S4327": "off",
832
+ "sonar/S4328": "off",
833
+ "sonar/S4335": "off",
834
+ "sonar/S4423": "off",
835
+ "sonar/S4426": "off",
836
+ "sonar/S4502": "off",
837
+ "sonar/S4507": "off",
838
+ "sonar/S4524": "off",
839
+ "sonar/S4619": "off",
840
+ "sonar/S4621": "off",
841
+ "sonar/S4622": "off",
842
+ "sonar/S4623": "off",
843
+ "sonar/S4624": "off",
844
+ "sonar/S4634": "off",
845
+ "sonar/S4721": "off",
846
+ "sonar/S4782": "off",
847
+ "sonar/S4784": "off",
848
+ "sonar/S4787": "off",
849
+ "sonar/S4790": "off",
850
+ "sonar/S4798": "off",
851
+ "sonar/S4817": "off",
852
+ "sonar/S4818": "off",
853
+ "sonar/S4822": "off",
854
+ "sonar/S4823": "off",
855
+ "sonar/S4829": "off",
856
+ "sonar/S4830": "off",
857
+ "sonar/S5042": "off",
858
+ "sonar/S5122": "off",
859
+ "sonar/S5148": "off",
860
+ "sonar/S5247": "off",
861
+ "sonar/S5254": "off",
862
+ "sonar/S5256": "off",
863
+ "sonar/S5257": "off",
864
+ "sonar/S5260": "off",
865
+ "sonar/S5264": "off",
866
+ "sonar/S5332": "off",
867
+ "sonar/S5443": "off",
868
+ "sonar/S5527": "off",
869
+ "sonar/S5542": "off",
870
+ "sonar/S5547": "off",
871
+ "sonar/S5604": "off",
872
+ "sonar/S5659": "off",
873
+ "sonar/S5689": "off",
874
+ "sonar/S5691": "off",
875
+ "sonar/S5693": "off",
876
+ "sonar/S5725": "off",
877
+ "sonar/S5728": "off",
878
+ "sonar/S5730": "off",
879
+ "sonar/S5732": "off",
880
+ "sonar/S5734": "off",
881
+ "sonar/S5736": "off",
882
+ "sonar/S5739": "off",
883
+ "sonar/S5742": "off",
884
+ "sonar/S5743": "off",
885
+ "sonar/S5757": "off",
886
+ "sonar/S5759": "off",
887
+ "sonar/S5842": "off",
888
+ "sonar/S5843": "off",
889
+ "sonar/S5850": "off",
890
+ "sonar/S5852": "off",
891
+ "sonar/S5856": "off",
892
+ "sonar/S5860": "off",
893
+ "sonar/S5863": "off",
894
+ "sonar/S5867": "off",
895
+ "sonar/S5868": "off",
896
+ "sonar/S5869": "off",
897
+ "sonar/S5876": "off",
898
+ "sonar/S5958": "off",
899
+ "sonar/S5973": "off",
900
+ "sonar/S6019": "off",
901
+ "sonar/S6035": "off",
902
+ "sonar/S6079": "off",
903
+ "sonar/S6080": "off",
904
+ "sonar/S6092": "off",
905
+ "sonar/S6245": "off",
906
+ "sonar/S6249": "off",
907
+ "sonar/S6252": "off",
908
+ "sonar/S6265": "off",
909
+ "sonar/S6268": "off",
910
+ "sonar/S6270": "off",
911
+ "sonar/S6275": "off",
912
+ "sonar/S6281": "off",
913
+ "sonar/S6299": "off",
914
+ "sonar/S6302": "off",
915
+ "sonar/S6303": "off",
916
+ "sonar/S6304": "off",
917
+ "sonar/S6308": "off",
918
+ "sonar/S6317": "off",
919
+ "sonar/S6319": "off",
920
+ "sonar/S6321": "off",
921
+ "sonar/S6323": "off",
922
+ "sonar/S6324": "off",
923
+ "sonar/S6325": "off",
924
+ "sonar/S6326": "off",
925
+ "sonar/S6327": "off",
926
+ "sonar/S6328": "off",
927
+ "sonar/S6329": "off",
928
+ "sonar/S6330": "off",
929
+ "sonar/S6331": "off",
930
+ "sonar/S6332": "off",
931
+ "sonar/S6333": "off",
932
+ "sonar/S6351": "off",
933
+ "sonar/S6353": "off",
934
+ "sonar/S6397": "off",
935
+ "sonar/S6426": "off",
936
+ "sonar/S6435": "off",
937
+ "sonar/S6438": "off",
938
+ "sonar/S6439": "off",
939
+ "sonar/S6440": "off",
940
+ "sonar/S6441": "off",
941
+ "sonar/S6442": "off",
942
+ "sonar/S6443": "off",
943
+ "sonar/S6477": "off",
944
+ "sonar/S6478": "off",
945
+ "sonar/S6479": "off",
946
+ "sonar/S6480": "off",
947
+ "sonar/S6481": "off",
948
+ "sonar/S6486": "off",
949
+ "sonar/S6509": "off",
950
+ "sonar/S6522": "off",
951
+ "sonar/S6523": "off",
952
+ "sonar/S6534": "off",
953
+ "sonar/S6535": "off",
954
+ "sonar/S6544": "off",
955
+ "sonar/S6550": "off",
956
+ "sonar/S6551": "off",
957
+ "sonar/S6557": "off",
958
+ "sonar/S6564": "off",
959
+ "sonar/S6565": "off",
960
+ "sonar/S6568": "off",
961
+ "sonar/S6569": "off",
962
+ "sonar/S6571": "off",
963
+ "sonar/S6572": "off",
964
+ "sonar/S6578": "off",
965
+ "sonar/S6582": "off",
966
+ "sonar/S6583": "off",
967
+ "sonar/S6590": "off",
968
+ "sonar/S6594": "off",
969
+ "sonar/S6598": "off",
970
+ "sonar/S6606": "off",
971
+ "sonar/S6635": "off",
972
+ "sonar/S6637": "off",
973
+ "sonar/S6638": "off",
974
+ "sonar/S6643": "off",
975
+ "sonar/S6644": "off",
976
+ "sonar/S6645": "off",
977
+ "sonar/S6647": "off",
978
+ "sonar/S6650": "off",
979
+ "sonar/S6653": "off",
980
+ "sonar/S6654": "off",
981
+ "sonar/S6657": "off",
982
+ "sonar/S6660": "off",
983
+ "sonar/S6661": "off",
984
+ "sonar/S6666": "off",
985
+ "sonar/S6671": "off",
986
+ "sonar/S6676": "off",
987
+ "sonar/S6679": "off",
988
+ "sonar/S6746": "off",
989
+ "sonar/S6747": "off",
990
+ "sonar/S6748": "off",
991
+ "sonar/S6749": "off",
992
+ "sonar/S6750": "off",
993
+ "sonar/S6754": "off",
994
+ "sonar/S6756": "off",
995
+ "sonar/S6757": "off",
996
+ "sonar/S6759": "off",
997
+ "sonar/S6761": "off",
998
+ "sonar/S6763": "off",
999
+ "sonar/S6766": "off",
1000
+ "sonar/S6767": "off",
1001
+ "sonar/S6770": "off",
1002
+ "sonar/S6772": "off",
1003
+ "sonar/S6774": "off",
1004
+ "sonar/S6775": "off",
1005
+ "sonar/S6788": "off",
1006
+ "sonar/S6789": "off",
1007
+ "sonar/S6790": "off",
1008
+ "sonar/S6791": "off",
1009
+ "sonar/S6793": "off",
1010
+ "sonar/S6807": "off",
1011
+ "sonar/S6811": "off",
1012
+ "sonar/S6819": "off",
1013
+ "sonar/S6821": "off",
1014
+ "sonar/S6822": "off",
1015
+ "sonar/S6823": "off",
1016
+ "sonar/S6824": "off",
1017
+ "sonar/S6825": "off",
1018
+ "sonar/S6827": "off",
1019
+ "sonar/S6836": "off",
1020
+ "sonar/S6840": "off",
1021
+ "sonar/S6841": "off",
1022
+ "sonar/S6842": "off",
1023
+ "sonar/S6843": "off",
1024
+ "sonar/S6844": "off",
1025
+ "sonar/S6845": "off",
1026
+ "sonar/S6846": "off",
1027
+ "sonar/S6847": "off",
1028
+ "sonar/S6848": "off",
1029
+ "sonar/S6850": "off",
1030
+ "sonar/S6851": "off",
1031
+ "sonar/S6852": "off",
1032
+ "sonar/S6853": "off",
1033
+ "sonar/S6859": "off",
1034
+ "sonar/S6861": "off",
1035
+ "sonar/S6957": "off",
1036
+ "sonar/S6958": "off",
1037
+ "sonar/S6959": "off",
1038
+ "sonar/S878": "off",
1039
+ "sonar/S881": "off",
1040
+ "sonar/S888": "off",
1041
+ "sonar/S905": "off",
1042
+ "sonar/S909": "off",
1043
+ "sonar/S930": "off",
501
1044
  "sonar/accessor-pairs": "error",
502
1045
  "sonar/alt-text": "error",
503
1046
  "sonar/anchor-has-content": "error",
@@ -508,7 +1051,7 @@ export default tseslint.config({
508
1051
  "sonar/arguments-usage": "error",
509
1052
  "sonar/array-callback-without-return": "error",
510
1053
  "sonar/array-constructor": "error",
511
- "sonar/arrow-function-convention": "off", // Not handled by Sonar
1054
+ "sonar/arrow-function-convention": "off",
512
1055
  "sonar/assertions-in-tests": "error",
513
1056
  "sonar/aws-apigateway-public-api": "error",
514
1057
  "sonar/aws-ec2-rds-dms-public": "error",
@@ -524,12 +1067,14 @@ export default tseslint.config({
524
1067
  "sonar/aws-s3-bucket-granted-access": "error",
525
1068
  "sonar/aws-s3-bucket-insecure-http": "error",
526
1069
  "sonar/aws-s3-bucket-public-access": "error",
1070
+ "sonar/aws-s3-bucket-server-encryption": "off",
527
1071
  "sonar/aws-s3-bucket-versioning": "error",
528
1072
  "sonar/aws-sagemaker-unencrypted-notebook": "error",
529
1073
  "sonar/aws-sns-unencrypted-topics": "error",
530
1074
  "sonar/aws-sqs-unencrypted-queue": "error",
531
1075
  "sonar/bitwise-operators": "error",
532
1076
  "sonar/bool-param-default": "error",
1077
+ "sonar/brace-style": "off",
533
1078
  "sonar/call-argument-line": "error",
534
1079
  "sonar/certificate-transparency": "error",
535
1080
  "sonar/chai-determinate-assertion": "error",
@@ -538,16 +1083,18 @@ export default tseslint.config({
538
1083
  "sonar/code-eval": "error",
539
1084
  "sonar/cognitive-complexity": "error",
540
1085
  "sonar/comma-or-logical-or-case": "error",
541
- "sonar/comment-regex": "off", // Rule template
1086
+ "sonar/comment-regex": "off",
542
1087
  "sonar/concise-regex": "error",
1088
+ "sonar/conditional-indentation": "off",
543
1089
  "sonar/confidential-information-logging": "error",
544
1090
  "sonar/constructor-for-side-effects": "error",
545
1091
  "sonar/content-length": "error",
546
1092
  "sonar/content-security-policy": "error",
547
1093
  "sonar/cookie-no-httponly": "error",
1094
+ "sonar/cookies": "off",
548
1095
  "sonar/cors": "error",
549
1096
  "sonar/csrf": "error",
550
- "sonar/cyclomatic-complexity": "off", // too hard
1097
+ "sonar/cyclomatic-complexity": "off",
551
1098
  "sonar/declarations-in-global-scope": "error",
552
1099
  "sonar/default-param-last": "error",
553
1100
  "sonar/deprecation": "error",
@@ -556,13 +1103,16 @@ export default tseslint.config({
556
1103
  "sonar/disabled-auto-escaping": "error",
557
1104
  "sonar/disabled-resource-integrity": "error",
558
1105
  "sonar/disabled-timeout": "error",
1106
+ "sonar/dns-prefetching": "off",
559
1107
  "sonar/duplicates-in-character-class": "error",
560
1108
  "sonar/elseif-without-else": "error",
561
1109
  "sonar/empty-string-repetition": "error",
1110
+ "sonar/encryption": "off",
562
1111
  "sonar/encryption-secure-mode": "error",
1112
+ "sonar/enforce-trailing-comma": "off",
563
1113
  "sonar/existing-groups": "error",
564
1114
  "sonar/expression-complexity": "error",
565
- "sonar/file-header": "off", // No
1115
+ "sonar/file-header": "off",
566
1116
  "sonar/file-name-differ-from-class": "error",
567
1117
  "sonar/file-permissions": "error",
568
1118
  "sonar/file-uploads": "error",
@@ -571,10 +1121,11 @@ export default tseslint.config({
571
1121
  "sonar/for-loop-increment-sign": "error",
572
1122
  "sonar/frame-ancestors": "error",
573
1123
  "sonar/function-inside-loop": "error",
574
- "sonar/function-name": ["error", {
575
- format: '^(?:[a-z][a-zA-Z0-9]*|[A-Z][A-Z0-9]*)$'
576
- }],
577
- "sonar/function-return-type": "off", // No
1124
+ "sonar/function-name": [
1125
+ "error",
1126
+ { format: "^(?:[a-z][a-zA-Z0-9]*|[A-Z][A-Z0-9]*)$" },
1127
+ ],
1128
+ "sonar/function-return-type": "off",
578
1129
  "sonar/future-reserved-words": "error",
579
1130
  "sonar/generator-without-yield": "error",
580
1131
  "sonar/hashing": "error",
@@ -594,12 +1145,12 @@ export default tseslint.config({
594
1145
  "sonar/label-position": "error",
595
1146
  "sonar/link-with-target-blank": "error",
596
1147
  "sonar/max-switch-cases": "error",
597
- "sonar/max-union-size": "off", // No
1148
+ "sonar/max-union-size": "off",
598
1149
  "sonar/media-has-caption": "error",
599
1150
  "sonar/misplaced-loop-counter": "error",
600
1151
  "sonar/mouse-events-a11y": "error",
601
1152
  "sonar/nested-control-flow": "error",
602
- "sonar/new-cap": "off", // No
1153
+ "sonar/new-cap": "off",
603
1154
  "sonar/new-operator-misuse": "error",
604
1155
  "sonar/no-accessor-field-mismatch": "error",
605
1156
  "sonar/no-all-duplicated-branches": "error",
@@ -619,8 +1170,8 @@ export default tseslint.config({
619
1170
  "sonar/no-dead-store": "error",
620
1171
  "sonar/no-delete-var": "error",
621
1172
  "sonar/no-deprecated-react": "error",
622
- "sonar/no-duplicate-string": "error",
623
1173
  "sonar/no-duplicate-in-composite": "error",
1174
+ "sonar/no-duplicate-string": "error",
624
1175
  "sonar/no-duplicated-branches": "error",
625
1176
  "sonar/no-element-overwrite": "error",
626
1177
  "sonar/no-empty-after-reluctant": "error",
@@ -634,6 +1185,7 @@ export default tseslint.config({
634
1185
  "sonar/no-exclusive-tests": "error",
635
1186
  "sonar/no-extend-native": "error",
636
1187
  "sonar/no-extra-arguments": "error",
1188
+ "sonar/no-extra-semi": "off",
637
1189
  "sonar/no-find-dom-node": "error",
638
1190
  "sonar/no-for-in-iterable": "error",
639
1191
  "sonar/no-function-declaration-in-block": "error",
@@ -643,16 +1195,16 @@ export default tseslint.config({
643
1195
  "sonar/no-hardcoded-credentials": "error",
644
1196
  "sonar/no-hardcoded-ip": "error",
645
1197
  "sonar/no-hook-setter-in-body": "error",
646
- "sonar/no-ignored-exceptions": "error",
647
1198
  "sonar/no-identical-conditions": "error",
648
1199
  "sonar/no-identical-expressions": "error",
649
1200
  "sonar/no-identical-functions": "error",
1201
+ "sonar/no-ignored-exceptions": "error",
650
1202
  "sonar/no-ignored-return": "error",
651
- "sonar/no-implicit-dependencies": "off", // doesn't seem to work well, n/ can handle this
1203
+ "sonar/no-implicit-dependencies": "off",
652
1204
  "sonar/no-implicit-global": "error",
653
1205
  "sonar/no-in-misuse": "error",
654
1206
  "sonar/no-incomplete-assertions": "error",
655
- "sonar/no-inconsistent-returns": "off", // TODO v9 compatibility?
1207
+ "sonar/no-inconsistent-returns": "off",
656
1208
  "sonar/no-incorrect-string-concat": "error",
657
1209
  "sonar/no-infinite-loop": "error",
658
1210
  "sonar/no-intrusive-permissions": "error",
@@ -682,8 +1234,9 @@ export default tseslint.config({
682
1234
  "sonar/no-redundant-boolean": "error",
683
1235
  "sonar/no-redundant-jump": "error",
684
1236
  "sonar/no-redundant-optional": "error",
1237
+ "sonar/no-redundant-parentheses": "off",
685
1238
  "sonar/no-redundant-type-constituents": "error",
686
- "sonar/no-reference-error": "off", // Not working correctly, TS can handle this
1239
+ "sonar/no-reference-error": "off",
687
1240
  "sonar/no-referrer-policy": "error",
688
1241
  "sonar/no-require-or-define": "error",
689
1242
  "sonar/no-return-type-any": "error",
@@ -691,12 +1244,13 @@ export default tseslint.config({
691
1244
  "sonar/no-same-line-conditional": "error",
692
1245
  "sonar/no-self-compare": "error",
693
1246
  "sonar/no-small-switch": "error",
1247
+ "sonar/no-tab": "off",
694
1248
  "sonar/no-table-as-layout": "error",
695
1249
  "sonar/no-this-alias": "error",
696
1250
  "sonar/no-throw-literal": "error",
697
1251
  "sonar/no-try-promise": "error",
698
1252
  "sonar/no-undefined-argument": "error",
699
- "sonar/no-undefined-assignment": "off", // No
1253
+ "sonar/no-undefined-assignment": "off",
700
1254
  "sonar/no-unenclosed-multiline-block": "error",
701
1255
  "sonar/no-uniq-key": "error",
702
1256
  "sonar/no-unknown-property": "error",
@@ -746,6 +1300,7 @@ export default tseslint.config({
746
1300
  "sonar/prefer-template": "error",
747
1301
  "sonar/prefer-type-guard": "error",
748
1302
  "sonar/prefer-while": "error",
1303
+ "sonar/process-argv": "off",
749
1304
  "sonar/production-debug": "error",
750
1305
  "sonar/pseudo-random": "error",
751
1306
  "sonar/public-static-readonly": "error",
@@ -753,12 +1308,15 @@ export default tseslint.config({
753
1308
  "sonar/reduce-initial-value": "error",
754
1309
  "sonar/redundant-type-aliases": "error",
755
1310
  "sonar/regex-complexity": "error",
756
- "sonar/rules-of-hooks": "off", // TODO v9 compatibility?
1311
+ "sonar/regular-expr": "off",
1312
+ "sonar/pluginRules-of-hooks": "error",
1313
+ "sonar/semi": "off",
757
1314
  "sonar/session-regeneration": "error",
758
- "sonar/shorthand-property-grouping": "off", // Conflicts with perfectionist sorting
1315
+ "sonar/shorthand-property-grouping": "off",
759
1316
  "sonar/single-char-in-character-classes": "error",
760
1317
  "sonar/single-character-alternation": "error",
761
1318
  "sonar/slow-regex": "error",
1319
+ "sonar/sockets": "off",
762
1320
  "sonar/sonar-block-scoped-var": "error",
763
1321
  "sonar/sonar-jsx-no-leaked-render": "error",
764
1322
  "sonar/sonar-max-lines": "error",
@@ -767,9 +1325,9 @@ export default tseslint.config({
767
1325
  "sonar/sonar-no-control-regex": "error",
768
1326
  "sonar/sonar-no-dupe-keys": "error",
769
1327
  "sonar/sonar-no-empty-character-class": "error",
770
- "sonar/sonar-no-fallthrough": "off", // TODO v9 compatibility?
1328
+ "sonar/sonar-no-fallthrough": "off",
771
1329
  "sonar/sonar-no-invalid-regexp": "error",
772
- "sonar/sonar-no-magic-numbers": "off", // No
1330
+ "sonar/sonar-no-magic-numbers": "off",
773
1331
  "sonar/sonar-no-misleading-character-class": "error",
774
1332
  "sonar/sonar-no-regex-spaces": "error",
775
1333
  "sonar/sonar-no-unused-class-component-methods": "error",
@@ -779,15 +1337,16 @@ export default tseslint.config({
779
1337
  "sonar/sonar-prefer-regexp-exec": "error",
780
1338
  "sonar/sql-queries": "error",
781
1339
  "sonar/stable-tests": "error",
1340
+ "sonar/standard-input": "off",
782
1341
  "sonar/stateful-regex": "error",
783
1342
  "sonar/strict-transport-security": "error",
784
1343
  "sonar/strings-comparison": "error",
785
1344
  "sonar/super-invocation": "error",
786
- "sonar/switch-without-default": "off", // @typescript-eslint/switch-exhaustiveness-check works better
1345
+ "sonar/switch-without-default": "off",
787
1346
  "sonar/table-header": "error",
788
1347
  "sonar/table-header-reference": "error",
789
1348
  "sonar/test-check-exception": "error",
790
- "sonar/todo-tag": "off", // Can be useful to leave
1349
+ "sonar/todo-tag": "off",
791
1350
  "sonar/too-many-break-or-continue-in-loop": "error",
792
1351
  "sonar/unicode-aware-regex": "error",
793
1352
  "sonar/unnecessary-character-escapes": "error",
@@ -799,26 +1358,27 @@ export default tseslint.config({
799
1358
  "sonar/updated-loop-counter": "error",
800
1359
  "sonar/use-isnan": "error",
801
1360
  "sonar/use-type-alias": "error",
1361
+ "sonar/useless-string-operation": "off",
802
1362
  "sonar/values-not-convertible-to-numbers": "error",
803
1363
  "sonar/variable-name": "error",
804
1364
  "sonar/void-use": "error",
805
1365
  "sonar/weak-ssl": "error",
1366
+ "sonar/web-sql-database": "off",
806
1367
  "sonar/x-powered-by": "error",
807
1368
  "sonar/xml-parser-xxe": "error",
808
-
1369
+ "sonar/xpath": "off",
809
1370
  "@tanstack/query/exhaustive-deps": "error",
1371
+ "@tanstack/query/stable-query-client": "error",
810
1372
  "@tanstack/query/no-rest-destructuring": "error",
811
1373
  "@tanstack/query/no-unstable-deps": "error",
812
- "@tanstack/query/stable-query-client": "error",
813
-
814
1374
  "tailwind/classnames-order": "error",
815
1375
  "tailwind/enforces-negative-arbitrary-values": "error",
816
1376
  "tailwind/enforces-shorthand": "error",
817
1377
  "tailwind/migration-from-tailwind-2": "error",
818
1378
  "tailwind/no-arbitrary-value": "error",
819
1379
  "tailwind/no-contradicting-classname": "error",
1380
+ "tailwind/no-custom-classname": "off",
820
1381
  "tailwind/no-unnecessary-arbitrary-value": "error",
821
-
822
1382
  "stylistic/array-bracket-newline": ["error", "consistent"],
823
1383
  "stylistic/array-bracket-spacing": "error",
824
1384
  "stylistic/array-element-newline": ["error", "consistent"],
@@ -842,18 +1402,23 @@ export default tseslint.config({
842
1402
  "stylistic/jsx-quotes": "error",
843
1403
  "stylistic/key-spacing": "error",
844
1404
  "stylistic/keyword-spacing": "error",
1405
+ "stylistic/line-comment-position": "off",
845
1406
  "stylistic/linebreak-style": "error",
846
1407
  "stylistic/lines-around-comment": "error",
847
1408
  "stylistic/lines-between-class-members": "error",
848
- "stylistic/max-len": ["error", {
849
- "ignoreComments": true,
850
- "ignoreTrailingComments": true,
851
- "ignoreUrls": true,
852
- "ignoreStrings": true,
853
- "ignoreTemplateLiterals": true,
854
- "ignoreRegExpLiterals": true
855
- }],
1409
+ "stylistic/max-len": [
1410
+ "error",
1411
+ {
1412
+ ignoreComments: true,
1413
+ ignoreTrailingComments: true,
1414
+ ignoreUrls: true,
1415
+ ignoreStrings: true,
1416
+ ignoreTemplateLiterals: true,
1417
+ ignoreRegExpLiterals: true,
1418
+ },
1419
+ ],
856
1420
  "stylistic/max-statements-per-line": "error",
1421
+ "stylistic/multiline-comment-style": "off",
857
1422
  "stylistic/multiline-ternary": "error",
858
1423
  "stylistic/new-parens": "error",
859
1424
  "stylistic/newline-per-chained-call": "error",
@@ -869,7 +1434,10 @@ export default tseslint.config({
869
1434
  "stylistic/no-trailing-spaces": "error",
870
1435
  "stylistic/no-whitespace-before-property": "error",
871
1436
  "stylistic/nonblock-statement-body-position": "error",
872
- "stylistic/object-curly-newline": ["error", { multiline: true, consistent: true }],
1437
+ "stylistic/object-curly-newline": [
1438
+ "error",
1439
+ { multiline: true, consistent: true },
1440
+ ],
873
1441
  "stylistic/object-curly-spacing": ["error", "always"],
874
1442
  "stylistic/object-property-newline": "error",
875
1443
  "stylistic/one-var-declaration-per-line": "error",
@@ -883,11 +1451,10 @@ export default tseslint.config({
883
1451
  "stylistic/semi-spacing": "error",
884
1452
  "stylistic/semi-style": "error",
885
1453
  "stylistic/space-before-blocks": "error",
886
- "stylistic/space-before-function-paren": ["error", {
887
- anonymous: "always",
888
- named: "never",
889
- asyncArrow: "always"
890
- }],
1454
+ "stylistic/space-before-function-paren": [
1455
+ "error",
1456
+ { anonymous: "always", named: "never", asyncArrow: "always" },
1457
+ ],
891
1458
  "stylistic/space-in-parens": "error",
892
1459
  "stylistic/space-infix-ops": "error",
893
1460
  "stylistic/space-unary-ops": "error",
@@ -907,6 +1474,7 @@ export default tseslint.config({
907
1474
  "stylistic/jsx-equals-spacing": "error",
908
1475
  "stylistic/jsx-first-prop-new-line": "error",
909
1476
  "stylistic/jsx-function-call-newline": "error",
1477
+ "stylistic/jsx-indent": "off",
910
1478
  "stylistic/jsx-indent-props": ["error", 2],
911
1479
  "stylistic/jsx-max-props-per-line": "error",
912
1480
  "stylistic/jsx-newline": ["error", { prevent: true }],
@@ -914,24 +1482,49 @@ export default tseslint.config({
914
1482
  "stylistic/jsx-pascal-case": "error",
915
1483
  "stylistic/jsx-props-no-multi-spaces": "error",
916
1484
  "stylistic/jsx-self-closing-comp": "error",
1485
+ "stylistic/jsx-sort-props": "off",
917
1486
  "stylistic/jsx-tag-spacing": "error",
918
- "stylistic/jsx-wrap-multilines": ["error", { declaration: "parens-new-line" }],
1487
+ "stylistic/jsx-wrap-multilines": [
1488
+ "error",
1489
+ { declaration: "parens-new-line" },
1490
+ ],
919
1491
  "stylistic/member-delimiter-style": "error",
920
1492
  "stylistic/type-annotation-spacing": "error",
921
1493
  "stylistic/indent-binary-ops": "error",
922
1494
  "stylistic/type-generic-spacing": "error",
923
1495
  "stylistic/type-named-tuple-spacing": "error",
924
-
925
- "perfectionist/sort-array-includes": "error",
1496
+ "perfectionist/sort-variable-declarations": [
1497
+ "error",
1498
+ { order: "asc", type: "alphabetical" },
1499
+ ],
1500
+ "perfectionist/sort-intersection-types": "error",
1501
+ "perfectionist/sort-svelte-attributes": [
1502
+ "error",
1503
+ { groups: ["svelte-shorthand", "shorthand", "multiline"] },
1504
+ ],
926
1505
  "perfectionist/sort-astro-attributes": [
927
1506
  "error",
928
- {
929
- groups: ["astro-shorthand", "shorthand", "multiline"]
930
- }
1507
+ { groups: ["astro-shorthand", "shorthand", "multiline"] },
1508
+ ],
1509
+ "perfectionist/sort-vue-attributes": [
1510
+ "error",
1511
+ { groups: ["shorthand", "multiline"] },
1512
+ ],
1513
+ "perfectionist/sort-array-includes": "error",
1514
+ "perfectionist/sort-named-imports": "error",
1515
+ "perfectionist/sort-named-exports": "error",
1516
+ "perfectionist/sort-object-types": "error",
1517
+ "perfectionist/sort-union-types": "error",
1518
+ "perfectionist/sort-switch-case": [
1519
+ "error",
1520
+ { order: "asc", type: "alphabetical" },
1521
+ ],
1522
+ "perfectionist/sort-interfaces": "error",
1523
+ "perfectionist/sort-jsx-props": [
1524
+ "error",
1525
+ { groups: ["shorthand", "multiline"] },
931
1526
  ],
932
1527
  "perfectionist/sort-classes": "error",
933
- "perfectionist/sort-enums": "error",
934
- "perfectionist/sort-exports": "error",
935
1528
  "perfectionist/sort-imports": [
936
1529
  "error",
937
1530
  {
@@ -943,48 +1536,16 @@ export default tseslint.config({
943
1536
  ["parent-type", "sibling-type", "index-type"],
944
1537
  ["parent", "sibling", "index"],
945
1538
  "object",
946
- "unknown"
1539
+ "unknown",
947
1540
  ],
948
- newlinesBetween: "always"
949
- }
950
- ],
951
- "perfectionist/sort-interfaces": "error",
952
- "perfectionist/sort-jsx-props": [
953
- "error",
954
- { groups: ["shorthand", "multiline"] }
1541
+ newlinesBetween: "always",
1542
+ },
955
1543
  ],
956
- "perfectionist/sort-maps": "error",
957
- "perfectionist/sort-named-exports": "error",
958
- "perfectionist/sort-named-imports": "error",
959
- "perfectionist/sort-object-types": "error",
1544
+ "perfectionist/sort-exports": "error",
960
1545
  "perfectionist/sort-objects": "error",
961
- "perfectionist/sort-svelte-attributes": [
962
- "error",
963
- {
964
- groups: ["svelte-shorthand", "shorthand", "multiline"]
965
- }
966
- ],
967
- "perfectionist/sort-intersection-types": "error",
968
- "perfectionist/sort-switch-case": [
969
- "error",
970
- {
971
- type: "alphabetical",
972
- order: "asc"
973
- }
974
- ],
975
- "perfectionist/sort-union-types": "error",
976
- "perfectionist/sort-variable-declarations": [
977
- "error",
978
- {
979
- type: "alphabetical",
980
- order: "asc"
981
- }
982
- ],
983
- "perfectionist/sort-vue-attributes": [
984
- "error",
985
- { groups: ["shorthand", "multiline"] }
986
- ],
987
-
1546
+ "perfectionist/sort-enums": "error",
1547
+ "perfectionist/sort-maps": "error",
1548
+ "a11y/accessible-emoji": "off",
988
1549
  "a11y/alt-text": "error",
989
1550
  "a11y/anchor-ambiguous-text": "error",
990
1551
  "a11y/anchor-has-content": "error",
@@ -1003,7 +1564,9 @@ export default tseslint.config({
1003
1564
  "a11y/img-redundant-alt": "error",
1004
1565
  "a11y/interactive-supports-focus": "error",
1005
1566
  "a11y/label-has-associated-control": "error",
1567
+ "a11y/label-has-for": "off",
1006
1568
  "a11y/lang": "error",
1569
+ "a11y/media-has-caption": "off",
1007
1570
  "a11y/mouse-events-have-key-events": "error",
1008
1571
  "a11y/no-access-key": "error",
1009
1572
  "a11y/no-aria-hidden-on-focusable": "error",
@@ -1013,12 +1576,13 @@ export default tseslint.config({
1013
1576
  "a11y/no-noninteractive-element-interactions": "error",
1014
1577
  "a11y/no-noninteractive-element-to-interactive-role": "error",
1015
1578
  "a11y/no-noninteractive-tabindex": "error",
1579
+ "a11y/no-onchange": "off",
1016
1580
  "a11y/no-redundant-roles": "error",
1017
1581
  "a11y/no-static-element-interactions": "error",
1018
1582
  "a11y/prefer-tag-over-role": "error",
1019
1583
  "a11y/role-has-required-aria-props": "error",
1020
1584
  "a11y/role-supports-aria-props": "error",
1021
1585
  "a11y/scope": "error",
1022
- "a11y/tabindex-no-positive": "error"
1023
- }
1586
+ "a11y/tabindex-no-positive": "error",
1587
+ },
1024
1588
  });