@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,1451 +0,0 @@
1
- {
2
- "plugins": [
3
- "header",
4
- "no-barrel-files",
5
- "import-x",
6
- "no-only-tests",
7
- "sonarjs"
8
- ],
9
- "extends": [
10
- "eslint:recommended",
11
- "plugin:import-x/recommended",
12
- "plugin:regexp/recommended",
13
- "plugin:sonarjs/recommended-legacy",
14
- "plugin:prettier/recommended"
15
- ],
16
- "rules": {
17
- "no-console": [
18
- 2,
19
- {
20
- "allow": [
21
- "warn",
22
- "error"
23
- ]
24
- }
25
- ],
26
- "no-restricted-exports": [
27
- 2,
28
- {
29
- "restrictDefaultExports": {
30
- "direct": true,
31
- "named": true,
32
- "defaultFrom": true,
33
- "namedFrom": true,
34
- "namespaceFrom": true
35
- }
36
- }
37
- ],
38
- "no-duplicate-imports": [
39
- "error",
40
- {
41
- "includeExports": true
42
- }
43
- ],
44
- "no-restricted-imports": [
45
- "error",
46
- {
47
- "paths": [
48
- {
49
- "name": "react",
50
- "importNames": [
51
- "default"
52
- ],
53
- "message": "Default import from React is not allowed. Use named imports instead."
54
- },
55
- {
56
- "name": "@gooddata/sdk-ui-kit",
57
- "importNames": [
58
- "Icon"
59
- ],
60
- "message": "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead."
61
- },
62
- {
63
- "name": "vitest",
64
- "importNames": [
65
- "test"
66
- ],
67
- "message": "Use 'it' instead of 'test' for consistency."
68
- }
69
- ],
70
- "patterns": [
71
- {
72
- "group": [
73
- "lodash-es"
74
- ],
75
- "importNames": [
76
- "get",
77
- "getOr"
78
- ],
79
- "message": "Please use the ?. and ?? operators instead."
80
- },
81
- {
82
- "group": [
83
- "lodash-es"
84
- ],
85
- "importNames": [
86
- "keys"
87
- ],
88
- "message": "Please use Object.keys() instead."
89
- },
90
- {
91
- "group": [
92
- "lodash-es"
93
- ],
94
- "importNames": [
95
- "values"
96
- ],
97
- "message": "Please use Object.values() instead."
98
- },
99
- {
100
- "group": [
101
- "lodash-es"
102
- ],
103
- "importNames": [
104
- "entries",
105
- "toPairs"
106
- ],
107
- "message": "Please use Object.entries() instead."
108
- },
109
- {
110
- "group": [
111
- "lodash-es"
112
- ],
113
- "importNames": [
114
- "map"
115
- ],
116
- "message": "Please use Array.prototype.map() instead."
117
- },
118
- {
119
- "group": [
120
- "lodash-es"
121
- ],
122
- "importNames": [
123
- "flatMap"
124
- ],
125
- "message": "Please use Array.prototype.flatMap() instead."
126
- },
127
- {
128
- "group": [
129
- "lodash-es"
130
- ],
131
- "importNames": [
132
- "filter"
133
- ],
134
- "message": "Please use Array.prototype.filter() instead."
135
- },
136
- {
137
- "group": [
138
- "lodash-es"
139
- ],
140
- "importNames": [
141
- "find"
142
- ],
143
- "message": "Please use Array.prototype.find() instead."
144
- },
145
- {
146
- "group": [
147
- "lodash-es"
148
- ],
149
- "importNames": [
150
- "findIndex"
151
- ],
152
- "message": "Please use Array.prototype.findIndex() instead."
153
- },
154
- {
155
- "group": [
156
- "lodash-es"
157
- ],
158
- "importNames": [
159
- "includes"
160
- ],
161
- "message": "Please use Array.prototype.includes() instead."
162
- },
163
- {
164
- "group": [
165
- "lodash-es"
166
- ],
167
- "importNames": [
168
- "some"
169
- ],
170
- "message": "Please use Array.prototype.some() instead."
171
- },
172
- {
173
- "group": [
174
- "lodash-es"
175
- ],
176
- "importNames": [
177
- "every"
178
- ],
179
- "message": "Please use Array.prototype.every() instead."
180
- },
181
- {
182
- "group": [
183
- "lodash-es"
184
- ],
185
- "importNames": [
186
- "concat"
187
- ],
188
- "message": "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead."
189
- },
190
- {
191
- "group": [
192
- "lodash-es"
193
- ],
194
- "importNames": [
195
- "reverse"
196
- ],
197
- "message": "Please use Array.prototype.reverse() instead."
198
- },
199
- {
200
- "group": [
201
- "lodash-es"
202
- ],
203
- "importNames": [
204
- "slice"
205
- ],
206
- "message": "Please use Array.prototype.slice() instead."
207
- },
208
- {
209
- "group": [
210
- "lodash-es"
211
- ],
212
- "importNames": [
213
- "indexOf"
214
- ],
215
- "message": "Please use Array.prototype.indexOf() instead."
216
- },
217
- {
218
- "group": [
219
- "lodash-es"
220
- ],
221
- "importNames": [
222
- "lastIndexOf"
223
- ],
224
- "message": "Please use Array.prototype.lastIndexOf() instead."
225
- },
226
- {
227
- "group": [
228
- "lodash-es"
229
- ],
230
- "importNames": [
231
- "fill"
232
- ],
233
- "message": "Please use Array.prototype.fill() instead."
234
- },
235
- {
236
- "group": [
237
- "lodash-es"
238
- ],
239
- "importNames": [
240
- "startsWith"
241
- ],
242
- "message": "Please use String.prototype.startsWith() instead."
243
- },
244
- {
245
- "group": [
246
- "lodash-es"
247
- ],
248
- "importNames": [
249
- "endsWith"
250
- ],
251
- "message": "Please use String.prototype.endsWith() instead."
252
- },
253
- {
254
- "group": [
255
- "lodash-es"
256
- ],
257
- "importNames": [
258
- "repeat"
259
- ],
260
- "message": "Please use String.prototype.repeat() instead."
261
- },
262
- {
263
- "group": [
264
- "lodash-es"
265
- ],
266
- "importNames": [
267
- "padStart"
268
- ],
269
- "message": "Please use String.prototype.padStart() instead."
270
- },
271
- {
272
- "group": [
273
- "lodash-es"
274
- ],
275
- "importNames": [
276
- "padEnd"
277
- ],
278
- "message": "Please use String.prototype.padEnd() instead."
279
- },
280
- {
281
- "group": [
282
- "lodash-es"
283
- ],
284
- "importNames": [
285
- "trim"
286
- ],
287
- "message": "Please use String.prototype.trim() instead."
288
- },
289
- {
290
- "group": [
291
- "lodash-es"
292
- ],
293
- "importNames": [
294
- "trimStart",
295
- "trimLeft"
296
- ],
297
- "message": "Please use String.prototype.trimStart() instead."
298
- },
299
- {
300
- "group": [
301
- "lodash-es"
302
- ],
303
- "importNames": [
304
- "trimEnd",
305
- "trimRight"
306
- ],
307
- "message": "Please use String.prototype.trimEnd() instead."
308
- },
309
- {
310
- "group": [
311
- "lodash-es"
312
- ],
313
- "importNames": [
314
- "toUpper"
315
- ],
316
- "message": "Please use String.prototype.toUpperCase() instead."
317
- },
318
- {
319
- "group": [
320
- "lodash-es"
321
- ],
322
- "importNames": [
323
- "toLower"
324
- ],
325
- "message": "Please use String.prototype.toLowerCase() instead."
326
- },
327
- {
328
- "group": [
329
- "lodash-es"
330
- ],
331
- "importNames": [
332
- "isArray"
333
- ],
334
- "message": "Please use Array.isArray() instead."
335
- },
336
- {
337
- "group": [
338
- "lodash-es"
339
- ],
340
- "importNames": [
341
- "isNaN"
342
- ],
343
- "message": "Please use Number.isNaN() instead."
344
- },
345
- {
346
- "group": [
347
- "lodash-es"
348
- ],
349
- "importNames": [
350
- "isFinite"
351
- ],
352
- "message": "Please use Number.isFinite() instead."
353
- },
354
- {
355
- "group": [
356
- "lodash-es"
357
- ],
358
- "importNames": [
359
- "isInteger"
360
- ],
361
- "message": "Please use Number.isInteger() instead."
362
- },
363
- {
364
- "group": [
365
- "lodash-es"
366
- ],
367
- "importNames": [
368
- "isNull"
369
- ],
370
- "message": "Please use value === null instead."
371
- },
372
- {
373
- "group": [
374
- "lodash-es"
375
- ],
376
- "importNames": [
377
- "isUndefined"
378
- ],
379
- "message": "Please use value === undefined instead."
380
- },
381
- {
382
- "group": [
383
- "lodash-es"
384
- ],
385
- "importNames": [
386
- "defaultTo"
387
- ],
388
- "message": "Please use value ?? defaultValue instead."
389
- },
390
- {
391
- "group": [
392
- "lodash-es"
393
- ],
394
- "importNames": [
395
- "assign"
396
- ],
397
- "message": "Please use Object.assign() or spread syntax {...obj} instead."
398
- },
399
- {
400
- "group": [
401
- "lodash-es"
402
- ],
403
- "importNames": [
404
- "flatten"
405
- ],
406
- "message": "Please use Array.prototype.flat() instead."
407
- },
408
- {
409
- "group": [
410
- "lodash-es"
411
- ],
412
- "importNames": [
413
- "flattenDeep"
414
- ],
415
- "message": "Please use Array.prototype.flat(Infinity) instead."
416
- },
417
- {
418
- "group": [
419
- "lodash-es"
420
- ],
421
- "importNames": [
422
- "isNil"
423
- ],
424
- "message": "Please use value === null || value === undefined instead."
425
- },
426
- {
427
- "group": [
428
- "lodash-es"
429
- ],
430
- "importNames": [
431
- "noop"
432
- ],
433
- "message": "Please use () => {} instead."
434
- },
435
- {
436
- "group": [
437
- "lodash-es"
438
- ],
439
- "importNames": [
440
- "identity"
441
- ],
442
- "message": "Please use x => x instead."
443
- },
444
- {
445
- "group": [
446
- "lodash-es"
447
- ],
448
- "importNames": [
449
- "first",
450
- "head"
451
- ],
452
- "message": "Please use Array.prototype.at(0) instead."
453
- },
454
- {
455
- "group": [
456
- "lodash-es"
457
- ],
458
- "importNames": [
459
- "last"
460
- ],
461
- "message": "Please use Array.prototype.at(-1) instead."
462
- },
463
- {
464
- "group": [
465
- "lodash-es"
466
- ],
467
- "importNames": [
468
- "forEach"
469
- ],
470
- "message": "Please use Array.prototype.forEach() instead."
471
- },
472
- {
473
- "group": [
474
- "lodash-es"
475
- ],
476
- "importNames": [
477
- "fromPairs"
478
- ],
479
- "message": "Please use Object.fromEntries() instead."
480
- },
481
- {
482
- "group": [
483
- "lodash-es"
484
- ],
485
- "importNames": [
486
- "join"
487
- ],
488
- "message": "Please use Array.prototype.join() instead."
489
- },
490
- {
491
- "group": [
492
- "lodash-es"
493
- ],
494
- "importNames": [
495
- "isDate"
496
- ],
497
- "message": "Please use val instanceof Date instead."
498
- },
499
- {
500
- "group": [
501
- "lodash-es"
502
- ],
503
- "importNames": [
504
- "isFunction"
505
- ],
506
- "message": "Please use typeof val === 'function' instead."
507
- },
508
- {
509
- "group": [
510
- "lodash-es"
511
- ],
512
- "importNames": [
513
- "isNumber"
514
- ],
515
- "message": "Please use typeof val === 'number' instead."
516
- },
517
- {
518
- "group": [
519
- "lodash-es"
520
- ],
521
- "importNames": [
522
- "isObject"
523
- ],
524
- "message": "Please use val !== null && typeof val === 'object' instead."
525
- },
526
- {
527
- "group": [
528
- "lodash-es"
529
- ],
530
- "importNames": [
531
- "isString"
532
- ],
533
- "message": "Please use typeof val === 'string' instead."
534
- },
535
- {
536
- "group": [
537
- "lodash-es"
538
- ],
539
- "importNames": [
540
- "toString"
541
- ],
542
- "message": "Please use String(val) instead."
543
- },
544
- {
545
- "group": [
546
- "lodash-es"
547
- ],
548
- "importNames": [
549
- "flow",
550
- "flowRight"
551
- ],
552
- "message": "Please use refactoring your code instead."
553
- }
554
- ]
555
- }
556
- ],
557
- "no-restricted-syntax": [
558
- "error",
559
- {
560
- "selector": "MemberExpression[object.name='React']",
561
- "message": "Do not use `React.*`. Use named imports instead."
562
- }
563
- ],
564
- "sort-imports": [
565
- "error",
566
- {
567
- "ignoreCase": false,
568
- "ignoreDeclarationSort": true,
569
- "ignoreMemberSort": false
570
- }
571
- ],
572
- "no-useless-escape": "off",
573
- "no-negated-condition": "error",
574
- "no-unneeded-ternary": [
575
- "error",
576
- {
577
- "defaultAssignment": false
578
- }
579
- ],
580
- "no-extra-boolean-cast": "error",
581
- "no-unexpected-multiline": "off",
582
- "no-warning-comments": [
583
- "warn",
584
- {
585
- "terms": [
586
- "todo"
587
- ],
588
- "location": "start"
589
- }
590
- ],
591
- "header/header": [
592
- 2,
593
- "line",
594
- {
595
- "pattern": "^ \\(C\\) \\d{4}(-\\d{4})? GoodData Corporation$",
596
- "template": " (C) 2026 GoodData Corporation"
597
- }
598
- ],
599
- "no-barrel-files/no-barrel-files": "error",
600
- "import-x/order": [
601
- "error",
602
- {
603
- "pathGroups": [
604
- {
605
- "pattern": "react",
606
- "group": "external",
607
- "position": "before"
608
- },
609
- {
610
- "pattern": "@gooddata/**",
611
- "group": "external",
612
- "position": "after"
613
- }
614
- ],
615
- "groups": [
616
- "builtin",
617
- "external",
618
- "internal",
619
- [
620
- "parent",
621
- "sibling",
622
- "index"
623
- ]
624
- ],
625
- "pathGroupsExcludedImportTypes": [
626
- "react"
627
- ],
628
- "alphabetize": {
629
- "order": "asc",
630
- "caseInsensitive": true
631
- },
632
- "newlines-between": "always"
633
- }
634
- ],
635
- "import-x/no-unassigned-import": "error",
636
- "no-only-tests/no-only-tests": [
637
- "error",
638
- {
639
- "block": [
640
- "fixture"
641
- ],
642
- "focus": [
643
- "only"
644
- ]
645
- }
646
- ],
647
- "regexp/prefer-d": "off",
648
- "regexp/prefer-w": "off",
649
- "sonarjs/no-duplicate-string": "off",
650
- "sonarjs/cognitive-complexity": "warn",
651
- "sonarjs/todo-tag": "warn",
652
- "sonarjs/no-hardcoded-passwords": "off",
653
- "sonarjs/no-alphabetical-sort": "off",
654
- "sonarjs/no-os-command-from-path": "off",
655
- "sonarjs/os-command": "off",
656
- "sonarjs/prefer-regexp-exec": "off",
657
- "sonarjs/no-clear-text-protocols": "off",
658
- "sonarjs/deprecation": "off",
659
- "sonarjs/no-nested-conditional": "off",
660
- "sonarjs/no-ignored-exceptions": "off",
661
- "sonarjs/slow-regex": "off",
662
- "sonarjs/prefer-read-only-props": "off",
663
- "sonarjs/no-skipped-tests": "off",
664
- "sonarjs/no-commented-code": "off",
665
- "sonarjs/no-ignored-return": "off",
666
- "sonarjs/array-callback-without-return": "off",
667
- "sonarjs/pseudo-random": "off",
668
- "sonarjs/no-nested-functions": "off",
669
- "sonarjs/no-async-constructor": "off",
670
- "sonarjs/assertions-in-tests": "off",
671
- "sonarjs/function-return-type": "off",
672
- "sonarjs/no-unused-vars": "off",
673
- "sonarjs/no-invariant-returns": "off",
674
- "sonarjs/different-types-comparison": "off",
675
- "sonarjs/no-selector-parameter": "off",
676
- "sonarjs/anchor-precedence": "off",
677
- "sonarjs/redundant-type-aliases": "off",
678
- "sonarjs/no-redundant-optional": "off",
679
- "sonarjs/reduce-initial-value": "off",
680
- "sonarjs/no-globals-shadowing": "off",
681
- "sonarjs/use-type-alias": "off",
682
- "sonarjs/void-use": "off",
683
- "sonarjs/no-undefined-argument": "off",
684
- "sonarjs/no-useless-react-setstate": "off",
685
- "sonarjs/no-inverted-boolean-check": "off",
686
- "sonarjs/concise-regex": "off",
687
- "sonarjs/no-dead-store": "off",
688
- "sonarjs/public-static-readonly": "off",
689
- "sonarjs/code-eval": "off",
690
- "sonarjs/no-misleading-array-reverse": "off",
691
- "sonarjs/fixme-tag": "off",
692
- "sonarjs/argument-type": "off",
693
- "sonarjs/constructor-for-side-effects": "off",
694
- "sonarjs/no-useless-intersection": "off",
695
- "sonarjs/no-empty-test-file": "off",
696
- "sonarjs/prefer-default-last": "off",
697
- "sonarjs/prefer-promise-shorthand": "off",
698
- "sonarjs/no-unsafe-unzip": "off",
699
- "sonarjs/no-nested-assignment": "off",
700
- "sonarjs/generator-without-yield": "off",
701
- "sonarjs/no-try-promise": "off",
702
- "sonarjs/single-character-alternation": "off",
703
- "sonarjs/class-name": "off",
704
- "sonarjs/no-hardcoded-secrets": "off",
705
- "sonarjs/regex-complexity": "off",
706
- "sonarjs/post-message": "off",
707
- "sonarjs/link-with-target-blank": "off",
708
- "sonarjs/duplicates-in-character-class": "off",
709
- "sonarjs/arguments-order": "off",
710
- "sonarjs/empty-string-repetition": "off",
711
- "sonarjs/table-header": "off",
712
- "sonarjs/no-implicit-global": "off",
713
- "sonarjs/no-control-regex": "off",
714
- "no-caller": 2,
715
- "no-eval": 2,
716
- "no-delete-var": 2,
717
- "no-octal-escape": 2
718
- },
719
- "overrides": [
720
- {
721
- "files": [
722
- "**/*.ts",
723
- "**/*.tsx"
724
- ],
725
- "excludedFiles": [
726
- "**/vitest.config.ts",
727
- "**/vitest.*.config.ts",
728
- "**/vitest.setup.ts",
729
- "**/vitest.setup.tsx",
730
- "**/*.test.ts",
731
- "**/*.test.tsx",
732
- "**/*.test.utils.ts",
733
- "**/*.test.utils.tsx",
734
- "**/*.test.helpers.ts",
735
- "**/*.test.helpers.tsx"
736
- ],
737
- "rules": {
738
- "no-restricted-imports": [
739
- "error",
740
- {
741
- "paths": [
742
- {
743
- "name": "react",
744
- "importNames": [
745
- "default"
746
- ],
747
- "message": "Default import from React is not allowed. Use named imports instead."
748
- },
749
- {
750
- "name": "@gooddata/sdk-ui-kit",
751
- "importNames": [
752
- "Icon"
753
- ],
754
- "message": "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead."
755
- },
756
- {
757
- "name": "vitest",
758
- "importNames": [
759
- "test"
760
- ],
761
- "message": "Use 'it' instead of 'test' for consistency."
762
- }
763
- ],
764
- "patterns": [
765
- {
766
- "group": [
767
- "lodash-es"
768
- ],
769
- "importNames": [
770
- "get",
771
- "getOr"
772
- ],
773
- "message": "Please use the ?. and ?? operators instead."
774
- },
775
- {
776
- "group": [
777
- "lodash-es"
778
- ],
779
- "importNames": [
780
- "keys"
781
- ],
782
- "message": "Please use Object.keys() instead."
783
- },
784
- {
785
- "group": [
786
- "lodash-es"
787
- ],
788
- "importNames": [
789
- "values"
790
- ],
791
- "message": "Please use Object.values() instead."
792
- },
793
- {
794
- "group": [
795
- "lodash-es"
796
- ],
797
- "importNames": [
798
- "entries",
799
- "toPairs"
800
- ],
801
- "message": "Please use Object.entries() instead."
802
- },
803
- {
804
- "group": [
805
- "lodash-es"
806
- ],
807
- "importNames": [
808
- "map"
809
- ],
810
- "message": "Please use Array.prototype.map() instead."
811
- },
812
- {
813
- "group": [
814
- "lodash-es"
815
- ],
816
- "importNames": [
817
- "flatMap"
818
- ],
819
- "message": "Please use Array.prototype.flatMap() instead."
820
- },
821
- {
822
- "group": [
823
- "lodash-es"
824
- ],
825
- "importNames": [
826
- "filter"
827
- ],
828
- "message": "Please use Array.prototype.filter() instead."
829
- },
830
- {
831
- "group": [
832
- "lodash-es"
833
- ],
834
- "importNames": [
835
- "find"
836
- ],
837
- "message": "Please use Array.prototype.find() instead."
838
- },
839
- {
840
- "group": [
841
- "lodash-es"
842
- ],
843
- "importNames": [
844
- "findIndex"
845
- ],
846
- "message": "Please use Array.prototype.findIndex() instead."
847
- },
848
- {
849
- "group": [
850
- "lodash-es"
851
- ],
852
- "importNames": [
853
- "includes"
854
- ],
855
- "message": "Please use Array.prototype.includes() instead."
856
- },
857
- {
858
- "group": [
859
- "lodash-es"
860
- ],
861
- "importNames": [
862
- "some"
863
- ],
864
- "message": "Please use Array.prototype.some() instead."
865
- },
866
- {
867
- "group": [
868
- "lodash-es"
869
- ],
870
- "importNames": [
871
- "every"
872
- ],
873
- "message": "Please use Array.prototype.every() instead."
874
- },
875
- {
876
- "group": [
877
- "lodash-es"
878
- ],
879
- "importNames": [
880
- "concat"
881
- ],
882
- "message": "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead."
883
- },
884
- {
885
- "group": [
886
- "lodash-es"
887
- ],
888
- "importNames": [
889
- "reverse"
890
- ],
891
- "message": "Please use Array.prototype.reverse() instead."
892
- },
893
- {
894
- "group": [
895
- "lodash-es"
896
- ],
897
- "importNames": [
898
- "slice"
899
- ],
900
- "message": "Please use Array.prototype.slice() instead."
901
- },
902
- {
903
- "group": [
904
- "lodash-es"
905
- ],
906
- "importNames": [
907
- "indexOf"
908
- ],
909
- "message": "Please use Array.prototype.indexOf() instead."
910
- },
911
- {
912
- "group": [
913
- "lodash-es"
914
- ],
915
- "importNames": [
916
- "lastIndexOf"
917
- ],
918
- "message": "Please use Array.prototype.lastIndexOf() instead."
919
- },
920
- {
921
- "group": [
922
- "lodash-es"
923
- ],
924
- "importNames": [
925
- "fill"
926
- ],
927
- "message": "Please use Array.prototype.fill() instead."
928
- },
929
- {
930
- "group": [
931
- "lodash-es"
932
- ],
933
- "importNames": [
934
- "startsWith"
935
- ],
936
- "message": "Please use String.prototype.startsWith() instead."
937
- },
938
- {
939
- "group": [
940
- "lodash-es"
941
- ],
942
- "importNames": [
943
- "endsWith"
944
- ],
945
- "message": "Please use String.prototype.endsWith() instead."
946
- },
947
- {
948
- "group": [
949
- "lodash-es"
950
- ],
951
- "importNames": [
952
- "repeat"
953
- ],
954
- "message": "Please use String.prototype.repeat() instead."
955
- },
956
- {
957
- "group": [
958
- "lodash-es"
959
- ],
960
- "importNames": [
961
- "padStart"
962
- ],
963
- "message": "Please use String.prototype.padStart() instead."
964
- },
965
- {
966
- "group": [
967
- "lodash-es"
968
- ],
969
- "importNames": [
970
- "padEnd"
971
- ],
972
- "message": "Please use String.prototype.padEnd() instead."
973
- },
974
- {
975
- "group": [
976
- "lodash-es"
977
- ],
978
- "importNames": [
979
- "trim"
980
- ],
981
- "message": "Please use String.prototype.trim() instead."
982
- },
983
- {
984
- "group": [
985
- "lodash-es"
986
- ],
987
- "importNames": [
988
- "trimStart",
989
- "trimLeft"
990
- ],
991
- "message": "Please use String.prototype.trimStart() instead."
992
- },
993
- {
994
- "group": [
995
- "lodash-es"
996
- ],
997
- "importNames": [
998
- "trimEnd",
999
- "trimRight"
1000
- ],
1001
- "message": "Please use String.prototype.trimEnd() instead."
1002
- },
1003
- {
1004
- "group": [
1005
- "lodash-es"
1006
- ],
1007
- "importNames": [
1008
- "toUpper"
1009
- ],
1010
- "message": "Please use String.prototype.toUpperCase() instead."
1011
- },
1012
- {
1013
- "group": [
1014
- "lodash-es"
1015
- ],
1016
- "importNames": [
1017
- "toLower"
1018
- ],
1019
- "message": "Please use String.prototype.toLowerCase() instead."
1020
- },
1021
- {
1022
- "group": [
1023
- "lodash-es"
1024
- ],
1025
- "importNames": [
1026
- "isArray"
1027
- ],
1028
- "message": "Please use Array.isArray() instead."
1029
- },
1030
- {
1031
- "group": [
1032
- "lodash-es"
1033
- ],
1034
- "importNames": [
1035
- "isNaN"
1036
- ],
1037
- "message": "Please use Number.isNaN() instead."
1038
- },
1039
- {
1040
- "group": [
1041
- "lodash-es"
1042
- ],
1043
- "importNames": [
1044
- "isFinite"
1045
- ],
1046
- "message": "Please use Number.isFinite() instead."
1047
- },
1048
- {
1049
- "group": [
1050
- "lodash-es"
1051
- ],
1052
- "importNames": [
1053
- "isInteger"
1054
- ],
1055
- "message": "Please use Number.isInteger() instead."
1056
- },
1057
- {
1058
- "group": [
1059
- "lodash-es"
1060
- ],
1061
- "importNames": [
1062
- "isNull"
1063
- ],
1064
- "message": "Please use value === null instead."
1065
- },
1066
- {
1067
- "group": [
1068
- "lodash-es"
1069
- ],
1070
- "importNames": [
1071
- "isUndefined"
1072
- ],
1073
- "message": "Please use value === undefined instead."
1074
- },
1075
- {
1076
- "group": [
1077
- "lodash-es"
1078
- ],
1079
- "importNames": [
1080
- "defaultTo"
1081
- ],
1082
- "message": "Please use value ?? defaultValue instead."
1083
- },
1084
- {
1085
- "group": [
1086
- "lodash-es"
1087
- ],
1088
- "importNames": [
1089
- "assign"
1090
- ],
1091
- "message": "Please use Object.assign() or spread syntax {...obj} instead."
1092
- },
1093
- {
1094
- "group": [
1095
- "lodash-es"
1096
- ],
1097
- "importNames": [
1098
- "flatten"
1099
- ],
1100
- "message": "Please use Array.prototype.flat() instead."
1101
- },
1102
- {
1103
- "group": [
1104
- "lodash-es"
1105
- ],
1106
- "importNames": [
1107
- "flattenDeep"
1108
- ],
1109
- "message": "Please use Array.prototype.flat(Infinity) instead."
1110
- },
1111
- {
1112
- "group": [
1113
- "lodash-es"
1114
- ],
1115
- "importNames": [
1116
- "isNil"
1117
- ],
1118
- "message": "Please use value === null || value === undefined instead."
1119
- },
1120
- {
1121
- "group": [
1122
- "lodash-es"
1123
- ],
1124
- "importNames": [
1125
- "noop"
1126
- ],
1127
- "message": "Please use () => {} instead."
1128
- },
1129
- {
1130
- "group": [
1131
- "lodash-es"
1132
- ],
1133
- "importNames": [
1134
- "identity"
1135
- ],
1136
- "message": "Please use x => x instead."
1137
- },
1138
- {
1139
- "group": [
1140
- "lodash-es"
1141
- ],
1142
- "importNames": [
1143
- "first",
1144
- "head"
1145
- ],
1146
- "message": "Please use Array.prototype.at(0) instead."
1147
- },
1148
- {
1149
- "group": [
1150
- "lodash-es"
1151
- ],
1152
- "importNames": [
1153
- "last"
1154
- ],
1155
- "message": "Please use Array.prototype.at(-1) instead."
1156
- },
1157
- {
1158
- "group": [
1159
- "lodash-es"
1160
- ],
1161
- "importNames": [
1162
- "forEach"
1163
- ],
1164
- "message": "Please use Array.prototype.forEach() instead."
1165
- },
1166
- {
1167
- "group": [
1168
- "lodash-es"
1169
- ],
1170
- "importNames": [
1171
- "fromPairs"
1172
- ],
1173
- "message": "Please use Object.fromEntries() instead."
1174
- },
1175
- {
1176
- "group": [
1177
- "lodash-es"
1178
- ],
1179
- "importNames": [
1180
- "join"
1181
- ],
1182
- "message": "Please use Array.prototype.join() instead."
1183
- },
1184
- {
1185
- "group": [
1186
- "lodash-es"
1187
- ],
1188
- "importNames": [
1189
- "isDate"
1190
- ],
1191
- "message": "Please use val instanceof Date instead."
1192
- },
1193
- {
1194
- "group": [
1195
- "lodash-es"
1196
- ],
1197
- "importNames": [
1198
- "isFunction"
1199
- ],
1200
- "message": "Please use typeof val === 'function' instead."
1201
- },
1202
- {
1203
- "group": [
1204
- "lodash-es"
1205
- ],
1206
- "importNames": [
1207
- "isNumber"
1208
- ],
1209
- "message": "Please use typeof val === 'number' instead."
1210
- },
1211
- {
1212
- "group": [
1213
- "lodash-es"
1214
- ],
1215
- "importNames": [
1216
- "isObject"
1217
- ],
1218
- "message": "Please use val !== null && typeof val === 'object' instead."
1219
- },
1220
- {
1221
- "group": [
1222
- "lodash-es"
1223
- ],
1224
- "importNames": [
1225
- "isString"
1226
- ],
1227
- "message": "Please use typeof val === 'string' instead."
1228
- },
1229
- {
1230
- "group": [
1231
- "lodash-es"
1232
- ],
1233
- "importNames": [
1234
- "toString"
1235
- ],
1236
- "message": "Please use String(val) instead."
1237
- },
1238
- {
1239
- "group": [
1240
- "lodash-es"
1241
- ],
1242
- "importNames": [
1243
- "flow",
1244
- "flowRight"
1245
- ],
1246
- "message": "Please use refactoring your code instead."
1247
- },
1248
- {
1249
- "group": [
1250
- "vitest"
1251
- ],
1252
- "message": "Importing from vitest is only allowed in test files."
1253
- }
1254
- ]
1255
- }
1256
- ]
1257
- }
1258
- },
1259
- {
1260
- "files": [
1261
- "**/eslint.config.ts",
1262
- "**/eslint.config.js"
1263
- ],
1264
- "rules": {
1265
- "no-restricted-exports": "off"
1266
- }
1267
- },
1268
- {
1269
- "parser": "@typescript-eslint/parser",
1270
- "files": [
1271
- "**/*.ts",
1272
- "**/*.tsx"
1273
- ],
1274
- "extends": [
1275
- "plugin:@typescript-eslint/recommended-type-checked"
1276
- ],
1277
- "parserOptions": {
1278
- "ecmaVersion": 2022,
1279
- "sourceType": "module"
1280
- },
1281
- "rules": {
1282
- "@typescript-eslint/explicit-function-return-type": 0,
1283
- "@typescript-eslint/no-use-before-define": 0,
1284
- "@typescript-eslint/no-empty-function": 0,
1285
- "@typescript-eslint/naming-convention": [
1286
- "error",
1287
- {
1288
- "selector": "interface",
1289
- "format": [
1290
- "PascalCase"
1291
- ],
1292
- "custom": {
1293
- "regex": "^I[A-Z]",
1294
- "match": true
1295
- }
1296
- }
1297
- ],
1298
- "@typescript-eslint/no-unused-vars": [
1299
- 2,
1300
- {
1301
- "varsIgnorePattern": "^_.*$",
1302
- "argsIgnorePattern": "^_.*$"
1303
- }
1304
- ],
1305
- "@typescript-eslint/no-explicit-any": "error",
1306
- "@typescript-eslint/array-type": "off",
1307
- "@typescript-eslint/ban-ts-comment": [
1308
- "error",
1309
- {
1310
- "ts-expect-error": "allow-with-description"
1311
- }
1312
- ],
1313
- "@typescript-eslint/no-wrapper-object-types": "error",
1314
- "@typescript-eslint/no-unsafe-function-type": "error",
1315
- "@typescript-eslint/no-restricted-types": [
1316
- "error",
1317
- {
1318
- "types": {
1319
- "String": {
1320
- "message": "Use 'string' instead",
1321
- "fixWith": "string"
1322
- },
1323
- "Number": {
1324
- "message": "Use 'number' instead",
1325
- "fixWith": "number"
1326
- },
1327
- "Boolean": {
1328
- "message": "Use 'boolean' instead",
1329
- "fixWith": "boolean"
1330
- },
1331
- "Symbol": {
1332
- "message": "Use 'symbol' instead",
1333
- "fixWith": "symbol"
1334
- }
1335
- }
1336
- }
1337
- ],
1338
- "@typescript-eslint/consistent-type-exports": [
1339
- "error",
1340
- {
1341
- "fixMixedExportsWithInlineTypeSpecifier": false
1342
- }
1343
- ],
1344
- "@typescript-eslint/explicit-member-accessibility": "off",
1345
- "@typescript-eslint/interface-name-prefix": "off",
1346
- "@typescript-eslint/member-ordering": "off",
1347
- "@typescript-eslint/no-inferrable-types": "off",
1348
- "@typescript-eslint/no-non-null-assertion": "off",
1349
- "@typescript-eslint/prefer-optional-chain": "error",
1350
- "no-restricted-syntax": [
1351
- "error",
1352
- {
1353
- "selector": "MemberExpression[object.name='React']",
1354
- "message": "Do not use `React.*`. Use named imports instead."
1355
- },
1356
- {
1357
- "selector": "TSTypeReference[typeName.type='TSQualifiedName'][typeName.left.name='React']",
1358
- "message": "Do not use `React.*` types. Use named imports instead."
1359
- },
1360
- {
1361
- "selector": "ExportNamespaceSpecifier",
1362
- "message": "Usage of 'export * as …' is forbidden."
1363
- },
1364
- {
1365
- "selector": "ExportAllDeclaration",
1366
- "message": "Usage of `export * from` is forbidden."
1367
- },
1368
- {
1369
- "selector": "ImportDeclaration[source.value=/^(?!.*reference_workspace)\\./] ImportNamespaceSpecifier",
1370
- "message": "Do not use `import * as ...` from relative paths."
1371
- }
1372
- ],
1373
- "@typescript-eslint/consistent-type-imports": [
1374
- "error",
1375
- {
1376
- "prefer": "type-imports",
1377
- "fixStyle": "inline-type-imports"
1378
- }
1379
- ]
1380
- }
1381
- },
1382
- {
1383
- "parser": "@typescript-eslint/parser",
1384
- "files": [
1385
- "**/*.ts",
1386
- "**/*.tsx"
1387
- ],
1388
- "extends": [
1389
- "plugin:import-x/typescript"
1390
- ]
1391
- },
1392
- {
1393
- "files": [
1394
- "**/*.{js,cjs,mjs,jsx}"
1395
- ],
1396
- "plugins": [
1397
- "jsdoc"
1398
- ],
1399
- "settings": {
1400
- "jsdoc": {
1401
- "mode": "jsdoc"
1402
- }
1403
- },
1404
- "rules": {
1405
- "jsdoc/require-param": "error"
1406
- }
1407
- },
1408
- {
1409
- "files": [
1410
- "*.test.ts",
1411
- "*.test.tsx",
1412
- "*.spec.ts"
1413
- ],
1414
- "rules": {
1415
- "sonarjs/no-identical-functions": "off"
1416
- }
1417
- }
1418
- ],
1419
- "settings": {
1420
- "import-x/resolver": {
1421
- "typescript": {
1422
- "alwaysTryTypes": true
1423
- },
1424
- "node": {
1425
- "extensions": [
1426
- ".ts",
1427
- ".tsx",
1428
- ".js",
1429
- ".jsx",
1430
- ".mjs",
1431
- ".cjs"
1432
- ]
1433
- }
1434
- }
1435
- },
1436
- "env": {
1437
- "node": true,
1438
- "es2022": true
1439
- },
1440
- "ignorePatterns": [
1441
- "**/dist/**/*.*",
1442
- "**/esm/**/*.*",
1443
- "**/node_modules/**/*.*",
1444
- "**/ci/results/**",
1445
- "**/__version.ts",
1446
- "**/cypress/results/**",
1447
- "**/cypress/screenshots/**",
1448
- "**/cypress/videos/**",
1449
- "**/temp/**"
1450
- ]
1451
- }