@enormora/eslint-config-base 0.0.63 → 0.0.65

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.
@@ -1,7 +1,725 @@
1
- import 'eslint-plugin-array-func';
2
- import 'eslint-plugin-no-barrel-files';
3
- import 'eslint-plugin-promise';
4
- import 'eslint-plugin-regexp';
5
- import 'eslint-plugin-sonarjs';
6
- import 'eslint-plugin-unicorn';
1
+ import arrayFunctionPlugin from 'eslint-plugin-array-func';
2
+ import noBarrelFiles from 'eslint-plugin-no-barrel-files';
3
+ import promisePlugin from 'eslint-plugin-promise';
4
+ import * as regexpPlugin from 'eslint-plugin-regexp';
5
+ import sonarjsPlugin from 'eslint-plugin-sonarjs';
6
+ import unicornPlugin from 'eslint-plugin-unicorn';
7
+ const maxSwitchCases = 6;
8
+ export const bestPracticesRuleSet = {
9
+ plugins: {
10
+ unicorn: unicornPlugin,
11
+ promise: promisePlugin,
12
+ 'array-func': arrayFunctionPlugin,
13
+ sonarjs: sonarjsPlugin,
14
+ 'no-barrel-files': noBarrelFiles,
15
+ regexp: regexpPlugin
16
+ },
17
+ settings: {},
18
+ rules: {
19
+ 'unicorn/string-content': 'off',
20
+ 'unicorn/consistent-template-literal-escape': 'error',
21
+ 'unicorn/prefer-string-trim-start-end': 'error',
22
+ 'unicorn/prefer-set-has': 'error',
23
+ 'unicorn/prefer-string-replace-all': 'error',
24
+ 'unicorn/prefer-number-properties': ['error', { checkInfinity: true, checkNaN: true }],
25
+ 'unicorn/prefer-negative-index': 'error',
26
+ 'unicorn/prefer-modern-dom-apis': 'off',
27
+ 'unicorn/no-null': 'off',
28
+ 'unicorn/catch-error-name': 'error',
29
+ 'unicorn/consistent-function-scoping': 'off',
30
+ 'unicorn/custom-error-definition': 'error',
31
+ 'unicorn/error-message': 'error',
32
+ 'unicorn/escape-case': 'error',
33
+ 'unicorn/expiring-todo-comments': 'error',
34
+ 'unicorn/explicit-length-check': 'error',
35
+ 'unicorn/no-useless-length-check': 'error',
36
+ 'unicorn/filename-case': 'off',
37
+ 'unicorn/no-immediate-mutation': 'error',
38
+ 'unicorn/new-for-builtins': 'error',
39
+ 'unicorn/no-abusive-eslint-disable': 'error',
40
+ 'unicorn/no-console-spaces': 'error',
41
+ 'unicorn/no-array-callback-reference': 'off',
42
+ 'unicorn/no-for-loop': 'error',
43
+ 'unicorn/no-keyword-prefix': 'off',
44
+ 'unicorn/no-nested-ternary': 'off',
45
+ 'unicorn/no-new-buffer': 'error',
46
+ 'unicorn/no-process-exit': 'error',
47
+ 'unicorn/no-unreadable-array-destructuring': 'error',
48
+ 'unicorn/no-unused-properties': 'error',
49
+ 'unicorn/no-zero-fractions': 'error',
50
+ 'unicorn/number-literal-case': 'error',
51
+ 'unicorn/prefer-add-event-listener': 'error',
52
+ 'unicorn/prefer-keyboard-event-key': 'error',
53
+ 'unicorn/prefer-array-flat-map': 'error',
54
+ 'unicorn/prefer-includes': 'error',
55
+ 'unicorn/prefer-dom-node-append': 'error',
56
+ 'unicorn/prefer-dom-node-remove': 'error',
57
+ 'unicorn/prefer-query-selector': 'error',
58
+ 'unicorn/prefer-reflect-apply': 'error',
59
+ 'unicorn/prefer-spread': 'off',
60
+ 'unicorn/prefer-string-starts-ends-with': 'error',
61
+ 'unicorn/prefer-string-slice': 'error',
62
+ 'unicorn/prefer-dom-node-text-content': 'error',
63
+ 'unicorn/prefer-type-error': 'error',
64
+ 'unicorn/name-replacements': 'off',
65
+ 'unicorn/throw-new-error': 'error',
66
+ 'unicorn/no-array-reduce': 'off',
67
+ 'unicorn/no-useless-undefined': 'off',
68
+ 'unicorn/prefer-optional-catch-binding': 'error',
69
+ 'unicorn/no-object-as-default-parameter': 'off',
70
+ 'unicorn/prefer-array-find': 'error',
71
+ 'unicorn/import-style': 'off',
72
+ 'unicorn/numeric-separators-style': 'error',
73
+ 'unicorn/prefer-math-trunc': 'error',
74
+ 'unicorn/prefer-ternary': 'error',
75
+ 'unicorn/prefer-array-some': 'error',
76
+ 'unicorn/prefer-default-parameters': 'error',
77
+ 'unicorn/no-lonely-if': 'error',
78
+ 'unicorn/empty-brace-spaces': 'off',
79
+ 'unicorn/prefer-date-now': 'error',
80
+ 'unicorn/consistent-destructuring': 'off',
81
+ 'unicorn/no-new-array': 'error',
82
+ 'unicorn/no-this-assignment': 'error',
83
+ 'unicorn/prefer-array-index-of': 'error',
84
+ 'unicorn/prefer-regexp-test': 'error',
85
+ 'unicorn/no-static-only-class': 'error',
86
+ 'unicorn/prefer-array-flat': 'error',
87
+ 'unicorn/prefer-module': 'off',
88
+ 'unicorn/prefer-node-protocol': 'error',
89
+ 'unicorn/prefer-switch': 'off',
90
+ 'unicorn/no-document-cookie': 'off',
91
+ 'unicorn/require-array-join-separator': 'off',
92
+ 'unicorn/require-number-to-fixed-digits-argument': 'off',
93
+ 'unicorn/prefer-prototype-methods': 'off',
94
+ 'unicorn/no-array-method-this-argument': 'off',
95
+ 'unicorn/require-post-message-target-origin': 'error',
96
+ 'unicorn/no-useless-spread': 'error',
97
+ 'unicorn/prefer-object-from-entries': 'error',
98
+ 'unicorn/no-useless-fallback-in-spread': 'error',
99
+ 'unicorn/no-invalid-remove-event-listener': 'off',
100
+ 'unicorn/template-indent': 'error',
101
+ 'unicorn/no-empty-file': 'error',
102
+ 'unicorn/prefer-export-from': 'error',
103
+ 'unicorn/no-await-expression-member': 'error',
104
+ 'unicorn/prefer-code-point': 'error',
105
+ 'unicorn/no-thenable': 'off',
106
+ 'unicorn/no-barrel-files': 'off',
107
+ 'unicorn/no-useless-promise-resolve-reject': 'error',
108
+ 'unicorn/relative-url-style': 'off',
109
+ 'unicorn/text-encoding-identifier-case': 'off',
110
+ 'unicorn/no-useless-switch-case': 'error',
111
+ 'unicorn/prefer-modern-math-apis': 'error',
112
+ 'unicorn/no-unreadable-iife': 'error',
113
+ 'unicorn/prefer-native-coercion-functions': 'error',
114
+ 'unicorn/prefer-event-target': 'off',
115
+ 'unicorn/prefer-logical-operator-over-ternary': 'off',
116
+ 'unicorn/no-unnecessary-await': 'error',
117
+ 'unicorn/switch-case-braces': 'off',
118
+ 'unicorn/no-negated-condition': 'error',
119
+ 'unicorn/no-typeof-undefined': 'error',
120
+ 'unicorn/prefer-set-size': 'error',
121
+ 'unicorn/prefer-blob-reading-methods': 'error',
122
+ 'unicorn/prefer-top-level-await': 'off',
123
+ 'unicorn/prefer-at': 'error',
124
+ 'unicorn/no-unnecessary-polyfills': 'off',
125
+ 'unicorn/no-single-promise-in-promise-methods': 'error',
126
+ 'unicorn/no-await-in-promise-methods': 'error',
127
+ 'unicorn/no-anonymous-default-export': 'error',
128
+ 'unicorn/consistent-empty-array-spread': 'error',
129
+ 'unicorn/no-invalid-fetch-options': 'error',
130
+ 'unicorn/no-magic-array-flat-depth': 'error',
131
+ 'unicorn/no-negation-in-equality-check': 'error',
132
+ 'unicorn/prefer-string-raw': 'off',
133
+ 'unicorn/prefer-structured-clone': 'error',
134
+ 'unicorn/consistent-existence-index-check': 'error',
135
+ 'unicorn/prefer-global-this': 'error',
136
+ 'unicorn/prefer-math-min-max': 'error',
137
+ 'unicorn/consistent-assert': 'error',
138
+ 'unicorn/consistent-date-clone': 'error',
139
+ 'unicorn/no-accessor-recursion': 'error',
140
+ 'unicorn/no-array-reverse': 'error',
141
+ 'unicorn/no-array-sort': 'error',
142
+ 'unicorn/no-instanceof-builtins': 'error',
143
+ 'unicorn/no-named-default': 'error',
144
+ 'unicorn/no-unnecessary-array-flat-depth': 'error',
145
+ 'unicorn/no-unnecessary-array-splice-count': 'error',
146
+ 'unicorn/no-unnecessary-slice-end': 'error',
147
+ 'unicorn/no-useless-iterator-to-array': 'error',
148
+ 'unicorn/no-useless-error-capture-stack-trace': 'error',
149
+ 'unicorn/prefer-bigint-literals': 'error',
150
+ 'unicorn/prefer-class-fields': 'error',
151
+ 'unicorn/prefer-classlist-toggle': 'error',
152
+ 'unicorn/prefer-import-meta-properties': 'off',
153
+ 'unicorn/prefer-simple-condition-first': 'error',
154
+ 'unicorn/prefer-single-call': 'error',
155
+ 'unicorn/require-module-attributes': 'error',
156
+ 'unicorn/require-module-specifiers': 'error',
157
+ 'unicorn/no-useless-collection-argument': 'error',
158
+ 'unicorn/prefer-response-static-json': 'error',
159
+ 'unicorn/consistent-conditional-object-spread': ['error', 'ternary'],
160
+ 'unicorn/consistent-tuple-labels': 'error',
161
+ 'unicorn/default-export-style': 'off',
162
+ 'unicorn/no-accidental-bitwise-operator': 'error',
163
+ 'unicorn/no-array-concat-in-loop': 'error',
164
+ 'unicorn/no-array-front-mutation': 'error',
165
+ 'unicorn/no-array-sort-for-min-max': 'error',
166
+ 'unicorn/no-async-promise-finally': 'error',
167
+ 'unicorn/no-boolean-sort-comparator': 'error',
168
+ 'unicorn/no-chained-comparison': 'error',
169
+ 'unicorn/no-collection-bracket-access': 'error',
170
+ 'unicorn/no-constant-zero-expression': 'error',
171
+ 'unicorn/no-double-comparison': 'error',
172
+ 'unicorn/no-duplicate-if-branches': 'error',
173
+ 'unicorn/no-duplicate-logical-operands': 'error',
174
+ 'unicorn/no-impossible-length-comparison': 'error',
175
+ 'unicorn/no-invalid-character-comparison': 'error',
176
+ 'unicorn/no-invalid-well-known-symbol-methods': 'error',
177
+ 'unicorn/no-loop-iterable-mutation': 'error',
178
+ 'unicorn/no-misrefactored-assignment': 'error',
179
+ 'unicorn/no-nonstandard-builtin-properties': 'error',
180
+ 'unicorn/no-unnecessary-array-flat-map': 'error',
181
+ 'unicorn/no-unnecessary-boolean-comparison': 'error',
182
+ 'unicorn/no-unnecessary-fetch-options': 'error',
183
+ 'unicorn/no-unsafe-promise-all-settled-values': 'error',
184
+ 'unicorn/no-useless-compound-assignment': 'error',
185
+ 'unicorn/no-useless-delete-check': 'error',
186
+ 'unicorn/no-useless-logical-operand': 'error',
187
+ 'unicorn/no-xor-as-exponentiation': 'error',
188
+ 'unicorn/prefer-abort-signal-any': 'error',
189
+ 'unicorn/prefer-abort-signal-timeout': 'error',
190
+ 'unicorn/prefer-aggregate-error': 'error',
191
+ 'unicorn/prefer-array-from-async': 'error',
192
+ 'unicorn/prefer-array-from-range': 'error',
193
+ 'unicorn/prefer-array-iterable-methods': 'error',
194
+ 'unicorn/prefer-block-statement-over-iife': 'error',
195
+ 'unicorn/prefer-boolean-return': 'off',
196
+ 'unicorn/prefer-continue': 'error',
197
+ 'unicorn/prefer-error-is-error': 'off',
198
+ 'unicorn/prefer-flat-math-min-max': 'error',
199
+ 'unicorn/prefer-group-by': 'off',
200
+ 'unicorn/prefer-hoisting-branch-code': 'error',
201
+ 'unicorn/prefer-iterator-helpers': 'off',
202
+ 'unicorn/prefer-math-constants': 'error',
203
+ 'unicorn/prefer-promise-try': 'off',
204
+ 'unicorn/prefer-promise-with-resolvers': 'off',
205
+ 'unicorn/prefer-regexp-escape': 'off',
206
+ 'unicorn/prefer-set-methods': 'off',
207
+ 'unicorn/prefer-simplified-conditions': 'error',
208
+ 'unicorn/prefer-single-replace': 'error',
209
+ 'unicorn/prefer-unary-minus': 'error',
210
+ 'unicorn/prefer-url-can-parse': 'error',
211
+ 'unicorn/prefer-url-search-parameters': 'error',
212
+ 'unicorn/prefer-while-loop-condition': 'error',
213
+ 'unicorn/isolated-functions': 'off',
214
+ 'unicorn/switch-case-break-position': 'error',
215
+ 'unicorn/class-reference-in-static-methods': 'error',
216
+ 'unicorn/comment-content': 'off',
217
+ 'unicorn/consistent-boolean-name': 'off',
218
+ 'unicorn/consistent-class-member-order': 'off',
219
+ 'unicorn/consistent-compound-words': 'error',
220
+ 'unicorn/consistent-export-decorator-position': 'error',
221
+ 'unicorn/consistent-arrow-return-style': 'error',
222
+ 'unicorn/consistent-function-style': 'off',
223
+ 'unicorn/consistent-json-file-read': 'error',
224
+ 'unicorn/consistent-optional-chaining': 'error',
225
+ 'unicorn/explicit-timer-delay': 'error',
226
+ 'unicorn/id-match': 'off',
227
+ 'unicorn/iteration-fallback-style': 'error',
228
+ 'unicorn/logical-assignment-operators': 'off',
229
+ 'unicorn/max-nested-calls': 'off',
230
+ 'unicorn/no-array-fill-with-reference-type': 'error',
231
+ 'unicorn/no-array-from-fill': 'error',
232
+ 'unicorn/no-array-splice': 'error',
233
+ 'unicorn/no-asterisk-prefix-in-documentation-comments': 'off',
234
+ 'unicorn/no-break-in-nested-loop': 'error',
235
+ 'unicorn/no-computed-property-existence-check': 'error',
236
+ 'unicorn/no-confusing-array-splice': 'error',
237
+ 'unicorn/no-confusing-array-with': 'error',
238
+ 'unicorn/no-declarations-before-early-exit': 'off',
239
+ 'unicorn/no-duplicate-loops': 'error',
240
+ 'unicorn/no-duplicate-set-values': 'error',
241
+ 'unicorn/no-error-property-assignment': 'error',
242
+ 'unicorn/no-exports-in-scripts': 'error',
243
+ 'unicorn/no-for-each': 'off',
244
+ 'unicorn/no-global-object-property-assignment': 'error',
245
+ 'unicorn/no-incorrect-template-string-interpolation': 'off',
246
+ 'unicorn/no-invalid-argument-count': 'error',
247
+ 'unicorn/no-manually-wrapped-comments': 'off',
248
+ 'unicorn/no-mismatched-map-key': 'error',
249
+ 'unicorn/no-negated-array-predicate': 'error',
250
+ 'unicorn/no-negated-comparison': 'error',
251
+ 'unicorn/no-non-function-verb-prefix': 'off',
252
+ 'unicorn/no-object-methods-with-collections': 'error',
253
+ 'unicorn/no-optional-chaining-on-undeclared-variable': 'error',
254
+ 'unicorn/no-redundant-comparison': 'error',
255
+ 'unicorn/no-return-array-push': 'error',
256
+ 'unicorn/no-subtraction-comparison': 'error',
257
+ 'unicorn/no-this-outside-of-class': 'error',
258
+ 'unicorn/no-top-level-assignment-in-function': 'error',
259
+ 'unicorn/no-top-level-side-effects': 'off',
260
+ 'unicorn/no-uncalled-method': 'error',
261
+ 'unicorn/no-undeclared-class-members': 'error',
262
+ 'unicorn/no-unnecessary-global-this': 'error',
263
+ 'unicorn/no-unnecessary-nested-ternary': 'error',
264
+ 'unicorn/no-unnecessary-splice': 'error',
265
+ 'unicorn/no-unreadable-for-of-expression': 'error',
266
+ 'unicorn/no-unreadable-new-expression': 'error',
267
+ 'unicorn/no-unreadable-object-destructuring': 'error',
268
+ 'unicorn/no-unsafe-buffer-conversion': 'error',
269
+ 'unicorn/no-unsafe-property-key': 'error',
270
+ 'unicorn/no-unsafe-sqlite-interpolation': 'off',
271
+ 'unicorn/no-unsafe-string-replacement': 'error',
272
+ 'unicorn/no-unused-array-method-return': 'error',
273
+ 'unicorn/no-useless-boolean-cast': 'error',
274
+ 'unicorn/no-useless-coercion': 'error',
275
+ 'unicorn/no-useless-concat': 'error',
276
+ 'unicorn/no-useless-continue': 'error',
277
+ 'unicorn/no-useless-else': 'error',
278
+ 'unicorn/no-useless-override': 'error',
279
+ 'unicorn/no-useless-recursion': 'off',
280
+ 'unicorn/no-useless-template-literals': 'error',
281
+ 'unicorn/operator-assignment': 'off',
282
+ 'unicorn/prefer-array-from-map': 'error',
283
+ 'unicorn/prefer-array-last-methods': 'error',
284
+ 'unicorn/prefer-array-slice': 'error',
285
+ 'unicorn/prefer-await': 'off',
286
+ 'unicorn/prefer-direct-iteration': 'error',
287
+ 'unicorn/prefer-dispose': 'off',
288
+ 'unicorn/prefer-early-return': 'off',
289
+ 'unicorn/prefer-else-if': 'error',
290
+ 'unicorn/prefer-get-or-insert-computed': 'off',
291
+ 'unicorn/prefer-global-number-constants': 'off',
292
+ 'unicorn/prefer-has-check': 'error',
293
+ 'unicorn/prefer-https': 'error',
294
+ 'unicorn/prefer-identifier-import-export-specifiers': 'error',
295
+ 'unicorn/prefer-includes-over-repeated-comparisons': 'error',
296
+ 'unicorn/prefer-iterable-in-constructor': 'error',
297
+ 'unicorn/prefer-iterator-concat': 'off',
298
+ 'unicorn/prefer-iterator-to-array': 'error',
299
+ 'unicorn/prefer-iterator-to-array-at-end': 'error',
300
+ 'unicorn/prefer-map-from-entries': 'error',
301
+ 'unicorn/prefer-math-abs': 'error',
302
+ 'unicorn/prefer-minimal-ternary': 'error',
303
+ 'unicorn/prefer-number-coercion': 'off',
304
+ 'unicorn/prefer-number-is-safe-integer': 'error',
305
+ 'unicorn/prefer-object-define-properties': 'error',
306
+ 'unicorn/prefer-object-destructuring-defaults': 'error',
307
+ 'unicorn/prefer-object-iterable-methods': 'error',
308
+ 'unicorn/prefer-private-class-fields': 'off',
309
+ 'unicorn/prefer-queue-microtask': 'error',
310
+ 'unicorn/prefer-short-arrow-method': 'off',
311
+ 'unicorn/prefer-simple-sort-comparator': 'error',
312
+ 'unicorn/prefer-single-array-predicate': 'error',
313
+ 'unicorn/prefer-single-object-destructuring': 'error',
314
+ 'unicorn/prefer-smaller-scope': 'error',
315
+ 'unicorn/prefer-split-limit': 'error',
316
+ 'unicorn/prefer-string-match-all': 'error',
317
+ 'unicorn/prefer-string-pad-start-end': 'error',
318
+ 'unicorn/prefer-string-repeat': 'error',
319
+ 'unicorn/prefer-temporal': 'off',
320
+ 'unicorn/prefer-type-literal-last': 'error',
321
+ 'unicorn/prefer-uint8array-base64': 'off',
322
+ 'unicorn/prefer-unicode-code-point-escapes': 'error',
323
+ 'unicorn/prefer-url-href': 'error',
324
+ 'unicorn/require-array-sort-compare': 'error',
325
+ 'unicorn/require-proxy-trap-boolean-return': 'error',
326
+ 'unicorn/try-complexity': 'error',
327
+ 'unicorn/no-missing-local-resource': 'off',
328
+ 'unicorn/no-multiple-promise-resolver-calls': 'error',
329
+ 'unicorn/no-shorthand-property-overrides': 'off',
330
+ 'unicorn/no-transition-all': 'off',
331
+ 'unicorn/no-unnecessary-string-trim': 'error',
332
+ 'unicorn/no-useless-re-export': 'error',
333
+ 'unicorn/prefer-explicit-viewport-units': 'off',
334
+ 'unicorn/prefer-then-catch': 'error',
335
+ 'unicorn/require-frontmatter-fields': 'off',
336
+ 'unicorn/single-line-block-comment-style': 'error',
337
+ 'array-func/from-map': 'error',
338
+ 'array-func/no-unnecessary-this-arg': 'error',
339
+ 'array-func/prefer-array-from': 'error',
340
+ 'array-func/avoid-reverse': 'error',
341
+ 'array-func/prefer-flat-map': 'error',
342
+ 'array-func/prefer-flat': 'error',
343
+ 'sonarjs/anchor-precedence': 'error',
344
+ 'sonarjs/argument-type': 'error',
345
+ 'sonarjs/arguments-order': 'error',
346
+ 'sonarjs/arguments-usage': 'off',
347
+ 'sonarjs/array-callback-without-return': 'off',
348
+ 'sonarjs/array-constructor': 'off',
349
+ 'sonarjs/arrow-function-convention': 'off',
350
+ 'sonarjs/assertions-in-test-cases': 'off',
351
+ 'sonarjs/assertions-in-tests': 'off',
352
+ 'sonarjs/async-test-assertions': 'off',
353
+ 'sonarjs/aws-apigateway-public-api': 'off',
354
+ 'sonarjs/aws-ec2-rds-dms-public': 'off',
355
+ 'sonarjs/aws-ec2-unencrypted-ebs-volume': 'off',
356
+ 'sonarjs/aws-efs-unencrypted': 'off',
357
+ 'sonarjs/aws-iam-all-privileges': 'off',
358
+ 'sonarjs/aws-iam-all-resources-accessible': 'off',
359
+ 'sonarjs/aws-iam-privilege-escalation': 'off',
360
+ 'sonarjs/aws-iam-public-access': 'off',
361
+ 'sonarjs/aws-opensearchservice-domain': 'off',
362
+ 'sonarjs/aws-rds-unencrypted-databases': 'off',
363
+ 'sonarjs/aws-restricted-ip-admin-access': 'off',
364
+ 'sonarjs/aws-s3-bucket-granted-access': 'off',
365
+ 'sonarjs/aws-s3-bucket-insecure-http': 'off',
366
+ 'sonarjs/aws-s3-bucket-public-access': 'off',
367
+ 'sonarjs/aws-s3-bucket-versioning': 'off',
368
+ 'sonarjs/aws-sagemaker-unencrypted-notebook': 'off',
369
+ 'sonarjs/aws-sns-unencrypted-topics': 'off',
370
+ 'sonarjs/aws-sqs-unencrypted-queue': 'off',
371
+ 'sonarjs/bitwise-operators': 'off',
372
+ 'sonarjs/block-scoped-var': 'off',
373
+ 'sonarjs/bool-param-default': 'off',
374
+ 'sonarjs/call-argument-line': 'error',
375
+ 'sonarjs/chai-determinate-assertion': 'off',
376
+ 'sonarjs/class-name': 'error',
377
+ 'sonarjs/class-prototype': 'off',
378
+ 'sonarjs/code-eval': 'off',
379
+ 'sonarjs/cognitive-complexity': 'off',
380
+ 'sonarjs/comma-or-logical-or-case': 'error',
381
+ 'sonarjs/comment-regex': 'off',
382
+ 'sonarjs/concise-regex': 'error',
383
+ 'sonarjs/constructor-for-side-effects': 'error',
384
+ 'sonarjs/content-length': 'off',
385
+ 'sonarjs/content-security-policy': 'off',
386
+ 'sonarjs/cookie-no-httponly': 'off',
387
+ 'sonarjs/cors': 'off',
388
+ 'sonarjs/csrf': 'off',
389
+ 'sonarjs/cyclomatic-complexity': 'off',
390
+ 'sonarjs/declarations-in-global-scope': 'off',
391
+ 'sonarjs/deprecation': 'error',
392
+ 'sonarjs/destructuring-assignment-syntax': 'off',
393
+ 'sonarjs/different-types-comparison': 'error',
394
+ 'sonarjs/disabled-auto-escaping': 'off',
395
+ 'sonarjs/disabled-resource-integrity': 'off',
396
+ 'sonarjs/disabled-timeout': 'off',
397
+ 'sonarjs/dompurify-unsafe-config': 'off',
398
+ 'sonarjs/duplicates-in-character-class': 'error',
399
+ 'sonarjs/dynamically-constructed-templates': 'off',
400
+ 'sonarjs/elseif-without-else': 'off',
401
+ 'sonarjs/empty-string-repetition': 'error',
402
+ 'sonarjs/encryption-secure-mode': 'off',
403
+ 'sonarjs/existing-groups': 'error',
404
+ 'sonarjs/explicit-test-skip': 'off',
405
+ 'sonarjs/expression-complexity': 'off',
406
+ 'sonarjs/file-header': 'off',
407
+ 'sonarjs/file-name-differ-from-class': 'off',
408
+ 'sonarjs/file-permissions': 'off',
409
+ 'sonarjs/file-uploads': 'off',
410
+ 'sonarjs/fixme-tag': 'off',
411
+ 'sonarjs/for-in': 'off',
412
+ 'sonarjs/for-loop-increment-sign': 'error',
413
+ 'sonarjs/function-inside-loop': 'off',
414
+ 'sonarjs/function-name': 'off',
415
+ 'sonarjs/function-return-type': 'error',
416
+ 'sonarjs/future-reserved-words': 'error',
417
+ 'sonarjs/generator-without-yield': 'off',
418
+ 'sonarjs/hardcoded-secret-signatures': 'error',
419
+ 'sonarjs/hashing': 'off',
420
+ 'sonarjs/hooks-before-test-cases': 'off',
421
+ 'sonarjs/in-operator-type-error': 'error',
422
+ 'sonarjs/inconsistent-function-call': 'error',
423
+ 'sonarjs/index-of-compare-to-positive-number': 'error',
424
+ 'sonarjs/insecure-cookie': 'off',
425
+ 'sonarjs/insecure-jwt-token': 'off',
426
+ 'sonarjs/inverted-assertion-arguments': 'off',
427
+ 'sonarjs/jsx-no-leaked-render': 'off',
428
+ 'sonarjs/label-position': 'off',
429
+ 'sonarjs/link-with-target-blank': 'off',
430
+ 'sonarjs/max-lines': 'off',
431
+ 'sonarjs/max-lines-per-function': 'off',
432
+ 'sonarjs/max-switch-cases': ['error', maxSwitchCases],
433
+ 'sonarjs/max-union-size': 'off',
434
+ 'sonarjs/memoize-cache-key': 'off',
435
+ 'sonarjs/misplaced-loop-counter': 'error',
436
+ 'sonarjs/nested-control-flow': 'off',
437
+ 'sonarjs/new-operator-misuse': 'error',
438
+ 'sonarjs/no-all-duplicated-branches': 'error',
439
+ 'sonarjs/no-alphabetical-sort': 'error',
440
+ 'sonarjs/no-angular-bypass-sanitization': 'off',
441
+ 'sonarjs/no-array-delete': 'error',
442
+ 'sonarjs/no-associative-arrays': 'error',
443
+ 'sonarjs/no-async-constructor': 'error',
444
+ 'sonarjs/no-built-in-override': 'off',
445
+ 'sonarjs/no-case-label-in-switch': 'error',
446
+ 'sonarjs/no-clear-text-protocols': 'off',
447
+ 'sonarjs/no-code-after-done': 'off',
448
+ 'sonarjs/no-collapsible-if': 'error',
449
+ 'sonarjs/no-collection-size-mischeck': 'error',
450
+ 'sonarjs/no-commented-code': 'off',
451
+ 'sonarjs/no-control-regex': 'off',
452
+ 'sonarjs/no-dead-store': 'off',
453
+ 'sonarjs/no-debug-commands-in-ui-tests': 'off',
454
+ 'sonarjs/no-default-utility-imports': 'off',
455
+ 'sonarjs/no-delete-var': 'off',
456
+ 'sonarjs/no-duplicate-in-composite': 'off',
457
+ 'sonarjs/no-duplicate-string': 'off',
458
+ 'sonarjs/no-duplicate-test-title': 'off',
459
+ 'sonarjs/no-duplicated-branches': 'error',
460
+ 'sonarjs/no-element-overwrite': 'error',
461
+ 'sonarjs/no-empty-after-reluctant': 'error',
462
+ 'sonarjs/no-empty-alternatives': 'error',
463
+ 'sonarjs/no-empty-character-class': 'off',
464
+ 'sonarjs/no-empty-collection': 'error',
465
+ 'sonarjs/no-empty-group': 'error',
466
+ 'sonarjs/no-empty-test-file': 'off',
467
+ 'sonarjs/no-empty-test-title': 'off',
468
+ 'sonarjs/no-equals-in-for-termination': 'error',
469
+ 'sonarjs/no-exclusive-tests': 'off',
470
+ 'sonarjs/no-extra-arguments': 'off',
471
+ 'sonarjs/no-fallthrough': 'off',
472
+ 'sonarjs/no-fixed-wait-in-tests': 'off',
473
+ 'sonarjs/no-floating-point-equality': 'error',
474
+ 'sonarjs/no-for-in-iterable': 'off',
475
+ 'sonarjs/no-forced-browser-interaction': 'off',
476
+ 'sonarjs/no-function-declaration-in-block': 'off',
477
+ 'sonarjs/no-global-this': 'error',
478
+ 'sonarjs/no-globals-shadowing': 'off',
479
+ 'sonarjs/no-gratuitous-expressions': 'error',
480
+ 'sonarjs/no-hardcoded-ip': 'error',
481
+ 'sonarjs/no-hardcoded-passwords': 'error',
482
+ 'sonarjs/no-hardcoded-secrets': 'error',
483
+ 'sonarjs/no-hook-setter-in-body': 'off',
484
+ 'sonarjs/no-identical-conditions': 'error',
485
+ 'sonarjs/no-identical-expressions': 'error',
486
+ 'sonarjs/no-identical-functions': 'error',
487
+ 'sonarjs/no-ignored-exceptions': 'error',
488
+ 'sonarjs/no-ignored-return': 'error',
489
+ 'sonarjs/no-implicit-dependencies': 'off',
490
+ 'sonarjs/no-implicit-global': 'off',
491
+ 'sonarjs/no-in-misuse': 'error',
492
+ 'sonarjs/no-incompatible-assertion-types': 'off',
493
+ 'sonarjs/no-incomplete-assertions': 'off',
494
+ 'sonarjs/no-inconsistent-returns': 'off',
495
+ 'sonarjs/no-incorrect-string-concat': 'off',
496
+ 'sonarjs/no-internal-api-use': 'error',
497
+ 'sonarjs/no-interpolation-in-inline-snapshots': 'off',
498
+ 'sonarjs/no-invalid-regexp': 'off',
499
+ 'sonarjs/no-invariant-returns': 'error',
500
+ 'sonarjs/no-inverted-boolean-check': 'error',
501
+ 'sonarjs/no-labels': 'off',
502
+ 'sonarjs/no-literal-call': 'error',
503
+ 'sonarjs/no-mime-sniff': 'off',
504
+ 'sonarjs/no-misleading-array-reverse': 'error',
505
+ 'sonarjs/no-misleading-character-class': 'off',
506
+ 'sonarjs/no-mixed-completion-style': 'off',
507
+ 'sonarjs/no-nested-assignment': 'error',
508
+ 'sonarjs/no-nested-conditional': 'off',
509
+ 'sonarjs/no-nested-functions': 'error',
510
+ 'sonarjs/no-nested-incdec': 'off',
511
+ 'sonarjs/no-nested-switch': 'error',
512
+ 'sonarjs/no-nested-template-literals': 'error',
513
+ 'sonarjs/no-os-command-from-path': 'off',
514
+ 'sonarjs/no-parameter-reassignment': 'error',
515
+ 'sonarjs/no-primitive-wrappers': 'off',
516
+ 'sonarjs/no-redundant-assignments': 'error',
517
+ 'sonarjs/no-redundant-boolean': 'off',
518
+ 'sonarjs/no-redundant-jump': 'off',
519
+ 'sonarjs/no-redundant-optional': 'error',
520
+ 'sonarjs/no-reference-error': 'off',
521
+ 'sonarjs/no-referrer-policy': 'off',
522
+ 'sonarjs/no-regex-spaces': 'off',
523
+ 'sonarjs/no-require-or-define': 'off',
524
+ 'sonarjs/no-return-type-any': 'off',
525
+ 'sonarjs/no-same-argument-assert': 'off',
526
+ 'sonarjs/no-same-line-conditional': 'error',
527
+ 'sonarjs/no-selector-parameter': 'error',
528
+ 'sonarjs/no-session-cookies-on-static-assets': 'off',
529
+ 'sonarjs/no-skipped-tests': 'off',
530
+ 'sonarjs/no-small-switch': 'error',
531
+ 'sonarjs/no-sonar-comments': 'off',
532
+ 'sonarjs/no-table-as-layout': 'off',
533
+ 'sonarjs/no-trivial-assertions': 'off',
534
+ 'sonarjs/no-try-promise': 'error',
535
+ 'sonarjs/no-undefined-argument': 'error',
536
+ 'sonarjs/no-undefined-assignment': 'off',
537
+ 'sonarjs/no-unenclosed-multiline-block': 'off',
538
+ 'sonarjs/no-uniq-key': 'off',
539
+ 'sonarjs/no-unthrown-error': 'error',
540
+ 'sonarjs/no-unused-collection': 'error',
541
+ 'sonarjs/no-unused-function-argument': 'off',
542
+ 'sonarjs/no-unused-vars': 'off',
543
+ 'sonarjs/no-use-of-empty-return-value': 'error',
544
+ 'sonarjs/no-useless-catch': 'off',
545
+ 'sonarjs/no-useless-increment': 'off',
546
+ 'sonarjs/no-useless-intersection': 'error',
547
+ 'sonarjs/no-useless-react-setstate': 'off',
548
+ 'sonarjs/no-variable-usage-before-declaration': 'off',
549
+ 'sonarjs/no-weak-cipher': 'off',
550
+ 'sonarjs/no-weak-keys': 'off',
551
+ 'sonarjs/no-wildcard-import': 'off',
552
+ 'sonarjs/non-existent-operator': 'error',
553
+ 'sonarjs/non-number-in-arithmetic-expression': 'off',
554
+ 'sonarjs/null-dereference': 'error',
555
+ 'sonarjs/object-alt-content': 'off',
556
+ 'sonarjs/operation-returning-nan': 'off',
557
+ 'sonarjs/parameterized-tests': 'off',
558
+ 'sonarjs/post-message': 'off',
559
+ 'sonarjs/prefer-default-last': 'off',
560
+ 'sonarjs/prefer-immediate-return': 'off',
561
+ 'sonarjs/prefer-native-lodash-alternative': 'off',
562
+ 'sonarjs/prefer-object-literal': 'off',
563
+ 'sonarjs/prefer-promise-shorthand': 'error',
564
+ 'sonarjs/prefer-read-only-props': 'off',
565
+ 'sonarjs/prefer-regexp-exec': 'error',
566
+ 'sonarjs/prefer-single-boolean-return': 'error',
567
+ 'sonarjs/prefer-specific-assertions': 'off',
568
+ 'sonarjs/prefer-type-guard': 'error',
569
+ 'sonarjs/prefer-while': 'error',
570
+ 'sonarjs/production-debug': 'off',
571
+ 'sonarjs/pseudo-random': 'error',
572
+ 'sonarjs/public-static-readonly': 'error',
573
+ 'sonarjs/publicly-writable-directories': 'off',
574
+ 'sonarjs/reduce-initial-value': 'error',
575
+ 'sonarjs/redundant-type-aliases': 'error',
576
+ 'sonarjs/regex-complexity': 'error',
577
+ 'sonarjs/review-blockchain-mnemonic': 'off',
578
+ 'sonarjs/session-regeneration': 'off',
579
+ 'sonarjs/shorthand-property-grouping': 'off',
580
+ 'sonarjs/single-char-in-character-classes': 'error',
581
+ 'sonarjs/single-character-alternation': 'error',
582
+ // regexp/no-super-linear-backtracking subsumes this with a sound NFA-based analysis
583
+ // (sonarjs is heuristic); see the regexp/* block below.
584
+ 'sonarjs/slow-regex': 'off',
585
+ 'sonarjs/sql-queries': 'off',
586
+ 'sonarjs/stable-tests': 'off',
587
+ 'sonarjs/stateful-regex': 'error',
588
+ 'sonarjs/strict-transport-security': 'off',
589
+ 'sonarjs/strings-comparison': 'off',
590
+ 'sonarjs/super-linear-regex': 'error',
591
+ 'sonarjs/synchronous-suite-callback': 'off',
592
+ 'sonarjs/table-header': 'off',
593
+ 'sonarjs/table-header-reference': 'off',
594
+ 'sonarjs/test-check-exception': 'off',
595
+ 'sonarjs/todo-tag': 'off',
596
+ 'sonarjs/too-many-break-or-continue-in-loop': 'off',
597
+ 'sonarjs/unicode-aware-regex': 'off',
598
+ 'sonarjs/unused-import': 'off',
599
+ 'sonarjs/unused-named-groups': 'error',
600
+ 'sonarjs/unverified-certificate': 'off',
601
+ 'sonarjs/unverified-hostname': 'off',
602
+ 'sonarjs/updated-const-var': 'off',
603
+ 'sonarjs/updated-loop-counter': 'error',
604
+ 'sonarjs/use-type-alias': 'error',
605
+ 'sonarjs/values-not-convertible-to-numbers': 'off',
606
+ 'sonarjs/variable-name': 'off',
607
+ 'sonarjs/void-use': 'off',
608
+ 'sonarjs/weak-ssl': 'off',
609
+ 'sonarjs/x-powered-by': 'off',
610
+ 'sonarjs/xml-parser-xxe': 'off',
611
+ 'promise/avoid-new': 'off',
612
+ 'promise/no-nesting': 'error',
613
+ 'promise/no-promise-in-callback': 'error',
614
+ 'promise/no-callback-in-promise': 'error',
615
+ 'promise/no-native': 'off',
616
+ 'promise/prefer-await-to-callbacks': 'off',
617
+ 'promise/catch-or-return': 'error',
618
+ 'promise/always-return': 'off',
619
+ 'promise/param-names': 'error',
620
+ 'promise/no-return-wrap': [
621
+ 'error',
622
+ {
623
+ allowReject: true
624
+ }
625
+ ],
626
+ 'promise/no-new-statics': 'error',
627
+ 'promise/no-return-in-finally': 'error',
628
+ 'promise/valid-params': 'error',
629
+ 'promise/prefer-await-to-then': ['error', { strict: true }],
630
+ 'promise/no-multiple-resolved': 'error',
631
+ 'promise/spec-only': 'error',
632
+ 'promise/prefer-catch': 'error',
633
+ 'no-barrel-files/no-barrel-files': 'error',
634
+ 'no-barrel-files/prefer-source-imports': 'error',
635
+ // eslint-plugin-regexp — purely additive on top of core / unicorn / sonarjs regex coverage.
636
+ // Rules with a working equivalent already in core, unicorn, or sonarjs are turned off here so
637
+ // each diagnostic is reported by exactly one rule. The only swap is regexp/no-super-linear-backtracking
638
+ // taking over from the (off-above) sonarjs/slow-regex.
639
+ 'regexp/confusing-quantifier': 'error',
640
+ 'regexp/control-character-escape': 'error',
641
+ 'regexp/match-any': 'error',
642
+ 'regexp/negation': 'error',
643
+ 'regexp/no-contradiction-with-assertion': 'error',
644
+ 'regexp/no-dupe-disjunctions': 'error',
645
+ 'regexp/no-empty-capturing-group': 'error',
646
+ 'regexp/no-empty-group': 'error',
647
+ 'regexp/no-empty-lookarounds-assertion': 'error',
648
+ 'regexp/no-empty-string-literal': 'error',
649
+ 'regexp/no-escape-backspace': 'error',
650
+ 'regexp/no-extra-lookaround-assertions': 'error',
651
+ 'regexp/no-invisible-character': 'error',
652
+ 'regexp/no-lazy-ends': 'error',
653
+ 'regexp/no-legacy-features': 'error',
654
+ 'regexp/no-misleading-capturing-group': 'error',
655
+ 'regexp/no-missing-g-flag': 'error',
656
+ 'regexp/no-non-standard-flag': 'error',
657
+ 'regexp/no-obscure-range': 'error',
658
+ 'regexp/no-octal': 'error',
659
+ 'regexp/no-optional-assertion': 'error',
660
+ 'regexp/no-potentially-useless-backreference': 'error',
661
+ 'regexp/no-standalone-backslash': 'error',
662
+ 'regexp/no-super-linear-backtracking': 'error',
663
+ 'regexp/no-super-linear-move': 'error',
664
+ 'regexp/no-trivially-nested-assertion': 'error',
665
+ 'regexp/no-trivially-nested-quantifier': 'error',
666
+ 'regexp/no-unused-capturing-group': 'error',
667
+ 'regexp/no-useless-assertions': 'error',
668
+ 'regexp/no-useless-character-class': 'error',
669
+ 'regexp/no-useless-dollar-replacements': 'error',
670
+ 'regexp/no-useless-flag': 'error',
671
+ 'regexp/no-useless-lazy': 'error',
672
+ 'regexp/no-useless-non-capturing-group': 'error',
673
+ 'regexp/no-useless-quantifier': 'error',
674
+ 'regexp/no-useless-range': 'error',
675
+ 'regexp/no-useless-set-operand': 'error',
676
+ 'regexp/no-useless-string-literal': 'error',
677
+ 'regexp/no-useless-two-nums-quantifier': 'error',
678
+ 'regexp/no-zero-quantifier': 'error',
679
+ 'regexp/optimal-lookaround-quantifier': 'error',
680
+ 'regexp/optimal-quantifier-concatenation': 'error',
681
+ 'regexp/prefer-escape-replacement-dollar-char': 'error',
682
+ 'regexp/prefer-named-backreference': 'error',
683
+ 'regexp/prefer-named-replacement': 'error',
684
+ 'regexp/prefer-result-array-groups': 'error',
685
+ 'regexp/prefer-set-operation': 'error',
686
+ 'regexp/prefer-unicode-codepoint-escapes': 'error',
687
+ 'regexp/simplify-set-operations': 'error',
688
+ // Overlap with existing rules — keep the existing rule as single source of truth.
689
+ 'regexp/no-control-character': 'off', // core no-control-regex
690
+ 'regexp/no-dupe-characters-character-class': 'off', // sonarjs/duplicates-in-character-class
691
+ 'regexp/no-empty-alternative': 'off', // sonarjs/no-empty-alternatives
692
+ 'regexp/no-empty-character-class': 'off', // core no-empty-character-class
693
+ 'regexp/no-invalid-regexp': 'off', // core no-invalid-regexp
694
+ 'regexp/no-misleading-unicode-character': 'off', // core no-misleading-character-class
695
+ 'regexp/no-useless-backreference': 'off', // core no-useless-backreference
696
+ 'regexp/no-useless-escape': 'off', // core no-useless-escape
697
+ 'regexp/prefer-character-class': 'off', // unicorn/better-regex + sonarjs/concise-regex
698
+ 'regexp/prefer-d': 'off', // unicorn/better-regex
699
+ 'regexp/prefer-named-capture-group': 'off', // core prefer-named-capture-group
700
+ 'regexp/prefer-plus-quantifier': 'off', // unicorn/better-regex
701
+ 'regexp/prefer-question-quantifier': 'off', // unicorn/better-regex
702
+ 'regexp/prefer-regexp-exec': 'off', // @typescript-eslint/prefer-regexp-exec
703
+ 'regexp/prefer-regexp-test': 'off', // unicorn/prefer-regexp-test
704
+ 'regexp/prefer-star-quantifier': 'off', // unicorn/better-regex
705
+ 'regexp/prefer-w': 'off', // unicorn/better-regex
706
+ 'regexp/require-unicode-regexp': 'off', // matches core require-unicode-regexp (off)
707
+ 'regexp/strict': 'off', // unicorn/better-regex
708
+ // Pure style preferences outside the project's scope.
709
+ 'regexp/grapheme-string-literal': 'off',
710
+ 'regexp/hexadecimal-escape': 'off',
711
+ 'regexp/letter-case': 'off',
712
+ 'regexp/prefer-lookaround': 'off',
713
+ 'regexp/prefer-predefined-assertion': 'off',
714
+ 'regexp/prefer-quantifier': 'off',
715
+ 'regexp/prefer-range': 'off',
716
+ 'regexp/require-unicode-sets-regexp': 'off',
717
+ 'regexp/sort-alternatives': 'off',
718
+ 'regexp/sort-character-class-elements': 'off',
719
+ 'regexp/sort-flags': 'off',
720
+ 'regexp/unicode-escape': 'off',
721
+ 'regexp/unicode-property': 'off',
722
+ 'regexp/use-ignore-case': 'off'
723
+ }
724
+ };
7
725
  //# sourceMappingURL=best-practices.js.map