@gooddata/oxlint-config 11.27.0-alpha.3 → 11.27.0-alpha.5

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