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