@storm-software/linting-tools 1.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.
@@ -0,0 +1,577 @@
1
+ import { fileURLToPath as _fileURLToPath } from 'url';
2
+ import _path from 'node:path';
3
+ import { createRequire as topLevelCreateRequire } from 'module';
4
+ const require = topLevelCreateRequire(import.meta.url);
5
+ const __filename = _fileURLToPath(import.meta.url);
6
+ const __dirname = _path.dirname(__filename);
7
+
8
+ // packages/linting-tools/src/eslint/constants.ts
9
+ var RESTRICTED_SYNTAX = [
10
+ {
11
+ // ❌ readFile(…, { encoding: … })
12
+ selector: `CallExpression[callee.name=/readFileSync|readFile|writeFileSync|writeFile/] > .arguments:last-child[type=ObjectExpression][properties.length=1] Property[key.name=encoding]`,
13
+ message: `Specify encoding as last argument instead of object with encoding key`
14
+ },
15
+ {
16
+ // ❌ readFile(…, {})
17
+ selector: `CallExpression[callee.name=/readFileSync|readFile|writeFileSync|writeFile/] > .arguments:last-child[type=ObjectExpression][properties.length=0]`,
18
+ message: "Specify encoding as last argument"
19
+ },
20
+ {
21
+ // ❌ readFileSync(…).toString(…)
22
+ selector: `CallExpression[callee.name=readFileSync][parent.property.name=toString]`,
23
+ message: `toString is redundant, specify encoding as last argument`
24
+ },
25
+ {
26
+ // ❌ ….readFile(…, { encoding: … })
27
+ selector: `CallExpression[callee.type=MemberExpression][callee.property.name=/readFileSync|readFile|writeFileSync|writeFile/] > .arguments:last-child[type=ObjectExpression][properties.length=1] Property[key.name=encoding]`,
28
+ message: `Specify encoding as last argument instead of object with encoding key`
29
+ },
30
+ {
31
+ // ❌ ….readFile(…, {})
32
+ selector: `CallExpression[callee.type=MemberExpression][callee.property.name=/readFileSync|readFile|writeFileSync|writeFile/] > .arguments:last-child[type=ObjectExpression][properties.length=0]`,
33
+ message: "Specify encoding as last argument"
34
+ },
35
+ {
36
+ // ❌ Boolean(…)
37
+ selector: "CallExpression[callee.name=Boolean][arguments.1.elements.length!=0]",
38
+ message: "Prefer `!!\u2026` over `Boolean(\u2026)` because TypeScript infers a narrow literal boolean `type: true` instead of `type: boolean`."
39
+ },
40
+ {
41
+ // ❌ process.browser
42
+ selector: "ExpressionStatement[expression.object.name=process][expression.property.name=browser]",
43
+ message: "`process.browser` is deprecated, use `!!globalThis.window`"
44
+ }
45
+ // {
46
+ // // ❌ let { foo: { bar } } = baz
47
+ // // ✅ let { bar } = baz.foo
48
+ // // ✅ let { foo: { bar } } = await baz
49
+ // selector:
50
+ // 'VariableDeclarator[init.type!=AwaitExpression] > ObjectPattern[properties.length=1][properties.0.value.type=ObjectPattern]',
51
+ // message: 'Do not use nested destructuring.',
52
+ // },
53
+ ];
54
+ var REACT_RESTRICTED_SYNTAX = [
55
+ ...RESTRICTED_SYNTAX,
56
+ {
57
+ // ❌ useMemo(…, [])
58
+ selector: "CallExpression[callee.name=useMemo][arguments.1.type=ArrayExpression][arguments.1.elements.length=0]",
59
+ message: "`useMemo` with an empty dependency array can't provide a stable reference, use `useRef` instead."
60
+ }
61
+ ];
62
+ var RESTRICTED_GLOBALS = [
63
+ "stop",
64
+ { name: "isNaN", message: "Use Number.isNaN instead" }
65
+ ];
66
+ var RESTRICTED_MODULES = [
67
+ { name: "axios", message: "Use `fetch/node-fetch` instead." },
68
+ { name: "moment", message: "Use `dayjs/date-fns` instead." },
69
+ { name: "classnames", message: "Use `clsx` instead because it is faster." },
70
+ {
71
+ name: "lodash/isString.js",
72
+ message: "Use `typeof yourVar === 'string'` instead."
73
+ },
74
+ { name: "lodash/isArray.js", message: "Use `Array.isArray` instead." },
75
+ { name: "lodash/flatten.js", message: "Use `Array#flat()` instead." },
76
+ {
77
+ name: "lodash/compact.js",
78
+ message: "Use `Array#filter(Boolean)` instead."
79
+ },
80
+ { name: "lodash/identity.js", message: "Use `(value) => value` instead." }
81
+ ];
82
+
83
+ // packages/linting-tools/src/eslint/rules/import.ts
84
+ var config = {
85
+ /**
86
+ * Disallow non-import statements appearing before import statements.
87
+ *
88
+ * 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/first.md
89
+ */
90
+ "import/first": "error",
91
+ /**
92
+ * Require a newline after the last import/require.
93
+ *
94
+ * 🔧 Fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/newline-after-import.md
95
+ */
96
+ "import/newline-after-import": "warn",
97
+ /**
98
+ * Disallow import of modules using absolute paths.
99
+ *
100
+ * 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-absolute-path.md
101
+ */
102
+ "import/no-absolute-path": "error",
103
+ /**
104
+ * Disallow cyclical dependencies between modules.
105
+ *
106
+ * 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-cycle.md
107
+ */
108
+ "import/no-cycle": "error",
109
+ /**
110
+ * Disallow default exports.
111
+ *
112
+ * 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-default-export.md
113
+ */
114
+ "import/no-default-export": "error",
115
+ /**
116
+ * Disallow the use of extraneous packages.
117
+ *
118
+ * 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-extraneous-dependencies.md
119
+ */
120
+ "import/no-extraneous-dependencies": [
121
+ "error",
122
+ { includeInternal: true, includeTypes: true }
123
+ ],
124
+ /**
125
+ * Disallow mutable exports.
126
+ *
127
+ * 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-mutable-exports.md
128
+ */
129
+ "import/no-mutable-exports": "error",
130
+ /**
131
+ * Disallow importing packages through relative paths.
132
+ *
133
+ * 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-relative-packages.md
134
+ */
135
+ "import/no-relative-packages": "warn",
136
+ /**
137
+ * Disallow a module from importing itself.
138
+ *
139
+ * 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-self-import.md
140
+ */
141
+ "import/no-self-import": "error",
142
+ /**
143
+ * Ensures that there are no useless path segments.
144
+ *
145
+ * 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-useless-path-segments.md
146
+ */
147
+ "import/no-useless-path-segments": ["error"],
148
+ /**
149
+ * Enforce a module import order convention.
150
+ *
151
+ * 🔧 Fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/order.md
152
+ */
153
+ "import/order": [
154
+ "warn",
155
+ {
156
+ groups: [
157
+ "builtin",
158
+ // Node.js built-in modules
159
+ "external",
160
+ // Packages
161
+ "internal",
162
+ // Aliased modules
163
+ "parent",
164
+ // Relative parent
165
+ "sibling",
166
+ // Relative sibling
167
+ "index"
168
+ // Relative index
169
+ ],
170
+ "newlines-between": "never"
171
+ }
172
+ ]
173
+ };
174
+ var import_default = config;
175
+
176
+ // packages/linting-tools/src/eslint/rules/storm.ts
177
+ var config2 = {
178
+ /**
179
+ * Require return statements in array methods callbacks.
180
+ *
181
+ * 🚫 Not fixable -https://eslint.org/docs/rules/array-callback-return
182
+ */
183
+ "array-callback-return": ["error", { allowImplicit: true }],
184
+ /**
185
+ * Treat `var` statements as if they were block scoped.
186
+ *
187
+ * 🚫 Not fixable - https://eslint.org/docs/rules/block-scoped-var
188
+ */
189
+ "block-scoped-var": "error",
190
+ /**
191
+ * Require curly braces for multiline blocks.
192
+ *
193
+ * 🔧 Fixable - https://eslint.org/docs/rules/curly
194
+ */
195
+ curly: ["warn", "multi-line"],
196
+ /**
197
+ * Require default clauses in switch statements to be last (if used).
198
+ *
199
+ * 🚫 Not fixable - https://eslint.org/docs/rules/default-case-last
200
+ */
201
+ "default-case-last": "error",
202
+ /**
203
+ * Require triple equals (`===` and `!==`).
204
+ *
205
+ * 🔧 Fixable - https://eslint.org/docs/rules/eqeqeq
206
+ */
207
+ eqeqeq: "error",
208
+ /**
209
+ * Require grouped accessor pairs in object literals and classes.
210
+ *
211
+ * 🚫 Not fixable - https://eslint.org/docs/rules/grouped-accessor-pairs
212
+ */
213
+ "grouped-accessor-pairs": "error",
214
+ /**
215
+ * Disallow use of `alert()`.
216
+ *
217
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-alert
218
+ */
219
+ "no-alert": "error",
220
+ /**
221
+ * Disallow use of `caller`/`callee`.
222
+ *
223
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-caller
224
+ */
225
+ "no-caller": "error",
226
+ /**
227
+ * Disallow returning value in constructor.
228
+ *
229
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-constructor-return
230
+ */
231
+ "no-constructor-return": "error",
232
+ /**
233
+ * Disallow using an `else` if the `if` block contains a return.
234
+ *
235
+ * 🔧 Fixable - https://eslint.org/docs/rules/no-else-return
236
+ */
237
+ "no-else-return": "warn",
238
+ /**
239
+ * Disallow `eval()`.
240
+ *
241
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-eval
242
+ */
243
+ "no-eval": "error",
244
+ /**
245
+ * Disallow extending native objects.
246
+ *
247
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-extend-native
248
+ */
249
+ "no-extend-native": "error",
250
+ /**
251
+ * Disallow unnecessary function binding.
252
+ *
253
+ * 🔧 Fixable - https://eslint.org/docs/rules/no-extra-bind
254
+ */
255
+ "no-extra-bind": "error",
256
+ /**
257
+ * Disallow unnecessary labels.
258
+ *
259
+ * 🔧 Fixable - https://eslint.org/docs/rules/no-extra-label
260
+ */
261
+ "no-extra-label": "error",
262
+ /**
263
+ * Disallow floating decimals.
264
+ *
265
+ * 🔧 Fixable - https://eslint.org/docs/rules/no-floating-decimal
266
+ */
267
+ "no-floating-decimal": "error",
268
+ /**
269
+ * Make people convert types explicitly e.g. `Boolean(foo)` instead of `!!foo`.
270
+ *
271
+ * 🔧 Partially Fixable - https://eslint.org/docs/rules/no-implicit-coercion
272
+ */
273
+ "no-implicit-coercion": "error",
274
+ /**
275
+ * Disallow use of `eval()`-like methods.
276
+ *
277
+ * https://eslint.org/docs/rules/no-implied-eval
278
+ */
279
+ "no-implied-eval": "error",
280
+ /**
281
+ * Disallow usage of `__iterator__` property.
282
+ *
283
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-iterator
284
+ */
285
+ "no-iterator": "error",
286
+ /**
287
+ * Disallow use of labels for anything other than loops and switches.
288
+ *
289
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-labels
290
+ */
291
+ "no-labels": ["error"],
292
+ /**
293
+ * Disallow unnecessary nested blocks.
294
+ *
295
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-lone-blocks
296
+ */
297
+ "no-lone-blocks": "error",
298
+ /**
299
+ * Disallow `new` for side effects.
300
+ *
301
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-new
302
+ */
303
+ "no-new": "error",
304
+ /**
305
+ * Disallow function constructors.
306
+ *
307
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-new-func
308
+ */
309
+ "no-new-func": "error",
310
+ /**
311
+ * Disallow base types wrapper instances, such as `new String('foo')`.
312
+ *
313
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-new-wrappers
314
+ */
315
+ "no-new-wrappers": "error",
316
+ /**
317
+ * Disallow use of octal escape sequences in string literals.
318
+ *
319
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-octal-escape
320
+ */
321
+ "no-octal-escape": "error",
322
+ /**
323
+ * Disallow reassignment of function parameters.
324
+ *
325
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-param-reassign
326
+ */
327
+ "no-param-reassign": "error",
328
+ /**
329
+ * Disallow usage of the deprecated `__proto__` property.
330
+ *
331
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-proto
332
+ */
333
+ "no-proto": "error",
334
+ /**
335
+ * Disallow assignment in `return` statement.
336
+ *
337
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-return-assign
338
+ */
339
+ "no-return-assign": "error",
340
+ /**
341
+ * Disallows unnecessary `return await`.
342
+ *
343
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-return-await
344
+ */
345
+ "no-return-await": "error",
346
+ /**
347
+ * Disallow use of `javascript:` urls.
348
+ *
349
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-script-url
350
+ */
351
+ "no-script-url": "error",
352
+ /**
353
+ * Disallow comparisons where both sides are exactly the same.
354
+ *
355
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-self-compare
356
+ */
357
+ "no-self-compare": "error",
358
+ /**
359
+ * Disallow use of comma operator.
360
+ *
361
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-sequences
362
+ */
363
+ "no-sequences": "error",
364
+ /**
365
+ * Disallow unnecessary `.call()` and `.apply()`.
366
+ *
367
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-useless-call
368
+ */
369
+ "no-useless-call": "error",
370
+ /**
371
+ * Disallow unnecessary concatenation of strings.
372
+ *
373
+ * 🚫 Not fixable - https://eslint.org/docs/rules/no-useless-concat
374
+ */
375
+ "no-useless-concat": "error",
376
+ /**
377
+ * Disallow redundant return statements.
378
+ *
379
+ * 🔧 Fixable - https://eslint.org/docs/rules/no-useless-return
380
+ */
381
+ "no-useless-return": "warn",
382
+ /**
383
+ * Require using named capture groups in regular expressions.
384
+ *
385
+ * 🚫 Not fixable - https://eslint.org/docs/rules/prefer-named-capture-group
386
+ */
387
+ "prefer-named-capture-group": "error",
388
+ /**
389
+ * Require using Error objects as Promise rejection reasons.
390
+ *
391
+ * 🚫 Not fixable - https://eslint.org/docs/rules/prefer-promise-reject-errors
392
+ */
393
+ "prefer-promise-reject-errors": ["error", { allowEmptyReject: true }],
394
+ /**
395
+ * Disallow use of the RegExp constructor in favor of regular expression
396
+ * literals.
397
+ *
398
+ * 🚫 Not fixable - https://eslint.org/docs/rules/prefer-regex-literals
399
+ */
400
+ "prefer-regex-literals": "error",
401
+ /**
402
+ * Disallow "Yoda conditions", ensuring the comparison.
403
+ *
404
+ * 🔧 Fixable - https://eslint.org/docs/rules/yoda
405
+ */
406
+ yoda: "warn"
407
+ };
408
+ var storm_default = config2;
409
+
410
+ // packages/linting-tools/src/eslint/rules/ts-docs.ts
411
+ var config3 = {
412
+ /**
413
+ * Require TSDoc comments conform to the TSDoc specification.
414
+ *
415
+ * 🚫 Not fixable - https://github.com/microsoft/tsdoc/tree/master/eslint-plugin
416
+ */
417
+ "tsdoc/syntax": "error"
418
+ };
419
+ var ts_docs_default = config3;
420
+
421
+ // packages/linting-tools/src/eslint/rules/unicorn.ts
422
+ var config4 = {
423
+ /**
424
+ * Require consistent filename case for all linted files.
425
+ *
426
+ * 🚫 Not fixable - https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/filename-case.md
427
+ */
428
+ "unicorn/filename-case": [
429
+ "error",
430
+ {
431
+ case: "kebabCase"
432
+ }
433
+ ],
434
+ /**
435
+ * Require using the `node:` protocol when importing Node.js built-in modules.
436
+ *
437
+ * 🔧 Fixable - https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-node-protocol.md
438
+ */
439
+ "unicorn/prefer-node-protocol": "warn"
440
+ };
441
+ var unicorn_default = config4;
442
+
443
+ // packages/linting-tools/src/eslint/typescript/index.ts
444
+ var config5 = {
445
+ root: true,
446
+ overrides: [
447
+ {
448
+ files: ["*.ts", "*.tsx"],
449
+ extends: ["plugin:@nx/typescript"],
450
+ rules: {}
451
+ }
452
+ ],
453
+ parser: "@typescript-eslint/parser",
454
+ extends: [
455
+ "eslint:recommended",
456
+ "plugin:@typescript-eslint/recommended",
457
+ "prettier"
458
+ ],
459
+ plugins: ["sonarjs", "unicorn", "promise", "import", "eslint-plugin-tsdoc"],
460
+ rules: {
461
+ // Disallows if statements as the only statement in else blocks
462
+ // https://eslint.org/docs/rules/no-lonely-if
463
+ "no-lonely-if": "error",
464
+ // Disallows the use of console
465
+ // https://eslint.org/docs/rules/no-console
466
+ "no-console": "error",
467
+ // Requires method and property shorthand syntax for object literals
468
+ // https://eslint.org/docs/rules/object-shorthand
469
+ "object-shorthand": ["error", "always"],
470
+ // Disallows loops with a body that allows only one iteration
471
+ // https://eslint.org/docs/rules/no-unreachable-loop
472
+ "no-unreachable-loop": "error",
473
+ "sonarjs/no-one-iteration-loop": "off",
474
+ // similar to 'no-unreachable-loop' but reports less cases
475
+ "prefer-arrow-callback": ["error", { allowNamedFunctions: true }],
476
+ "sonarjs/no-unused-collection": "error",
477
+ "sonarjs/no-identical-conditions": "error",
478
+ "sonarjs/no-inverted-boolean-check": "error",
479
+ "sonarjs/no-use-of-empty-return-value": "error",
480
+ "sonarjs/no-gratuitous-expressions": "error",
481
+ "sonarjs/no-nested-switch": "error",
482
+ "unicorn/no-lonely-if": "error",
483
+ "sonarjs/no-collapsible-if": "off",
484
+ // same as 'unicorn/no-lonely-if'
485
+ "unicorn/no-array-push-push": "error",
486
+ "unicorn/no-instanceof-array": "error",
487
+ "unicorn/no-empty-file": "error",
488
+ "unicorn/no-useless-fallback-in-spread": "error",
489
+ "unicorn/prefer-array-find": "error",
490
+ "unicorn/no-useless-spread": "error",
491
+ "unicorn/prefer-includes": "error",
492
+ // Disallows specified syntax
493
+ // https://eslint.org/docs/rules/no-restricted-syntax
494
+ "no-restricted-syntax": ["error", ...RESTRICTED_SYNTAX],
495
+ "no-else-return": ["error", { allowElseIf: false }],
496
+ "promise/no-nesting": "error",
497
+ "import/extensions": ["error", "ignorePackages"],
498
+ // Bob when bundling requires to have `.js` extension
499
+ "import/no-default-export": "error",
500
+ "import/prefer-default-export": "off",
501
+ // disable opposite of 'import/no-default-export'
502
+ "unicorn/filename-case": "error",
503
+ "@typescript-eslint/no-unused-vars": [
504
+ "error",
505
+ {
506
+ argsIgnorePattern: "^_",
507
+ varsIgnorePattern: "^_"
508
+ // allow underscores in destructuring
509
+ }
510
+ ],
511
+ // Enforce the style of numeric separators by correctly grouping digits
512
+ // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/numeric-separators-style.md
513
+ "unicorn/numeric-separators-style": "error",
514
+ // Prefer using the node: protocol when importing Node.js builtin modules
515
+ // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-node-protocol.md
516
+ "unicorn/prefer-node-protocol": "error",
517
+ // Reports any imports that come after non-import statements
518
+ // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/first.md
519
+ "import/first": "error",
520
+ // Disallow shorthand type conversions
521
+ // https://eslint.org/docs/latest/rules/no-implicit-coercion
522
+ "no-implicit-coercion": [
523
+ "error",
524
+ {
525
+ disallowTemplateShorthand: true,
526
+ // in TypeScript `!!` is preferable https://www.typescriptlang.org/docs/handbook/2/narrowing.html#truthiness-narrowing
527
+ boolean: false
528
+ }
529
+ ],
530
+ // Disallow specified modules when loaded by `import` declarations
531
+ // https://github.com/eslint-community/eslint-plugin-n/blob/master/docs/rules/no-restricted-import.md
532
+ "n/no-restricted-import": ["error", RESTRICTED_MODULES],
533
+ // Disallow specified modules when loaded by require
534
+ // https://github.com/eslint-community/eslint-plugin-n/blob/master/docs/rules/no-restricted-require.md
535
+ "n/no-restricted-require": ["error", RESTRICTED_MODULES],
536
+ "no-restricted-modules": "off",
537
+ // deprecated in favor of corresponding rules from `eslint-plugin-n`
538
+ // Disallow specified global variables
539
+ // https://eslint.org/docs/latest/rules/no-restricted-globals
540
+ "no-restricted-globals": ["error", ...RESTRICTED_GLOBALS],
541
+ "@typescript-eslint/no-explicit-any": "error",
542
+ "prefer-const": ["error", { destructuring: "all" }],
543
+ "import/no-duplicates": "error",
544
+ "import/newline-after-import": "off",
545
+ // prettified by prettier-plugin-sort-imports
546
+ "prefer-object-has-own": "error",
547
+ "logical-assignment-operators": [
548
+ "error",
549
+ "always",
550
+ { enforceForIfStatements: true }
551
+ ],
552
+ "@typescript-eslint/prefer-optional-chain": "error",
553
+ yoda: "error",
554
+ "unicorn/prefer-export-from": ["error", { ignoreUsedVariables: true }],
555
+ "promise/no-multiple-resolved": "error",
556
+ "unicorn/prefer-logical-operator-over-ternary": "error",
557
+ "no-unused-expressions": "off",
558
+ "@typescript-eslint/no-unused-expressions": "error",
559
+ "no-negated-condition": "off",
560
+ "unicorn/no-negated-condition": "error",
561
+ "unicorn/no-array-for-each": "error",
562
+ "unicorn/prefer-string-trim-start-end": "error",
563
+ "no-self-compare": "error",
564
+ eqeqeq: ["error", "always", { null: "ignore" }],
565
+ "import/no-useless-path-segments": "error",
566
+ "require-await": "off",
567
+ "no-return-await": "off",
568
+ ...import_default,
569
+ ...unicorn_default,
570
+ ...ts_docs_default,
571
+ ...storm_default
572
+ }
573
+ };
574
+ var typescript_default = config5;
575
+ export {
576
+ typescript_default as default
577
+ };