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