-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy patheslintrc.js
1036 lines (1035 loc) · 42.2 KB
/
eslintrc.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import {restrictedGlobals, restrictedWorkerGlobals} from "./globals.js";
export default {
"root": true,
"reportUnusedDisableDirectives": true,
"plugins": [
"@eslint-community/eslint-plugin-eslint-comments",
"@stylistic/eslint-plugin-js",
"@typescript-eslint/eslint-plugin",
"eslint-plugin-array-func",
// "eslint-plugin-github", // causes peerDependency error with eslint 8 - https://github.com/github/eslint-plugin-github/issues/585
"eslint-plugin-import",
"eslint-plugin-no-use-extend-native",
"eslint-plugin-react",
"eslint-plugin-react-hooks",
"eslint-plugin-react-refresh",
"eslint-plugin-regexp",
"eslint-plugin-sonarjs",
"eslint-plugin-unicorn",
"eslint-plugin-vitest",
"eslint-plugin-vitest-globals",
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"sourceType": "module",
"ecmaVersion": "latest",
"project": true,
"extraFileExtensions": [".html", ".vue", ".md", ".mdx"],
},
"env": {
"browser": true,
"es2024": true,
"node": true,
},
"settings": {
"import/extensions": [".js", ".jsx", ".ts", ".tsx"],
"import/parsers": {
"@typescript-eslint/parser": [".js", ".jsx", ".ts", ".tsx"],
},
"import/resolver": "typescript",
"react": { // used by eslint-plugin-react
version: "19",
},
"linkComponents": [ // used by eslint-plugin-react
{name: "Link", linkAttribute: "href"},
],
},
"ignorePatterns": [
"**/.git/**",
"**/.venv/**",
"**/dist/**",
"**/node_modules/**",
"**/persistent/**",
"**/build/**",
"**/vendor/**",
"**/*.snap",
"!.storybook",
],
"overrides": [
{
files: ["**/*.d.ts"],
rules: {
"@typescript-eslint/consistent-type-definitions": [0],
"@typescript-eslint/consistent-type-imports": [0],
"@typescript-eslint/no-unused-vars": [0],
"no-undef": [0],
"no-var": [0],
}
},
{
"files": ["**/*.worker.*"],
"env": {
"worker": true,
},
"rules": {
"no-restricted-globals": [2, ...restrictedWorkerGlobals],
},
},
{
"files": [
"**/*.test.*",
"vitest.setup.*",
"integration/**",
],
"env": {
"vitest-globals/env": true,
},
"rules": {
"unicorn/consistent-function-scoping": [0],
"vitest/consistent-test-filename": [0],
"vitest/consistent-test-it": [0],
"vitest/expect-expect": [0],
"vitest/max-expects": [0],
"vitest/max-nested-describe": [0],
"vitest/no-alias-methods": [0],
"vitest/no-commented-out-tests": [0],
"vitest/no-conditional-expect": [0],
"vitest/no-conditional-in-test": [0],
"vitest/no-conditional-tests": [0],
"vitest/no-disabled-tests": [0],
"vitest/no-done-callback": [0],
"vitest/no-duplicate-hooks": [0],
"vitest/no-focused-tests": [0],
"vitest/no-hooks": [0],
"vitest/no-identical-title": [2],
"vitest/no-interpolation-in-snapshots": [0],
"vitest/no-large-snapshots": [0],
"vitest/no-mocks-import": [0],
"vitest/no-restricted-matchers": [0],
"vitest/no-restricted-vi-methods": [0],
"vitest/no-standalone-expect": [0],
"vitest/no-test-prefixes": [0],
"vitest/no-test-return-statement": [0],
"vitest/prefer-called-with": [0],
"vitest/prefer-comparison-matcher": [0],
"vitest/prefer-each": [0],
"vitest/prefer-equality-matcher": [0],
"vitest/prefer-expect-resolves": [0],
"vitest/prefer-hooks-in-order": [0],
"vitest/prefer-hooks-on-top": [2],
"vitest/prefer-lowercase-title": [0],
"vitest/prefer-mock-promise-shorthand": [0],
"vitest/prefer-snapshot-hint": [0],
"vitest/prefer-spy-on": [0],
"vitest/prefer-strict-equal": [0],
"vitest/prefer-to-be": [0],
"vitest/prefer-to-be-falsy": [0],
"vitest/prefer-to-be-object": [0],
"vitest/prefer-to-be-truthy": [0],
"vitest/prefer-to-contain": [0],
"vitest/prefer-to-have-length": [0],
"vitest/prefer-todo": [0],
"vitest/require-hook": [0],
"vitest/require-to-throw-message": [0],
"vitest/require-top-level-describe": [0],
"vitest/valid-describe-callback": [2],
"vitest/valid-expect": [2],
"vitest/valid-title": [2],
},
},
{
"files": [
"**/*.config.*",
"**/*.stories.*",
"**/.storybook/**",
"**/*.d.ts",
"vitest.global.*",
],
"rules": {
"import/no-unused-modules": [0],
},
},
{
"files": ["tests/**"],
"plugins": ["eslint-plugin-playwright"],
"extends": "plugin:playwright/recommended",
"rules": {
"playwright/expect-expect": [0],
},
},
{
"files": ["**/*.stories.*"],
"plugins": ["eslint-plugin-storybook"],
"rules": {
"storybook/await-interactions": [2],
"storybook/context-in-play-function": [2],
"storybook/default-exports": [2],
"storybook/hierarchy-separator": [2],
"storybook/no-redundant-story-name": [2],
"storybook/prefer-pascal-case": [2],
"storybook/story-exports": [2],
"storybook/use-storybook-expect": [2],
"storybook/use-storybook-testing-library": [2],
}
},
{
"files": ["**/*.jsx", "**/*.tsx"],
"plugins": [
"@stylistic/eslint-plugin-jsx",
"eslint-plugin-jsx-a11y",
"eslint-plugin-validate-jsx-nesting",
],
rules: {
"@stylistic/jsx/jsx-child-element-spacing": [0],
"@stylistic/jsx/jsx-closing-bracket-location": [0],
"@stylistic/jsx/jsx-closing-tag-location": [2],
"@stylistic/jsx/jsx-curly-brace-presence": [0],
"@stylistic/jsx/jsx-curly-newline": [2, "consistent"],
"@stylistic/jsx/jsx-curly-spacing": [2, {when: "never"}],
"@stylistic/jsx/jsx-equals-spacing": [2, "never"],
"@stylistic/jsx/jsx-first-prop-new-line": [0],
"@stylistic/jsx/jsx-function-call-newline": [0],
"@stylistic/jsx/jsx-indent-props": [2, 2],
"@stylistic/jsx/jsx-max-props-per-line": [0],
"@stylistic/jsx/jsx-newline": [0],
"@stylistic/jsx/jsx-one-expression-per-line": [0],
"@stylistic/jsx/jsx-pascal-case": [2, {allowAllCaps: true}],
"@stylistic/jsx/jsx-props-no-multi-spaces": [2],
"@stylistic/jsx/jsx-self-closing-comp": [2],
"@stylistic/jsx/jsx-sort-props": [0],
"@stylistic/jsx/jsx-tag-spacing": [2, {beforeSelfClosing: "never", beforeClosing: "never"}],
"@stylistic/jsx/jsx-wrap-multilines": [2],
"jsx-a11y/accessible-emoji": [0],
"jsx-a11y/alt-text": [0],
"jsx-a11y/anchor-ambiguous-text": [2],
"jsx-a11y/anchor-has-content": [2],
"jsx-a11y/anchor-is-valid": [2],
"jsx-a11y/aria-activedescendant-has-tabindex": [2],
"jsx-a11y/aria-props": [2],
"jsx-a11y/aria-proptypes": [2],
"jsx-a11y/aria-role": [2],
"jsx-a11y/aria-unsupported-elements": [2],
"jsx-a11y/autocomplete-valid": [2],
"jsx-a11y/click-events-have-key-events": [0],
"jsx-a11y/control-has-associated-label": [0],
"jsx-a11y/heading-has-content": [2],
"jsx-a11y/html-has-lang": [0],
"jsx-a11y/iframe-has-title": [0],
"jsx-a11y/img-redundant-alt": [0],
"jsx-a11y/interactive-supports-focus": [0],
"jsx-a11y/label-has-associated-control": [2],
"jsx-a11y/label-has-for": [0],
"jsx-a11y/lang": [2],
"jsx-a11y/media-has-caption": [0],
"jsx-a11y/mouse-events-have-key-events": [0],
"jsx-a11y/no-access-key": [2],
"jsx-a11y/no-aria-hidden-on-focusable": [0],
"jsx-a11y/no-autofocus": [0],
"jsx-a11y/no-distracting-elements": [2],
"jsx-a11y/no-interactive-element-to-noninteractive-role": [0],
"jsx-a11y/no-noninteractive-element-interactions": [0],
"jsx-a11y/no-noninteractive-element-to-interactive-role": [0],
"jsx-a11y/no-noninteractive-tabindex": [0],
"jsx-a11y/no-onchange": [0],
"jsx-a11y/no-redundant-roles": [2],
"jsx-a11y/no-static-element-interactions": [0],
"jsx-a11y/prefer-tag-over-role": [0],
"jsx-a11y/role-has-required-aria-props": [2],
"jsx-a11y/role-supports-aria-props": [2],
"jsx-a11y/scope": [0],
"jsx-a11y/tabindex-no-positive": [2],
"react/jsx-boolean-value": [2, "always"],
"react/jsx-filename-extension": [0],
"react/jsx-fragments": [2, "element"],
"react/jsx-handler-names": [0],
"react/jsx-key": [2, {warnOnDuplicates: true}],
"react/jsx-max-depth": [0],
"react/jsx-no-bind": [0],
"react/jsx-no-comment-textnodes": [2],
"react/jsx-no-constructed-context-values": [2],
"react/jsx-no-duplicate-props": [2],
"react/jsx-no-leaked-render": [0],
"react/jsx-no-literals": [0],
"react/jsx-no-script-url": [2, {includeFromSettings: true}],
"react/jsx-no-target-blank": [0],
"react/jsx-no-undef": [2],
"react/jsx-no-useless-fragment": [2, {allowExpressions: false}],
"react/jsx-pascal-case": [0], // covered by @stylistic/jsx/jsx-pascal-case
"react/jsx-props-no-spread-multi": [2],
"react/jsx-props-no-spreading": [0],
"react/jsx-space-before-closing": [0],
"react/jsx-uses-react": [0],
"react/jsx-uses-vars": [2],
"validate-jsx-nesting/no-invalid-jsx-nesting": [2],
}
}
],
"rules": {
"@eslint-community/eslint-comments/disable-enable-pair": [2, {"allowWholeFile": true}],
"@eslint-community/eslint-comments/no-aggregating-enable": [2],
"@eslint-community/eslint-comments/no-duplicate-disable": [2],
"@eslint-community/eslint-comments/no-restricted-disable": [0],
"@eslint-community/eslint-comments/no-unlimited-disable": [2],
"@eslint-community/eslint-comments/no-unused-disable": [2],
"@eslint-community/eslint-comments/no-unused-enable": [2],
"@eslint-community/eslint-comments/no-use": [0],
"@eslint-community/eslint-comments/require-description": [0],
"@stylistic/js/array-bracket-newline": [0],
"@stylistic/js/array-bracket-spacing": [2, "never"],
"@stylistic/js/array-element-newline": [0],
"@stylistic/js/arrow-parens": [0],
"@stylistic/js/arrow-spacing": [2, {"before": true, "after": true}],
"@stylistic/js/block-spacing": [0],
"@stylistic/js/brace-style": [2, "1tbs", {"allowSingleLine": true}],
"@stylistic/js/comma-dangle": [2, "only-multiline"],
"@stylistic/js/comma-spacing": [2, {"before": false, "after": true}],
"@stylistic/js/comma-style": [2, "last"],
"@stylistic/js/computed-property-spacing": [2, "never"],
"@stylistic/js/dot-location": [2, "property"],
"@stylistic/js/eol-last": [2],
"@stylistic/js/function-call-argument-newline": [0],
"@stylistic/js/function-call-spacing": [2, "never"],
"@stylistic/js/function-paren-newline": [0],
"@stylistic/js/generator-star-spacing": [0],
"@stylistic/js/implicit-arrow-linebreak": [0],
"@stylistic/js/indent": [2, 2, {"ignoreComments": true, "SwitchCase": 1}],
"@stylistic/js/key-spacing": [2],
"@stylistic/js/keyword-spacing": [2],
"@stylistic/js/line-comment-position": [0],
"@stylistic/js/linebreak-style": [2, "unix"],
"@stylistic/js/lines-around-comment": [0],
"@stylistic/js/lines-between-class-members": [0],
"@stylistic/js/max-len": [0],
"@stylistic/js/max-statements-per-line": [0],
"@stylistic/js/multiline-comment-style": [0],
"@stylistic/js/multiline-ternary": [0],
"@stylistic/js/new-parens": [2],
"@stylistic/js/newline-per-chained-call": [0],
"@stylistic/js/no-confusing-arrow": [0],
"@stylistic/js/no-extra-parens": [0],
"@stylistic/js/no-extra-semi": [2],
"@stylistic/js/no-floating-decimal": [0],
"@stylistic/js/no-mixed-operators": [0],
"@stylistic/js/no-mixed-spaces-and-tabs": [2],
"@stylistic/js/no-multi-spaces": [2, {"ignoreEOLComments": true, "exceptions": {"Property": true}}],
"@stylistic/js/no-multiple-empty-lines": [2, {"max": 2, "maxEOF": 1, "maxBOF": 0}],
"@stylistic/js/no-tabs": [2],
"@stylistic/js/no-trailing-spaces": [2],
"@stylistic/js/no-whitespace-before-property": [2],
"@stylistic/js/nonblock-statement-body-position": [2],
"@stylistic/js/object-curly-newline": [0],
"@stylistic/js/object-curly-spacing": [2, "never"],
"@stylistic/js/object-property-newline": [0],
"@stylistic/js/one-var-declaration-per-line": [0],
"@stylistic/js/operator-linebreak": [2, "after"],
"@stylistic/js/padded-blocks": [2, "never"],
"@stylistic/js/padding-line-between-statements": [0],
"@stylistic/js/quote-props": [0],
"@stylistic/js/quotes": [2, "double", {"avoidEscape": true, "allowTemplateLiterals": true}],
"@stylistic/js/rest-spread-spacing": [2, "never"],
"@stylistic/js/semi": [2, "always"],
"@stylistic/js/semi-spacing": [2, {"before": false, "after": true}],
"@stylistic/js/semi-style": [2, "last"],
"@stylistic/js/space-before-blocks": [2, "always"],
"@stylistic/js/space-before-function-paren": [2, {"anonymous": "never", "named": "never", "asyncArrow": "always"}],
"@stylistic/js/space-in-parens": [2, "never"],
"@stylistic/js/space-infix-ops": [2],
"@stylistic/js/space-unary-ops": [2],
"@stylistic/js/spaced-comment": [0],
"@stylistic/js/switch-colon-spacing": [2],
"@stylistic/js/template-curly-spacing": [2, "never"],
"@stylistic/js/template-tag-spacing": [2, "never"],
"@stylistic/js/wrap-iife": [2, "inside"],
"@stylistic/js/wrap-regex": [0],
"@stylistic/js/yield-star-spacing": [2, "after"],
"@typescript-eslint/adjacent-overload-signatures": [0],
"@typescript-eslint/array-type": [0],
"@typescript-eslint/await-thenable": [2],
"@typescript-eslint/ban-ts-comment": [2, {"ts-expect-error": false, "ts-ignore": true, "ts-nocheck": false, "ts-check": false}],
"@typescript-eslint/ban-tslint-comment": [0],
"@typescript-eslint/class-literal-property-style": [0],
"@typescript-eslint/class-methods-use-this": [0],
"@typescript-eslint/consistent-generic-constructors": [0],
"@typescript-eslint/consistent-indexed-object-style": [0],
"@typescript-eslint/consistent-return": [0],
"@typescript-eslint/consistent-type-assertions": [2, {assertionStyle: "as", objectLiteralTypeAssertions: "allow"}],
"@typescript-eslint/consistent-type-definitions": [2, "type"],
"@typescript-eslint/consistent-type-exports": [2, {fixMixedExportsWithInlineTypeSpecifier: false}],
"@typescript-eslint/consistent-type-imports": [2, {prefer: "type-imports", fixStyle: "separate-type-imports", disallowTypeAnnotations: true}],
"@typescript-eslint/default-param-last": [0],
"@typescript-eslint/dot-notation": [0],
"@typescript-eslint/explicit-function-return-type": [0],
"@typescript-eslint/explicit-member-accessibility": [0],
"@typescript-eslint/explicit-module-boundary-types": [0],
"@typescript-eslint/init-declarations": [0],
"@typescript-eslint/max-params": [0],
"@typescript-eslint/member-ordering": [0],
"@typescript-eslint/method-signature-style": [0],
"@typescript-eslint/naming-convention": [0],
"@typescript-eslint/no-array-constructor": [2],
"@typescript-eslint/no-array-delete": [2],
"@typescript-eslint/no-base-to-string": [0],
"@typescript-eslint/no-confusing-non-null-assertion": [2],
"@typescript-eslint/no-confusing-void-expression": [0],
"@typescript-eslint/no-deprecated": [2],
"@typescript-eslint/no-dupe-class-members": [0],
"@typescript-eslint/no-duplicate-enum-values": [2],
"@typescript-eslint/no-duplicate-type-constituents": [2, {ignoreUnions: true}],
"@typescript-eslint/no-dynamic-delete": [0],
"@typescript-eslint/no-empty-function": [0],
"@typescript-eslint/no-empty-interface": [0],
"@typescript-eslint/no-empty-object-type": [2],
"@typescript-eslint/no-explicit-any": [0],
"@typescript-eslint/no-extra-non-null-assertion": [2],
"@typescript-eslint/no-extraneous-class": [0],
"@typescript-eslint/no-floating-promises": [0],
"@typescript-eslint/no-for-in-array": [2],
"@typescript-eslint/no-implied-eval": [2],
"@typescript-eslint/no-import-type-side-effects": [0], // dupe with consistent-type-imports
"@typescript-eslint/no-inferrable-types": [0],
"@typescript-eslint/no-invalid-this": [0],
"@typescript-eslint/no-invalid-void-type": [0],
"@typescript-eslint/no-loop-func": [0],
"@typescript-eslint/no-magic-numbers": [0],
"@typescript-eslint/no-meaningless-void-operator": [0],
"@typescript-eslint/no-misused-new": [2],
"@typescript-eslint/no-misused-promises": [2, {checksVoidReturn: {attributes: false, arguments: false}}],
"@typescript-eslint/no-mixed-enums": [0],
"@typescript-eslint/no-namespace": [2],
"@typescript-eslint/no-non-null-asserted-nullish-coalescing": [0],
"@typescript-eslint/no-non-null-asserted-optional-chain": [2],
"@typescript-eslint/no-non-null-assertion": [0],
"@typescript-eslint/no-redeclare": [0],
"@typescript-eslint/no-redundant-type-constituents": [2],
"@typescript-eslint/no-require-imports": [2],
"@typescript-eslint/no-restricted-imports": [0],
"@typescript-eslint/no-restricted-types": [0],
"@typescript-eslint/no-shadow": [0],
"@typescript-eslint/no-this-alias": [2],
"@typescript-eslint/no-unnecessary-boolean-literal-compare": [0],
"@typescript-eslint/no-unnecessary-condition": [0],
"@typescript-eslint/no-unnecessary-parameter-property-assignment": [2],
"@typescript-eslint/no-unnecessary-qualifier": [0],
"@typescript-eslint/no-unnecessary-template-expression": [0],
"@typescript-eslint/no-unnecessary-type-arguments": [2],
"@typescript-eslint/no-unnecessary-type-assertion": [2], // previously had typesToIgnore: [HTMLElement, NodeListOf<HTMLElement>]
"@typescript-eslint/no-unnecessary-type-constraint": [2],
"@typescript-eslint/no-unsafe-argument": [0],
"@typescript-eslint/no-unsafe-assignment": [0],
"@typescript-eslint/no-unsafe-call": [0],
"@typescript-eslint/no-unsafe-declaration-merging": [2],
"@typescript-eslint/no-unsafe-enum-comparison": [2],
"@typescript-eslint/no-unsafe-function-type": [0],
"@typescript-eslint/no-unsafe-member-access": [0],
"@typescript-eslint/no-unsafe-return": [0],
"@typescript-eslint/no-unsafe-unary-minus": [2],
"@typescript-eslint/no-unused-expressions": [0],
"@typescript-eslint/no-unused-vars": [2, {vars: "all", args: "all", caughtErrors: "all", ignoreRestSiblings: false, argsIgnorePattern: "^_", varsIgnorePattern: "^_[^_]*$", caughtErrorsIgnorePattern: "^_", destructuredArrayIgnorePattern: "^_"}],
"@typescript-eslint/no-use-before-define": [2, {"functions": false, "classes": true, "variables": true, "allowNamedExports": true, "typedefs": false, "enums": false, "ignoreTypeReferences": true}],
"@typescript-eslint/no-useless-constructor": [0],
"@typescript-eslint/no-useless-empty-export": [0],
"@typescript-eslint/no-wrapper-object-types": [2],
"@typescript-eslint/non-nullable-type-assertion-style": [0],
"@typescript-eslint/only-throw-error": [2],
"@typescript-eslint/parameter-properties": [0],
"@typescript-eslint/prefer-as-const": [2],
"@typescript-eslint/prefer-destructuring": [0],
"@typescript-eslint/prefer-enum-initializers": [0],
"@typescript-eslint/prefer-find": [2],
"@typescript-eslint/prefer-for-of": [2],
"@typescript-eslint/prefer-function-type": [2],
"@typescript-eslint/prefer-includes": [2],
"@typescript-eslint/prefer-literal-enum-member": [0],
"@typescript-eslint/prefer-namespace-keyword": [0],
"@typescript-eslint/prefer-nullish-coalescing": [0],
"@typescript-eslint/prefer-optional-chain": [2, {requireNullish: true}],
"@typescript-eslint/prefer-promise-reject-errors": [0],
"@typescript-eslint/prefer-readonly": [0],
"@typescript-eslint/prefer-readonly-parameter-types": [0],
"@typescript-eslint/prefer-reduce-type-parameter": [0],
"@typescript-eslint/prefer-regexp-exec": [0],
"@typescript-eslint/prefer-return-this-type": [0],
"@typescript-eslint/prefer-string-starts-ends-with": [2, {allowSingleElementEquality: "always"}],
"@typescript-eslint/promise-function-async": [0],
"@typescript-eslint/require-array-sort-compare": [0],
"@typescript-eslint/require-await": [2],
"@typescript-eslint/restrict-plus-operands": [2],
"@typescript-eslint/restrict-template-expressions": [0],
"@typescript-eslint/return-await": [0],
"@typescript-eslint/strict-boolean-expressions": [0],
"@typescript-eslint/switch-exhaustiveness-check": [0],
"@typescript-eslint/triple-slash-reference": [2],
"@typescript-eslint/typedef": [0],
"@typescript-eslint/unbound-method": [0], // too many false-positives
"@typescript-eslint/unified-signatures": [2],
"accessor-pairs": [2],
"array-callback-return": [2, {"checkForEach": true}],
"array-func/prefer-flat": [0],
"array-func/prefer-flat-map": [0],
"arrow-body-style": [0],
"block-scoped-var": [2],
"camelcase": [0],
"capitalized-comments": [0],
"class-methods-use-this": [0],
"complexity": [0],
"consistent-return": [0],
"consistent-this": [0],
"constructor-super": [2],
"curly": [0],
"default-case": [0],
"default-case-last": [2],
"default-param-last": [0],
"dot-notation": [0],
"eqeqeq": [2],
"for-direction": [2],
"func-name-matching": [2],
"func-names": [0],
"func-style": [0],
"getter-return": [2],
// "github/a11y-aria-label-is-well-formatted": [0],
// "github/a11y-no-title-attribute": [0],
// "github/a11y-no-visually-hidden-interactive-element": [0],
// "github/a11y-role-supports-aria-props": [0],
// "github/a11y-svg-has-accessible-name": [0],
// "github/array-foreach": [0],
// "github/async-currenttarget": [2],
// "github/async-preventdefault": [2],
// "github/authenticity-token": [0],
// "github/get-attribute": [0],
// "github/js-class-name": [0],
// "github/no-blur": [0],
// "github/no-d-none": [0],
// "github/no-dataset": [2],
// "github/no-dynamic-script-tag": [2],
// "github/no-implicit-buggy-globals": [2],
// "github/no-inner-html": [0],
// "github/no-innerText": [2],
// "github/no-then": [0],
// "github/no-useless-passive": [2],
// "github/prefer-observers": [0],
// "github/require-passive-events": [2],
// "github/unescaped-html-literal": [0],
"grouped-accessor-pairs": [2],
"guard-for-in": [0],
"id-blacklist": [0],
"id-denylist": [0],
"id-length": [0],
"id-match": [0],
"import/consistent-type-specifier-style": [0],
"import/default": [0], // has bugs, at least with monaco-editor package
"import/dynamic-import-chunkname": [0],
"import/export": [2],
"import/exports-last": [0],
"import/extensions": [2, "ignorePackages"],
"import/first": [2],
"import/group-exports": [0],
"import/max-dependencies": [0],
"import/named": [2],
"import/namespace": [0],
"import/newline-after-import": [0],
"import/no-absolute-path": [2],
"import/no-amd": [2],
"import/no-anonymous-default-export": [0],
"import/no-commonjs": [2, {"allowConditionalRequire": false}],
"import/no-cycle": [2, {"ignoreExternal": true, "maxDepth": 1, disableScc: true}], // disableScc is a massive speed gain
"import/no-default-export": [0],
"import/no-deprecated": [0],
"import/no-duplicates": [2],
"import/no-dynamic-require": [0],
"import/no-empty-named-blocks": [2],
"import/no-extraneous-dependencies": [2],
"import/no-import-module-exports": [0],
"import/no-internal-modules": [0],
"import/no-mutable-exports": [0],
"import/no-named-as-default": [0],
"import/no-named-as-default-member": [0],
"import/no-named-default": [0],
"import/no-named-export": [0],
"import/no-namespace": [0],
"import/no-nodejs-modules": [0],
"import/no-relative-packages": [0],
"import/no-relative-parent-imports": [0],
"import/no-restricted-paths": [0],
"import/no-self-import": [2],
"import/no-unassigned-import": [0],
"import/no-unresolved": [2, {"commonjs": true, "ignore": ["\\?.+$"]}],
"import/no-unused-modules": [2, {"unusedExports": true, "ignoreUnusedTypeExports": true}],
"import/no-useless-path-segments": [2, {"commonjs": true}],
"import/no-webpack-loader-syntax": [2],
"import/order": [0],
"import/prefer-default-export": [0],
"import/unambiguous": [0],
"init-declarations": [0],
"line-comment-position": [0],
"logical-assignment-operators": [0],
"max-classes-per-file": [0],
"max-depth": [0],
"max-lines": [0],
"max-lines-per-function": [0],
"max-nested-callbacks": [0],
"max-params": [0],
"max-statements": [0],
"multiline-comment-style": [0],
"new-cap": [0],
"no-alert": [0],
"no-array-constructor": [0],
"no-async-promise-executor": [0],
"no-await-in-loop": [0],
"no-bitwise": [0],
"no-buffer-constructor": [0],
"no-caller": [2],
"no-case-declarations": [2],
"no-class-assign": [2],
"no-compare-neg-zero": [2],
"no-cond-assign": [2, "except-parens"],
"no-console": [1, {"allow": ["debug", "info", "warn", "error"]}],
"no-const-assign": [2],
"no-constant-binary-expression": [2],
"no-constant-condition": [0],
"no-constructor-return": [2],
"no-continue": [0],
"no-control-regex": [0],
"no-debugger": [1],
"no-delete-var": [2],
"no-div-regex": [0],
"no-dupe-args": [2],
"no-dupe-class-members": [2],
"no-dupe-else-if": [2],
"no-dupe-keys": [2],
"no-duplicate-case": [2],
"no-duplicate-imports": [0],
"no-else-return": [0],
"no-empty": [2, {"allowEmptyCatch": true}],
"no-empty-character-class": [2],
"no-empty-function": [0],
"no-empty-pattern": [2],
"no-empty-static-block": [2],
"no-eq-null": [2],
"no-eval": [2],
"no-ex-assign": [2],
"no-extend-native": [2],
"no-extra-bind": [2],
"no-extra-boolean-cast": [2],
"no-extra-label": [0],
"no-fallthrough": [2],
"no-func-assign": [2],
"no-global-assign": [2],
"no-implicit-coercion": [2],
"no-implicit-globals": [0],
"no-implied-eval": [0],
"no-import-assign": [2],
"no-inline-comments": [0],
"no-inner-declarations": [2],
"no-invalid-regexp": [2],
"no-invalid-this": [0],
"no-irregular-whitespace": [2],
"no-iterator": [2],
"no-label-var": [2],
"no-labels": [0],
"no-lone-blocks": [2],
"no-lonely-if": [0],
"no-loop-func": [0],
"no-loss-of-precision": [2],
"no-magic-numbers": [0],
"no-misleading-character-class": [2],
"no-multi-assign": [0],
"no-multi-str": [2],
"no-negated-condition": [0],
"no-nested-ternary": [0],
"no-new": [0],
"no-new-func": [2],
"no-new-native-nonconstructor": [2],
"no-new-symbol": [2],
"no-new-wrappers": [2],
"no-nonoctal-decimal-escape": [2],
"no-obj-calls": [2],
"no-object-constructor": [2],
"no-octal": [2],
"no-octal-escape": [2],
"no-param-reassign": [0],
"no-plusplus": [0],
"no-promise-executor-return": [0],
"no-proto": [2],
"no-prototype-builtins": [2],
"no-redeclare": [0],
"no-regex-spaces": [2],
"no-restricted-exports": [0],
"no-restricted-globals": [2, ...restrictedGlobals],
"no-restricted-imports": [2, "punycode", "assert"],
"no-restricted-properties": [0],
"no-restricted-syntax": [2, "WithStatement", "ForInStatement", "SequenceExpression", "TSEnumDeclaration", "TSNamespaceExportDeclaration", "TSParameterProperty", {selector: "CallExpression[callee.property.name='eqDebug']", message: "eqDebug should be removed"}], // namespace is covered by @typescript-eslint/no-namespace
"no-return-assign": [0],
"no-script-url": [2],
"no-self-assign": [2, {"props": true}],
"no-self-compare": [2],
"no-sequences": [2],
"no-setter-return": [2],
"no-shadow": [0],
"no-shadow-restricted-names": [2],
"no-sparse-arrays": [2],
"no-template-curly-in-string": [2],
"no-ternary": [0],
"no-this-before-super": [2],
"no-throw-literal": [2],
"no-undef": [2, {"typeof": true}],
"no-undef-init": [2],
"no-undefined": [0],
"no-underscore-dangle": [0],
"no-unexpected-multiline": [2],
"no-unmodified-loop-condition": [2],
"no-unneeded-ternary": [0],
"no-unreachable": [2],
"no-unreachable-loop": [2],
"no-unsafe-finally": [2],
"no-unsafe-negation": [2],
"no-unsafe-optional-chaining": [2],
"no-unused-expressions": [2],
"no-unused-labels": [2],
"no-unused-private-class-members": [2],
"no-unused-vars": [0],
"no-use-before-define": [0],
"no-useless-backreference": [2],
"no-useless-call": [2],
"no-useless-catch": [2],
"no-useless-computed-key": [2],
"no-useless-concat": [2],
"no-useless-constructor": [2],
"no-useless-escape": [2],
"no-useless-rename": [2],
"no-useless-return": [0],
"no-var": [2],
"no-void": [2],
"no-warning-comments": [0],
"no-with": [0],
"object-shorthand": [2, "always"],
"one-var": [0],
"operator-assignment": [2, "always"],
"prefer-arrow-callback": [2, {"allowNamedFunctions": true, "allowUnboundThis": true}],
"prefer-const": [2, {"destructuring": "all", "ignoreReadBeforeAssign": true}],
"prefer-destructuring": [0],
"prefer-exponentiation-operator": [2],
"prefer-named-capture-group": [0],
"prefer-numeric-literals": [2],
"prefer-object-has-own": [2],
"prefer-object-spread": [2],
"prefer-promise-reject-errors": [2, {"allowEmptyReject": false}],
"prefer-regex-literals": [2, {disallowRedundantWrapping: true}],
"prefer-rest-params": [2],
"prefer-spread": [2],
"prefer-template": [2],
"radix": [2, "as-needed"],
"react-hooks/exhaustive-deps": [2],
"react-hooks/rules-of-hooks": [2],
"react-refresh/only-export-components": [2, {allowConstantExport: true}],
"react/boolean-prop-naming": [0],
"react/button-has-type": [0],
"react/default-props-match-prop-types": [0],
"react/destructuring-assignment": [0],
"react/display-name": [2],
"react/forbid-component-props": [0],
"react/forbid-dom-props": [0],
"react/forbid-elements": [0],
"react/forbid-foreign-prop-types": [0],
"react/forbid-prop-types": [0],
"react/function-component-definition": [0],
"react/hook-use-state": [2, {allowDestructuredState: true}],
"react/iframe-missing-sandbox": [0],
"react/no-access-state-in-setstate": [0],
"react/no-adjacent-inline-elements": [0],
"react/no-array-index-key": [0],
"react/no-arrow-function-lifecycle": [2],
"react/no-children-prop": [2],
"react/no-danger": [0],
"react/no-danger-with-children": [0],
"react/no-deprecated": [2],
"react/no-did-mount-set-state": [0],
"react/no-did-update-set-state": [0],
"react/no-direct-mutation-state": [0], // slow
"react/no-find-dom-node": [2],
"react/no-invalid-html-attribute": [2],
"react/no-is-mounted": [0],
"react/no-multi-comp": [0],
"react/no-namespace": [2],
"react/no-object-type-as-default-prop": [2],
"react/no-redundant-should-component-update": [2],
"react/no-render-return-value": [0],
"react/no-set-state": [0],
"react/no-string-refs": [2],
"react/no-this-in-sfc": [2],
"react/no-typos": [2],
"react/no-unescaped-entities": [2],
"react/no-unknown-property": [2, {ignore: ["css"], requireDataLowercase: true}],
"react/no-unsafe": [0],
"react/no-unused-class-component-methods": [2],
"react/no-unused-prop-types": [0],
"react/no-unused-state": [2],
"react/no-will-update-set-state": [0],
"react/prefer-es6-class": [0],
"react/prefer-exact-props": [0],
"react/prefer-read-only-props": [0],
"react/prefer-stateless-function": [0],
"react/prop-types": [0],
"react/react-in-jsx-scope": [0],
"react/require-default-props": [0],
"react/require-optimization": [0],
"react/require-render-return": [2],
"react/sort-comp": [0],
"react/sort-default-props": [0],
"react/sort-prop-types": [0],
"react/state-in-constructor": [0],
"react/static-property-placement": [0],
"react/style-prop-object": [2],
"react/void-dom-elements-no-children": [2],
"regexp/confusing-quantifier": [2],
"regexp/control-character-escape": [2],
"regexp/hexadecimal-escape": [0],
"regexp/letter-case": [0],
"regexp/match-any": [0],
"regexp/negation": [2],
"regexp/no-contradiction-with-assertion": [0],
"regexp/no-control-character": [0],
"regexp/no-dupe-characters-character-class": [2],
"regexp/no-dupe-disjunctions": [2],
"regexp/no-empty-alternative": [2],
"regexp/no-empty-capturing-group": [2],
"regexp/no-empty-character-class": [0],
"regexp/no-empty-group": [2],
"regexp/no-empty-lookarounds-assertion": [2],
"regexp/no-empty-string-literal": [2],
"regexp/no-escape-backspace": [2],
"regexp/no-extra-lookaround-assertions": [0],
"regexp/no-invalid-regexp": [2],
"regexp/no-invisible-character": [2],
"regexp/no-lazy-ends": [2],
"regexp/no-legacy-features": [2],
"regexp/no-misleading-capturing-group": [0],
"regexp/no-misleading-unicode-character": [0],
"regexp/no-missing-g-flag": [2],
"regexp/no-non-standard-flag": [2],
"regexp/no-obscure-range": [2],
"regexp/no-octal": [2],
"regexp/no-optional-assertion": [2],
"regexp/no-potentially-useless-backreference": [2],
"regexp/no-standalone-backslash": [2],
"regexp/no-super-linear-backtracking": [0],
"regexp/no-super-linear-move": [0],
"regexp/no-trivially-nested-assertion": [2],
"regexp/no-trivially-nested-quantifier": [2],
"regexp/no-unused-capturing-group": [0],
"regexp/no-useless-assertions": [2],
"regexp/no-useless-backreference": [2],
"regexp/no-useless-character-class": [0],
"regexp/no-useless-dollar-replacements": [2],
"regexp/no-useless-escape": [2],
"regexp/no-useless-flag": [2],
"regexp/no-useless-lazy": [2],
"regexp/no-useless-non-capturing-group": [2],
"regexp/no-useless-quantifier": [2],
"regexp/no-useless-range": [2],
"regexp/no-useless-set-operand": [2],
"regexp/no-useless-string-literal": [2],
"regexp/no-useless-two-nums-quantifier": [2],
"regexp/no-zero-quantifier": [2],
"regexp/optimal-lookaround-quantifier": [2],
"regexp/optimal-quantifier-concatenation": [0],
"regexp/prefer-character-class": [0],
"regexp/prefer-d": [0],
"regexp/prefer-escape-replacement-dollar-char": [0],
"regexp/prefer-lookaround": [0],
"regexp/prefer-named-backreference": [0],
"regexp/prefer-named-capture-group": [0],
"regexp/prefer-named-replacement": [0],
"regexp/prefer-plus-quantifier": [2],
"regexp/prefer-predefined-assertion": [2],
"regexp/prefer-quantifier": [0],
"regexp/prefer-question-quantifier": [2],
"regexp/prefer-range": [2],
"regexp/prefer-regexp-exec": [2],
"regexp/prefer-regexp-test": [2],
"regexp/prefer-result-array-groups": [0],
"regexp/prefer-set-operation": [2],
"regexp/prefer-star-quantifier": [2],
"regexp/prefer-unicode-codepoint-escapes": [2],
"regexp/prefer-w": [0],
"regexp/require-unicode-regexp": [0],
"regexp/simplify-set-operations": [2],
"regexp/sort-alternatives": [0],
"regexp/sort-character-class-elements": [0],
"regexp/sort-flags": [0],
"regexp/strict": [0],
"regexp/unicode-escape": [0],
"regexp/unicode-property": [0],
"regexp/use-ignore-case": [0],
"require-atomic-updates": [0],
"require-await": [0],
"require-unicode-regexp": [0],
"require-yield": [2],
"sonarjs/cognitive-complexity": [0],
"sonarjs/elseif-without-else": [0],
"sonarjs/max-switch-cases": [0],
"sonarjs/no-all-duplicated-branches": [2],
"sonarjs/no-collapsible-if": [0],
"sonarjs/no-collection-size-mischeck": [2],
"sonarjs/no-duplicate-string": [0],
"sonarjs/no-duplicated-branches": [0],
"sonarjs/no-element-overwrite": [2],
"sonarjs/no-empty-collection": [2],
"sonarjs/no-extra-arguments": [2],
"sonarjs/no-gratuitous-expressions": [2],
"sonarjs/no-identical-conditions": [2],
"sonarjs/no-identical-expressions": [2],
"sonarjs/no-identical-functions": [2, 5],
"sonarjs/no-ignored-return": [2],
"sonarjs/no-inverted-boolean-check": [2],
"sonarjs/no-nested-switch": [0],
"sonarjs/no-nested-template-literals": [0],
"sonarjs/no-one-iteration-loop": [2],
"sonarjs/no-redundant-boolean": [2],
"sonarjs/no-redundant-jump": [0],
"sonarjs/no-same-line-conditional": [2],
"sonarjs/no-small-switch": [0],
"sonarjs/no-unused-collection": [2],
"sonarjs/no-use-of-empty-return-value": [2],
"sonarjs/no-useless-catch": [2],
"sonarjs/non-existent-operator": [2],
"sonarjs/prefer-immediate-return": [0],
"sonarjs/prefer-object-literal": [0],
"sonarjs/prefer-single-boolean-return": [0],
"sonarjs/prefer-while": [2],
"sort-imports": [0],
"sort-keys": [0],
"sort-vars": [0],
"strict": [0],
"symbol-description": [2],
"unicode-bom": [2, "never"],
"unicorn/better-regex": [0],
"unicorn/catch-error-name": [0],
"unicorn/consistent-destructuring": [2],
"unicorn/consistent-empty-array-spread": [2],
"unicorn/consistent-existence-index-check": [0],
"unicorn/consistent-function-scoping": [2],
"unicorn/custom-error-definition": [0],
"unicorn/empty-brace-spaces": [2],
"unicorn/error-message": [0],
"unicorn/escape-case": [0],
"unicorn/expiring-todo-comments": [0],
"unicorn/explicit-length-check": [0],
"unicorn/filename-case": [0],
"unicorn/import-index": [0],
"unicorn/import-style": [0],
"unicorn/new-for-builtins": [2],
"unicorn/no-abusive-eslint-disable": [0],
"unicorn/no-anonymous-default-export": [0],
"unicorn/no-array-callback-reference": [0],
"unicorn/no-array-for-each": [2],
"unicorn/no-array-method-this-argument": [2],
"unicorn/no-array-push-push": [2],
"unicorn/no-array-reduce": [0],
"unicorn/no-await-expression-member": [0],
"unicorn/no-await-in-promise-methods": [2],
"unicorn/no-console-spaces": [0],
"unicorn/no-document-cookie": [2],
"unicorn/no-empty-file": [0],
"unicorn/no-for-loop": [0],
"unicorn/no-hex-escape": [0],
"unicorn/no-instanceof-array": [0],
"unicorn/no-invalid-fetch-options": [2],
"unicorn/no-invalid-remove-event-listener": [2],
"unicorn/no-keyword-prefix": [0],
"unicorn/no-length-as-slice-end": [2],
"unicorn/no-lonely-if": [2],
"unicorn/no-magic-array-flat-depth": [0],
"unicorn/no-negated-condition": [0],
"unicorn/no-negation-in-equality-check": [2],
"unicorn/no-nested-ternary": [0],
"unicorn/no-new-array": [0],
"unicorn/no-new-buffer": [0],
"unicorn/no-null": [0],
"unicorn/no-object-as-default-parameter": [0],
"unicorn/no-process-exit": [0],
"unicorn/no-single-promise-in-promise-methods": [2],
"unicorn/no-static-only-class": [2],
"unicorn/no-thenable": [0],
"unicorn/no-this-assignment": [2],
"unicorn/no-typeof-undefined": [2],
"unicorn/no-unnecessary-await": [2],
"unicorn/no-unnecessary-polyfills": [2],
"unicorn/no-unreadable-array-destructuring": [0],
"unicorn/no-unreadable-iife": [2],
"unicorn/no-unused-properties": [2],
"unicorn/no-useless-fallback-in-spread": [2],
"unicorn/no-useless-length-check": [2],
"unicorn/no-useless-promise-resolve-reject": [2],
"unicorn/no-useless-spread": [2],
"unicorn/no-useless-switch-case": [2],
"unicorn/no-useless-undefined": [0],
"unicorn/no-zero-fractions": [2],
"unicorn/number-literal-case": [0],
"unicorn/numeric-separators-style": [0],
"unicorn/prefer-add-event-listener": [2],
"unicorn/prefer-array-find": [2],
"unicorn/prefer-array-flat": [2],
"unicorn/prefer-array-flat-map": [2],
"unicorn/prefer-array-index-of": [2],
"unicorn/prefer-array-some": [2],
"unicorn/prefer-at": [0],
"unicorn/prefer-blob-reading-methods": [2],
"unicorn/prefer-code-point": [0],
"unicorn/prefer-date-now": [2],
"unicorn/prefer-default-parameters": [0],
"unicorn/prefer-dom-node-append": [2],
"unicorn/prefer-dom-node-dataset": [0],
"unicorn/prefer-dom-node-remove": [2],
"unicorn/prefer-dom-node-text-content": [2],
"unicorn/prefer-event-target": [2],
"unicorn/prefer-export-from": [0],
"unicorn/prefer-global-this": [0],
"unicorn/prefer-includes": [2],
"unicorn/prefer-json-parse-buffer": [0],
"unicorn/prefer-keyboard-event-key": [2],
"unicorn/prefer-logical-operator-over-ternary": [2],
"unicorn/prefer-math-min-max": [2],
"unicorn/prefer-math-trunc": [2],
"unicorn/prefer-modern-dom-apis": [0],
"unicorn/prefer-modern-math-apis": [2],
"unicorn/prefer-module": [0],
"unicorn/prefer-native-coercion-functions": [2],
"unicorn/prefer-negative-index": [2],
"unicorn/prefer-node-protocol": [2],
"unicorn/prefer-number-properties": [0],