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