@entva/styleguide 0.0.0

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 (52) hide show
  1. package/.github/workflows/ci.yml +14 -0
  2. package/LICENSE +21 -0
  3. package/README.md +88 -0
  4. package/css/README.md +385 -0
  5. package/css/packages/stylelint/LICENSE +21 -0
  6. package/css/packages/stylelint/README.md +27 -0
  7. package/css/packages/stylelint/eslint.config.js +3 -0
  8. package/css/packages/stylelint/index.js +84 -0
  9. package/css/packages/stylelint/package-lock.json +4042 -0
  10. package/css/packages/stylelint/package.json +42 -0
  11. package/html/README.md +98 -0
  12. package/javascript/README.md +3255 -0
  13. package/javascript/packages/eslint-base/LICENSE +21 -0
  14. package/javascript/packages/eslint-base/README.md +27 -0
  15. package/javascript/packages/eslint-base/eslint.config.js +3 -0
  16. package/javascript/packages/eslint-base/index.js +1084 -0
  17. package/javascript/packages/eslint-base/package-lock.json +2653 -0
  18. package/javascript/packages/eslint-base/package.json +36 -0
  19. package/javascript/packages/eslint-react/LICENSE +21 -0
  20. package/javascript/packages/eslint-react/README.md +27 -0
  21. package/javascript/packages/eslint-react/eslint.config.js +3 -0
  22. package/javascript/packages/eslint-react/index.js +526 -0
  23. package/javascript/packages/eslint-react/package-lock.json +3035 -0
  24. package/javascript/packages/eslint-react/package.json +42 -0
  25. package/package.json +15 -0
  26. package/react/README.md +726 -0
  27. package/scripts/for-each-package +12 -0
  28. package/test/css.js +36 -0
  29. package/test/index.js +7 -0
  30. package/test/js.js +35 -0
  31. package/test/utils.js +63 -0
  32. package/tooling/packages/biome/LICENSE +21 -0
  33. package/tooling/packages/biome/README.md +27 -0
  34. package/tooling/packages/biome/biome.json +1285 -0
  35. package/tooling/packages/biome/package-lock.json +183 -0
  36. package/tooling/packages/biome/package.json +38 -0
  37. package/tsconfig.json +31 -0
  38. package/typescript/README.md +66 -0
  39. package/typescript/packages/eslint-typescript-base/LICENSE +21 -0
  40. package/typescript/packages/eslint-typescript-base/README.md +27 -0
  41. package/typescript/packages/eslint-typescript-base/eslint.config.js +3 -0
  42. package/typescript/packages/eslint-typescript-base/index.js +272 -0
  43. package/typescript/packages/eslint-typescript-base/package-lock.json +3215 -0
  44. package/typescript/packages/eslint-typescript-base/package.json +41 -0
  45. package/typescript/packages/eslint-typescript-base/tsconfig.json +30 -0
  46. package/typescript/packages/eslint-typescript-react/LICENSE +21 -0
  47. package/typescript/packages/eslint-typescript-react/README.md +27 -0
  48. package/typescript/packages/eslint-typescript-react/eslint.config.js +3 -0
  49. package/typescript/packages/eslint-typescript-react/index.js +75 -0
  50. package/typescript/packages/eslint-typescript-react/package-lock.json +3630 -0
  51. package/typescript/packages/eslint-typescript-react/package.json +41 -0
  52. package/typescript/packages/eslint-typescript-react/tsconfig.json +30 -0
@@ -0,0 +1,1084 @@
1
+ import importPlugin from 'eslint-plugin-import';
2
+ import globals from 'globals';
3
+
4
+ export default [
5
+ {
6
+ files: [
7
+ '**/*.test.js',
8
+ '**/*.test.cjs',
9
+ '**/*.test.mjs',
10
+ '**/*.spec.js',
11
+ '**/*.spec.cjs',
12
+ '**/*.spec.mjs',
13
+ '**/__tests__/**',
14
+ ],
15
+ languageOptions: {
16
+ globals: {
17
+ ...globals.jest,
18
+ },
19
+ },
20
+ },
21
+ {
22
+ plugins: {
23
+ import: importPlugin,
24
+ },
25
+
26
+ ignores: [
27
+ '**/node_modules/',
28
+ '**/public/',
29
+ '**/coverage/',
30
+ '**/.*',
31
+ ],
32
+
33
+ languageOptions: {
34
+ globals: {
35
+ ...globals.browser,
36
+ ...globals.node,
37
+ },
38
+
39
+ ecmaVersion: 'latest',
40
+ sourceType: 'module',
41
+
42
+ parserOptions: {
43
+ ecmaFeatures: {
44
+ generators: false,
45
+ objectLiteralDuplicateProperties: false,
46
+ },
47
+ },
48
+ },
49
+
50
+ settings: {
51
+ 'import/resolver': {
52
+ node: {
53
+ extensions: ['.mjs', '.js', '.json'],
54
+ },
55
+ },
56
+
57
+ 'import/extensions': ['.mjs', '.js', '.json'],
58
+ 'import/core-modules': [],
59
+ 'import/ignore': ['node_modules', '\\.(coffee|scss|css|less|hbs|svg|json)$'],
60
+ },
61
+
62
+ rules: {
63
+ 'no-console': ['off'],
64
+
65
+ 'default-case': ['off', {
66
+ commentPattern: '^no default$',
67
+ }],
68
+
69
+ 'global-require': ['off'],
70
+ 'no-restricted-syntax': ['error', 'LabeledStatement', 'WithStatement', 'YieldExpression'],
71
+
72
+ 'class-methods-use-this': ['off', {
73
+ exceptMethods: [],
74
+ enforceForClassFields: true,
75
+ }],
76
+
77
+ 'prefer-destructuring': ['off', {
78
+ VariableDeclarator: {
79
+ array: false,
80
+ object: true,
81
+ },
82
+
83
+ AssignmentExpression: {
84
+ array: true,
85
+ object: false,
86
+ },
87
+ }, {
88
+ enforceForRenamedProperties: false,
89
+ }],
90
+
91
+ 'consistent-return': ['off'],
92
+
93
+ 'no-multiple-empty-lines': ['error', {
94
+ max: 2,
95
+ maxBOF: 0,
96
+ maxEOF: 0,
97
+ }],
98
+
99
+ 'no-underscore-dangle': ['off', {
100
+ allow: [],
101
+ allowAfterThis: false,
102
+ allowAfterSuper: false,
103
+ enforceInMethodNames: true,
104
+ allowAfterThisConstructor: false,
105
+ allowFunctionParams: true,
106
+ enforceInClassFields: false,
107
+ allowInArrayDestructuring: true,
108
+ allowInObjectDestructuring: true,
109
+ }],
110
+
111
+ 'no-floating-decimal': ['off'],
112
+ 'no-continue': ['off'],
113
+
114
+ 'no-restricted-exports': ['off', {
115
+ restrictedNamedExports: ['default', 'then'],
116
+ }],
117
+
118
+ 'space-before-function-paren': ['error', {
119
+ anonymous: 'never',
120
+ named: 'never',
121
+ asyncArrow: 'always',
122
+ }],
123
+
124
+ 'func-names': ['error', 'never'],
125
+ 'func-style': ['error', 'expression'],
126
+
127
+ 'object-curly-newline': ['error', {
128
+ multiline: true,
129
+ consistent: true,
130
+ }],
131
+
132
+ 'lines-between-class-members': ['error', 'always', {
133
+ exceptAfterSingleLine: true,
134
+ }],
135
+
136
+ 'no-plusplus': ['error', {
137
+ allowForLoopAfterthoughts: true,
138
+ }],
139
+
140
+ 'import/no-named-as-default': ['off'],
141
+ 'import/no-dynamic-require': ['off'],
142
+ 'import/prefer-default-export': ['off'],
143
+
144
+ 'import/extensions': ['off', 'ignorePackages', {
145
+ js: 'never',
146
+ mjs: 'never',
147
+ jsx: 'never',
148
+ }],
149
+
150
+ 'import/no-unresolved': ['off', {
151
+ commonjs: true,
152
+ caseSensitive: true,
153
+ caseSensitiveStrict: false,
154
+ }],
155
+
156
+ strict: ['error', 'never'],
157
+ 'import/named': ['error'],
158
+ 'import/default': ['off'],
159
+ 'import/namespace': ['off'],
160
+ 'import/export': ['error'],
161
+ 'import/no-named-as-default-member': ['error'],
162
+ 'import/no-deprecated': ['off'],
163
+
164
+ 'import/no-extraneous-dependencies': ['error', {
165
+ devDependencies: [
166
+ 'test/**',
167
+ 'tests/**',
168
+ 'spec/**',
169
+ '**/__tests__/**',
170
+ '**/__mocks__/**',
171
+ 'test.{js,jsx}',
172
+ 'test-*.{js,jsx}',
173
+ '**/*{.,_}{test,spec}.{js,jsx}',
174
+ '**/jest.config.js',
175
+ '**/jest.setup.js',
176
+ '**/vue.config.js',
177
+ '**/webpack.config.js',
178
+ '**/webpack.config.*.js',
179
+ '**/rollup.config.js',
180
+ '**/rollup.config.*.js',
181
+ '**/protractor.conf.js',
182
+ '**/protractor.conf.*.js',
183
+ '**/karma.conf.js',
184
+ '**/.eslintrc.js',
185
+ ],
186
+
187
+ optionalDependencies: false,
188
+ }],
189
+
190
+ 'import/no-mutable-exports': ['error'],
191
+ 'import/no-commonjs': ['off'],
192
+ 'import/no-amd': ['error'],
193
+ 'import/no-nodejs-modules': ['off'],
194
+ 'import/first': ['error'],
195
+ 'import/imports-first': ['off'],
196
+ 'import/no-duplicates': ['error'],
197
+ 'import/no-namespace': ['off'],
198
+
199
+ 'import/order': ['error', {
200
+ groups: [['builtin', 'external', 'internal']],
201
+ distinctGroup: true,
202
+ warnOnUnassignedImports: false,
203
+ }],
204
+
205
+ 'import/newline-after-import': ['error'],
206
+ 'import/no-restricted-paths': ['off'],
207
+
208
+ 'import/max-dependencies': ['off', {
209
+ max: 10,
210
+ }],
211
+
212
+ 'import/no-absolute-path': ['error'],
213
+
214
+ 'import/no-internal-modules': ['off', {
215
+ allow: [],
216
+ }],
217
+
218
+ 'import/unambiguous': ['off'],
219
+ 'import/no-webpack-loader-syntax': ['error'],
220
+ 'import/no-unassigned-import': ['off'],
221
+ 'import/no-named-default': ['error'],
222
+
223
+ 'import/no-anonymous-default-export': ['off', {
224
+ allowArray: false,
225
+ allowArrowFunction: false,
226
+ allowAnonymousClass: false,
227
+ allowAnonymousFunction: false,
228
+ allowLiteral: false,
229
+ allowObject: false,
230
+ }],
231
+
232
+ 'import/exports-last': ['off'],
233
+ 'import/group-exports': ['off'],
234
+ 'import/no-default-export': ['off'],
235
+ 'import/no-named-export': ['off'],
236
+ 'import/no-self-import': ['error'],
237
+
238
+ 'import/no-cycle': ['error', {
239
+ maxDepth: '∞',
240
+ ignoreExternal: false,
241
+ allowUnsafeDynamicCyclicDependency: false,
242
+ }],
243
+
244
+ 'import/no-useless-path-segments': ['error', {
245
+ commonjs: true,
246
+ }],
247
+
248
+ 'import/dynamic-import-chunkname': ['off', {
249
+ importFunctions: [],
250
+ webpackChunknameFormat: '[0-9a-zA-Z-_/.]+',
251
+ }],
252
+
253
+ 'import/no-relative-parent-imports': ['off'],
254
+
255
+ 'import/no-unused-modules': ['off', {
256
+ ignoreExports: [],
257
+ missingExports: true,
258
+ unusedExports: true,
259
+ }],
260
+
261
+ 'import/no-import-module-exports': ['error', {
262
+ exceptions: [],
263
+ }],
264
+
265
+ 'import/no-relative-packages': ['error'],
266
+
267
+ 'arrow-body-style': ['error', 'as-needed', {
268
+ requireReturnForObjectLiteral: false,
269
+ }],
270
+
271
+ 'arrow-parens': ['error', 'always'],
272
+
273
+ 'arrow-spacing': ['error', {
274
+ before: true,
275
+ after: true,
276
+ }],
277
+
278
+ 'constructor-super': ['error'],
279
+
280
+ 'generator-star-spacing': ['error', {
281
+ before: false,
282
+ after: true,
283
+ }],
284
+
285
+ 'no-class-assign': ['error'],
286
+
287
+ 'no-confusing-arrow': ['error', {
288
+ allowParens: true,
289
+ onlyOneSimpleParam: false,
290
+ }],
291
+
292
+ 'no-const-assign': ['error'],
293
+ 'no-dupe-class-members': ['error'],
294
+ 'no-duplicate-imports': ['off'],
295
+ 'no-new-symbol': ['error'],
296
+
297
+ 'no-restricted-imports': ['off', {
298
+ paths: [],
299
+ patterns: [],
300
+ }],
301
+
302
+ 'no-this-before-super': ['error'],
303
+ 'no-useless-computed-key': ['error'],
304
+ 'no-useless-constructor': ['error'],
305
+
306
+ 'no-useless-rename': ['error', {
307
+ ignoreDestructuring: false,
308
+ ignoreImport: false,
309
+ ignoreExport: false,
310
+ }],
311
+
312
+ 'no-var': ['error'],
313
+
314
+ 'object-shorthand': ['error', 'always', {
315
+ ignoreConstructors: false,
316
+ avoidQuotes: true,
317
+ }],
318
+
319
+ 'prefer-arrow-callback': ['error', {
320
+ allowNamedFunctions: false,
321
+ allowUnboundThis: true,
322
+ }],
323
+
324
+ 'prefer-const': ['error', {
325
+ destructuring: 'any',
326
+ ignoreReadBeforeAssign: true,
327
+ }],
328
+
329
+ 'prefer-numeric-literals': ['error'],
330
+ 'prefer-reflect': ['off'],
331
+ 'prefer-rest-params': ['error'],
332
+ 'prefer-spread': ['error'],
333
+ 'prefer-template': ['error'],
334
+ 'require-yield': ['error'],
335
+ 'rest-spread-spacing': ['error', 'never'],
336
+
337
+ 'sort-imports': ['off', {
338
+ ignoreCase: false,
339
+ ignoreDeclarationSort: false,
340
+ ignoreMemberSort: false,
341
+ memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],
342
+ }],
343
+
344
+ 'symbol-description': ['error'],
345
+ 'template-curly-spacing': ['error'],
346
+ 'yield-star-spacing': ['error', 'after'],
347
+ 'init-declarations': ['off'],
348
+ 'no-catch-shadow': ['off'],
349
+ 'no-delete-var': ['error'],
350
+ 'no-label-var': ['error'],
351
+
352
+ 'no-restricted-globals': [
353
+ 'error',
354
+ {
355
+ name: 'isFinite',
356
+ message: 'Use Number.isFinite instead https://github.com/airbnb/javascript#standard-library--isfinite',
357
+ },
358
+ {
359
+ name: 'isNaN',
360
+ message: 'Use Number.isNaN instead https://github.com/airbnb/javascript#standard-library--isnan',
361
+ },
362
+ 'addEventListener',
363
+ 'blur',
364
+ 'close',
365
+ 'closed',
366
+ 'confirm',
367
+ 'defaultStatus',
368
+ 'defaultstatus',
369
+ 'event',
370
+ 'external',
371
+ 'find',
372
+ 'focus',
373
+ 'frameElement',
374
+ 'frames',
375
+ 'history',
376
+ 'innerHeight',
377
+ 'innerWidth',
378
+ 'length',
379
+ 'location',
380
+ 'locationbar',
381
+ 'menubar',
382
+ 'moveBy',
383
+ 'moveTo',
384
+ 'name',
385
+ 'onblur',
386
+ 'onerror',
387
+ 'onfocus',
388
+ 'onload',
389
+ 'onresize',
390
+ 'onunload',
391
+ 'open',
392
+ 'opener',
393
+ 'opera',
394
+ 'outerHeight',
395
+ 'outerWidth',
396
+ 'pageXOffset',
397
+ 'pageYOffset',
398
+ 'parent',
399
+ 'print',
400
+ 'removeEventListener',
401
+ 'resizeBy',
402
+ 'resizeTo',
403
+ 'screen',
404
+ 'screenLeft',
405
+ 'screenTop',
406
+ 'screenX',
407
+ 'screenY',
408
+ 'scroll',
409
+ 'scrollbars',
410
+ 'scrollBy',
411
+ 'scrollTo',
412
+ 'scrollX',
413
+ 'scrollY',
414
+ 'self',
415
+ 'status',
416
+ 'statusbar',
417
+ 'stop',
418
+ 'toolbar',
419
+ 'top',
420
+ ],
421
+
422
+ 'no-shadow': ['error'],
423
+ 'no-shadow-restricted-names': ['error'],
424
+ 'no-undef': ['error'],
425
+ 'no-undef-init': ['error'],
426
+ 'no-undefined': ['off'],
427
+
428
+ 'no-unused-vars': ['error', {
429
+ vars: 'all',
430
+ args: 'after-used',
431
+ ignoreRestSiblings: true,
432
+ caughtErrors: 'none',
433
+ }],
434
+
435
+ 'no-use-before-define': ['error', {
436
+ functions: true,
437
+ classes: true,
438
+ variables: true,
439
+ }],
440
+
441
+ 'array-bracket-newline': ['off', 'consistent'],
442
+
443
+ 'array-element-newline': ['off', {
444
+ multiline: true,
445
+ minItems: 3,
446
+ }],
447
+
448
+ 'array-bracket-spacing': ['error', 'never'],
449
+ 'block-spacing': ['error', 'always'],
450
+
451
+ 'brace-style': ['error', '1tbs', {
452
+ allowSingleLine: true,
453
+ }],
454
+
455
+ camelcase: ['error', {
456
+ properties: 'never',
457
+ ignoreDestructuring: true,
458
+ ignoreImports: true,
459
+ ignoreGlobals: true,
460
+ }],
461
+
462
+ 'capitalized-comments': ['off', 'never', {
463
+ line: {
464
+ ignorePattern: '.*',
465
+ ignoreInlineComments: true,
466
+ ignoreConsecutiveComments: true,
467
+ },
468
+
469
+ block: {
470
+ ignorePattern: '.*',
471
+ ignoreInlineComments: true,
472
+ ignoreConsecutiveComments: true,
473
+ },
474
+ }],
475
+
476
+ 'comma-dangle': ['error', {
477
+ arrays: 'always-multiline',
478
+ objects: 'always-multiline',
479
+ imports: 'always-multiline',
480
+ exports: 'always-multiline',
481
+ functions: 'always-multiline',
482
+ }],
483
+
484
+ 'comma-spacing': ['error', {
485
+ before: false,
486
+ after: true,
487
+ }],
488
+
489
+ 'comma-style': ['error', 'last', {
490
+ exceptions: {
491
+ ArrayExpression: false,
492
+ ArrayPattern: false,
493
+ ArrowFunctionExpression: false,
494
+ CallExpression: false,
495
+ FunctionDeclaration: false,
496
+ FunctionExpression: false,
497
+ ImportDeclaration: false,
498
+ ObjectExpression: false,
499
+ ObjectPattern: false,
500
+ VariableDeclaration: false,
501
+ NewExpression: false,
502
+ },
503
+ }],
504
+
505
+ 'computed-property-spacing': ['error', 'never'],
506
+ 'consistent-this': ['off'],
507
+ 'eol-last': ['error', 'always'],
508
+ 'function-call-argument-newline': ['error', 'consistent'],
509
+ 'func-call-spacing': ['error', 'never'],
510
+
511
+ 'func-name-matching': ['off', 'always', {
512
+ includeCommonJSModuleExports: false,
513
+ considerPropertyDescriptor: true,
514
+ }],
515
+
516
+ 'function-paren-newline': ['error', 'multiline-arguments'],
517
+ 'id-denylist': ['off'],
518
+ 'id-length': ['off'],
519
+ 'id-match': ['off'],
520
+ 'implicit-arrow-linebreak': ['error', 'beside'],
521
+
522
+ indent: ['error', 2, {
523
+ SwitchCase: 1,
524
+ VariableDeclarator: 1,
525
+ outerIIFEBody: 1,
526
+
527
+ FunctionDeclaration: {
528
+ parameters: 1,
529
+ body: 1,
530
+ },
531
+
532
+ FunctionExpression: {
533
+ parameters: 1,
534
+ body: 1,
535
+ },
536
+
537
+ CallExpression: {
538
+ arguments: 1,
539
+ },
540
+
541
+ ArrayExpression: 1,
542
+ ObjectExpression: 1,
543
+ ImportDeclaration: 1,
544
+ flatTernaryExpressions: false,
545
+
546
+ ignoredNodes: [
547
+ 'JSXElement',
548
+ 'JSXElement > *',
549
+ 'JSXAttribute',
550
+ 'JSXIdentifier',
551
+ 'JSXNamespacedName',
552
+ 'JSXMemberExpression',
553
+ 'JSXSpreadAttribute',
554
+ 'JSXExpressionContainer',
555
+ 'JSXOpeningElement',
556
+ 'JSXClosingElement',
557
+ 'JSXFragment',
558
+ 'JSXOpeningFragment',
559
+ 'JSXClosingFragment',
560
+ 'JSXText',
561
+ 'JSXEmptyExpression',
562
+ 'JSXSpreadChild',
563
+ ],
564
+
565
+ ignoreComments: false,
566
+ offsetTernaryExpressions: false,
567
+ }],
568
+
569
+ 'jsx-quotes': ['off', 'prefer-double'],
570
+
571
+ 'key-spacing': ['error', {
572
+ beforeColon: false,
573
+ afterColon: true,
574
+ }],
575
+
576
+ 'keyword-spacing': ['error', {
577
+ before: true,
578
+ after: true,
579
+
580
+ overrides: {
581
+ return: {
582
+ after: true,
583
+ },
584
+
585
+ throw: {
586
+ after: true,
587
+ },
588
+
589
+ case: {
590
+ after: true,
591
+ },
592
+ },
593
+ }],
594
+
595
+ 'line-comment-position': ['off', {
596
+ position: 'above',
597
+ ignorePattern: '',
598
+ applyDefaultPatterns: true,
599
+ }],
600
+
601
+ 'linebreak-style': ['error', 'unix'],
602
+ 'lines-around-comment': ['off'],
603
+
604
+ 'lines-around-directive': ['error', {
605
+ before: 'always',
606
+ after: 'always',
607
+ }],
608
+
609
+ 'max-depth': ['off', 4],
610
+
611
+ 'max-len': ['error', 100, 2, {
612
+ ignoreUrls: true,
613
+ ignoreComments: false,
614
+ ignoreRegExpLiterals: true,
615
+ ignoreStrings: true,
616
+ ignoreTemplateLiterals: true,
617
+ }],
618
+
619
+ 'max-lines': ['off', {
620
+ max: 300,
621
+ skipBlankLines: true,
622
+ skipComments: true,
623
+ }],
624
+
625
+ 'max-lines-per-function': ['off', {
626
+ max: 50,
627
+ skipBlankLines: true,
628
+ skipComments: true,
629
+ IIFEs: true,
630
+ }],
631
+
632
+ 'max-nested-callbacks': ['off'],
633
+ 'max-params': ['off', 3],
634
+ 'max-statements': ['off', 10],
635
+
636
+ 'max-statements-per-line': ['off', {
637
+ max: 1,
638
+ }],
639
+
640
+ 'multiline-comment-style': ['off', 'starred-block'],
641
+ 'multiline-ternary': ['off', 'never'],
642
+
643
+ 'new-cap': ['error', {
644
+ newIsCap: true,
645
+ newIsCapExceptions: [],
646
+ capIsNew: false,
647
+ capIsNewExceptions: ['Immutable.Map', 'Immutable.Set', 'Immutable.List'],
648
+ properties: true,
649
+ }],
650
+
651
+ 'new-parens': ['error'],
652
+ 'newline-after-var': ['off'],
653
+ 'newline-before-return': ['off'],
654
+
655
+ 'newline-per-chained-call': ['error', {
656
+ ignoreChainWithDepth: 4,
657
+ }],
658
+
659
+ 'no-array-constructor': ['error'],
660
+ 'no-bitwise': ['error'],
661
+ 'no-inline-comments': ['off'],
662
+ 'no-lonely-if': ['error'],
663
+
664
+ 'no-mixed-operators': ['error', {
665
+ groups: [
666
+ ['%', '**'],
667
+ ['%', '+'],
668
+ ['%', '-'],
669
+ ['%', '*'],
670
+ ['%', '/'],
671
+ ['/', '*'],
672
+ ['&', '|', '<<', '>>', '>>>'],
673
+ ['==', '!=', '===', '!=='],
674
+ ['&&', '||'],
675
+ ],
676
+
677
+ allowSamePrecedence: false,
678
+ }],
679
+
680
+ 'no-mixed-spaces-and-tabs': ['error'],
681
+ 'no-multi-assign': ['error'],
682
+ 'no-negated-condition': ['off'],
683
+ 'no-nested-ternary': ['error'],
684
+ 'no-new-object': ['error'],
685
+ 'no-spaced-func': ['error'],
686
+ 'no-tabs': ['error'],
687
+ 'no-ternary': ['off'],
688
+
689
+ 'no-trailing-spaces': ['error', {
690
+ skipBlankLines: false,
691
+ ignoreComments: false,
692
+ }],
693
+
694
+ 'no-unneeded-ternary': ['error', {
695
+ defaultAssignment: false,
696
+ }],
697
+
698
+ 'no-whitespace-before-property': ['error'],
699
+
700
+ 'nonblock-statement-body-position': ['error', 'beside', {
701
+ overrides: {},
702
+ }],
703
+
704
+ 'object-curly-spacing': ['error', 'always'],
705
+
706
+ 'object-property-newline': ['error', {
707
+ allowAllPropertiesOnSameLine: true,
708
+ allowMultiplePropertiesPerLine: false,
709
+ }],
710
+
711
+ 'one-var': ['error', 'never'],
712
+ 'one-var-declaration-per-line': ['error', 'always'],
713
+ 'operator-assignment': ['error', 'always'],
714
+
715
+ 'operator-linebreak': ['error', 'before', {
716
+ overrides: {
717
+ '=': 'none',
718
+ },
719
+ }],
720
+
721
+ 'padded-blocks': ['error', {
722
+ blocks: 'never',
723
+ classes: 'never',
724
+ switches: 'never',
725
+ }, {
726
+ allowSingleLineBlocks: true,
727
+ }],
728
+
729
+ 'padding-line-between-statements': ['off'],
730
+ 'prefer-exponentiation-operator': ['error'],
731
+ 'prefer-object-spread': ['error'],
732
+
733
+ 'quote-props': ['error', 'as-needed', {
734
+ keywords: false,
735
+ unnecessary: true,
736
+ numbers: false,
737
+ }],
738
+
739
+ quotes: ['error', 'single', {
740
+ avoidEscape: true,
741
+ }],
742
+
743
+ 'require-jsdoc': ['off'],
744
+ semi: ['error', 'always'],
745
+
746
+ 'semi-spacing': ['error', {
747
+ before: false,
748
+ after: true,
749
+ }],
750
+
751
+ 'semi-style': ['error', 'last'],
752
+
753
+ 'sort-keys': ['off', 'asc', {
754
+ caseSensitive: false,
755
+ natural: true,
756
+ }],
757
+
758
+ 'sort-vars': ['off'],
759
+ 'space-before-blocks': ['error'],
760
+ 'space-in-parens': ['error', 'never'],
761
+ 'space-infix-ops': ['error'],
762
+
763
+ 'space-unary-ops': ['error', {
764
+ words: true,
765
+ nonwords: false,
766
+ overrides: {},
767
+ }],
768
+
769
+ 'spaced-comment': ['error', 'always', {
770
+ line: {
771
+ exceptions: ['-', '+'],
772
+ markers: ['=', '!', '/'],
773
+ },
774
+
775
+ block: {
776
+ exceptions: ['-', '+'],
777
+ markers: ['=', '!', ':', '::'],
778
+ balanced: true,
779
+ },
780
+ }],
781
+
782
+ 'switch-colon-spacing': ['error', {
783
+ after: true,
784
+ before: false,
785
+ }],
786
+
787
+ 'template-tag-spacing': ['error', 'never'],
788
+ 'unicode-bom': ['error', 'never'],
789
+ 'wrap-regex': ['off'],
790
+ 'callback-return': ['off'],
791
+ 'handle-callback-err': ['off'],
792
+ 'no-buffer-constructor': ['error'],
793
+ 'no-mixed-requires': ['off', false],
794
+ 'no-new-require': ['error'],
795
+ 'no-path-concat': ['error'],
796
+ 'no-process-env': ['off'],
797
+ 'no-process-exit': ['off'],
798
+ 'no-restricted-modules': ['off'],
799
+ 'no-sync': ['off'],
800
+ 'for-direction': ['error'],
801
+
802
+ 'getter-return': ['error', {
803
+ allowImplicit: true,
804
+ }],
805
+
806
+ 'no-async-promise-executor': ['error'],
807
+ 'no-await-in-loop': ['error'],
808
+ 'no-compare-neg-zero': ['error'],
809
+ 'no-cond-assign': ['error', 'always'],
810
+ 'no-constant-condition': ['warn'],
811
+ 'no-control-regex': ['error'],
812
+ 'no-debugger': ['error'],
813
+ 'no-dupe-args': ['error'],
814
+ 'no-dupe-else-if': ['error'],
815
+ 'no-dupe-keys': ['error'],
816
+ 'no-duplicate-case': ['error'],
817
+ 'no-empty': ['error'],
818
+ 'no-empty-character-class': ['error'],
819
+ 'no-ex-assign': ['error'],
820
+ 'no-extra-boolean-cast': ['error'],
821
+
822
+ 'no-extra-parens': ['off', 'all', {
823
+ conditionalAssign: true,
824
+ nestedBinaryExpressions: false,
825
+ returnAssign: false,
826
+ ignoreJSX: 'all',
827
+ enforceForArrowConditionals: false,
828
+ }],
829
+
830
+ 'no-extra-semi': ['error'],
831
+ 'no-func-assign': ['error'],
832
+ 'no-import-assign': ['error'],
833
+ 'no-inner-declarations': ['error', 'functions', { blockScopedFunctions: 'disallow' }],
834
+ 'no-invalid-regexp': ['error'],
835
+ 'no-irregular-whitespace': ['error'],
836
+ 'no-loss-of-precision': ['error'],
837
+ 'no-misleading-character-class': ['error'],
838
+ 'no-obj-calls': ['error'],
839
+ 'no-promise-executor-return': ['error'],
840
+ 'no-prototype-builtins': ['error'],
841
+ 'no-regex-spaces': ['error'],
842
+ 'no-setter-return': ['error'],
843
+ 'no-sparse-arrays': ['error'],
844
+ 'no-template-curly-in-string': ['error'],
845
+ 'no-unexpected-multiline': ['error'],
846
+ 'no-unreachable': ['error'],
847
+
848
+ 'no-unreachable-loop': ['error', {
849
+ ignore: [],
850
+ }],
851
+
852
+ 'no-unsafe-finally': ['error'],
853
+ 'no-unsafe-negation': ['error'],
854
+
855
+ 'no-unsafe-optional-chaining': ['error', {
856
+ disallowArithmeticOperators: true,
857
+ }],
858
+
859
+ 'no-unused-private-class-members': ['off'],
860
+ 'no-useless-backreference': ['error'],
861
+ 'no-negated-in-lhs': ['off'],
862
+ 'require-atomic-updates': ['off'],
863
+ 'use-isnan': ['error'],
864
+ 'valid-jsdoc': ['off'],
865
+
866
+ 'valid-typeof': ['error', {
867
+ requireStringLiterals: true,
868
+ }],
869
+
870
+ 'accessor-pairs': ['off'],
871
+
872
+ 'array-callback-return': ['error', {
873
+ allowImplicit: true,
874
+ checkForEach: false,
875
+ allowVoid: false,
876
+ }],
877
+
878
+ 'block-scoped-var': ['error'],
879
+ complexity: ['off', 20],
880
+ curly: ['error', 'multi-line'],
881
+ 'default-case-last': ['error'],
882
+ 'default-param-last': ['error'],
883
+
884
+ 'dot-notation': ['error', {
885
+ allowKeywords: true,
886
+ allowPattern: '',
887
+ }],
888
+
889
+ 'dot-location': ['error', 'property'],
890
+
891
+ eqeqeq: ['error', 'always', {
892
+ null: 'ignore',
893
+ }],
894
+
895
+ 'grouped-accessor-pairs': ['error'],
896
+ 'guard-for-in': ['error'],
897
+ 'max-classes-per-file': ['error', 1],
898
+ 'no-alert': ['warn'],
899
+ 'no-caller': ['error'],
900
+ 'no-case-declarations': ['error'],
901
+ 'no-constructor-return': ['error'],
902
+ 'no-div-regex': ['off'],
903
+
904
+ 'no-else-return': ['error', {
905
+ allowElseIf: false,
906
+ }],
907
+
908
+ 'no-empty-function': ['error', {
909
+ allow: ['arrowFunctions', 'functions', 'methods'],
910
+ }],
911
+
912
+ 'no-empty-pattern': ['error'],
913
+ 'no-eq-null': ['off'],
914
+ 'no-eval': ['error'],
915
+ 'no-extend-native': ['error'],
916
+ 'no-extra-bind': ['error'],
917
+ 'no-extra-label': ['error'],
918
+ 'no-fallthrough': ['error'],
919
+
920
+ 'no-global-assign': ['error', {
921
+ exceptions: [],
922
+ }],
923
+
924
+ 'no-native-reassign': ['off'],
925
+
926
+ 'no-implicit-coercion': ['off', {
927
+ boolean: false,
928
+ number: true,
929
+ string: true,
930
+ allow: [],
931
+ }],
932
+
933
+ 'no-implicit-globals': ['off'],
934
+ 'no-implied-eval': ['error'],
935
+ 'no-invalid-this': ['off'],
936
+ 'no-iterator': ['error'],
937
+
938
+ 'no-labels': ['error', {
939
+ allowLoop: false,
940
+ allowSwitch: false,
941
+ }],
942
+
943
+ 'no-lone-blocks': ['error'],
944
+ 'no-loop-func': ['error'],
945
+
946
+ 'no-magic-numbers': ['off', {
947
+ ignore: [],
948
+ ignoreArrayIndexes: true,
949
+ enforceConst: true,
950
+ detectObjects: false,
951
+ }],
952
+
953
+ 'no-multi-spaces': ['error', {
954
+ ignoreEOLComments: false,
955
+ }],
956
+
957
+ 'no-multi-str': ['error'],
958
+ 'no-new': ['error'],
959
+ 'no-new-func': ['error'],
960
+ 'no-new-wrappers': ['error'],
961
+ 'no-nonoctal-decimal-escape': ['error'],
962
+ 'no-octal': ['error'],
963
+ 'no-octal-escape': ['error'],
964
+
965
+ 'no-param-reassign': ['error', {
966
+ props: true,
967
+
968
+ ignorePropertyModificationsFor: [
969
+ 'acc',
970
+ 'accumulator',
971
+ 'e',
972
+ 'ctx',
973
+ 'context',
974
+ 'req',
975
+ 'request',
976
+ 'res',
977
+ 'response',
978
+ '$scope',
979
+ 'staticContext',
980
+ 'mutable',
981
+ ],
982
+ }],
983
+
984
+ 'no-proto': ['error'],
985
+ 'no-redeclare': ['error'],
986
+
987
+ 'no-restricted-properties': ['error', {
988
+ object: 'arguments',
989
+ property: 'callee',
990
+ message: 'arguments.callee is deprecated',
991
+ }, {
992
+ object: 'global',
993
+ property: 'isFinite',
994
+ message: 'Please use Number.isFinite instead',
995
+ }, {
996
+ object: 'self',
997
+ property: 'isFinite',
998
+ message: 'Please use Number.isFinite instead',
999
+ }, {
1000
+ object: 'window',
1001
+ property: 'isFinite',
1002
+ message: 'Please use Number.isFinite instead',
1003
+ }, {
1004
+ object: 'global',
1005
+ property: 'isNaN',
1006
+ message: 'Please use Number.isNaN instead',
1007
+ }, {
1008
+ object: 'self',
1009
+ property: 'isNaN',
1010
+ message: 'Please use Number.isNaN instead',
1011
+ }, {
1012
+ object: 'window',
1013
+ property: 'isNaN',
1014
+ message: 'Please use Number.isNaN instead',
1015
+ }, {
1016
+ property: '__defineGetter__',
1017
+ message: 'Please use Object.defineProperty instead.',
1018
+ }, {
1019
+ property: '__defineSetter__',
1020
+ message: 'Please use Object.defineProperty instead.',
1021
+ }, {
1022
+ object: 'Math',
1023
+ property: 'pow',
1024
+ message: 'Use the exponentiation operator (**) instead.',
1025
+ }],
1026
+
1027
+ 'no-return-assign': ['error', 'always'],
1028
+ 'no-return-await': ['error'],
1029
+ 'no-script-url': ['error'],
1030
+
1031
+ 'no-self-assign': ['error', {
1032
+ props: true,
1033
+ }],
1034
+
1035
+ 'no-self-compare': ['error'],
1036
+ 'no-sequences': ['error'],
1037
+ 'no-throw-literal': ['error'],
1038
+ 'no-unmodified-loop-condition': ['off'],
1039
+
1040
+ 'no-unused-expressions': ['error', {
1041
+ allowShortCircuit: false,
1042
+ allowTernary: false,
1043
+ allowTaggedTemplates: false,
1044
+ enforceForJSX: false,
1045
+ }],
1046
+
1047
+ 'no-unused-labels': ['error'],
1048
+ 'no-useless-call': ['off'],
1049
+ 'no-useless-catch': ['error'],
1050
+ 'no-useless-concat': ['error'],
1051
+ 'no-useless-escape': ['error'],
1052
+ 'no-useless-return': ['error'],
1053
+ 'no-void': ['error'],
1054
+
1055
+ 'no-warning-comments': ['off', {
1056
+ terms: ['todo', 'fixme', 'xxx'],
1057
+ location: 'start',
1058
+ }],
1059
+
1060
+ 'no-with': ['error'],
1061
+
1062
+ 'prefer-promise-reject-errors': ['error', {
1063
+ allowEmptyReject: true,
1064
+ }],
1065
+
1066
+ 'prefer-named-capture-group': ['off'],
1067
+
1068
+ 'prefer-regex-literals': ['error', {
1069
+ disallowRedundantWrapping: true,
1070
+ }],
1071
+
1072
+ radix: ['error'],
1073
+ 'require-await': ['off'],
1074
+ 'require-unicode-regexp': ['off'],
1075
+ 'vars-on-top': ['error'],
1076
+
1077
+ 'wrap-iife': ['error', 'outside', {
1078
+ functionPrototypeMethods: false,
1079
+ }],
1080
+
1081
+ yoda: ['error'],
1082
+ },
1083
+ },
1084
+ ];