@gooddata/oxlint-config 11.27.0-alpha.4 → 11.27.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.
@@ -1,2221 +0,0 @@
1
- {
2
- "categories": {},
3
- "plugins": [
4
- "oxc",
5
- "eslint",
6
- "typescript",
7
- "import"
8
- ],
9
- "jsPlugins": [
10
- {
11
- "name": "headers",
12
- "specifier": "eslint-plugin-headers"
13
- },
14
- {
15
- "name": "no-barrel-files",
16
- "specifier": "eslint-plugin-no-barrel-files"
17
- },
18
- {
19
- "name": "sonarjs",
20
- "specifier": "eslint-plugin-sonarjs"
21
- },
22
- {
23
- "name": "cypress",
24
- "specifier": "eslint-plugin-cypress"
25
- },
26
- {
27
- "name": "chai-friendly",
28
- "specifier": "eslint-plugin-chai-friendly"
29
- },
30
- {
31
- "name": "no-only-tests",
32
- "specifier": "eslint-plugin-no-only-tests"
33
- }
34
- ],
35
- "rules": {
36
- "oxc/bad-array-method-on-arguments": "error",
37
- "oxc/bad-char-at-comparison": "error",
38
- "oxc/bad-comparison-sequence": "error",
39
- "oxc/bad-min-max-func": "error",
40
- "oxc/bad-object-literal-comparison": "error",
41
- "oxc/bad-replace-all-arg": "error",
42
- "oxc/const-comparisons": "error",
43
- "oxc/double-comparisons": "error",
44
- "oxc/erasing-op": "error",
45
- "oxc/missing-throw": "error",
46
- "oxc/number-arg-out-of-range": "error",
47
- "oxc/only-used-in-recursion": "off",
48
- "oxc/uninvoked-array-callback": "error",
49
- "constructor-super": "error",
50
- "for-direction": "error",
51
- "getter-return": "error",
52
- "no-async-promise-executor": "error",
53
- "no-case-declarations": "error",
54
- "no-class-assign": "error",
55
- "no-compare-neg-zero": "error",
56
- "no-cond-assign": "error",
57
- "no-const-assign": "error",
58
- "no-constant-binary-expression": "error",
59
- "no-constant-condition": "error",
60
- "no-control-regex": "error",
61
- "no-debugger": "error",
62
- "no-delete-var": 2,
63
- "no-dupe-args": "error",
64
- "no-dupe-class-members": "error",
65
- "no-dupe-else-if": "error",
66
- "no-dupe-keys": "error",
67
- "no-duplicate-case": "error",
68
- "no-empty": "error",
69
- "no-empty-character-class": "error",
70
- "no-empty-pattern": "error",
71
- "no-empty-static-block": "error",
72
- "no-ex-assign": "error",
73
- "no-fallthrough": "error",
74
- "no-func-assign": "error",
75
- "no-global-assign": "error",
76
- "no-import-assign": "error",
77
- "no-invalid-regexp": "error",
78
- "no-irregular-whitespace": "error",
79
- "no-loss-of-precision": "error",
80
- "no-misleading-character-class": "error",
81
- "no-new-native-nonconstructor": "error",
82
- "no-nonoctal-decimal-escape": "error",
83
- "no-obj-calls": "error",
84
- "no-octal": "error",
85
- "no-prototype-builtins": "error",
86
- "no-redeclare": "error",
87
- "no-regex-spaces": "error",
88
- "no-self-assign": "error",
89
- "no-setter-return": "error",
90
- "no-shadow-restricted-names": "error",
91
- "no-sparse-arrays": "error",
92
- "no-this-before-super": "error",
93
- "no-undef": "error",
94
- "no-unreachable": "error",
95
- "no-unsafe-finally": "error",
96
- "no-unsafe-negation": "error",
97
- "no-unsafe-optional-chaining": "error",
98
- "no-unused-labels": "error",
99
- "no-unused-private-class-members": "error",
100
- "no-unused-vars": "error",
101
- "no-useless-backreference": "error",
102
- "no-useless-catch": "error",
103
- "no-with": "error",
104
- "require-yield": "error",
105
- "use-isnan": "error",
106
- "valid-typeof": "error",
107
- "no-restricted-imports": [
108
- "error",
109
- {
110
- "paths": [
111
- {
112
- "name": "react",
113
- "importNames": [
114
- "default"
115
- ],
116
- "message": "Default import from React is not allowed. Use named imports instead."
117
- },
118
- {
119
- "name": "react-dom",
120
- "importNames": [
121
- "default"
122
- ],
123
- "message": "Default import from React DOM is not allowed. Use named imports instead."
124
- },
125
- {
126
- "name": "@gooddata/sdk-ui-kit",
127
- "importNames": [
128
- "Icon"
129
- ],
130
- "message": "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead."
131
- },
132
- {
133
- "name": "vitest",
134
- "importNames": [
135
- "test"
136
- ],
137
- "message": "Use 'it' instead of 'test' for consistency."
138
- }
139
- ],
140
- "patterns": [
141
- {
142
- "group": [
143
- "lodash-es"
144
- ],
145
- "importNames": [
146
- "get",
147
- "getOr"
148
- ],
149
- "message": "Please use the ?. and ?? operators instead."
150
- },
151
- {
152
- "group": [
153
- "lodash-es"
154
- ],
155
- "importNames": [
156
- "keys"
157
- ],
158
- "message": "Please use Object.keys() instead."
159
- },
160
- {
161
- "group": [
162
- "lodash-es"
163
- ],
164
- "importNames": [
165
- "values"
166
- ],
167
- "message": "Please use Object.values() instead."
168
- },
169
- {
170
- "group": [
171
- "lodash-es"
172
- ],
173
- "importNames": [
174
- "entries",
175
- "toPairs"
176
- ],
177
- "message": "Please use Object.entries() instead."
178
- },
179
- {
180
- "group": [
181
- "lodash-es"
182
- ],
183
- "importNames": [
184
- "map"
185
- ],
186
- "message": "Please use Array.prototype.map() instead."
187
- },
188
- {
189
- "group": [
190
- "lodash-es"
191
- ],
192
- "importNames": [
193
- "flatMap"
194
- ],
195
- "message": "Please use Array.prototype.flatMap() instead."
196
- },
197
- {
198
- "group": [
199
- "lodash-es"
200
- ],
201
- "importNames": [
202
- "filter"
203
- ],
204
- "message": "Please use Array.prototype.filter() instead."
205
- },
206
- {
207
- "group": [
208
- "lodash-es"
209
- ],
210
- "importNames": [
211
- "find"
212
- ],
213
- "message": "Please use Array.prototype.find() instead."
214
- },
215
- {
216
- "group": [
217
- "lodash-es"
218
- ],
219
- "importNames": [
220
- "findIndex"
221
- ],
222
- "message": "Please use Array.prototype.findIndex() instead."
223
- },
224
- {
225
- "group": [
226
- "lodash-es"
227
- ],
228
- "importNames": [
229
- "includes"
230
- ],
231
- "message": "Please use Array.prototype.includes() instead."
232
- },
233
- {
234
- "group": [
235
- "lodash-es"
236
- ],
237
- "importNames": [
238
- "some"
239
- ],
240
- "message": "Please use Array.prototype.some() instead."
241
- },
242
- {
243
- "group": [
244
- "lodash-es"
245
- ],
246
- "importNames": [
247
- "every"
248
- ],
249
- "message": "Please use Array.prototype.every() instead."
250
- },
251
- {
252
- "group": [
253
- "lodash-es"
254
- ],
255
- "importNames": [
256
- "concat"
257
- ],
258
- "message": "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead."
259
- },
260
- {
261
- "group": [
262
- "lodash-es"
263
- ],
264
- "importNames": [
265
- "reverse"
266
- ],
267
- "message": "Please use Array.prototype.reverse() instead."
268
- },
269
- {
270
- "group": [
271
- "lodash-es"
272
- ],
273
- "importNames": [
274
- "slice"
275
- ],
276
- "message": "Please use Array.prototype.slice() instead."
277
- },
278
- {
279
- "group": [
280
- "lodash-es"
281
- ],
282
- "importNames": [
283
- "indexOf"
284
- ],
285
- "message": "Please use Array.prototype.indexOf() instead."
286
- },
287
- {
288
- "group": [
289
- "lodash-es"
290
- ],
291
- "importNames": [
292
- "lastIndexOf"
293
- ],
294
- "message": "Please use Array.prototype.lastIndexOf() instead."
295
- },
296
- {
297
- "group": [
298
- "lodash-es"
299
- ],
300
- "importNames": [
301
- "fill"
302
- ],
303
- "message": "Please use Array.prototype.fill() instead."
304
- },
305
- {
306
- "group": [
307
- "lodash-es"
308
- ],
309
- "importNames": [
310
- "startsWith"
311
- ],
312
- "message": "Please use String.prototype.startsWith() instead."
313
- },
314
- {
315
- "group": [
316
- "lodash-es"
317
- ],
318
- "importNames": [
319
- "endsWith"
320
- ],
321
- "message": "Please use String.prototype.endsWith() instead."
322
- },
323
- {
324
- "group": [
325
- "lodash-es"
326
- ],
327
- "importNames": [
328
- "repeat"
329
- ],
330
- "message": "Please use String.prototype.repeat() instead."
331
- },
332
- {
333
- "group": [
334
- "lodash-es"
335
- ],
336
- "importNames": [
337
- "padStart"
338
- ],
339
- "message": "Please use String.prototype.padStart() instead."
340
- },
341
- {
342
- "group": [
343
- "lodash-es"
344
- ],
345
- "importNames": [
346
- "padEnd"
347
- ],
348
- "message": "Please use String.prototype.padEnd() instead."
349
- },
350
- {
351
- "group": [
352
- "lodash-es"
353
- ],
354
- "importNames": [
355
- "trim"
356
- ],
357
- "message": "Please use String.prototype.trim() instead."
358
- },
359
- {
360
- "group": [
361
- "lodash-es"
362
- ],
363
- "importNames": [
364
- "trimStart",
365
- "trimLeft"
366
- ],
367
- "message": "Please use String.prototype.trimStart() instead."
368
- },
369
- {
370
- "group": [
371
- "lodash-es"
372
- ],
373
- "importNames": [
374
- "trimEnd",
375
- "trimRight"
376
- ],
377
- "message": "Please use String.prototype.trimEnd() instead."
378
- },
379
- {
380
- "group": [
381
- "lodash-es"
382
- ],
383
- "importNames": [
384
- "toUpper"
385
- ],
386
- "message": "Please use String.prototype.toUpperCase() instead."
387
- },
388
- {
389
- "group": [
390
- "lodash-es"
391
- ],
392
- "importNames": [
393
- "toLower"
394
- ],
395
- "message": "Please use String.prototype.toLowerCase() instead."
396
- },
397
- {
398
- "group": [
399
- "lodash-es"
400
- ],
401
- "importNames": [
402
- "isArray"
403
- ],
404
- "message": "Please use Array.isArray() instead."
405
- },
406
- {
407
- "group": [
408
- "lodash-es"
409
- ],
410
- "importNames": [
411
- "isNaN"
412
- ],
413
- "message": "Please use Number.isNaN() instead."
414
- },
415
- {
416
- "group": [
417
- "lodash-es"
418
- ],
419
- "importNames": [
420
- "isFinite"
421
- ],
422
- "message": "Please use Number.isFinite() instead."
423
- },
424
- {
425
- "group": [
426
- "lodash-es"
427
- ],
428
- "importNames": [
429
- "isInteger"
430
- ],
431
- "message": "Please use Number.isInteger() instead."
432
- },
433
- {
434
- "group": [
435
- "lodash-es"
436
- ],
437
- "importNames": [
438
- "isNull"
439
- ],
440
- "message": "Please use value === null instead."
441
- },
442
- {
443
- "group": [
444
- "lodash-es"
445
- ],
446
- "importNames": [
447
- "isUndefined"
448
- ],
449
- "message": "Please use value === undefined instead."
450
- },
451
- {
452
- "group": [
453
- "lodash-es"
454
- ],
455
- "importNames": [
456
- "defaultTo"
457
- ],
458
- "message": "Please use value ?? defaultValue instead."
459
- },
460
- {
461
- "group": [
462
- "lodash-es"
463
- ],
464
- "importNames": [
465
- "assign"
466
- ],
467
- "message": "Please use Object.assign() or spread syntax {...obj} instead."
468
- },
469
- {
470
- "group": [
471
- "lodash-es"
472
- ],
473
- "importNames": [
474
- "flatten"
475
- ],
476
- "message": "Please use Array.prototype.flat() instead."
477
- },
478
- {
479
- "group": [
480
- "lodash-es"
481
- ],
482
- "importNames": [
483
- "flattenDeep"
484
- ],
485
- "message": "Please use Array.prototype.flat(Infinity) instead."
486
- },
487
- {
488
- "group": [
489
- "lodash-es"
490
- ],
491
- "importNames": [
492
- "isNil"
493
- ],
494
- "message": "Please use value === null || value === undefined instead."
495
- },
496
- {
497
- "group": [
498
- "lodash-es"
499
- ],
500
- "importNames": [
501
- "noop"
502
- ],
503
- "message": "Please use () => {} instead."
504
- },
505
- {
506
- "group": [
507
- "lodash-es"
508
- ],
509
- "importNames": [
510
- "identity"
511
- ],
512
- "message": "Please use x => x instead."
513
- },
514
- {
515
- "group": [
516
- "lodash-es"
517
- ],
518
- "importNames": [
519
- "first",
520
- "head"
521
- ],
522
- "message": "Please use Array.prototype.at(0) instead."
523
- },
524
- {
525
- "group": [
526
- "lodash-es"
527
- ],
528
- "importNames": [
529
- "last"
530
- ],
531
- "message": "Please use Array.prototype.at(-1) instead."
532
- },
533
- {
534
- "group": [
535
- "lodash-es"
536
- ],
537
- "importNames": [
538
- "forEach"
539
- ],
540
- "message": "Please use Array.prototype.forEach() instead."
541
- },
542
- {
543
- "group": [
544
- "lodash-es"
545
- ],
546
- "importNames": [
547
- "fromPairs"
548
- ],
549
- "message": "Please use Object.fromEntries() instead."
550
- },
551
- {
552
- "group": [
553
- "lodash-es"
554
- ],
555
- "importNames": [
556
- "join"
557
- ],
558
- "message": "Please use Array.prototype.join() instead."
559
- },
560
- {
561
- "group": [
562
- "lodash-es"
563
- ],
564
- "importNames": [
565
- "isDate"
566
- ],
567
- "message": "Please use val instanceof Date instead."
568
- },
569
- {
570
- "group": [
571
- "lodash-es"
572
- ],
573
- "importNames": [
574
- "isFunction"
575
- ],
576
- "message": "Please use typeof val === 'function' instead."
577
- },
578
- {
579
- "group": [
580
- "lodash-es"
581
- ],
582
- "importNames": [
583
- "isNumber"
584
- ],
585
- "message": "Please use typeof val === 'number' instead."
586
- },
587
- {
588
- "group": [
589
- "lodash-es"
590
- ],
591
- "importNames": [
592
- "isObject"
593
- ],
594
- "message": "Please use val !== null && typeof val === 'object' instead."
595
- },
596
- {
597
- "group": [
598
- "lodash-es"
599
- ],
600
- "importNames": [
601
- "isString"
602
- ],
603
- "message": "Please use typeof val === 'string' instead."
604
- },
605
- {
606
- "group": [
607
- "lodash-es"
608
- ],
609
- "importNames": [
610
- "toString"
611
- ],
612
- "message": "Please use String(val) instead."
613
- },
614
- {
615
- "group": [
616
- "lodash-es"
617
- ],
618
- "importNames": [
619
- "flow",
620
- "flowRight"
621
- ],
622
- "message": "Please use refactoring your code instead."
623
- }
624
- ]
625
- }
626
- ],
627
- "sort-imports": [
628
- "error",
629
- {
630
- "ignoreCase": false,
631
- "ignoreDeclarationSort": true,
632
- "ignoreMemberSort": false
633
- }
634
- ],
635
- "no-useless-escape": "off",
636
- "no-unneeded-ternary": [
637
- "error",
638
- {
639
- "defaultAssignment": false
640
- }
641
- ],
642
- "no-extra-boolean-cast": "error",
643
- "no-unexpected-multiline": "off",
644
- "no-duplicate-imports": "error",
645
- "prefer-const": "off",
646
- "headers/header-format": [
647
- "error",
648
- {
649
- "source": "string",
650
- "style": "line",
651
- "content": "(C) (years) GoodData Corporation",
652
- "patterns": {
653
- "years": {
654
- "pattern": "\\d{4}(-\\d{4})?",
655
- "defaultValue": "2026"
656
- }
657
- }
658
- }
659
- ],
660
- "no-barrel-files/no-barrel-files": "error",
661
- "named": "error",
662
- "namespace": "error",
663
- "default": "error",
664
- "export": "error",
665
- "no-named-as-default": "warn",
666
- "no-named-as-default-member": "warn",
667
- "no-duplicates": "warn",
668
- "no-unassigned-import": "error",
669
- "sonarjs/function-name": "off",
670
- "sonarjs/max-lines": "off",
671
- "sonarjs/no-tab": "off",
672
- "sonarjs/variable-name": "off",
673
- "sonarjs/comment-regex": "off",
674
- "sonarjs/elseif-without-else": "off",
675
- "sonarjs/no-fallthrough": "error",
676
- "sonarjs/nested-control-flow": "off",
677
- "sonarjs/too-many-break-or-continue-in-loop": "off",
678
- "sonarjs/max-lines-per-function": "off",
679
- "sonarjs/no-nested-incdec": "off",
680
- "sonarjs/no-equals-in-for-termination": "error",
681
- "sonarjs/no-extra-arguments": "error",
682
- "sonarjs/no-collapsible-if": "off",
683
- "sonarjs/expression-complexity": "off",
684
- "sonarjs/no-redundant-parentheses": "off",
685
- "sonarjs/no-labels": "error",
686
- "sonarjs/no-redundant-boolean": "error",
687
- "sonarjs/prefer-single-boolean-return": "error",
688
- "sonarjs/unused-import": "error",
689
- "sonarjs/useless-string-operation": "off",
690
- "sonarjs/no-unused-function-argument": "off",
691
- "sonarjs/no-case-label-in-switch": "error",
692
- "sonarjs/no-parameter-reassignment": "error",
693
- "sonarjs/prefer-while": "error",
694
- "sonarjs/no-sonar-comments": "off",
695
- "sonarjs/no-small-switch": "error",
696
- "sonarjs/no-hardcoded-ip": "error",
697
- "sonarjs/label-position": "error",
698
- "sonarjs/file-header": "off",
699
- "sonarjs/call-argument-line": "error",
700
- "sonarjs/max-switch-cases": "error",
701
- "sonarjs/prefer-immediate-return": "off",
702
- "sonarjs/function-inside-loop": "error",
703
- "sonarjs/no-variable-usage-before-declaration": "off",
704
- "sonarjs/future-reserved-words": "error",
705
- "sonarjs/array-constructor": "off",
706
- "sonarjs/bitwise-operators": "error",
707
- "sonarjs/no-function-declaration-in-block": "off",
708
- "sonarjs/no-primitive-wrappers": "error",
709
- "sonarjs/for-in": "off",
710
- "sonarjs/cyclomatic-complexity": "off",
711
- "sonarjs/no-identical-expressions": "error",
712
- "sonarjs/no-nested-switch": "off",
713
- "sonarjs/no-identical-conditions": "error",
714
- "sonarjs/no-duplicated-branches": "error",
715
- "sonarjs/misplaced-loop-counter": "error",
716
- "sonarjs/sql-queries": "error",
717
- "sonarjs/insecure-cookie": "error",
718
- "sonarjs/no-useless-increment": "error",
719
- "sonarjs/no-undefined-assignment": "off",
720
- "sonarjs/no-wildcard-import": "off",
721
- "sonarjs/for-loop-increment-sign": "error",
722
- "sonarjs/cookies": "off",
723
- "sonarjs/null-dereference": "error",
724
- "sonarjs/updated-loop-counter": "error",
725
- "sonarjs/block-scoped-var": "error",
726
- "sonarjs/no-built-in-override": "off",
727
- "sonarjs/prefer-object-literal": "off",
728
- "sonarjs/no-gratuitous-expressions": "error",
729
- "sonarjs/file-uploads": "error",
730
- "sonarjs/file-permissions": "error",
731
- "sonarjs/no-empty-character-class": "error",
732
- "sonarjs/no-unenclosed-multiline-block": "error",
733
- "sonarjs/index-of-compare-to-positive-number": "error",
734
- "sonarjs/no-useless-catch": "error",
735
- "sonarjs/xml-parser-xxe": "error",
736
- "sonarjs/non-existent-operator": "error",
737
- "sonarjs/web-sql-database": "off",
738
- "sonarjs/no-array-delete": "error",
739
- "sonarjs/no-incomplete-assertions": "error",
740
- "sonarjs/no-global-this": "error",
741
- "sonarjs/new-operator-misuse": "error",
742
- "sonarjs/no-delete-var": "error",
743
- "sonarjs/strings-comparison": "off",
744
- "sonarjs/file-name-differ-from-class": "off",
745
- "sonarjs/cookie-no-httponly": "error",
746
- "sonarjs/no-incorrect-string-concat": "off",
747
- "sonarjs/inverted-assertion-arguments": "error",
748
- "sonarjs/shorthand-property-grouping": "off",
749
- "sonarjs/updated-const-var": "error",
750
- "sonarjs/arguments-usage": "off",
751
- "sonarjs/destructuring-assignment-syntax": "off",
752
- "sonarjs/arrow-function-convention": "off",
753
- "sonarjs/class-prototype": "off",
754
- "sonarjs/no-require-or-define": "off",
755
- "sonarjs/no-associative-arrays": "error",
756
- "sonarjs/comma-or-logical-or-case": "error",
757
- "sonarjs/no-redundant-jump": "error",
758
- "sonarjs/inconsistent-function-call": "error",
759
- "sonarjs/no-use-of-empty-return-value": "error",
760
- "sonarjs/enforce-trailing-comma": "off",
761
- "sonarjs/operation-returning-nan": "off",
762
- "sonarjs/values-not-convertible-to-numbers": "off",
763
- "sonarjs/non-number-in-arithmetic-expression": "off",
764
- "sonarjs/in-operator-type-error": "error",
765
- "sonarjs/declarations-in-global-scope": "off",
766
- "sonarjs/no-inconsistent-returns": "off",
767
- "sonarjs/no-reference-error": "off",
768
- "sonarjs/super-invocation": "error",
769
- "sonarjs/no-all-duplicated-branches": "error",
770
- "sonarjs/no-same-line-conditional": "error",
771
- "sonarjs/conditional-indentation": "off",
772
- "sonarjs/no-collection-size-mischeck": "error",
773
- "sonarjs/no-unthrown-error": "error",
774
- "sonarjs/no-unused-collection": "error",
775
- "sonarjs/no-for-in-iterable": "off",
776
- "sonarjs/no-element-overwrite": "error",
777
- "sonarjs/no-identical-functions": "error",
778
- "sonarjs/no-empty-collection": "error",
779
- "sonarjs/no-redundant-assignments": "error",
780
- "sonarjs/prefer-type-guard": "error",
781
- "sonarjs/no-return-type-any": "off",
782
- "sonarjs/no-implicit-dependencies": "off",
783
- "sonarjs/weak-ssl": "error",
784
- "sonarjs/no-weak-keys": "error",
785
- "sonarjs/csrf": "error",
786
- "sonarjs/production-debug": "error",
787
- "sonarjs/no-in-misuse": "error",
788
- "sonarjs/no-duplicate-in-composite": "error",
789
- "sonarjs/max-union-size": "off",
790
- "sonarjs/no-nested-template-literals": "error",
791
- "sonarjs/regular-expr": "off",
792
- "sonarjs/encryption": "off",
793
- "sonarjs/hashing": "error",
794
- "sonarjs/bool-param-default": "off",
795
- "sonarjs/xpath": "off",
796
- "sonarjs/sockets": "off",
797
- "sonarjs/process-argv": "off",
798
- "sonarjs/standard-input": "off",
799
- "sonarjs/unverified-certificate": "error",
800
- "sonarjs/cors": "error",
801
- "sonarjs/disabled-auto-escaping": "error",
802
- "sonarjs/no-table-as-layout": "error",
803
- "sonarjs/table-header-reference": "error",
804
- "sonarjs/object-alt-content": "error",
805
- "sonarjs/publicly-writable-directories": "error",
806
- "sonarjs/unverified-hostname": "error",
807
- "sonarjs/encryption-secure-mode": "error",
808
- "sonarjs/no-weak-cipher": "error",
809
- "sonarjs/no-intrusive-permissions": "error",
810
- "sonarjs/insecure-jwt-token": "error",
811
- "sonarjs/x-powered-by": "error",
812
- "sonarjs/hidden-files": "error",
813
- "sonarjs/content-length": "error",
814
- "sonarjs/disabled-resource-integrity": "error",
815
- "sonarjs/content-security-policy": "error",
816
- "sonarjs/no-mixed-content": "error",
817
- "sonarjs/frame-ancestors": "error",
818
- "sonarjs/no-mime-sniff": "error",
819
- "sonarjs/no-referrer-policy": "error",
820
- "sonarjs/strict-transport-security": "error",
821
- "sonarjs/certificate-transparency": "off",
822
- "sonarjs/dns-prefetching": "off",
823
- "sonarjs/confidential-information-logging": "error",
824
- "sonarjs/no-ip-forward": "error",
825
- "sonarjs/no-invalid-regexp": "error",
826
- "sonarjs/unused-named-groups": "error",
827
- "sonarjs/no-same-argument-assert": "error",
828
- "sonarjs/unicode-aware-regex": "off",
829
- "sonarjs/no-misleading-character-class": "error",
830
- "sonarjs/session-regeneration": "error",
831
- "sonarjs/test-check-exception": "error",
832
- "sonarjs/stable-tests": "error",
833
- "sonarjs/no-empty-after-reluctant": "error",
834
- "sonarjs/no-code-after-done": "error",
835
- "sonarjs/disabled-timeout": "error",
836
- "sonarjs/chai-determinate-assertion": "error",
837
- "sonarjs/aws-s3-bucket-server-encryption": "off",
838
- "sonarjs/aws-s3-bucket-insecure-http": "error",
839
- "sonarjs/aws-s3-bucket-versioning": "error",
840
- "sonarjs/aws-s3-bucket-granted-access": "error",
841
- "sonarjs/no-angular-bypass-sanitization": "error",
842
- "sonarjs/aws-iam-public-access": "error",
843
- "sonarjs/aws-ec2-unencrypted-ebs-volume": "error",
844
- "sonarjs/aws-s3-bucket-public-access": "error",
845
- "sonarjs/no-vue-bypass-sanitization": "off",
846
- "sonarjs/aws-iam-all-privileges": "error",
847
- "sonarjs/aws-rds-unencrypted-databases": "error",
848
- "sonarjs/aws-iam-all-resources-accessible": "off",
849
- "sonarjs/aws-opensearchservice-domain": "error",
850
- "sonarjs/aws-iam-privilege-escalation": "error",
851
- "sonarjs/aws-sagemaker-unencrypted-notebook": "error",
852
- "sonarjs/aws-restricted-ip-admin-access": "error",
853
- "sonarjs/no-empty-alternatives": "error",
854
- "sonarjs/no-regex-spaces": "error",
855
- "sonarjs/aws-sns-unencrypted-topics": "error",
856
- "sonarjs/existing-groups": "error",
857
- "sonarjs/aws-ec2-rds-dms-public": "error",
858
- "sonarjs/aws-sqs-unencrypted-queue": "error",
859
- "sonarjs/no-empty-group": "error",
860
- "sonarjs/aws-efs-unencrypted": "error",
861
- "sonarjs/aws-apigateway-public-api": "error",
862
- "sonarjs/stateful-regex": "error",
863
- "sonarjs/single-char-in-character-classes": "error",
864
- "sonarjs/no-exclusive-tests": "error",
865
- "sonarjs/hardcoded-secret-signatures": "error",
866
- "sonarjs/jsx-no-leaked-render": "error",
867
- "sonarjs/no-hook-setter-in-body": "error",
868
- "sonarjs/no-uniq-key": "error",
869
- "sonarjs/no-internal-api-use": "error",
870
- "sonarjs/no-literal-call": "error",
871
- "sonarjs/review-blockchain-mnemonic": "error",
872
- "sonarjs/dynamically-constructed-templates": "error",
873
- "sonarjs/no-duplicate-string": "off",
874
- "sonarjs/cognitive-complexity": "warn",
875
- "sonarjs/todo-tag": "warn",
876
- "sonarjs/no-hardcoded-passwords": "off",
877
- "sonarjs/no-alphabetical-sort": "off",
878
- "sonarjs/no-os-command-from-path": "off",
879
- "sonarjs/os-command": "off",
880
- "sonarjs/prefer-regexp-exec": "off",
881
- "sonarjs/no-clear-text-protocols": "off",
882
- "sonarjs/deprecation": "off",
883
- "sonarjs/no-nested-conditional": "off",
884
- "sonarjs/no-ignored-exceptions": "off",
885
- "sonarjs/slow-regex": "off",
886
- "sonarjs/prefer-read-only-props": "off",
887
- "sonarjs/no-skipped-tests": "off",
888
- "sonarjs/no-commented-code": "off",
889
- "sonarjs/no-ignored-return": "off",
890
- "sonarjs/array-callback-without-return": "off",
891
- "sonarjs/pseudo-random": "off",
892
- "sonarjs/no-nested-functions": "off",
893
- "sonarjs/no-async-constructor": "off",
894
- "sonarjs/assertions-in-tests": "off",
895
- "sonarjs/function-return-type": "off",
896
- "sonarjs/no-unused-vars": "off",
897
- "sonarjs/no-invariant-returns": "off",
898
- "sonarjs/different-types-comparison": "off",
899
- "sonarjs/no-selector-parameter": "off",
900
- "sonarjs/anchor-precedence": "off",
901
- "sonarjs/redundant-type-aliases": "off",
902
- "sonarjs/no-redundant-optional": "off",
903
- "sonarjs/reduce-initial-value": "off",
904
- "sonarjs/no-globals-shadowing": "off",
905
- "sonarjs/use-type-alias": "off",
906
- "sonarjs/void-use": "off",
907
- "sonarjs/no-undefined-argument": "off",
908
- "sonarjs/no-useless-react-setstate": "off",
909
- "sonarjs/no-inverted-boolean-check": "off",
910
- "sonarjs/concise-regex": "off",
911
- "sonarjs/no-dead-store": "off",
912
- "sonarjs/public-static-readonly": "off",
913
- "sonarjs/code-eval": "off",
914
- "sonarjs/no-misleading-array-reverse": "off",
915
- "sonarjs/fixme-tag": "off",
916
- "sonarjs/argument-type": "off",
917
- "sonarjs/constructor-for-side-effects": "off",
918
- "sonarjs/no-useless-intersection": "off",
919
- "sonarjs/no-empty-test-file": "off",
920
- "sonarjs/prefer-default-last": "off",
921
- "sonarjs/prefer-promise-shorthand": "off",
922
- "sonarjs/no-unsafe-unzip": "off",
923
- "sonarjs/no-nested-assignment": "off",
924
- "sonarjs/generator-without-yield": "off",
925
- "sonarjs/no-try-promise": "off",
926
- "sonarjs/single-character-alternation": "off",
927
- "sonarjs/class-name": "off",
928
- "sonarjs/no-hardcoded-secrets": "off",
929
- "sonarjs/regex-complexity": "off",
930
- "sonarjs/post-message": "off",
931
- "sonarjs/link-with-target-blank": "off",
932
- "sonarjs/duplicates-in-character-class": "off",
933
- "sonarjs/arguments-order": "off",
934
- "sonarjs/empty-string-repetition": "off",
935
- "sonarjs/table-header": "off",
936
- "sonarjs/no-implicit-global": "off",
937
- "sonarjs/no-control-regex": "off",
938
- "no-caller": 2,
939
- "no-eval": 2,
940
- "no-octal-escape": 2,
941
- "cypress/no-async-tests": "error",
942
- "cypress/no-unnecessary-waiting": "warn",
943
- "cypress/no-assigning-return-values": "warn",
944
- "cypress/unsafe-to-chain-command": "warn",
945
- "no-unused-expressions": "off",
946
- "chai-friendly/no-unused-expressions": "error",
947
- "no-only-tests/no-only-tests": [
948
- "error",
949
- {
950
- "block": [
951
- "fixture"
952
- ],
953
- "focus": [
954
- "only"
955
- ]
956
- }
957
- ]
958
- },
959
- "overrides": [
960
- {
961
- "files": [
962
- "*"
963
- ],
964
- "env": {
965
- "node": true,
966
- "es2022": true
967
- }
968
- },
969
- {
970
- "files": [
971
- "**/*.ts",
972
- "**/*.tsx"
973
- ],
974
- "rules": {
975
- "no-restricted-imports": [
976
- "error",
977
- {
978
- "paths": [
979
- {
980
- "name": "react",
981
- "importNames": [
982
- "default"
983
- ],
984
- "message": "Default import from React is not allowed. Use named imports instead."
985
- },
986
- {
987
- "name": "react-dom",
988
- "importNames": [
989
- "default"
990
- ],
991
- "message": "Default import from React DOM is not allowed. Use named imports instead."
992
- },
993
- {
994
- "name": "@gooddata/sdk-ui-kit",
995
- "importNames": [
996
- "Icon"
997
- ],
998
- "message": "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead."
999
- },
1000
- {
1001
- "name": "vitest",
1002
- "importNames": [
1003
- "test"
1004
- ],
1005
- "message": "Use 'it' instead of 'test' for consistency."
1006
- }
1007
- ],
1008
- "patterns": [
1009
- {
1010
- "group": [
1011
- "lodash-es"
1012
- ],
1013
- "importNames": [
1014
- "get",
1015
- "getOr"
1016
- ],
1017
- "message": "Please use the ?. and ?? operators instead."
1018
- },
1019
- {
1020
- "group": [
1021
- "lodash-es"
1022
- ],
1023
- "importNames": [
1024
- "keys"
1025
- ],
1026
- "message": "Please use Object.keys() instead."
1027
- },
1028
- {
1029
- "group": [
1030
- "lodash-es"
1031
- ],
1032
- "importNames": [
1033
- "values"
1034
- ],
1035
- "message": "Please use Object.values() instead."
1036
- },
1037
- {
1038
- "group": [
1039
- "lodash-es"
1040
- ],
1041
- "importNames": [
1042
- "entries",
1043
- "toPairs"
1044
- ],
1045
- "message": "Please use Object.entries() instead."
1046
- },
1047
- {
1048
- "group": [
1049
- "lodash-es"
1050
- ],
1051
- "importNames": [
1052
- "map"
1053
- ],
1054
- "message": "Please use Array.prototype.map() instead."
1055
- },
1056
- {
1057
- "group": [
1058
- "lodash-es"
1059
- ],
1060
- "importNames": [
1061
- "flatMap"
1062
- ],
1063
- "message": "Please use Array.prototype.flatMap() instead."
1064
- },
1065
- {
1066
- "group": [
1067
- "lodash-es"
1068
- ],
1069
- "importNames": [
1070
- "filter"
1071
- ],
1072
- "message": "Please use Array.prototype.filter() instead."
1073
- },
1074
- {
1075
- "group": [
1076
- "lodash-es"
1077
- ],
1078
- "importNames": [
1079
- "find"
1080
- ],
1081
- "message": "Please use Array.prototype.find() instead."
1082
- },
1083
- {
1084
- "group": [
1085
- "lodash-es"
1086
- ],
1087
- "importNames": [
1088
- "findIndex"
1089
- ],
1090
- "message": "Please use Array.prototype.findIndex() instead."
1091
- },
1092
- {
1093
- "group": [
1094
- "lodash-es"
1095
- ],
1096
- "importNames": [
1097
- "includes"
1098
- ],
1099
- "message": "Please use Array.prototype.includes() instead."
1100
- },
1101
- {
1102
- "group": [
1103
- "lodash-es"
1104
- ],
1105
- "importNames": [
1106
- "some"
1107
- ],
1108
- "message": "Please use Array.prototype.some() instead."
1109
- },
1110
- {
1111
- "group": [
1112
- "lodash-es"
1113
- ],
1114
- "importNames": [
1115
- "every"
1116
- ],
1117
- "message": "Please use Array.prototype.every() instead."
1118
- },
1119
- {
1120
- "group": [
1121
- "lodash-es"
1122
- ],
1123
- "importNames": [
1124
- "concat"
1125
- ],
1126
- "message": "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead."
1127
- },
1128
- {
1129
- "group": [
1130
- "lodash-es"
1131
- ],
1132
- "importNames": [
1133
- "reverse"
1134
- ],
1135
- "message": "Please use Array.prototype.reverse() instead."
1136
- },
1137
- {
1138
- "group": [
1139
- "lodash-es"
1140
- ],
1141
- "importNames": [
1142
- "slice"
1143
- ],
1144
- "message": "Please use Array.prototype.slice() instead."
1145
- },
1146
- {
1147
- "group": [
1148
- "lodash-es"
1149
- ],
1150
- "importNames": [
1151
- "indexOf"
1152
- ],
1153
- "message": "Please use Array.prototype.indexOf() instead."
1154
- },
1155
- {
1156
- "group": [
1157
- "lodash-es"
1158
- ],
1159
- "importNames": [
1160
- "lastIndexOf"
1161
- ],
1162
- "message": "Please use Array.prototype.lastIndexOf() instead."
1163
- },
1164
- {
1165
- "group": [
1166
- "lodash-es"
1167
- ],
1168
- "importNames": [
1169
- "fill"
1170
- ],
1171
- "message": "Please use Array.prototype.fill() instead."
1172
- },
1173
- {
1174
- "group": [
1175
- "lodash-es"
1176
- ],
1177
- "importNames": [
1178
- "startsWith"
1179
- ],
1180
- "message": "Please use String.prototype.startsWith() instead."
1181
- },
1182
- {
1183
- "group": [
1184
- "lodash-es"
1185
- ],
1186
- "importNames": [
1187
- "endsWith"
1188
- ],
1189
- "message": "Please use String.prototype.endsWith() instead."
1190
- },
1191
- {
1192
- "group": [
1193
- "lodash-es"
1194
- ],
1195
- "importNames": [
1196
- "repeat"
1197
- ],
1198
- "message": "Please use String.prototype.repeat() instead."
1199
- },
1200
- {
1201
- "group": [
1202
- "lodash-es"
1203
- ],
1204
- "importNames": [
1205
- "padStart"
1206
- ],
1207
- "message": "Please use String.prototype.padStart() instead."
1208
- },
1209
- {
1210
- "group": [
1211
- "lodash-es"
1212
- ],
1213
- "importNames": [
1214
- "padEnd"
1215
- ],
1216
- "message": "Please use String.prototype.padEnd() instead."
1217
- },
1218
- {
1219
- "group": [
1220
- "lodash-es"
1221
- ],
1222
- "importNames": [
1223
- "trim"
1224
- ],
1225
- "message": "Please use String.prototype.trim() instead."
1226
- },
1227
- {
1228
- "group": [
1229
- "lodash-es"
1230
- ],
1231
- "importNames": [
1232
- "trimStart",
1233
- "trimLeft"
1234
- ],
1235
- "message": "Please use String.prototype.trimStart() instead."
1236
- },
1237
- {
1238
- "group": [
1239
- "lodash-es"
1240
- ],
1241
- "importNames": [
1242
- "trimEnd",
1243
- "trimRight"
1244
- ],
1245
- "message": "Please use String.prototype.trimEnd() instead."
1246
- },
1247
- {
1248
- "group": [
1249
- "lodash-es"
1250
- ],
1251
- "importNames": [
1252
- "toUpper"
1253
- ],
1254
- "message": "Please use String.prototype.toUpperCase() instead."
1255
- },
1256
- {
1257
- "group": [
1258
- "lodash-es"
1259
- ],
1260
- "importNames": [
1261
- "toLower"
1262
- ],
1263
- "message": "Please use String.prototype.toLowerCase() instead."
1264
- },
1265
- {
1266
- "group": [
1267
- "lodash-es"
1268
- ],
1269
- "importNames": [
1270
- "isArray"
1271
- ],
1272
- "message": "Please use Array.isArray() instead."
1273
- },
1274
- {
1275
- "group": [
1276
- "lodash-es"
1277
- ],
1278
- "importNames": [
1279
- "isNaN"
1280
- ],
1281
- "message": "Please use Number.isNaN() instead."
1282
- },
1283
- {
1284
- "group": [
1285
- "lodash-es"
1286
- ],
1287
- "importNames": [
1288
- "isFinite"
1289
- ],
1290
- "message": "Please use Number.isFinite() instead."
1291
- },
1292
- {
1293
- "group": [
1294
- "lodash-es"
1295
- ],
1296
- "importNames": [
1297
- "isInteger"
1298
- ],
1299
- "message": "Please use Number.isInteger() instead."
1300
- },
1301
- {
1302
- "group": [
1303
- "lodash-es"
1304
- ],
1305
- "importNames": [
1306
- "isNull"
1307
- ],
1308
- "message": "Please use value === null instead."
1309
- },
1310
- {
1311
- "group": [
1312
- "lodash-es"
1313
- ],
1314
- "importNames": [
1315
- "isUndefined"
1316
- ],
1317
- "message": "Please use value === undefined instead."
1318
- },
1319
- {
1320
- "group": [
1321
- "lodash-es"
1322
- ],
1323
- "importNames": [
1324
- "defaultTo"
1325
- ],
1326
- "message": "Please use value ?? defaultValue instead."
1327
- },
1328
- {
1329
- "group": [
1330
- "lodash-es"
1331
- ],
1332
- "importNames": [
1333
- "assign"
1334
- ],
1335
- "message": "Please use Object.assign() or spread syntax {...obj} instead."
1336
- },
1337
- {
1338
- "group": [
1339
- "lodash-es"
1340
- ],
1341
- "importNames": [
1342
- "flatten"
1343
- ],
1344
- "message": "Please use Array.prototype.flat() instead."
1345
- },
1346
- {
1347
- "group": [
1348
- "lodash-es"
1349
- ],
1350
- "importNames": [
1351
- "flattenDeep"
1352
- ],
1353
- "message": "Please use Array.prototype.flat(Infinity) instead."
1354
- },
1355
- {
1356
- "group": [
1357
- "lodash-es"
1358
- ],
1359
- "importNames": [
1360
- "isNil"
1361
- ],
1362
- "message": "Please use value === null || value === undefined instead."
1363
- },
1364
- {
1365
- "group": [
1366
- "lodash-es"
1367
- ],
1368
- "importNames": [
1369
- "noop"
1370
- ],
1371
- "message": "Please use () => {} instead."
1372
- },
1373
- {
1374
- "group": [
1375
- "lodash-es"
1376
- ],
1377
- "importNames": [
1378
- "identity"
1379
- ],
1380
- "message": "Please use x => x instead."
1381
- },
1382
- {
1383
- "group": [
1384
- "lodash-es"
1385
- ],
1386
- "importNames": [
1387
- "first",
1388
- "head"
1389
- ],
1390
- "message": "Please use Array.prototype.at(0) instead."
1391
- },
1392
- {
1393
- "group": [
1394
- "lodash-es"
1395
- ],
1396
- "importNames": [
1397
- "last"
1398
- ],
1399
- "message": "Please use Array.prototype.at(-1) instead."
1400
- },
1401
- {
1402
- "group": [
1403
- "lodash-es"
1404
- ],
1405
- "importNames": [
1406
- "forEach"
1407
- ],
1408
- "message": "Please use Array.prototype.forEach() instead."
1409
- },
1410
- {
1411
- "group": [
1412
- "lodash-es"
1413
- ],
1414
- "importNames": [
1415
- "fromPairs"
1416
- ],
1417
- "message": "Please use Object.fromEntries() instead."
1418
- },
1419
- {
1420
- "group": [
1421
- "lodash-es"
1422
- ],
1423
- "importNames": [
1424
- "join"
1425
- ],
1426
- "message": "Please use Array.prototype.join() instead."
1427
- },
1428
- {
1429
- "group": [
1430
- "lodash-es"
1431
- ],
1432
- "importNames": [
1433
- "isDate"
1434
- ],
1435
- "message": "Please use val instanceof Date instead."
1436
- },
1437
- {
1438
- "group": [
1439
- "lodash-es"
1440
- ],
1441
- "importNames": [
1442
- "isFunction"
1443
- ],
1444
- "message": "Please use typeof val === 'function' instead."
1445
- },
1446
- {
1447
- "group": [
1448
- "lodash-es"
1449
- ],
1450
- "importNames": [
1451
- "isNumber"
1452
- ],
1453
- "message": "Please use typeof val === 'number' instead."
1454
- },
1455
- {
1456
- "group": [
1457
- "lodash-es"
1458
- ],
1459
- "importNames": [
1460
- "isObject"
1461
- ],
1462
- "message": "Please use val !== null && typeof val === 'object' instead."
1463
- },
1464
- {
1465
- "group": [
1466
- "lodash-es"
1467
- ],
1468
- "importNames": [
1469
- "isString"
1470
- ],
1471
- "message": "Please use typeof val === 'string' instead."
1472
- },
1473
- {
1474
- "group": [
1475
- "lodash-es"
1476
- ],
1477
- "importNames": [
1478
- "toString"
1479
- ],
1480
- "message": "Please use String(val) instead."
1481
- },
1482
- {
1483
- "group": [
1484
- "lodash-es"
1485
- ],
1486
- "importNames": [
1487
- "flow",
1488
- "flowRight"
1489
- ],
1490
- "message": "Please use refactoring your code instead."
1491
- },
1492
- {
1493
- "group": [
1494
- "vitest"
1495
- ],
1496
- "message": "Importing from vitest is only allowed in test files."
1497
- }
1498
- ]
1499
- }
1500
- ]
1501
- }
1502
- },
1503
- {
1504
- "files": [
1505
- "**/vitest.config.ts",
1506
- "**/vitest.*.config.ts",
1507
- "**/vitest.setup.ts",
1508
- "**/vitest.setup.tsx",
1509
- "**/*.test.ts",
1510
- "**/*.test.tsx",
1511
- "**/*.test.utils.ts",
1512
- "**/*.test.utils.tsx",
1513
- "**/*.test.helpers.ts",
1514
- "**/*.test.helpers.tsx"
1515
- ],
1516
- "rules": {
1517
- "no-restricted-imports": [
1518
- "error",
1519
- {
1520
- "paths": [
1521
- {
1522
- "name": "react",
1523
- "importNames": [
1524
- "default"
1525
- ],
1526
- "message": "Default import from React is not allowed. Use named imports instead."
1527
- },
1528
- {
1529
- "name": "react-dom",
1530
- "importNames": [
1531
- "default"
1532
- ],
1533
- "message": "Default import from React DOM is not allowed. Use named imports instead."
1534
- },
1535
- {
1536
- "name": "@gooddata/sdk-ui-kit",
1537
- "importNames": [
1538
- "Icon"
1539
- ],
1540
- "message": "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead."
1541
- },
1542
- {
1543
- "name": "vitest",
1544
- "importNames": [
1545
- "test"
1546
- ],
1547
- "message": "Use 'it' instead of 'test' for consistency."
1548
- }
1549
- ],
1550
- "patterns": [
1551
- {
1552
- "group": [
1553
- "lodash-es"
1554
- ],
1555
- "importNames": [
1556
- "get",
1557
- "getOr"
1558
- ],
1559
- "message": "Please use the ?. and ?? operators instead."
1560
- },
1561
- {
1562
- "group": [
1563
- "lodash-es"
1564
- ],
1565
- "importNames": [
1566
- "keys"
1567
- ],
1568
- "message": "Please use Object.keys() instead."
1569
- },
1570
- {
1571
- "group": [
1572
- "lodash-es"
1573
- ],
1574
- "importNames": [
1575
- "values"
1576
- ],
1577
- "message": "Please use Object.values() instead."
1578
- },
1579
- {
1580
- "group": [
1581
- "lodash-es"
1582
- ],
1583
- "importNames": [
1584
- "entries",
1585
- "toPairs"
1586
- ],
1587
- "message": "Please use Object.entries() instead."
1588
- },
1589
- {
1590
- "group": [
1591
- "lodash-es"
1592
- ],
1593
- "importNames": [
1594
- "map"
1595
- ],
1596
- "message": "Please use Array.prototype.map() instead."
1597
- },
1598
- {
1599
- "group": [
1600
- "lodash-es"
1601
- ],
1602
- "importNames": [
1603
- "flatMap"
1604
- ],
1605
- "message": "Please use Array.prototype.flatMap() instead."
1606
- },
1607
- {
1608
- "group": [
1609
- "lodash-es"
1610
- ],
1611
- "importNames": [
1612
- "filter"
1613
- ],
1614
- "message": "Please use Array.prototype.filter() instead."
1615
- },
1616
- {
1617
- "group": [
1618
- "lodash-es"
1619
- ],
1620
- "importNames": [
1621
- "find"
1622
- ],
1623
- "message": "Please use Array.prototype.find() instead."
1624
- },
1625
- {
1626
- "group": [
1627
- "lodash-es"
1628
- ],
1629
- "importNames": [
1630
- "findIndex"
1631
- ],
1632
- "message": "Please use Array.prototype.findIndex() instead."
1633
- },
1634
- {
1635
- "group": [
1636
- "lodash-es"
1637
- ],
1638
- "importNames": [
1639
- "includes"
1640
- ],
1641
- "message": "Please use Array.prototype.includes() instead."
1642
- },
1643
- {
1644
- "group": [
1645
- "lodash-es"
1646
- ],
1647
- "importNames": [
1648
- "some"
1649
- ],
1650
- "message": "Please use Array.prototype.some() instead."
1651
- },
1652
- {
1653
- "group": [
1654
- "lodash-es"
1655
- ],
1656
- "importNames": [
1657
- "every"
1658
- ],
1659
- "message": "Please use Array.prototype.every() instead."
1660
- },
1661
- {
1662
- "group": [
1663
- "lodash-es"
1664
- ],
1665
- "importNames": [
1666
- "concat"
1667
- ],
1668
- "message": "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead."
1669
- },
1670
- {
1671
- "group": [
1672
- "lodash-es"
1673
- ],
1674
- "importNames": [
1675
- "reverse"
1676
- ],
1677
- "message": "Please use Array.prototype.reverse() instead."
1678
- },
1679
- {
1680
- "group": [
1681
- "lodash-es"
1682
- ],
1683
- "importNames": [
1684
- "slice"
1685
- ],
1686
- "message": "Please use Array.prototype.slice() instead."
1687
- },
1688
- {
1689
- "group": [
1690
- "lodash-es"
1691
- ],
1692
- "importNames": [
1693
- "indexOf"
1694
- ],
1695
- "message": "Please use Array.prototype.indexOf() instead."
1696
- },
1697
- {
1698
- "group": [
1699
- "lodash-es"
1700
- ],
1701
- "importNames": [
1702
- "lastIndexOf"
1703
- ],
1704
- "message": "Please use Array.prototype.lastIndexOf() instead."
1705
- },
1706
- {
1707
- "group": [
1708
- "lodash-es"
1709
- ],
1710
- "importNames": [
1711
- "fill"
1712
- ],
1713
- "message": "Please use Array.prototype.fill() instead."
1714
- },
1715
- {
1716
- "group": [
1717
- "lodash-es"
1718
- ],
1719
- "importNames": [
1720
- "startsWith"
1721
- ],
1722
- "message": "Please use String.prototype.startsWith() instead."
1723
- },
1724
- {
1725
- "group": [
1726
- "lodash-es"
1727
- ],
1728
- "importNames": [
1729
- "endsWith"
1730
- ],
1731
- "message": "Please use String.prototype.endsWith() instead."
1732
- },
1733
- {
1734
- "group": [
1735
- "lodash-es"
1736
- ],
1737
- "importNames": [
1738
- "repeat"
1739
- ],
1740
- "message": "Please use String.prototype.repeat() instead."
1741
- },
1742
- {
1743
- "group": [
1744
- "lodash-es"
1745
- ],
1746
- "importNames": [
1747
- "padStart"
1748
- ],
1749
- "message": "Please use String.prototype.padStart() instead."
1750
- },
1751
- {
1752
- "group": [
1753
- "lodash-es"
1754
- ],
1755
- "importNames": [
1756
- "padEnd"
1757
- ],
1758
- "message": "Please use String.prototype.padEnd() instead."
1759
- },
1760
- {
1761
- "group": [
1762
- "lodash-es"
1763
- ],
1764
- "importNames": [
1765
- "trim"
1766
- ],
1767
- "message": "Please use String.prototype.trim() instead."
1768
- },
1769
- {
1770
- "group": [
1771
- "lodash-es"
1772
- ],
1773
- "importNames": [
1774
- "trimStart",
1775
- "trimLeft"
1776
- ],
1777
- "message": "Please use String.prototype.trimStart() instead."
1778
- },
1779
- {
1780
- "group": [
1781
- "lodash-es"
1782
- ],
1783
- "importNames": [
1784
- "trimEnd",
1785
- "trimRight"
1786
- ],
1787
- "message": "Please use String.prototype.trimEnd() instead."
1788
- },
1789
- {
1790
- "group": [
1791
- "lodash-es"
1792
- ],
1793
- "importNames": [
1794
- "toUpper"
1795
- ],
1796
- "message": "Please use String.prototype.toUpperCase() instead."
1797
- },
1798
- {
1799
- "group": [
1800
- "lodash-es"
1801
- ],
1802
- "importNames": [
1803
- "toLower"
1804
- ],
1805
- "message": "Please use String.prototype.toLowerCase() instead."
1806
- },
1807
- {
1808
- "group": [
1809
- "lodash-es"
1810
- ],
1811
- "importNames": [
1812
- "isArray"
1813
- ],
1814
- "message": "Please use Array.isArray() instead."
1815
- },
1816
- {
1817
- "group": [
1818
- "lodash-es"
1819
- ],
1820
- "importNames": [
1821
- "isNaN"
1822
- ],
1823
- "message": "Please use Number.isNaN() instead."
1824
- },
1825
- {
1826
- "group": [
1827
- "lodash-es"
1828
- ],
1829
- "importNames": [
1830
- "isFinite"
1831
- ],
1832
- "message": "Please use Number.isFinite() instead."
1833
- },
1834
- {
1835
- "group": [
1836
- "lodash-es"
1837
- ],
1838
- "importNames": [
1839
- "isInteger"
1840
- ],
1841
- "message": "Please use Number.isInteger() instead."
1842
- },
1843
- {
1844
- "group": [
1845
- "lodash-es"
1846
- ],
1847
- "importNames": [
1848
- "isNull"
1849
- ],
1850
- "message": "Please use value === null instead."
1851
- },
1852
- {
1853
- "group": [
1854
- "lodash-es"
1855
- ],
1856
- "importNames": [
1857
- "isUndefined"
1858
- ],
1859
- "message": "Please use value === undefined instead."
1860
- },
1861
- {
1862
- "group": [
1863
- "lodash-es"
1864
- ],
1865
- "importNames": [
1866
- "defaultTo"
1867
- ],
1868
- "message": "Please use value ?? defaultValue instead."
1869
- },
1870
- {
1871
- "group": [
1872
- "lodash-es"
1873
- ],
1874
- "importNames": [
1875
- "assign"
1876
- ],
1877
- "message": "Please use Object.assign() or spread syntax {...obj} instead."
1878
- },
1879
- {
1880
- "group": [
1881
- "lodash-es"
1882
- ],
1883
- "importNames": [
1884
- "flatten"
1885
- ],
1886
- "message": "Please use Array.prototype.flat() instead."
1887
- },
1888
- {
1889
- "group": [
1890
- "lodash-es"
1891
- ],
1892
- "importNames": [
1893
- "flattenDeep"
1894
- ],
1895
- "message": "Please use Array.prototype.flat(Infinity) instead."
1896
- },
1897
- {
1898
- "group": [
1899
- "lodash-es"
1900
- ],
1901
- "importNames": [
1902
- "isNil"
1903
- ],
1904
- "message": "Please use value === null || value === undefined instead."
1905
- },
1906
- {
1907
- "group": [
1908
- "lodash-es"
1909
- ],
1910
- "importNames": [
1911
- "noop"
1912
- ],
1913
- "message": "Please use () => {} instead."
1914
- },
1915
- {
1916
- "group": [
1917
- "lodash-es"
1918
- ],
1919
- "importNames": [
1920
- "identity"
1921
- ],
1922
- "message": "Please use x => x instead."
1923
- },
1924
- {
1925
- "group": [
1926
- "lodash-es"
1927
- ],
1928
- "importNames": [
1929
- "first",
1930
- "head"
1931
- ],
1932
- "message": "Please use Array.prototype.at(0) instead."
1933
- },
1934
- {
1935
- "group": [
1936
- "lodash-es"
1937
- ],
1938
- "importNames": [
1939
- "last"
1940
- ],
1941
- "message": "Please use Array.prototype.at(-1) instead."
1942
- },
1943
- {
1944
- "group": [
1945
- "lodash-es"
1946
- ],
1947
- "importNames": [
1948
- "forEach"
1949
- ],
1950
- "message": "Please use Array.prototype.forEach() instead."
1951
- },
1952
- {
1953
- "group": [
1954
- "lodash-es"
1955
- ],
1956
- "importNames": [
1957
- "fromPairs"
1958
- ],
1959
- "message": "Please use Object.fromEntries() instead."
1960
- },
1961
- {
1962
- "group": [
1963
- "lodash-es"
1964
- ],
1965
- "importNames": [
1966
- "join"
1967
- ],
1968
- "message": "Please use Array.prototype.join() instead."
1969
- },
1970
- {
1971
- "group": [
1972
- "lodash-es"
1973
- ],
1974
- "importNames": [
1975
- "isDate"
1976
- ],
1977
- "message": "Please use val instanceof Date instead."
1978
- },
1979
- {
1980
- "group": [
1981
- "lodash-es"
1982
- ],
1983
- "importNames": [
1984
- "isFunction"
1985
- ],
1986
- "message": "Please use typeof val === 'function' instead."
1987
- },
1988
- {
1989
- "group": [
1990
- "lodash-es"
1991
- ],
1992
- "importNames": [
1993
- "isNumber"
1994
- ],
1995
- "message": "Please use typeof val === 'number' instead."
1996
- },
1997
- {
1998
- "group": [
1999
- "lodash-es"
2000
- ],
2001
- "importNames": [
2002
- "isObject"
2003
- ],
2004
- "message": "Please use val !== null && typeof val === 'object' instead."
2005
- },
2006
- {
2007
- "group": [
2008
- "lodash-es"
2009
- ],
2010
- "importNames": [
2011
- "isString"
2012
- ],
2013
- "message": "Please use typeof val === 'string' instead."
2014
- },
2015
- {
2016
- "group": [
2017
- "lodash-es"
2018
- ],
2019
- "importNames": [
2020
- "toString"
2021
- ],
2022
- "message": "Please use String(val) instead."
2023
- },
2024
- {
2025
- "group": [
2026
- "lodash-es"
2027
- ],
2028
- "importNames": [
2029
- "flow",
2030
- "flowRight"
2031
- ],
2032
- "message": "Please use refactoring your code instead."
2033
- }
2034
- ]
2035
- }
2036
- ]
2037
- }
2038
- },
2039
- {
2040
- "files": [
2041
- "**/eslint.config.ts",
2042
- "**/eslint.config.js"
2043
- ],
2044
- "rules": {
2045
- "no-restricted-exports": "off"
2046
- }
2047
- },
2048
- {
2049
- "files": [
2050
- "**/*.ts",
2051
- "**/*.tsx",
2052
- "**/*.mts",
2053
- "**/*.cts"
2054
- ],
2055
- "rules": {
2056
- "constructor-super": "off",
2057
- "getter-return": "off",
2058
- "no-class-assign": "off",
2059
- "no-const-assign": "off",
2060
- "no-dupe-args": "off",
2061
- "no-dupe-class-members": "off",
2062
- "no-dupe-keys": "off",
2063
- "no-func-assign": "off",
2064
- "no-import-assign": "off",
2065
- "no-new-native-nonconstructor": "off",
2066
- "no-new-symbol": "off",
2067
- "no-obj-calls": "off",
2068
- "no-redeclare": "off",
2069
- "no-setter-return": "off",
2070
- "no-this-before-super": "off",
2071
- "no-undef": "off",
2072
- "no-unreachable": "off",
2073
- "no-unsafe-negation": "off",
2074
- "no-var": "error",
2075
- "no-with": "off",
2076
- "prefer-const": "error",
2077
- "prefer-rest-params": "error",
2078
- "prefer-spread": "error",
2079
- "no-array-constructor": "off",
2080
- "no-unused-expressions": "off",
2081
- "no-unused-vars": "off",
2082
- "@typescript-eslint/no-array-constructor": "error",
2083
- "@typescript-eslint/no-duplicate-enum-values": "error",
2084
- "@typescript-eslint/no-empty-object-type": "error",
2085
- "@typescript-eslint/no-extra-non-null-assertion": "error",
2086
- "@typescript-eslint/no-misused-new": "error",
2087
- "@typescript-eslint/no-namespace": "error",
2088
- "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
2089
- "@typescript-eslint/no-require-imports": "error",
2090
- "@typescript-eslint/no-this-alias": "error",
2091
- "@typescript-eslint/no-unnecessary-type-constraint": "error",
2092
- "@typescript-eslint/no-unsafe-declaration-merging": "error",
2093
- "@typescript-eslint/prefer-as-const": "error",
2094
- "@typescript-eslint/prefer-namespace-keyword": "error",
2095
- "@typescript-eslint/triple-slash-reference": "error",
2096
- "@typescript-eslint/explicit-function-return-type": 0,
2097
- "@typescript-eslint/no-use-before-define": 0,
2098
- "@typescript-eslint/no-empty-function": 0,
2099
- "@typescript-eslint/no-unused-vars": [
2100
- 2,
2101
- {
2102
- "varsIgnorePattern": "^_.*$",
2103
- "argsIgnorePattern": "^_.*$"
2104
- }
2105
- ],
2106
- "@typescript-eslint/no-explicit-any": "error",
2107
- "@typescript-eslint/array-type": "off",
2108
- "@typescript-eslint/ban-ts-comment": [
2109
- "error",
2110
- {
2111
- "ts-expect-error": "allow-with-description"
2112
- }
2113
- ],
2114
- "@typescript-eslint/no-wrapper-object-types": "error",
2115
- "@typescript-eslint/no-unsafe-function-type": "error",
2116
- "@typescript-eslint/no-restricted-types": [
2117
- "error",
2118
- {
2119
- "types": {
2120
- "String": {
2121
- "message": "Use 'string' instead",
2122
- "fixWith": "string"
2123
- },
2124
- "Number": {
2125
- "message": "Use 'number' instead",
2126
- "fixWith": "number"
2127
- },
2128
- "Boolean": {
2129
- "message": "Use 'boolean' instead",
2130
- "fixWith": "boolean"
2131
- },
2132
- "Symbol": {
2133
- "message": "Use 'symbol' instead",
2134
- "fixWith": "symbol"
2135
- }
2136
- }
2137
- }
2138
- ],
2139
- "@typescript-eslint/explicit-member-accessibility": "off",
2140
- "@typescript-eslint/interface-name-prefix": "off",
2141
- "@typescript-eslint/member-ordering": "off",
2142
- "@typescript-eslint/no-inferrable-types": "off",
2143
- "@typescript-eslint/no-non-null-assertion": "off",
2144
- "no-restricted-syntax": [
2145
- "error",
2146
- {
2147
- "selector": "MemberExpression[object.name='React']",
2148
- "message": "Do not use `React.*`. Use named imports instead."
2149
- },
2150
- {
2151
- "selector": "TSTypeReference[typeName.type='TSQualifiedName'][typeName.left.name='React']",
2152
- "message": "Do not use `React.*` types. Use named imports instead."
2153
- },
2154
- {
2155
- "selector": "ExportNamespaceSpecifier",
2156
- "message": "Usage of 'export * as …' is forbidden."
2157
- },
2158
- {
2159
- "selector": "ExportAllDeclaration",
2160
- "message": "Usage of `export * from` is forbidden."
2161
- },
2162
- {
2163
- "selector": "ImportDeclaration[source.value=/^(?!.*reference_workspace)\\./] ImportNamespaceSpecifier",
2164
- "message": "Do not use `import * as ...` from relative paths."
2165
- }
2166
- ],
2167
- "@typescript-eslint/consistent-type-imports": [
2168
- "error",
2169
- {
2170
- "prefer": "type-imports",
2171
- "fixStyle": "inline-type-imports"
2172
- }
2173
- ]
2174
- }
2175
- },
2176
- {
2177
- "files": [
2178
- "**/eslint.config.ts"
2179
- ],
2180
- "rules": {
2181
- "no-barrel-files/no-barrel-files": "off"
2182
- }
2183
- },
2184
- {
2185
- "files": [
2186
- "*.test.ts",
2187
- "*.test.tsx",
2188
- "*.spec.ts"
2189
- ],
2190
- "rules": {
2191
- "sonarjs/no-identical-functions": "off"
2192
- }
2193
- },
2194
- {
2195
- "files": [
2196
- "*"
2197
- ],
2198
- "env": {
2199
- "browser": true
2200
- }
2201
- },
2202
- {
2203
- "files": [
2204
- "*"
2205
- ],
2206
- "env": {
2207
- "mocha": true
2208
- },
2209
- "globals": {
2210
- "cy": "readonly",
2211
- "Cypress": "readonly",
2212
- "expect": "readonly",
2213
- "assert": "readonly",
2214
- "chai": "readonly"
2215
- }
2216
- }
2217
- ],
2218
- "settings": {},
2219
- "env": {},
2220
- "ignorePatterns": []
2221
- }