@adobe/remark-gridtables 3.0.4 → 3.0.6

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,424 @@
1
+ export default {
2
+ rules: {
3
+ // enforces getter/setter pairs in objects
4
+ // https://eslint.org/docs/rules/accessor-pairs
5
+ 'accessor-pairs': 'off',
6
+
7
+ // enforces return statements in callbacks of array's methods
8
+ // https://eslint.org/docs/rules/array-callback-return
9
+ 'array-callback-return': ['error', { allowImplicit: true }],
10
+
11
+ // treat var statements as if they were block scoped
12
+ // https://eslint.org/docs/rules/block-scoped-var
13
+ 'block-scoped-var': 'error',
14
+
15
+ // specify the maximum cyclomatic complexity allowed in a program
16
+ // https://eslint.org/docs/rules/complexity
17
+ complexity: ['off', 20],
18
+
19
+ // enforce that class methods use "this"
20
+ // https://eslint.org/docs/rules/class-methods-use-this
21
+ 'class-methods-use-this': ['error', {
22
+ exceptMethods: [],
23
+ }],
24
+
25
+ // require return statements to either always or never specify values
26
+ // https://eslint.org/docs/rules/consistent-return
27
+ 'consistent-return': 'error',
28
+
29
+ // specify curly brace conventions for all control statements
30
+ // https://eslint.org/docs/rules/curly
31
+ curly: ['error', 'multi-line'], // multiline
32
+
33
+ // require default case in switch statements
34
+ // https://eslint.org/docs/rules/default-case
35
+ 'default-case': ['error', { commentPattern: '^no default$' }],
36
+
37
+ // Enforce default clauses in switch statements to be last
38
+ // https://eslint.org/docs/rules/default-case-last
39
+ 'default-case-last': 'error',
40
+
41
+ // https://eslint.org/docs/rules/default-param-last
42
+ 'default-param-last': 'error',
43
+
44
+ // encourages use of dot notation whenever possible
45
+ // https://eslint.org/docs/rules/dot-notation
46
+ 'dot-notation': ['error', { allowKeywords: true }],
47
+
48
+ // enforces consistent newlines before or after dots
49
+ // https://eslint.org/docs/rules/dot-location
50
+ 'dot-location': ['error', 'property'],
51
+
52
+ // require the use of === and !==
53
+ // https://eslint.org/docs/rules/eqeqeq
54
+ eqeqeq: ['error', 'always', { null: 'ignore' }],
55
+
56
+ // Require grouped accessor pairs in object literals and classes
57
+ // https://eslint.org/docs/rules/grouped-accessor-pairs
58
+ 'grouped-accessor-pairs': 'error',
59
+
60
+ // make sure for-in loops have an if statement
61
+ // https://eslint.org/docs/rules/guard-for-in
62
+ 'guard-for-in': 'error',
63
+
64
+ // enforce a maximum number of classes per file
65
+ // https://eslint.org/docs/rules/max-classes-per-file
66
+ 'max-classes-per-file': ['error', 1],
67
+
68
+ // disallow the use of alert, confirm, and prompt
69
+ // https://eslint.org/docs/rules/no-alert
70
+ // TODO: enable, semver-major
71
+ 'no-alert': 'warn',
72
+
73
+ // disallow use of arguments.caller or arguments.callee
74
+ // https://eslint.org/docs/rules/no-caller
75
+ 'no-caller': 'error',
76
+
77
+ // disallow lexical declarations in case/default clauses
78
+ // https://eslint.org/docs/rules/no-case-declarations
79
+ 'no-case-declarations': 'error',
80
+
81
+ // Disallow returning value in constructor
82
+ // https://eslint.org/docs/rules/no-constructor-return
83
+ 'no-constructor-return': 'error',
84
+
85
+ // disallow division operators explicitly at beginning of regular expression
86
+ // https://eslint.org/docs/rules/no-div-regex
87
+ 'no-div-regex': 'off',
88
+
89
+ // disallow else after a return in an if
90
+ // https://eslint.org/docs/rules/no-else-return
91
+ 'no-else-return': ['error', { allowElseIf: false }],
92
+
93
+ // disallow empty functions, except for standalone funcs/arrows
94
+ // https://eslint.org/docs/rules/no-empty-function
95
+ 'no-empty-function': ['error', {
96
+ allow: [
97
+ 'arrowFunctions',
98
+ 'functions',
99
+ 'methods',
100
+ ]
101
+ }],
102
+
103
+ // disallow empty destructuring patterns
104
+ // https://eslint.org/docs/rules/no-empty-pattern
105
+ 'no-empty-pattern': 'error',
106
+
107
+ // Disallow empty static blocks
108
+ // https://eslint.org/docs/latest/rules/no-empty-static-block
109
+ // TODO: semver-major, enable
110
+ 'no-empty-static-block': 'off',
111
+
112
+ // disallow comparisons to null without a type-checking operator
113
+ // https://eslint.org/docs/rules/no-eq-null
114
+ 'no-eq-null': 'off',
115
+
116
+ // disallow use of eval()
117
+ // https://eslint.org/docs/rules/no-eval
118
+ 'no-eval': 'error',
119
+
120
+ // disallow adding to native types
121
+ // https://eslint.org/docs/rules/no-extend-native
122
+ 'no-extend-native': 'error',
123
+
124
+ // disallow unnecessary function binding
125
+ // https://eslint.org/docs/rules/no-extra-bind
126
+ 'no-extra-bind': 'error',
127
+
128
+ // disallow Unnecessary Labels
129
+ // https://eslint.org/docs/rules/no-extra-label
130
+ 'no-extra-label': 'error',
131
+
132
+ // disallow fallthrough of case statements
133
+ // https://eslint.org/docs/rules/no-fallthrough
134
+ 'no-fallthrough': 'error',
135
+
136
+ // disallow the use of leading or trailing decimal points in numeric literals
137
+ // https://eslint.org/docs/rules/no-floating-decimal
138
+ 'no-floating-decimal': 'error',
139
+
140
+ // disallow reassignments of native objects or read-only globals
141
+ // https://eslint.org/docs/rules/no-global-assign
142
+ 'no-global-assign': ['error', { exceptions: [] }],
143
+
144
+ // deprecated in favor of no-global-assign
145
+ // https://eslint.org/docs/rules/no-native-reassign
146
+ 'no-native-reassign': 'off',
147
+
148
+ // disallow implicit type conversions
149
+ // https://eslint.org/docs/rules/no-implicit-coercion
150
+ 'no-implicit-coercion': ['off', {
151
+ boolean: false,
152
+ number: true,
153
+ string: true,
154
+ allow: [],
155
+ }],
156
+
157
+ // disallow var and named functions in global scope
158
+ // https://eslint.org/docs/rules/no-implicit-globals
159
+ 'no-implicit-globals': 'off',
160
+
161
+ // disallow use of eval()-like methods
162
+ // https://eslint.org/docs/rules/no-implied-eval
163
+ 'no-implied-eval': 'error',
164
+
165
+ // disallow this keywords outside of classes or class-like objects
166
+ // https://eslint.org/docs/rules/no-invalid-this
167
+ 'no-invalid-this': 'off',
168
+
169
+ // disallow usage of __iterator__ property
170
+ // https://eslint.org/docs/rules/no-iterator
171
+ 'no-iterator': 'error',
172
+
173
+ // disallow use of labels for anything other than loops and switches
174
+ // https://eslint.org/docs/rules/no-labels
175
+ 'no-labels': ['error', { allowLoop: false, allowSwitch: false }],
176
+
177
+ // disallow unnecessary nested blocks
178
+ // https://eslint.org/docs/rules/no-lone-blocks
179
+ 'no-lone-blocks': 'error',
180
+
181
+ // disallow creation of functions within loops
182
+ // https://eslint.org/docs/rules/no-loop-func
183
+ 'no-loop-func': 'error',
184
+
185
+ // disallow magic numbers
186
+ // https://eslint.org/docs/rules/no-magic-numbers
187
+ 'no-magic-numbers': ['off', {
188
+ ignore: [],
189
+ ignoreArrayIndexes: true,
190
+ enforceConst: true,
191
+ detectObjects: false,
192
+ }],
193
+
194
+ // disallow use of multiple spaces
195
+ // https://eslint.org/docs/rules/no-multi-spaces
196
+ 'no-multi-spaces': ['error', {
197
+ ignoreEOLComments: false,
198
+ }],
199
+
200
+ // disallow use of multiline strings
201
+ // https://eslint.org/docs/rules/no-multi-str
202
+ 'no-multi-str': 'error',
203
+
204
+ // disallow use of new operator when not part of the assignment or comparison
205
+ // https://eslint.org/docs/rules/no-new
206
+ 'no-new': 'error',
207
+
208
+ // disallow use of new operator for Function object
209
+ // https://eslint.org/docs/rules/no-new-func
210
+ 'no-new-func': 'error',
211
+
212
+ // disallows creating new instances of String, Number, and Boolean
213
+ // https://eslint.org/docs/rules/no-new-wrappers
214
+ 'no-new-wrappers': 'error',
215
+
216
+ // Disallow \8 and \9 escape sequences in string literals
217
+ // https://eslint.org/docs/rules/no-nonoctal-decimal-escape
218
+ 'no-nonoctal-decimal-escape': 'error',
219
+
220
+ // Disallow calls to the Object constructor without an argument
221
+ // https://eslint.org/docs/latest/rules/no-object-constructor
222
+ // TODO: enable, semver-major
223
+ 'no-object-constructor': 'off',
224
+
225
+ // disallow use of (old style) octal literals
226
+ // https://eslint.org/docs/rules/no-octal
227
+ 'no-octal': 'error',
228
+
229
+ // disallow use of octal escape sequences in string literals, such as
230
+ // var foo = 'Copyright \251';
231
+ // https://eslint.org/docs/rules/no-octal-escape
232
+ 'no-octal-escape': 'error',
233
+
234
+ // disallow reassignment of function parameters
235
+ // disallow parameter object manipulation except for specific exclusions
236
+ // rule: https://eslint.org/docs/rules/no-param-reassign.html
237
+ 'no-param-reassign': ['error', {
238
+ props: true,
239
+ ignorePropertyModificationsFor: [
240
+ 'acc', // for reduce accumulators
241
+ 'accumulator', // for reduce accumulators
242
+ 'e', // for e.returnvalue
243
+ 'ctx', // for Koa routing
244
+ 'context', // for Koa routing
245
+ 'req', // for Express requests
246
+ 'request', // for Express requests
247
+ 'res', // for Express responses
248
+ 'response', // for Express responses
249
+ '$scope', // for Angular 1 scopes
250
+ 'staticContext', // for ReactRouter context
251
+ ]
252
+ }],
253
+
254
+ // disallow usage of __proto__ property
255
+ // https://eslint.org/docs/rules/no-proto
256
+ 'no-proto': 'error',
257
+
258
+ // disallow declaring the same variable more than once
259
+ // https://eslint.org/docs/rules/no-redeclare
260
+ 'no-redeclare': 'error',
261
+
262
+ // disallow certain object properties
263
+ // https://eslint.org/docs/rules/no-restricted-properties
264
+ 'no-restricted-properties': ['error', {
265
+ object: 'arguments',
266
+ property: 'callee',
267
+ message: 'arguments.callee is deprecated',
268
+ }, {
269
+ object: 'global',
270
+ property: 'isFinite',
271
+ message: 'Please use Number.isFinite instead',
272
+ }, {
273
+ object: 'self',
274
+ property: 'isFinite',
275
+ message: 'Please use Number.isFinite instead',
276
+ }, {
277
+ object: 'window',
278
+ property: 'isFinite',
279
+ message: 'Please use Number.isFinite instead',
280
+ }, {
281
+ object: 'global',
282
+ property: 'isNaN',
283
+ message: 'Please use Number.isNaN instead',
284
+ }, {
285
+ object: 'self',
286
+ property: 'isNaN',
287
+ message: 'Please use Number.isNaN instead',
288
+ }, {
289
+ object: 'window',
290
+ property: 'isNaN',
291
+ message: 'Please use Number.isNaN instead',
292
+ }, {
293
+ property: '__defineGetter__',
294
+ message: 'Please use Object.defineProperty instead.',
295
+ }, {
296
+ property: '__defineSetter__',
297
+ message: 'Please use Object.defineProperty instead.',
298
+ }, {
299
+ object: 'Math',
300
+ property: 'pow',
301
+ message: 'Use the exponentiation operator (**) instead.',
302
+ }],
303
+
304
+ // disallow use of assignment in return statement
305
+ // https://eslint.org/docs/rules/no-return-assign
306
+ 'no-return-assign': ['error', 'always'],
307
+
308
+ // disallow redundant `return await`
309
+ // https://eslint.org/docs/rules/no-return-await
310
+ 'no-return-await': 'error',
311
+
312
+ // disallow use of `javascript:` urls.
313
+ // https://eslint.org/docs/rules/no-script-url
314
+ 'no-script-url': 'error',
315
+
316
+ // disallow self assignment
317
+ // https://eslint.org/docs/rules/no-self-assign
318
+ 'no-self-assign': ['error', {
319
+ props: true,
320
+ }],
321
+
322
+ // disallow comparisons where both sides are exactly the same
323
+ // https://eslint.org/docs/rules/no-self-compare
324
+ 'no-self-compare': 'error',
325
+
326
+ // disallow use of comma operator
327
+ // https://eslint.org/docs/rules/no-sequences
328
+ 'no-sequences': 'error',
329
+
330
+ // restrict what can be thrown as an exception
331
+ // https://eslint.org/docs/rules/no-throw-literal
332
+ 'no-throw-literal': 'error',
333
+
334
+ // disallow unmodified conditions of loops
335
+ // https://eslint.org/docs/rules/no-unmodified-loop-condition
336
+ 'no-unmodified-loop-condition': 'off',
337
+
338
+ // disallow usage of expressions in statement position
339
+ // https://eslint.org/docs/rules/no-unused-expressions
340
+ 'no-unused-expressions': ['error', {
341
+ allowShortCircuit: false,
342
+ allowTernary: false,
343
+ allowTaggedTemplates: false,
344
+ }],
345
+
346
+ // disallow unused labels
347
+ // https://eslint.org/docs/rules/no-unused-labels
348
+ 'no-unused-labels': 'error',
349
+
350
+ // disallow unnecessary .call() and .apply()
351
+ // https://eslint.org/docs/rules/no-useless-call
352
+ 'no-useless-call': 'off',
353
+
354
+ // Disallow unnecessary catch clauses
355
+ // https://eslint.org/docs/rules/no-useless-catch
356
+ 'no-useless-catch': 'error',
357
+
358
+ // disallow useless string concatenation
359
+ // https://eslint.org/docs/rules/no-useless-concat
360
+ 'no-useless-concat': 'error',
361
+
362
+ // disallow unnecessary string escaping
363
+ // https://eslint.org/docs/rules/no-useless-escape
364
+ 'no-useless-escape': 'error',
365
+
366
+ // disallow redundant return; keywords
367
+ // https://eslint.org/docs/rules/no-useless-return
368
+ 'no-useless-return': 'error',
369
+
370
+ // disallow use of void operator
371
+ // https://eslint.org/docs/rules/no-void
372
+ 'no-void': 'error',
373
+
374
+ // disallow usage of configurable warning terms in comments: e.g. todo
375
+ // https://eslint.org/docs/rules/no-warning-comments
376
+ 'no-warning-comments': ['off', { terms: ['todo', 'fixme', 'xxx'], location: 'start' }],
377
+
378
+ // disallow use of the with statement
379
+ // https://eslint.org/docs/rules/no-with
380
+ 'no-with': 'error',
381
+
382
+ // require using Error objects as Promise rejection reasons
383
+ // https://eslint.org/docs/rules/prefer-promise-reject-errors
384
+ 'prefer-promise-reject-errors': ['error', { allowEmptyReject: true }],
385
+
386
+ // Suggest using named capture group in regular expression
387
+ // https://eslint.org/docs/rules/prefer-named-capture-group
388
+ 'prefer-named-capture-group': 'off',
389
+
390
+ // Prefer Object.hasOwn() over Object.prototype.hasOwnProperty.call()
391
+ // https://eslint.org/docs/rules/prefer-object-has-own
392
+ // TODO: semver-major: enable thus rule, once eslint v8.5.0 is required
393
+ 'prefer-object-has-own': 'off',
394
+
395
+ // https://eslint.org/docs/rules/prefer-regex-literals
396
+ 'prefer-regex-literals': ['error', {
397
+ disallowRedundantWrapping: true,
398
+ }],
399
+
400
+ // require use of the second argument for parseInt()
401
+ // https://eslint.org/docs/rules/radix
402
+ radix: 'error',
403
+
404
+ // require `await` in `async function` (note: this is a horrible rule that should never be used)
405
+ // https://eslint.org/docs/rules/require-await
406
+ 'require-await': 'off',
407
+
408
+ // Enforce the use of u flag on RegExp
409
+ // https://eslint.org/docs/rules/require-unicode-regexp
410
+ 'require-unicode-regexp': 'off',
411
+
412
+ // requires to declare all vars on top of their containing scope
413
+ // https://eslint.org/docs/rules/vars-on-top
414
+ 'vars-on-top': 'error',
415
+
416
+ // require immediate function invocation to be wrapped in parentheses
417
+ // https://eslint.org/docs/rules/wrap-iife.html
418
+ 'wrap-iife': ['error', 'outside', { functionPrototypeMethods: false }],
419
+
420
+ // require or disallow Yoda conditions
421
+ // https://eslint.org/docs/rules/yoda
422
+ yoda: 'error',
423
+ },
424
+ };
@@ -0,0 +1,189 @@
1
+ export default {
2
+ rules: {
3
+ // Enforce “for” loop update clause moving the counter in the right direction
4
+ // https://eslint.org/docs/rules/for-direction
5
+ 'for-direction': 'error',
6
+
7
+ // Enforces that a return statement is present in property getters
8
+ // https://eslint.org/docs/rules/getter-return
9
+ 'getter-return': ['error', { allowImplicit: true }],
10
+
11
+ // disallow using an async function as a Promise executor
12
+ // https://eslint.org/docs/rules/no-async-promise-executor
13
+ 'no-async-promise-executor': 'error',
14
+
15
+ // Disallow await inside of loops
16
+ // https://eslint.org/docs/rules/no-await-in-loop
17
+ 'no-await-in-loop': 'error',
18
+
19
+ // Disallow comparisons to negative zero
20
+ // https://eslint.org/docs/rules/no-compare-neg-zero
21
+ 'no-compare-neg-zero': 'error',
22
+
23
+ // disallow assignment in conditional expressions
24
+ 'no-cond-assign': ['error', 'always'],
25
+
26
+ // disallow use of console
27
+ 'no-console': 'warn',
28
+
29
+ // Disallows expressions where the operation doesn't affect the value
30
+ // https://eslint.org/docs/rules/no-constant-binary-expression
31
+ // TODO: semver-major, enable
32
+ 'no-constant-binary-expression': 'off',
33
+
34
+ // disallow use of constant expressions in conditions
35
+ 'no-constant-condition': 'warn',
36
+
37
+ // disallow control characters in regular expressions
38
+ 'no-control-regex': 'error',
39
+
40
+ // disallow use of debugger
41
+ 'no-debugger': 'error',
42
+
43
+ // disallow duplicate arguments in functions
44
+ 'no-dupe-args': 'error',
45
+
46
+ // Disallow duplicate conditions in if-else-if chains
47
+ // https://eslint.org/docs/rules/no-dupe-else-if
48
+ 'no-dupe-else-if': 'error',
49
+
50
+ // disallow duplicate keys when creating object literals
51
+ 'no-dupe-keys': 'error',
52
+
53
+ // disallow a duplicate case label.
54
+ 'no-duplicate-case': 'error',
55
+
56
+ // disallow empty statements
57
+ 'no-empty': 'error',
58
+
59
+ // disallow the use of empty character classes in regular expressions
60
+ 'no-empty-character-class': 'error',
61
+
62
+ // disallow assigning to the exception in a catch block
63
+ 'no-ex-assign': 'error',
64
+
65
+ // disallow double-negation boolean casts in a boolean context
66
+ // https://eslint.org/docs/rules/no-extra-boolean-cast
67
+ 'no-extra-boolean-cast': 'error',
68
+
69
+ // disallow unnecessary parentheses
70
+ // https://eslint.org/docs/rules/no-extra-parens
71
+ 'no-extra-parens': ['off', 'all', {
72
+ conditionalAssign: true,
73
+ nestedBinaryExpressions: false,
74
+ returnAssign: false,
75
+ ignoreJSX: 'all', // delegate to eslint-plugin-react
76
+ enforceForArrowConditionals: false,
77
+ }],
78
+
79
+ // disallow unnecessary semicolons
80
+ 'no-extra-semi': 'error',
81
+
82
+ // disallow overwriting functions written as function declarations
83
+ 'no-func-assign': 'error',
84
+
85
+ // https://eslint.org/docs/rules/no-import-assign
86
+ 'no-import-assign': 'error',
87
+
88
+ // disallow function or variable declarations in nested blocks
89
+ 'no-inner-declarations': 'error',
90
+
91
+ // disallow invalid regular expression strings in the RegExp constructor
92
+ 'no-invalid-regexp': 'error',
93
+
94
+ // disallow irregular whitespace outside of strings and comments
95
+ 'no-irregular-whitespace': 'error',
96
+
97
+ // Disallow Number Literals That Lose Precision
98
+ // https://eslint.org/docs/rules/no-loss-of-precision
99
+ 'no-loss-of-precision': 'error',
100
+
101
+ // Disallow characters which are made with multiple code points in character class syntax
102
+ // https://eslint.org/docs/rules/no-misleading-character-class
103
+ 'no-misleading-character-class': 'error',
104
+
105
+ // disallow the use of object properties of the global object (Math and JSON) as functions
106
+ 'no-obj-calls': 'error',
107
+
108
+ // Disallow new operators with global non-constructor functions
109
+ // https://eslint.org/docs/latest/rules/no-new-native-nonconstructor
110
+ // TODO: semver-major, enable
111
+ 'no-new-native-nonconstructor': 'off',
112
+
113
+ // Disallow returning values from Promise executor functions
114
+ // https://eslint.org/docs/rules/no-promise-executor-return
115
+ 'no-promise-executor-return': 'error',
116
+
117
+ // disallow use of Object.prototypes builtins directly
118
+ // https://eslint.org/docs/rules/no-prototype-builtins
119
+ 'no-prototype-builtins': 'error',
120
+
121
+ // disallow multiple spaces in a regular expression literal
122
+ 'no-regex-spaces': 'error',
123
+
124
+ // Disallow returning values from setters
125
+ // https://eslint.org/docs/rules/no-setter-return
126
+ 'no-setter-return': 'error',
127
+
128
+ // disallow sparse arrays
129
+ 'no-sparse-arrays': 'error',
130
+
131
+ // Disallow template literal placeholder syntax in regular strings
132
+ // https://eslint.org/docs/rules/no-template-curly-in-string
133
+ 'no-template-curly-in-string': 'error',
134
+
135
+ // Avoid code that looks like two expressions but is actually one
136
+ // https://eslint.org/docs/rules/no-unexpected-multiline
137
+ 'no-unexpected-multiline': 'error',
138
+
139
+ // disallow unreachable statements after a return, throw, continue, or break statement
140
+ 'no-unreachable': 'error',
141
+
142
+ // Disallow loops with a body that allows only one iteration
143
+ // https://eslint.org/docs/rules/no-unreachable-loop
144
+ 'no-unreachable-loop': ['error', {
145
+ ignore: [], // WhileStatement, DoWhileStatement, ForStatement, ForInStatement, ForOfStatement
146
+ }],
147
+
148
+ // disallow return/throw/break/continue inside finally blocks
149
+ // https://eslint.org/docs/rules/no-unsafe-finally
150
+ 'no-unsafe-finally': 'error',
151
+
152
+ // disallow negating the left operand of relational operators
153
+ // https://eslint.org/docs/rules/no-unsafe-negation
154
+ 'no-unsafe-negation': 'error',
155
+
156
+ // disallow use of optional chaining in contexts where the undefined value is not allowed
157
+ // https://eslint.org/docs/rules/no-unsafe-optional-chaining
158
+ 'no-unsafe-optional-chaining': ['error', { disallowArithmeticOperators: true }],
159
+
160
+ // Disallow Unused Private Class Members
161
+ // https://eslint.org/docs/rules/no-unused-private-class-members
162
+ // TODO: enable once eslint 7 is dropped (which is semver-major)
163
+ 'no-unused-private-class-members': 'off',
164
+
165
+ // Disallow useless backreferences in regular expressions
166
+ // https://eslint.org/docs/rules/no-useless-backreference
167
+ 'no-useless-backreference': 'error',
168
+
169
+ // disallow negation of the left operand of an in expression
170
+ // deprecated in favor of no-unsafe-negation
171
+ 'no-negated-in-lhs': 'off',
172
+
173
+ // Disallow assignments that can lead to race conditions due to usage of await or yield
174
+ // https://eslint.org/docs/rules/require-atomic-updates
175
+ // note: not enabled because it is very buggy
176
+ 'require-atomic-updates': 'off',
177
+
178
+ // disallow comparisons with the value NaN
179
+ 'use-isnan': 'error',
180
+
181
+ // ensure JSDoc comments are valid
182
+ // https://eslint.org/docs/rules/valid-jsdoc
183
+ 'valid-jsdoc': 'off',
184
+
185
+ // ensure that the results of typeof are compared against a valid string
186
+ // https://eslint.org/docs/rules/valid-typeof
187
+ 'valid-typeof': ['error', { requireStringLiterals: true }],
188
+ },
189
+ };